Loading...
Searching...
No Matches
score::gfx::DirectVideoNodeRenderer Class Reference

Renderer for intra-only video codecs with instant seeking. More...

Inheritance diagram for score::gfx::DirectVideoNodeRenderer:
score::gfx::NodeRenderer

Detailed Description

Renderer for intra-only video codecs with instant seeking.

Unlike VideoNodeRenderer which reads from a frame queue fed by a background thread, this renderer owns its own LibAV decoding context and performs synchronous seek + decode + GPU upload directly in update().

This enables instant seeking for all-intra codecs (ProRes, MJPEG, DNxHD, HAP, etc.) where every frame is independently decodable.

Public Member Functions

 DirectVideoNodeRenderer (const VideoNodeBase &node, const Video::VideoMetadata &metadata) noexcept
 
 DirectVideoNodeRenderer (const DirectVideoNodeRenderer &)=delete
 
 DirectVideoNodeRenderer (DirectVideoNodeRenderer &&)=delete
 
DirectVideoNodeRendereroperator= (const DirectVideoNodeRenderer &)=delete
 
DirectVideoNodeRendereroperator= (DirectVideoNodeRenderer &&)=delete
 
TextureRenderTarget renderTargetForInput (const Port &input) override
 
void init (RenderList &renderer, QRhiResourceUpdateBatch &res) override
 
void runRenderPass (RenderList &, QRhiCommandBuffer &commands, Edge &edge) override
 
void update (RenderList &renderer, QRhiResourceUpdateBatch &res, Edge *edge) override
 
void release (RenderList &r) override
 
- Public Member Functions inherited from score::gfx::NodeRenderer
 NodeRenderer (const Node &node)
 
virtual BufferView bufferForInput (const Port &input)
 
virtual BufferView bufferForOutput (const Port &output)
 
virtual QRhiTexture * textureForOutput (const Port &output)
 
virtual void inputAboutToFinish (RenderList &renderer, const Port &p, QRhiResourceUpdateBatch *&)
 
virtual void runInitialPasses (RenderList &, QRhiCommandBuffer &commands, QRhiResourceUpdateBatch *&res, Edge &edge)
 
void checkForChanges ()
 
void process (int32_t port, const ossia::geometry_spec &v)
 
virtual void process (int32_t port, const ossia::transform3d &v)
 

Additional Inherited Members

- Public Attributes inherited from score::gfx::NodeRenderer
const Nodenode
 
ossia::geometry_spec geometry
 The geometry to use.
 
int32_t nodeId {-1}
 
bool materialChanged {false}
 
bool geometryChanged {false}
 
bool renderTargetSpecsChanged {false}
 

Member Function Documentation

◆ init()

void score::gfx::DirectVideoNodeRenderer::init ( RenderList renderer,
QRhiResourceUpdateBatch &  res 
)
overridevirtual

◆ release()

void score::gfx::DirectVideoNodeRenderer::release ( RenderList r)
overridevirtual

◆ renderTargetForInput()

TextureRenderTarget score::gfx::DirectVideoNodeRenderer::renderTargetForInput ( const Port input)
overridevirtual

◆ runRenderPass()

void score::gfx::DirectVideoNodeRenderer::runRenderPass ( RenderList renderer,
QRhiCommandBuffer &  commands,
Edge edge 
)
overridevirtual

Reimplemented from score::gfx::NodeRenderer.

◆ update()

void score::gfx::DirectVideoNodeRenderer::update ( RenderList renderer,
QRhiResourceUpdateBatch &  res,
Edge edge 
)
overridevirtual

The documentation for this class was generated from the following files: