FFmpeg
Data Structures | Macros | Functions
dovi_rpu.h File Reference
#include "libavutil/dovi_meta.h"
#include "libavutil/frame.h"

Go to the source code of this file.

Data Structures

struct  DOVIContext
 

Macros

#define DOVI_MAX_DM_ID   15
 

Functions

void ff_dovi_ctx_replace (DOVIContext *s, const DOVIContext *s0)
 
void ff_dovi_ctx_unref (DOVIContext *s)
 Completely reset a DOVIContext, preserving only logctx. More...
 
void ff_dovi_ctx_flush (DOVIContext *s)
 Partially reset the internal state. More...
 
void ff_dovi_update_cfg (DOVIContext *s, const AVDOVIDecoderConfigurationRecord *cfg)
 Read the contents of an AVDOVIDecoderConfigurationRecord (usually provided by stream side data) and update internal state accordingly. More...
 
int ff_dovi_rpu_parse (DOVIContext *s, const uint8_t *rpu, size_t rpu_size)
 Parse the contents of a Dovi RPU NAL and update the parsed values in the DOVIContext struct. More...
 
int ff_dovi_attach_side_data (DOVIContext *s, AVFrame *frame)
 Attach the decoded AVDOVIMetadata as side data to an AVFrame. More...
 

Macro Definition Documentation

◆ DOVI_MAX_DM_ID

#define DOVI_MAX_DM_ID   15

Definition at line 30 of file dovi_rpu.h.

Function Documentation

◆ ff_dovi_ctx_replace()

void ff_dovi_ctx_replace ( DOVIContext s,
const DOVIContext s0 
)

Definition at line 65 of file dovi_rpu.c.

◆ ff_dovi_ctx_unref()

void ff_dovi_ctx_unref ( DOVIContext s)

Completely reset a DOVIContext, preserving only logctx.

Definition at line 44 of file dovi_rpu.c.

Referenced by av1_decode_free(), ff_dovi_rpu_parse(), hevc_decode_free(), and libdav1d_close().

◆ ff_dovi_ctx_flush()

void ff_dovi_ctx_flush ( DOVIContext s)

Partially reset the internal state.

Resets per-frame state while preserving fields parsed from the configuration record.

Definition at line 54 of file dovi_rpu.c.

Referenced by hevc_decode_flush().

◆ ff_dovi_update_cfg()

void ff_dovi_update_cfg ( DOVIContext s,
const AVDOVIDecoderConfigurationRecord cfg 
)

Read the contents of an AVDOVIDecoderConfigurationRecord (usually provided by stream side data) and update internal state accordingly.

Definition at line 75 of file dovi_rpu.c.

Referenced by av1_decode_init(), hevc_decode_frame(), hevc_decode_init(), and libdav1d_init().

◆ ff_dovi_rpu_parse()

int ff_dovi_rpu_parse ( DOVIContext s,
const uint8_t *  rpu,
size_t  rpu_size 
)

Parse the contents of a Dovi RPU NAL and update the parsed values in the DOVIContext struct.

Returns 0 or an error code.

The patent mentions another legal value, NLQ_MU_LAW, but it's not documented anywhere how to parse or apply that type of NLQ.

Definition at line 198 of file dovi_rpu.c.

Referenced by decode_nal_units(), export_itut_t35(), and libdav1d_receive_frame().

◆ ff_dovi_attach_side_data()

int ff_dovi_attach_side_data ( DOVIContext s,
AVFrame frame 
)

Attach the decoded AVDOVIMetadata as side data to an AVFrame.

Definition at line 83 of file dovi_rpu.c.

Referenced by export_itut_t35(), libdav1d_receive_frame(), and set_side_data().