audio: use std vectors and size_t for sample indices

This commit is contained in:
itsmattkc
2022-09-01 12:52:23 -07:00
parent 4f53869b98
commit 21231540fd
4 changed files with 72 additions and 68 deletions
+8 -8
View File
@@ -43,7 +43,7 @@ public:
float max;
};
using Sample = QVector<SamplePerChannel>;
using Sample = std::vector<SamplePerChannel>;
int channel_count() const
{
@@ -90,7 +90,7 @@ public:
void OverwriteSilence(const rational &start, const rational &length);
void TrimIn(const rational &length);
void TrimIn(rational length);
AudioVisualWaveform Mid(const rational &offset) const;
AudioVisualWaveform Mid(const rational &offset, const rational &length) const;
@@ -101,9 +101,9 @@ public:
Sample GetSummaryFromTime(const rational& start, const rational& length) const;
static Sample SumSamples(const SampleBuffer &samples, int start_index, int length);
static Sample SumSamples(const SampleBuffer &samples, size_t start_index, size_t length);
static Sample ReSumSamples(const SamplePerChannel *samples, int nb_samples, int nb_channels);
static Sample ReSumSamples(const SamplePerChannel *samples, size_t nb_samples, int nb_channels);
static void DrawSample(QPainter* painter, const Sample &sample, int x, int y, int height, bool rectified);
@@ -114,12 +114,12 @@ public:
static const rational kMaximumSampleRate;
private:
void OverwriteSamplesFromBuffer(const SampleBuffer &samples, int sample_rate, const rational& start, double target_rate, Sample &data, int &start_index, int &samples_length);
void OverwriteSamplesFromBuffer(const SampleBuffer &samples, int sample_rate, const rational& start, double target_rate, Sample &data, size_t &start_index, size_t &samples_length);
void OverwriteSamplesFromMipmap(const Sample& input, double input_sample_rate, int &input_start, int &input_length, const rational& start, double output_rate, Sample &output_data);
void OverwriteSamplesFromMipmap(const Sample& input, double input_sample_rate, size_t &input_start, size_t &input_length, const rational& start, double output_rate, Sample &output_data);
int time_to_samples(const rational& time, double sample_rate) const;
int time_to_samples(const double& time, double sample_rate) const;
size_t time_to_samples(const rational& time, double sample_rate) const;
size_t time_to_samples(const double& time, double sample_rate) const;
std::map<rational, Sample>::const_iterator GetMipmapForScale(double scale) const;