further progress on first attempt
This commit is contained in:
@@ -33,7 +33,7 @@ public:
|
||||
protected:
|
||||
virtual void TextureToFrame(const QVariant& texture, FramePtr frame) const override;
|
||||
|
||||
virtual QVariant FrameToTexture(FramePtr frame) const override;
|
||||
virtual NodeValue FrameToTexture(FramePtr frame) const override;
|
||||
|
||||
virtual void ProcessNodeEvent(const Node *node, const TimeRange &range, NodeValueDatabase &input_params, NodeValueTable &output_params) const override;
|
||||
|
||||
|
||||
@@ -211,13 +211,22 @@ void RenderBackend::FootageProcessingEvent(StreamPtr stream, const TimeRange &in
|
||||
|
||||
} else if (stream->type() != Stream::kAudio) {
|
||||
|
||||
NodeValue value = GetDataFromStream(stream, input_time);
|
||||
|
||||
table->Push(value);
|
||||
table->Push(GetDataFromStream(stream, input_time));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
NodeValue RenderBackend::GetDataFromStream(StreamPtr stream, const TimeRange &input_time) const
|
||||
{
|
||||
DecoderPtr decoder = ResolveDecoderFromInput(stream);
|
||||
|
||||
if (decoder) {
|
||||
return FrameToTexture(decoder, stream, input_time);
|
||||
}
|
||||
|
||||
return NodeValue();
|
||||
}
|
||||
|
||||
NodeValueTable RenderBackend::GenerateBlockTable(const TrackOutput *track, const TimeRange &range) const
|
||||
{
|
||||
if (track->track_type() == Timeline::kTrackTypeAudio) {
|
||||
|
||||
@@ -42,8 +42,14 @@ public:
|
||||
|
||||
void CancelQueue();
|
||||
|
||||
/**
|
||||
* @brief Asynchronously generate a hash at a given time
|
||||
*/
|
||||
QFuture<QByteArray> Hash(const rational& time);
|
||||
|
||||
/**
|
||||
* @brief Asynchronously generate a frame at a given time
|
||||
*/
|
||||
QFuture<FramePtr> RenderFrame(const rational& time);
|
||||
|
||||
void SetDivider(const int& divider);
|
||||
@@ -60,7 +66,7 @@ public slots:
|
||||
protected:
|
||||
virtual void TextureToFrame(const QVariant& texture, FramePtr frame) const = 0;
|
||||
|
||||
virtual QVariant FrameToTexture(FramePtr frame) const = 0;
|
||||
virtual NodeValue FrameToTexture(FramePtr frame) const = 0;
|
||||
|
||||
virtual void FootageProcessingEvent(StreamPtr stream, const TimeRange &input_time, NodeValueTable* table) const override;
|
||||
|
||||
@@ -78,6 +84,10 @@ private:
|
||||
|
||||
VideoRenderingParams video_params() const;
|
||||
|
||||
NodeValue GetDataFromStream(StreamPtr stream, const TimeRange& input_time) const;
|
||||
|
||||
DecoderPtr ResolveDecoderFromInput(StreamPtr stream) const;
|
||||
|
||||
class CopyMap {
|
||||
public:
|
||||
CopyMap();
|
||||
|
||||
Reference in New Issue
Block a user