Go to the documentation of this file.
24 #ifndef AVCODEC_DOVI_RPU_H
25 #define AVCODEC_DOVI_RPU_H
33 #define DOVI_MAX_DM_ID 15
49 #define FF_DOVI_AUTOMATIC -1
118 int err_recognition);
149 int strict_std_compliance);
AVDOVIDecoderConfigurationRecord cfg
Currently active dolby vision configuration, or {0} for none.
void ff_dovi_ctx_replace(DOVIContext *s, const DOVIContext *s0)
This struct describes the properties of an encoded stream.
int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, int err_recognition)
Parse the contents of a Dolby Vision RPU and update the parsed values in the DOVIContext struct.
This structure describes decoded (raw) audio or video data.
const AVDOVIColorMetadata ff_dovi_color_default
@ FF_DOVI_WRAP_T35
wrap inside T.35+EMDF
int ff_dovi_configure(DOVIContext *s, AVCodecContext *avctx)
Helper wrapper around ff_dovi_configure_ext which infers the codec parameters from an AVCodecContext.
@ FF_DOVI_COMPRESS_RPU
enable compression for this RPU
Dolby Vision metadata extension block.
const AVDOVIDataMapping * mapping
Currently active data mappings, or NULL.
AVDOVIDmData dm_static[7]
static extension blocks
int ff_dovi_rpu_generate(DOVIContext *s, const AVDOVIMetadata *metadata, int flags, uint8_t **out_rpu, int *out_size)
Synthesize a Dolby Vision RPU reflecting the current state.
int ff_dovi_configure_ext(DOVIContext *s, AVCodecParameters *codecpar, const AVDOVIMetadata *metadata, enum AVDOVICompression compression, int strict_std_compliance)
Configure the encoder for Dolby Vision encoding.
AVDOVIDataMapping * vdr[DOVI_MAX_DM_ID+1]
RefStruct references.
const AVDOVIColorMetadata * color
int ff_dovi_attach_side_data(DOVIContext *s, AVFrame *frame)
Attach the decoded AVDOVIMetadata as side data to an AVFrame.
AVDOVIDmData dm_dynamic[25]
dynamic extension blocks
void ff_dovi_ctx_flush(DOVIContext *s)
Partially reset the internal state.
int ff_dovi_get_metadata(DOVIContext *s, AVDOVIMetadata **out_metadata)
Get the decoded AVDOVIMetadata.
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
DOVIExt * ext_blocks
Currently active extension blocks, updates on every ff_dovi_rpu_parse() or ff_dovi_rpu_generate().
main external API structure.
AVDOVIColorMetadata * dm
Private fields internal to dovi_rpu.c.
@ FF_DOVI_WRAP_NAL
wrap inside NAL RBSP
uint8_t * rpu_buf
temporary buffer
static int ff_dovi_rpu_extension_is_static(int level)
#define flags(name, subs,...)
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.