If the nodes are now stateless, there's nothing stopping the renderer from rendering multiple frames at once. Earlier since the nodes held some of their input/output data (and that data could change per frame), it was not possible to render multiple frames at once without conflicts. Now that the node state is held in render threads, they can do whatever they want at any time.
29 lines
627 B
C++
29 lines
627 B
C++
#ifndef AUDIORENDERWORKER_H
|
|
#define AUDIORENDERWORKER_H
|
|
|
|
#include "renderworker.h"
|
|
|
|
class AudioRenderWorker : public RenderWorker
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
AudioRenderWorker(QObject* parent = nullptr);
|
|
|
|
void SetParameters(const AudioRenderingParams& audio_params);
|
|
|
|
protected:
|
|
virtual bool InitInternal() override;
|
|
|
|
virtual void CloseInternal() override;
|
|
|
|
virtual FramePtr RetrieveFromDecoder(DecoderPtr decoder, const TimeRange& range) override;
|
|
|
|
virtual NodeValueTable RenderBlock(TrackOutput *track, const TimeRange& range) override;
|
|
|
|
private:
|
|
AudioRenderingParams audio_params_;
|
|
|
|
};
|
|
|
|
#endif // AUDIORENDERWORKER_H
|