use round instead of floor to convert time to samples

This commit is contained in:
itsmattkc
2020-11-15 23:51:12 +11:00
parent fbfa3e1348
commit c0b710b8c0
2 changed files with 13 additions and 13 deletions
+7 -7
View File
@@ -95,38 +95,38 @@ qint64 AudioParams::time_to_bytes(const rational &time) const
return time_to_bytes(time.toDouble());
}
int AudioParams::time_to_samples(const double &time) const
qint64 AudioParams::time_to_samples(const double &time) const
{
Q_ASSERT(is_valid());
return qFloor(time * sample_rate());
return qRound64(time * sample_rate());
}
int AudioParams::time_to_samples(const rational &time) const
qint64 AudioParams::time_to_samples(const rational &time) const
{
return time_to_samples(time.toDouble());
}
int AudioParams::samples_to_bytes(const int &samples) const
qint64 AudioParams::samples_to_bytes(const qint64 &samples) const
{
Q_ASSERT(is_valid());
return samples * channel_count() * bytes_per_sample_per_channel();
}
rational AudioParams::samples_to_time(const int &samples) const
rational AudioParams::samples_to_time(const qint64 &samples) const
{
return rational(samples, sample_rate());
}
int AudioParams::bytes_to_samples(const int &bytes) const
qint64 AudioParams::bytes_to_samples(const qint64 &bytes) const
{
Q_ASSERT(is_valid());
return bytes / (channel_count() * bytes_per_sample_per_channel());
}
rational AudioParams::bytes_to_time(const int &bytes) const
rational AudioParams::bytes_to_time(const qint64 &bytes) const
{
Q_ASSERT(is_valid());
+6 -6
View File
@@ -94,12 +94,12 @@ public:
qint64 time_to_bytes(const double& time) const;
qint64 time_to_bytes(const rational& time) const;
int time_to_samples(const double& time) const;
int time_to_samples(const rational& time) const;
int samples_to_bytes(const int& samples) const;
rational samples_to_time(const int& samples) const;
int bytes_to_samples(const int &bytes) const;
rational bytes_to_time(const int &bytes) const;
qint64 time_to_samples(const double& time) const;
qint64 time_to_samples(const rational& time) const;
qint64 samples_to_bytes(const qint64& samples) const;
rational samples_to_time(const qint64& samples) const;
qint64 bytes_to_samples(const qint64 &bytes) const;
rational bytes_to_time(const qint64 &bytes) const;
int channel_count() const;
int bytes_per_sample_per_channel() const;
int bits_per_sample() const;