Loading...
Searching...
No Matches

Decodes Y210 packed 4:2:2 10-bit videos. More...

Inheritance diagram for score::gfx::Y210Decoder:
score::gfx::GPUVideoDecoder

Detailed Description

Decodes Y210 packed 4:2:2 10-bit videos.

Packed as Y0 U Y1 V, each 16-bit with data in the high bits. 8 bytes per macropixel (2 pixels). Uploaded as RGBA16F at {w/2, h}. tex.r=Y0, tex.g=U, tex.b=Y1, tex.a=V.

Data in high bits means R16 unorm already returns [0,1] normalized values.

Public Member Functions

 Y210Decoder (Video::ImageFormat &d)
 
std::pair< QShader, QShader > init (RenderList &r) override
 Initialize a GPUVideoDecoder.
 
void exec (RenderList &, QRhiResourceUpdateBatch &res, AVFrame &frame) override
 Decode and upload a video frame to the GPU.
 
- Public Member Functions inherited from score::gfx::GPUVideoDecoder
void release (RenderList &)
 This method will release all the created samplers and textures.
 

Public Attributes

Video::ImageFormatdecoder
 
- Public Attributes inherited from score::gfx::GPUVideoDecoder
std::vector< Samplersamplers
 

Static Public Attributes

static const constexpr auto frag
 

Additional Inherited Members

- Static Public Member Functions inherited from score::gfx::GPUVideoDecoder
static QRhiTextureSubresourceUploadDescription createTextureUpload (uint8_t *pixels, int w, int h, int bytesPerPixel, int stride)
 Utility method to create a QRhiTextureSubresourceUploadDescription.
 
static QString vertexShader (bool invertY=false) noexcept
 

Member Function Documentation

◆ exec()

void score::gfx::Y210Decoder::exec ( RenderList ,
QRhiResourceUpdateBatch &  res,
AVFrame &  frame 
)
inlineoverridevirtual

Decode and upload a video frame to the GPU.

Implements score::gfx::GPUVideoDecoder.

◆ init()

std::pair< QShader, QShader > score::gfx::Y210Decoder::init ( RenderList r)
inlineoverridevirtual

Initialize a GPUVideoDecoder.

This method must :

  • Create samplers and textures for the video format.
  • Create shaders that will render the data put into these textures.

It returns a {vertex, fragment} shader pair.

Implements score::gfx::GPUVideoDecoder.


The documentation for this struct was generated from the following file: