conformed renderworkers to new decoder retrieval functions
This commit is contained in:
@@ -119,3 +119,8 @@ QVariant AudioRenderWorker::RenderBlock(NodeOutput* output, const TimeRange &ran
|
||||
|
||||
return block_range_buffer;
|
||||
}
|
||||
|
||||
FramePtr AudioRenderWorker::RetrieveFromDecoder(DecoderPtr decoder, const TimeRange &range)
|
||||
{
|
||||
return decoder->RetrieveAudio(range.in(), range.out() - range.in(), audio_params_);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ protected:
|
||||
|
||||
QVariant RenderBlock(NodeOutput *output, const TimeRange& range);
|
||||
|
||||
virtual FramePtr RetrieveFromDecoder(DecoderPtr decoder, const TimeRange& range) override;
|
||||
|
||||
private:
|
||||
AudioRenderingParams audio_params_;
|
||||
|
||||
|
||||
@@ -110,8 +110,8 @@ DecoderPtr RenderWorker::ResolveDecoderFromInput(NodeInput *input)
|
||||
DecoderPtr decoder = decoder_cache()->GetDecoder(stream.get());
|
||||
|
||||
if (decoder == nullptr && stream != nullptr) {
|
||||
// Init decoder
|
||||
decoder = Decoder::CreateFromID(stream->footage()->decoder());
|
||||
// Create a new Decoder here
|
||||
DecoderPtr decoder = Decoder::CreateFromID(stream->footage()->decoder());
|
||||
decoder->set_stream(stream);
|
||||
decoder_cache()->AddDecoder(stream.get(), decoder);
|
||||
}
|
||||
@@ -152,7 +152,7 @@ QList<NodeInput*> RenderWorker::ProcessNodeInputsForTime(Node *n, const TimeRang
|
||||
|
||||
// By this point we should definitely have a decoder, and if we don't something's gone terribly wrong
|
||||
if (decoder != nullptr) {
|
||||
FramePtr frame = decoder->Retrieve(time.in(), time.out() - time.in());
|
||||
FramePtr frame = RetrieveFromDecoder(decoder, time);
|
||||
|
||||
if (frame != nullptr) {
|
||||
QVariant value = FrameToValue(frame);
|
||||
|
||||
@@ -73,6 +73,8 @@ protected:
|
||||
StreamPtr ResolveStreamFromInput(NodeInput* input);
|
||||
DecoderPtr ResolveDecoderFromInput(NodeInput* input);
|
||||
|
||||
virtual FramePtr RetrieveFromDecoder(DecoderPtr decoder, const TimeRange& range) = 0;
|
||||
|
||||
QList<NodeInput*> ProcessNodeInputsForTime(Node* n, const TimeRange& time);
|
||||
|
||||
virtual QVariant FrameToValue(FramePtr frame) = 0;
|
||||
|
||||
@@ -38,6 +38,11 @@ void VideoRenderWorker::RenderInternal(const NodeDependency& path)
|
||||
}
|
||||
}
|
||||
|
||||
FramePtr VideoRenderWorker::RetrieveFromDecoder(DecoderPtr decoder, const TimeRange &range)
|
||||
{
|
||||
return decoder->RetrieveVideo(range.in());
|
||||
}
|
||||
|
||||
void VideoRenderWorker::HashNodeRecursively(QCryptographicHash *hash, Node* n, const rational& time)
|
||||
{
|
||||
// Resolve BlockList
|
||||
|
||||
@@ -42,6 +42,8 @@ protected:
|
||||
|
||||
virtual void RenderInternal(const NodeDependency& path) override;
|
||||
|
||||
virtual FramePtr RetrieveFromDecoder(DecoderPtr decoder, const TimeRange& range) override;
|
||||
|
||||
private:
|
||||
void ProcessNode();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user