simplified and optimized samplebuffer

This commit is contained in:
itsmattkc
2022-05-09 14:55:51 -07:00
parent 58c4600d04
commit bb0fedabba
47 changed files with 214 additions and 252 deletions
+9 -15
View File
@@ -27,9 +27,6 @@
namespace olive {
class SampleBuffer;
using SampleBufferPtr = std::shared_ptr<SampleBuffer>;
/**
* @brief A buffer of audio samples
*
@@ -42,12 +39,8 @@ class SampleBuffer
{
public:
SampleBuffer();
static SampleBufferPtr Create();
static SampleBufferPtr CreateAllocated(const AudioParams& audio_params, const rational& length);
static SampleBufferPtr CreateAllocated(const AudioParams& audio_params, int samples_per_channel);
DISABLE_COPY_MOVE(SampleBuffer)
SampleBuffer(const AudioParams& audio_params, const rational& length);
SampleBuffer(const AudioParams& audio_params, int samples_per_channel);
const AudioParams& audio_params() const;
void set_audio_params(const AudioParams& params);
@@ -69,9 +62,13 @@ public:
return data_.at(channel).constData();
}
float **to_raw_ptrs()
QVector<float *> to_raw_ptrs()
{
return raw_ptrs_.data();
QVector<float *> r(data_.size());
for (int i=0; i<r.size(); i++) {
r[i] = data_[i].data();
}
return r;
}
bool is_allocated() const;
@@ -96,19 +93,16 @@ public:
}
private:
void update_raw();
AudioParams audio_params_;
int sample_count_per_channel_;
QVector< QVector<float> > data_;
QVector<float*> raw_ptrs_;
};
}
Q_DECLARE_METATYPE(olive::SampleBufferPtr)
Q_DECLARE_METATYPE(olive::SampleBuffer)
#endif // SAMPLEBUFFER_H