FFmpeg
|
#include "libavutil/mem.h"
#include "libavutil/crc.h"
#include "avcodec.h"
#include "dovi_rpu.h"
#include "golomb.h"
#include "get_bits.h"
#include "libavutil/refstruct.h"
Go to the source code of this file.
Macros | |
#define | COPY(t, a, b, last) memcpy(a, b, offsetof(t, last) + sizeof((b)->last)) |
#define | VALIDATE(VAR, MIN, MAX) |
Functions | |
int | ff_dovi_get_metadata (DOVIContext *s, AVDOVIMetadata **out_metadata) |
Get the decoded AVDOVIMetadata. More... | |
int | ff_dovi_attach_side_data (DOVIContext *s, AVFrame *frame) |
Attach the decoded AVDOVIMetadata as side data to an AVFrame. More... | |
static uint64_t | get_ue_coef (GetBitContext *gb, const AVDOVIRpuDataHeader *hdr) |
static int64_t | get_se_coef (GetBitContext *gb, const AVDOVIRpuDataHeader *hdr) |
static unsigned | get_variable_bits (GetBitContext *gb, int n) |
static int | parse_ext_v1 (DOVIContext *s, GetBitContext *gb, AVDOVIDmData *dm) |
static AVCIExy | get_cie_xy (GetBitContext *gb) |
static int | parse_ext_v2 (DOVIContext *s, GetBitContext *gb, AVDOVIDmData *dm, int ext_block_length) |
static int | parse_ext_blocks (DOVIContext *s, GetBitContext *gb, int ver, int compression, int err_recognition) |
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. More... | |
Definition at line 140 of file dovi_rpudec.c.
int ff_dovi_get_metadata | ( | DOVIContext * | s, |
AVDOVIMetadata ** | out_metadata | ||
) |
Get the decoded AVDOVIMetadata.
Ownership passes to the caller.
Returns the size of *out_metadata, a negative error code, or 0 if no metadata is available to return.
Definition at line 33 of file dovi_rpudec.c.
Referenced by ff_dovi_attach_side_data(), and update_rpu().
int ff_dovi_attach_side_data | ( | DOVIContext * | s, |
AVFrame * | frame | ||
) |
Attach the decoded AVDOVIMetadata as side data to an AVFrame.
Returns 0 or a negative error code.
Definition at line 64 of file dovi_rpudec.c.
Referenced by export_itut_t35(), libdav1d_receive_frame(), and set_side_data().
|
inlinestatic |
Definition at line 90 of file dovi_rpudec.c.
Referenced by ff_dovi_rpu_parse().
|
inlinestatic |
Definition at line 109 of file dovi_rpudec.c.
Referenced by ff_dovi_rpu_parse().
|
inlinestatic |
Definition at line 128 of file dovi_rpudec.c.
Referenced by ff_dovi_rpu_parse().
|
static |
Definition at line 150 of file dovi_rpudec.c.
Referenced by parse_ext_blocks().
|
static |
Definition at line 198 of file dovi_rpudec.c.
Referenced by parse_ext_v2().
|
static |
Definition at line 207 of file dovi_rpudec.c.
Referenced by parse_ext_blocks().
|
static |
Definition at line 284 of file dovi_rpudec.c.
Referenced by ff_dovi_rpu_parse().
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 function should receive the decoded unit payload, without any T.35 or NAL unit headers.
Returns 0 or an error code.
Note: DOVIContext.cfg
should be initialized before calling into this function. If not done, the profile will be guessed according to HEVC semantics.
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 346 of file dovi_rpudec.c.
Referenced by decode_nal_units(), export_itut_t35(), libdav1d_receive_frame(), and update_rpu().