conformed renderworkers to new decoder retrieval functions

This commit is contained in:
itsmattkc
2019-11-30 02:52:11 +11:00
parent 2b273e44c5
commit 87394f0c2a
6 changed files with 19 additions and 3 deletions
+5
View File
@@ -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_);
}
+2
View File
@@ -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_;
+3 -3
View File
@@ -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);
+2
View File
@@ -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;
+5
View File
@@ -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
+2
View File
@@ -42,6 +42,8 @@ protected:
virtual void RenderInternal(const NodeDependency& path) override;
virtual FramePtr RetrieveFromDecoder(DecoderPtr decoder, const TimeRange& range) override;
private:
void ProcessNode();