Go to the documentation of this file.
24 #ifndef AVCODEC_DOVI_RPU_H
25 #define AVCODEC_DOVI_RPU_H
31 #define DOVI_MAX_DM_ID 15
39 #define FF_DOVI_AUTOMATIC -1
107 int err_recognition);
AVDOVIDmData * ext_blocks
Currently active extension blocks, updates on every ff_dovi_rpu_parse() or ff_dovi_rpu_generate().
AVDOVIDecoderConfigurationRecord cfg
Currently active dolby vision configuration, or {0} for none.
void ff_dovi_ctx_replace(DOVIContext *s, const DOVIContext *s0)
int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, int err_recognition)
Parse the contents of a Dovi RPU NAL and update the parsed values in the DOVIContext struct.
This structure describes decoded (raw) audio or video data.
int ff_dovi_configure(DOVIContext *s, AVCodecContext *avctx)
Configure the encoder for Dolby Vision encoding.
Dolby Vision metadata extension block.
const AVDOVIDataMapping * mapping
Currently active data mappings, or NULL.
struct DOVIVdr * vdr[DOVI_MAX_DM_ID+1]
Private fields internal to dovi_rpu.c.
int ff_dovi_rpu_generate(DOVIContext *s, const AVDOVIMetadata *metadata, uint8_t **out_rpu, int *out_size)
Synthesize a Dolby Vision RPU reflecting the current state.
const AVDOVIColorMetadata * color
int ff_dovi_attach_side_data(DOVIContext *s, AVFrame *frame)
Attach the decoded AVDOVIMetadata as side data to an AVFrame.
AVDOVIDataMapping mapping
void ff_dovi_ctx_flush(DOVIContext *s)
Partially reset the internal state.
AVDOVIRpuDataHeader header
Currently active RPU data header, updates on every ff_dovi_rpu_parse() or ff_dovi_rpu_generate().
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
main external API structure.
uint8_t * rpu_buf
temporary buffer
AVDOVIColorMetadata color
int ff_dovi_guess_profile_hevc(const AVDOVIRpuDataHeader *hdr)
Internal helper function to guess the correct DV profile for HEVC.
Dolby Vision RPU data mapping parameters.
void ff_dovi_ctx_unref(DOVIContext *s)
Completely reset a DOVIContext, preserving only logctx.