Loading...
Searching...
No Matches
dovi_meta.h
Go to the documentation of this file.
/*
* Copyright (c) 2020 Vacing Fang <vacingfang@tencent.com>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* DOVI configuration
*/
#ifndef AVUTIL_DOVI_META_H
#define AVUTIL_DOVI_META_H
#include <stdint.h>
#include <stddef.h>
#include "rational.h"
#include "csp.h"
/*
* DOVI configuration
* ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2
dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2
* @code
* uint8_t dv_version_major, the major version number that the stream complies with
* uint8_t dv_version_minor, the minor version number that the stream complies with
* uint8_t dv_profile, the Dolby Vision profile
* uint8_t dv_level, the Dolby Vision level
* uint8_t rpu_present_flag
* uint8_t el_present_flag
* uint8_t bl_present_flag
* uint8_t dv_bl_signal_compatibility_id
* uint8_t dv_md_compression, the compression method in use
* @endcode
*
* @note The struct must be allocated with av_dovi_alloc() and
* its size is not a part of the public ABI.
*/
typedef struct AVDOVIDecoderConfigurationRecord {
uint8_t dv_version_major;
uint8_t dv_version_minor;
uint8_t dv_profile;
uint8_t dv_level;
uint8_t rpu_present_flag;
uint8_t el_present_flag;
uint8_t bl_present_flag;
uint8_t dv_bl_signal_compatibility_id;
uint8_t dv_md_compression;
} AVDOVIDecoderConfigurationRecord;
enum AVDOVICompression {
AV_DOVI_COMPRESSION_NONE = 0,
AV_DOVI_COMPRESSION_LIMITED = 1,
AV_DOVI_COMPRESSION_RESERVED = 2,
AV_DOVI_COMPRESSION_EXTENDED = 3,
};
/**
* Allocate a AVDOVIDecoderConfigurationRecord structure and initialize its
* fields to default values.
*
* @return the newly allocated struct or NULL on failure
*/
AVDOVIDecoderConfigurationRecord *av_dovi_alloc(size_t *size);
/**
* Dolby Vision RPU data header.
*
* @note sizeof(AVDOVIRpuDataHeader) is not part of the public ABI.
*/
typedef struct AVDOVIRpuDataHeader {
uint8_t rpu_type;
uint16_t rpu_format;
uint8_t vdr_rpu_profile;
uint8_t vdr_rpu_level;
uint8_t chroma_resampling_explicit_filter_flag;
uint8_t coef_data_type; /* informative, lavc always converts to fixed */
uint8_t coef_log2_denom;
uint8_t vdr_rpu_normalized_idc;
uint8_t bl_video_full_range_flag;
uint8_t bl_bit_depth; /* [8, 16] */
uint8_t el_bit_depth; /* [8, 16] */
uint8_t vdr_bit_depth; /* [8, 16] */
uint8_t spatial_resampling_filter_flag;
uint8_t el_spatial_resampling_filter_flag;
uint8_t disable_residual_flag;
uint8_t ext_mapping_idc_0_4; /* extended base layer inverse mapping indicator */
uint8_t ext_mapping_idc_5_7; /* reserved */
} AVDOVIRpuDataHeader;
enum AVDOVIMappingMethod {
AV_DOVI_MAPPING_POLYNOMIAL = 0,
AV_DOVI_MAPPING_MMR = 1,
};
/**
* Coefficients of a piece-wise function. The pieces of the function span the
* value ranges between two adjacent pivot values.
*/
#define AV_DOVI_MAX_PIECES 8
typedef struct AVDOVIReshapingCurve {
uint8_t num_pivots; /* [2, 9] */
uint16_t pivots[AV_DOVI_MAX_PIECES + 1]; /* sorted ascending */
enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES];
/* AV_DOVI_MAPPING_POLYNOMIAL */
uint8_t poly_order[AV_DOVI_MAX_PIECES]; /* [1, 2] */
int64_t poly_coef[AV_DOVI_MAX_PIECES][3]; /* x^0, x^1, x^2 */
/* AV_DOVI_MAPPING_MMR */
uint8_t mmr_order[AV_DOVI_MAX_PIECES]; /* [1, 3] */
int64_t mmr_constant[AV_DOVI_MAX_PIECES];
int64_t mmr_coef[AV_DOVI_MAX_PIECES][3/* order - 1 */][7];
} AVDOVIReshapingCurve;
enum AVDOVINLQMethod {
AV_DOVI_NLQ_NONE = -1,
AV_DOVI_NLQ_LINEAR_DZ = 0,
};
/**
* Coefficients of the non-linear inverse quantization. For the interpretation
* of these, see ETSI GS CCM 001.
*/
typedef struct AVDOVINLQParams {
uint16_t nlq_offset;
uint64_t vdr_in_max;
/* AV_DOVI_NLQ_LINEAR_DZ */
uint64_t linear_deadzone_slope;
uint64_t linear_deadzone_threshold;
} AVDOVINLQParams;
/**
* Dolby Vision RPU data mapping parameters.
*
* @note sizeof(AVDOVIDataMapping) is not part of the public ABI.
*/
typedef struct AVDOVIDataMapping {
uint8_t vdr_rpu_id;
uint8_t mapping_color_space;
uint8_t mapping_chroma_format_idc;
AVDOVIReshapingCurve curves[3]; /* per component */
/* Non-linear inverse quantization */
enum AVDOVINLQMethod nlq_method_idc;
uint32_t num_x_partitions;
uint32_t num_y_partitions;
AVDOVINLQParams nlq[3]; /* per component */
uint16_t nlq_pivots[2];
} AVDOVIDataMapping;
/**
* Dolby Vision RPU colorspace metadata parameters.
*
* @note sizeof(AVDOVIColorMetadata) is not part of the public ABI.
*/
typedef struct AVDOVIColorMetadata {
uint8_t dm_metadata_id;
uint8_t scene_refresh_flag;
/**
* Coefficients of the custom Dolby Vision IPT-PQ matrices. These are to be
* used instead of the matrices indicated by the frame's colorspace tags.
* The output of rgb_to_lms_matrix is to be fed into a BT.2020 LMS->RGB
* matrix based on a Hunt-Pointer-Estevez transform, but without any
* crosstalk. (See the definition of the ICtCp colorspace for more
* information.)
*/
AVRational ycc_to_rgb_matrix[9]; /* before PQ linearization */
AVRational ycc_to_rgb_offset[3]; /* input offset of neutral value */
AVRational rgb_to_lms_matrix[9]; /* after PQ linearization */
/**
* Extra signal metadata (see Dolby patents for more info).
*/
uint16_t signal_eotf;
uint16_t signal_eotf_param0;
uint16_t signal_eotf_param1;
uint32_t signal_eotf_param2;
uint8_t signal_bit_depth;
uint8_t signal_color_space;
uint8_t signal_chroma_format;
uint8_t signal_full_range_flag; /* [0, 3] */
uint16_t source_min_pq;
uint16_t source_max_pq;
uint16_t source_diagonal;
} AVDOVIColorMetadata;
typedef struct AVDOVIDmLevel1 {
/* Per-frame brightness metadata */
uint16_t min_pq;
uint16_t max_pq;
uint16_t avg_pq;
} AVDOVIDmLevel1;
typedef struct AVDOVIDmLevel2 {
/* Usually derived from level 8 (at different levels) */
uint16_t target_max_pq;
uint16_t trim_slope;
uint16_t trim_offset;
uint16_t trim_power;
uint16_t trim_chroma_weight;
uint16_t trim_saturation_gain;
int16_t ms_weight;
} AVDOVIDmLevel2;
typedef struct AVDOVIDmLevel3 {
uint16_t min_pq_offset;
uint16_t max_pq_offset;
uint16_t avg_pq_offset;
} AVDOVIDmLevel3;
typedef struct AVDOVIDmLevel4 {
uint16_t anchor_pq;
uint16_t anchor_power;
} AVDOVIDmLevel4;
typedef struct AVDOVIDmLevel5 {
/* Active area definition */
uint16_t left_offset;
uint16_t right_offset;
uint16_t top_offset;
uint16_t bottom_offset;
} AVDOVIDmLevel5;
typedef struct AVDOVIDmLevel6 {
/* Static HDR10 metadata */
uint16_t max_luminance;
uint16_t min_luminance;
uint16_t max_cll;
uint16_t max_fall;
} AVDOVIDmLevel6;
typedef struct AVDOVIDmLevel8 {
/* Extended version of level 2 */
uint8_t target_display_index;
uint16_t trim_slope;
uint16_t trim_offset;
uint16_t trim_power;
uint16_t trim_chroma_weight;
uint16_t trim_saturation_gain;
uint16_t ms_weight;
uint16_t target_mid_contrast;
uint16_t clip_trim;
uint8_t saturation_vector_field[6];
uint8_t hue_vector_field[6];
} AVDOVIDmLevel8;
typedef struct AVDOVIDmLevel9 {
/* Source display characteristics */
uint8_t source_primary_index;
AVColorPrimariesDesc source_display_primaries;
} AVDOVIDmLevel9;
typedef struct AVDOVIDmLevel10 {
/* Target display characteristics */
uint8_t target_display_index;
uint16_t target_max_pq;
uint16_t target_min_pq;
uint8_t target_primary_index;
AVColorPrimariesDesc target_display_primaries;
} AVDOVIDmLevel10;
typedef struct AVDOVIDmLevel11 {
uint8_t content_type;
uint8_t whitepoint;
uint8_t reference_mode_flag;
uint8_t sharpness;
uint8_t noise_reduction;
uint8_t mpeg_noise_reduction;
uint8_t frame_rate_conversion;
uint8_t brightness;
uint8_t color;
} AVDOVIDmLevel11;
typedef struct AVDOVIDmLevel254 {
/* DMv2 info block, always present in samples with DMv2 metadata */
uint8_t dm_mode;
uint8_t dm_version_index;
} AVDOVIDmLevel254;
typedef struct AVDOVIDmLevel255 {
/* Debug block, not really used in samples */
uint8_t dm_run_mode;
uint8_t dm_run_version;
uint8_t dm_debug[4];
} AVDOVIDmLevel255;
/**
* Dolby Vision metadata extension block. Dynamic extension blocks may change
* from frame to frame, while static blocks are constant throughout the entire
* sequence.
*
* @note sizeof(AVDOVIDmData) is not part of the public API.
*/
typedef struct AVDOVIDmData {
uint8_t level; /* [1, 255] */
union {
AVDOVIDmLevel1 l1; /* dynamic */
AVDOVIDmLevel2 l2; /* dynamic, may appear multiple times */
AVDOVIDmLevel3 l3; /* dynamic */
AVDOVIDmLevel4 l4; /* dynamic */
AVDOVIDmLevel5 l5; /* dynamic */
AVDOVIDmLevel6 l6; /* static */
/* level 7 is currently unused */
AVDOVIDmLevel8 l8; /* dynamic, may appear multiple times */
AVDOVIDmLevel9 l9; /* dynamic */
AVDOVIDmLevel10 l10; /* static, may appear multiple times */
AVDOVIDmLevel11 l11; /* dynamic */
AVDOVIDmLevel254 l254; /* static */
AVDOVIDmLevel255 l255; /* static */
};
} AVDOVIDmData;
/**
* Combined struct representing a combination of header, mapping and color
* metadata, for attaching to frames as side data.
*
* @note The struct must be allocated with av_dovi_metadata_alloc() and
* its size is not a part of the public ABI.
*/
typedef struct AVDOVIMetadata {
/**
* Offset in bytes from the beginning of this structure at which the
* respective structs start.
*/
size_t header_offset; /* AVDOVIRpuDataHeader */
size_t mapping_offset; /* AVDOVIDataMapping */
size_t color_offset; /* AVDOVIColorMetadata */
size_t ext_block_offset; /* offset to start of ext blocks array */
size_t ext_block_size; /* size per element */
int num_ext_blocks; /* number of extension blocks */
/* static limit on num_ext_blocks, derived from bitstream limitations */
#define AV_DOVI_MAX_EXT_BLOCKS 32
} AVDOVIMetadata;
static av_always_inline AVDOVIRpuDataHeader *
av_dovi_get_header(const AVDOVIMetadata *data)
{
return (AVDOVIRpuDataHeader *)((uint8_t *) data + data->header_offset);
}
static av_always_inline AVDOVIDataMapping *
av_dovi_get_mapping(const AVDOVIMetadata *data)
{
return (AVDOVIDataMapping *)((uint8_t *) data + data->mapping_offset);
}
static av_always_inline AVDOVIColorMetadata *
av_dovi_get_color(const AVDOVIMetadata *data)
{
return (AVDOVIColorMetadata *)((uint8_t *) data + data->color_offset);
}
static av_always_inline AVDOVIDmData *
av_dovi_get_ext(const AVDOVIMetadata *data, int index)
{
return (AVDOVIDmData *)((uint8_t *) data + data->ext_block_offset +
data->ext_block_size * index);
}
/**
* Find an extension block with a given level, or NULL. In the case of
* multiple extension blocks, only the first is returned.
*/
AVDOVIDmData *av_dovi_find_level(const AVDOVIMetadata *data, uint8_t level);
/**
* Allocate an AVDOVIMetadata structure and initialize its
* fields to default values.
*
* @param size If this parameter is non-NULL, the size in bytes of the
* allocated struct will be written here on success
*
* @return the newly allocated struct or NULL on failure
*/
AVDOVIMetadata *av_dovi_metadata_alloc(size_t *size);
#endif /* AVUTIL_DOVI_META_H */
av_always_inline
#define av_always_inline
Definition attributes.h:45
csp.h
Colorspace value utility functions for libavutil.
av_dovi_get_color
static av_always_inline AVDOVIColorMetadata * av_dovi_get_color(const AVDOVIMetadata *data)
Definition dovi_meta.h:367
av_dovi_find_level
AVDOVIDmData * av_dovi_find_level(const AVDOVIMetadata *data, uint8_t level)
Find an extension block with a given level, or NULL.
av_dovi_alloc
AVDOVIDecoderConfigurationRecord * av_dovi_alloc(size_t *size)
Allocate a AVDOVIDecoderConfigurationRecord structure and initialize its fields to default values.
av_dovi_get_header
static av_always_inline AVDOVIRpuDataHeader * av_dovi_get_header(const AVDOVIMetadata *data)
Definition dovi_meta.h:355
AVDOVICompression
AVDOVICompression
Definition dovi_meta.h:67
AV_DOVI_COMPRESSION_EXTENDED
@ AV_DOVI_COMPRESSION_EXTENDED
Definition dovi_meta.h:71
AV_DOVI_COMPRESSION_LIMITED
@ AV_DOVI_COMPRESSION_LIMITED
Definition dovi_meta.h:69
AV_DOVI_COMPRESSION_NONE
@ AV_DOVI_COMPRESSION_NONE
Definition dovi_meta.h:68
AV_DOVI_COMPRESSION_RESERVED
@ AV_DOVI_COMPRESSION_RESERVED
Definition dovi_meta.h:70
av_dovi_get_ext
static av_always_inline AVDOVIDmData * av_dovi_get_ext(const AVDOVIMetadata *data, int index)
Definition dovi_meta.h:373
AVDOVIMappingMethod
AVDOVIMappingMethod
Definition dovi_meta.h:107
AV_DOVI_MAPPING_MMR
@ AV_DOVI_MAPPING_MMR
Definition dovi_meta.h:109
AV_DOVI_MAPPING_POLYNOMIAL
@ AV_DOVI_MAPPING_POLYNOMIAL
Definition dovi_meta.h:108
AVDOVINLQMethod
AVDOVINLQMethod
Definition dovi_meta.h:130
AV_DOVI_NLQ_NONE
@ AV_DOVI_NLQ_NONE
Definition dovi_meta.h:131
AV_DOVI_NLQ_LINEAR_DZ
@ AV_DOVI_NLQ_LINEAR_DZ
Definition dovi_meta.h:132
av_dovi_metadata_alloc
AVDOVIMetadata * av_dovi_metadata_alloc(size_t *size)
Allocate an AVDOVIMetadata structure and initialize its fields to default values.
av_dovi_get_mapping
static av_always_inline AVDOVIDataMapping * av_dovi_get_mapping(const AVDOVIMetadata *data)
Definition dovi_meta.h:361
AV_DOVI_MAX_PIECES
#define AV_DOVI_MAX_PIECES
Coefficients of a piece-wise function.
Definition dovi_meta.h:116
rational.h
Utilities for rational number calculation.
AVColorPrimariesDesc
Struct that contains both white point location and primaries location, providing the complete descrip...
Definition csp.h:78
AVDOVIColorMetadata
Dolby Vision RPU colorspace metadata parameters.
Definition dovi_meta.h:171
AVDOVIColorMetadata::signal_eotf
uint16_t signal_eotf
Extra signal metadata (see Dolby patents for more info).
Definition dovi_meta.h:190
AVDOVIColorMetadata::rgb_to_lms_matrix
AVRational rgb_to_lms_matrix[9]
Definition dovi_meta.h:185
AVDOVIColorMetadata::signal_bit_depth
uint8_t signal_bit_depth
Definition dovi_meta.h:194
AVDOVIColorMetadata::ycc_to_rgb_matrix
AVRational ycc_to_rgb_matrix[9]
Coefficients of the custom Dolby Vision IPT-PQ matrices.
Definition dovi_meta.h:183
AVDOVIColorMetadata::signal_eotf_param0
uint16_t signal_eotf_param0
Definition dovi_meta.h:191
AVDOVIColorMetadata::signal_eotf_param1
uint16_t signal_eotf_param1
Definition dovi_meta.h:192
AVDOVIColorMetadata::scene_refresh_flag
uint8_t scene_refresh_flag
Definition dovi_meta.h:173
AVDOVIColorMetadata::source_min_pq
uint16_t source_min_pq
Definition dovi_meta.h:198
AVDOVIColorMetadata::signal_chroma_format
uint8_t signal_chroma_format
Definition dovi_meta.h:196
AVDOVIColorMetadata::source_diagonal
uint16_t source_diagonal
Definition dovi_meta.h:200
AVDOVIColorMetadata::dm_metadata_id
uint8_t dm_metadata_id
Definition dovi_meta.h:172
AVDOVIColorMetadata::source_max_pq
uint16_t source_max_pq
Definition dovi_meta.h:199
AVDOVIColorMetadata::signal_eotf_param2
uint32_t signal_eotf_param2
Definition dovi_meta.h:193
AVDOVIColorMetadata::signal_color_space
uint8_t signal_color_space
Definition dovi_meta.h:195
AVDOVIColorMetadata::signal_full_range_flag
uint8_t signal_full_range_flag
Definition dovi_meta.h:197
AVDOVIColorMetadata::ycc_to_rgb_offset
AVRational ycc_to_rgb_offset[3]
Definition dovi_meta.h:184
AVDOVIDataMapping
Dolby Vision RPU data mapping parameters.
Definition dovi_meta.h:152
AVDOVIDataMapping::num_x_partitions
uint32_t num_x_partitions
Definition dovi_meta.h:160
AVDOVIDataMapping::vdr_rpu_id
uint8_t vdr_rpu_id
Definition dovi_meta.h:153
AVDOVIDataMapping::nlq
AVDOVINLQParams nlq[3]
Definition dovi_meta.h:162
AVDOVIDataMapping::mapping_color_space
uint8_t mapping_color_space
Definition dovi_meta.h:154
AVDOVIDataMapping::mapping_chroma_format_idc
uint8_t mapping_chroma_format_idc
Definition dovi_meta.h:155
AVDOVIDataMapping::nlq_pivots
uint16_t nlq_pivots[2]
Definition dovi_meta.h:163
AVDOVIDataMapping::curves
AVDOVIReshapingCurve curves[3]
Definition dovi_meta.h:156
AVDOVIDataMapping::nlq_method_idc
enum AVDOVINLQMethod nlq_method_idc
Definition dovi_meta.h:159
AVDOVIDataMapping::num_y_partitions
uint32_t num_y_partitions
Definition dovi_meta.h:161
AVDOVIDecoderConfigurationRecord
Definition dovi_meta.h:55
AVDOVIDecoderConfigurationRecord::dv_version_major
uint8_t dv_version_major
Definition dovi_meta.h:56
AVDOVIDecoderConfigurationRecord::dv_md_compression
uint8_t dv_md_compression
Definition dovi_meta.h:64
AVDOVIDecoderConfigurationRecord::rpu_present_flag
uint8_t rpu_present_flag
Definition dovi_meta.h:60
AVDOVIDecoderConfigurationRecord::dv_profile
uint8_t dv_profile
Definition dovi_meta.h:58
AVDOVIDecoderConfigurationRecord::dv_version_minor
uint8_t dv_version_minor
Definition dovi_meta.h:57
AVDOVIDecoderConfigurationRecord::el_present_flag
uint8_t el_present_flag
Definition dovi_meta.h:61
AVDOVIDecoderConfigurationRecord::dv_bl_signal_compatibility_id
uint8_t dv_bl_signal_compatibility_id
Definition dovi_meta.h:63
AVDOVIDecoderConfigurationRecord::bl_present_flag
uint8_t bl_present_flag
Definition dovi_meta.h:62
AVDOVIDecoderConfigurationRecord::dv_level
uint8_t dv_level
Definition dovi_meta.h:59
AVDOVIDmData
Dolby Vision metadata extension block.
Definition dovi_meta.h:310
AVDOVIDmData::l9
AVDOVIDmLevel9 l9
Definition dovi_meta.h:321
AVDOVIDmData::l3
AVDOVIDmLevel3 l3
Definition dovi_meta.h:315
AVDOVIDmData::level
uint8_t level
Definition dovi_meta.h:311
AVDOVIDmData::l8
AVDOVIDmLevel8 l8
Definition dovi_meta.h:320
AVDOVIDmData::l254
AVDOVIDmLevel254 l254
Definition dovi_meta.h:324
AVDOVIDmData::l6
AVDOVIDmLevel6 l6
Definition dovi_meta.h:318
AVDOVIDmData::l4
AVDOVIDmLevel4 l4
Definition dovi_meta.h:316
AVDOVIDmData::l1
AVDOVIDmLevel1 l1
Definition dovi_meta.h:313
AVDOVIDmData::l11
AVDOVIDmLevel11 l11
Definition dovi_meta.h:323
AVDOVIDmData::l5
AVDOVIDmLevel5 l5
Definition dovi_meta.h:317
AVDOVIDmData::l10
AVDOVIDmLevel10 l10
Definition dovi_meta.h:322
AVDOVIDmData::l255
AVDOVIDmLevel255 l255
Definition dovi_meta.h:325
AVDOVIDmData::l2
AVDOVIDmLevel2 l2
Definition dovi_meta.h:314
AVDOVIDmLevel10
Definition dovi_meta.h:269
AVDOVIDmLevel10::target_min_pq
uint16_t target_min_pq
Definition dovi_meta.h:273
AVDOVIDmLevel10::target_max_pq
uint16_t target_max_pq
Definition dovi_meta.h:272
AVDOVIDmLevel10::target_primary_index
uint8_t target_primary_index
Definition dovi_meta.h:274
AVDOVIDmLevel10::target_display_primaries
AVColorPrimariesDesc target_display_primaries
Definition dovi_meta.h:275
AVDOVIDmLevel10::target_display_index
uint8_t target_display_index
Definition dovi_meta.h:271
AVDOVIDmLevel11
Definition dovi_meta.h:278
AVDOVIDmLevel11::content_type
uint8_t content_type
Definition dovi_meta.h:279
AVDOVIDmLevel11::sharpness
uint8_t sharpness
Definition dovi_meta.h:282
AVDOVIDmLevel11::color
uint8_t color
Definition dovi_meta.h:287
AVDOVIDmLevel11::frame_rate_conversion
uint8_t frame_rate_conversion
Definition dovi_meta.h:285
AVDOVIDmLevel11::whitepoint
uint8_t whitepoint
Definition dovi_meta.h:280
AVDOVIDmLevel11::reference_mode_flag
uint8_t reference_mode_flag
Definition dovi_meta.h:281
AVDOVIDmLevel11::noise_reduction
uint8_t noise_reduction
Definition dovi_meta.h:283
AVDOVIDmLevel11::mpeg_noise_reduction
uint8_t mpeg_noise_reduction
Definition dovi_meta.h:284
AVDOVIDmLevel11::brightness
uint8_t brightness
Definition dovi_meta.h:286
AVDOVIDmLevel1
Definition dovi_meta.h:203
AVDOVIDmLevel1::avg_pq
uint16_t avg_pq
Definition dovi_meta.h:207
AVDOVIDmLevel1::min_pq
uint16_t min_pq
Definition dovi_meta.h:205
AVDOVIDmLevel1::max_pq
uint16_t max_pq
Definition dovi_meta.h:206
AVDOVIDmLevel254
Definition dovi_meta.h:290
AVDOVIDmLevel254::dm_version_index
uint8_t dm_version_index
Definition dovi_meta.h:293
AVDOVIDmLevel254::dm_mode
uint8_t dm_mode
Definition dovi_meta.h:292
AVDOVIDmLevel255
Definition dovi_meta.h:296
AVDOVIDmLevel255::dm_debug
uint8_t dm_debug[4]
Definition dovi_meta.h:300
AVDOVIDmLevel255::dm_run_version
uint8_t dm_run_version
Definition dovi_meta.h:299
AVDOVIDmLevel255::dm_run_mode
uint8_t dm_run_mode
Definition dovi_meta.h:298
AVDOVIDmLevel2
Definition dovi_meta.h:210
AVDOVIDmLevel2::ms_weight
int16_t ms_weight
Definition dovi_meta.h:218
AVDOVIDmLevel2::target_max_pq
uint16_t target_max_pq
Definition dovi_meta.h:212
AVDOVIDmLevel2::trim_slope
uint16_t trim_slope
Definition dovi_meta.h:213
AVDOVIDmLevel2::trim_chroma_weight
uint16_t trim_chroma_weight
Definition dovi_meta.h:216
AVDOVIDmLevel2::trim_saturation_gain
uint16_t trim_saturation_gain
Definition dovi_meta.h:217
AVDOVIDmLevel2::trim_offset
uint16_t trim_offset
Definition dovi_meta.h:214
AVDOVIDmLevel2::trim_power
uint16_t trim_power
Definition dovi_meta.h:215
AVDOVIDmLevel3
Definition dovi_meta.h:221
AVDOVIDmLevel3::max_pq_offset
uint16_t max_pq_offset
Definition dovi_meta.h:223
AVDOVIDmLevel3::avg_pq_offset
uint16_t avg_pq_offset
Definition dovi_meta.h:224
AVDOVIDmLevel3::min_pq_offset
uint16_t min_pq_offset
Definition dovi_meta.h:222
AVDOVIDmLevel4
Definition dovi_meta.h:227
AVDOVIDmLevel4::anchor_pq
uint16_t anchor_pq
Definition dovi_meta.h:228
AVDOVIDmLevel4::anchor_power
uint16_t anchor_power
Definition dovi_meta.h:229
AVDOVIDmLevel5
Definition dovi_meta.h:232
AVDOVIDmLevel5::bottom_offset
uint16_t bottom_offset
Definition dovi_meta.h:237
AVDOVIDmLevel5::top_offset
uint16_t top_offset
Definition dovi_meta.h:236
AVDOVIDmLevel5::left_offset
uint16_t left_offset
Definition dovi_meta.h:234
AVDOVIDmLevel5::right_offset
uint16_t right_offset
Definition dovi_meta.h:235
AVDOVIDmLevel6
Definition dovi_meta.h:240
AVDOVIDmLevel6::min_luminance
uint16_t min_luminance
Definition dovi_meta.h:243
AVDOVIDmLevel6::max_luminance
uint16_t max_luminance
Definition dovi_meta.h:242
AVDOVIDmLevel6::max_fall
uint16_t max_fall
Definition dovi_meta.h:245
AVDOVIDmLevel6::max_cll
uint16_t max_cll
Definition dovi_meta.h:244
AVDOVIDmLevel8
Definition dovi_meta.h:248
AVDOVIDmLevel8::trim_offset
uint16_t trim_offset
Definition dovi_meta.h:252
AVDOVIDmLevel8::target_display_index
uint8_t target_display_index
Definition dovi_meta.h:250
AVDOVIDmLevel8::target_mid_contrast
uint16_t target_mid_contrast
Definition dovi_meta.h:257
AVDOVIDmLevel8::saturation_vector_field
uint8_t saturation_vector_field[6]
Definition dovi_meta.h:259
AVDOVIDmLevel8::trim_power
uint16_t trim_power
Definition dovi_meta.h:253
AVDOVIDmLevel8::hue_vector_field
uint8_t hue_vector_field[6]
Definition dovi_meta.h:260
AVDOVIDmLevel8::trim_saturation_gain
uint16_t trim_saturation_gain
Definition dovi_meta.h:255
AVDOVIDmLevel8::trim_chroma_weight
uint16_t trim_chroma_weight
Definition dovi_meta.h:254
AVDOVIDmLevel8::ms_weight
uint16_t ms_weight
Definition dovi_meta.h:256
AVDOVIDmLevel8::clip_trim
uint16_t clip_trim
Definition dovi_meta.h:258
AVDOVIDmLevel8::trim_slope
uint16_t trim_slope
Definition dovi_meta.h:251
AVDOVIDmLevel9
Definition dovi_meta.h:263
AVDOVIDmLevel9::source_display_primaries
AVColorPrimariesDesc source_display_primaries
Definition dovi_meta.h:266
AVDOVIDmLevel9::source_primary_index
uint8_t source_primary_index
Definition dovi_meta.h:265
AVDOVIMetadata
Combined struct representing a combination of header, mapping and color metadata, for attaching to fr...
Definition dovi_meta.h:337
AVDOVIMetadata::ext_block_offset
size_t ext_block_offset
Definition dovi_meta.h:346
AVDOVIMetadata::mapping_offset
size_t mapping_offset
Definition dovi_meta.h:343
AVDOVIMetadata::color_offset
size_t color_offset
Definition dovi_meta.h:344
AVDOVIMetadata::num_ext_blocks
int num_ext_blocks
Definition dovi_meta.h:348
AVDOVIMetadata::header_offset
size_t header_offset
Offset in bytes from the beginning of this structure at which the respective structs start.
Definition dovi_meta.h:342
AVDOVIMetadata::ext_block_size
size_t ext_block_size
Definition dovi_meta.h:347
AVDOVINLQParams
Coefficients of the non-linear inverse quantization.
Definition dovi_meta.h:139
AVDOVINLQParams::linear_deadzone_slope
uint64_t linear_deadzone_slope
Definition dovi_meta.h:143
AVDOVINLQParams::linear_deadzone_threshold
uint64_t linear_deadzone_threshold
Definition dovi_meta.h:144
AVDOVINLQParams::nlq_offset
uint16_t nlq_offset
Definition dovi_meta.h:140
AVDOVINLQParams::vdr_in_max
uint64_t vdr_in_max
Definition dovi_meta.h:141
AVDOVIReshapingCurve
Definition dovi_meta.h:117
AVDOVIReshapingCurve::poly_order
uint8_t poly_order[AV_DOVI_MAX_PIECES]
Definition dovi_meta.h:122
AVDOVIReshapingCurve::num_pivots
uint8_t num_pivots
Definition dovi_meta.h:118
AVDOVIReshapingCurve::mapping_idc
enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES]
Definition dovi_meta.h:120
AVDOVIReshapingCurve::mmr_constant
int64_t mmr_constant[AV_DOVI_MAX_PIECES]
Definition dovi_meta.h:126
AVDOVIReshapingCurve::mmr_coef
int64_t mmr_coef[AV_DOVI_MAX_PIECES][3][7]
Definition dovi_meta.h:127
AVDOVIReshapingCurve::poly_coef
int64_t poly_coef[AV_DOVI_MAX_PIECES][3]
Definition dovi_meta.h:123
AVDOVIReshapingCurve::pivots
uint16_t pivots[AV_DOVI_MAX_PIECES+1]
Definition dovi_meta.h:119
AVDOVIReshapingCurve::mmr_order
uint8_t mmr_order[AV_DOVI_MAX_PIECES]
Definition dovi_meta.h:125
AVDOVIRpuDataHeader
Dolby Vision RPU data header.
Definition dovi_meta.h:87
AVDOVIRpuDataHeader::rpu_type
uint8_t rpu_type
Definition dovi_meta.h:88
AVDOVIRpuDataHeader::vdr_rpu_profile
uint8_t vdr_rpu_profile
Definition dovi_meta.h:90
AVDOVIRpuDataHeader::bl_bit_depth
uint8_t bl_bit_depth
Definition dovi_meta.h:97
AVDOVIRpuDataHeader::ext_mapping_idc_0_4
uint8_t ext_mapping_idc_0_4
Definition dovi_meta.h:103
AVDOVIRpuDataHeader::spatial_resampling_filter_flag
uint8_t spatial_resampling_filter_flag
Definition dovi_meta.h:100
AVDOVIRpuDataHeader::vdr_bit_depth
uint8_t vdr_bit_depth
Definition dovi_meta.h:99
AVDOVIRpuDataHeader::el_spatial_resampling_filter_flag
uint8_t el_spatial_resampling_filter_flag
Definition dovi_meta.h:101
AVDOVIRpuDataHeader::bl_video_full_range_flag
uint8_t bl_video_full_range_flag
Definition dovi_meta.h:96
AVDOVIRpuDataHeader::rpu_format
uint16_t rpu_format
Definition dovi_meta.h:89
AVDOVIRpuDataHeader::disable_residual_flag
uint8_t disable_residual_flag
Definition dovi_meta.h:102
AVDOVIRpuDataHeader::vdr_rpu_normalized_idc
uint8_t vdr_rpu_normalized_idc
Definition dovi_meta.h:95
AVDOVIRpuDataHeader::coef_log2_denom
uint8_t coef_log2_denom
Definition dovi_meta.h:94
AVDOVIRpuDataHeader::chroma_resampling_explicit_filter_flag
uint8_t chroma_resampling_explicit_filter_flag
Definition dovi_meta.h:92
AVDOVIRpuDataHeader::el_bit_depth
uint8_t el_bit_depth
Definition dovi_meta.h:98
AVDOVIRpuDataHeader::coef_data_type
uint8_t coef_data_type
Definition dovi_meta.h:93
AVDOVIRpuDataHeader::ext_mapping_idc_5_7
uint8_t ext_mapping_idc_5_7
Definition dovi_meta.h:104
AVDOVIRpuDataHeader::vdr_rpu_level
uint8_t vdr_rpu_level
Definition dovi_meta.h:91
AVRational
Rational number (pair of numerator and denominator).
Definition rational.h:58