Ancillary that can be attached to any vlc_frame_t or picture_t.
More...
|
| #define | VLC_ANCILLARY_ID(a, b, c, d) VLC_FOURCC(a,b,c,d) |
| |
| #define | VLC_ANCILLARY_ID_DOVI VLC_FOURCC('D','o','V','i') |
| |
| #define | VLC_ANCILLARY_ID_HDR10PLUS VLC_FOURCC('H','D','R','+') |
| | HDR10+ Dynamic metadata (based on ATSC A/341 Amendment 2094-40) More...
|
| |
| #define | VLC_ANCILLARY_ID_ICC VLC_FOURCC('i','C','C','P') |
| | Embedded ICC profiles. More...
|
| |
Ancillary that can be attached to any vlc_frame_t or picture_t.
Ancillaries can be created from:
- packetized demuxer modules,
- packetizer modules,
- decoder modules.
- Warning
- Ancillaries should not be attached from a non packetized demuxer module since the attachment to the vlc_frame will be lost by the packetizer module that will be automatically inserted.
Ancillaries are automatically forwarded from a vlc_frame_t to an other vlc_frame_t and from a picture_t to an other picture_t. This allow to keep ancillaries untouched when audio filters or video filters are used (these filters don't have to know about the ancillary).
Ancillary readers can be either:
- A decoder module,
- An audio output,
- A video output,
- A video or audio filter.
◆ VLC_ANCILLARY_ID
| #define VLC_ANCILLARY_ID |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d |
|
) |
| VLC_FOURCC(a,b,c,d) |
◆ VLC_ANCILLARY_ID_DOVI
| #define VLC_ANCILLARY_ID_DOVI VLC_FOURCC('D','o','V','i') |
◆ VLC_ANCILLARY_ID_HDR10PLUS
| #define VLC_ANCILLARY_ID_HDR10PLUS VLC_FOURCC('H','D','R','+') |
HDR10+ Dynamic metadata (based on ATSC A/341 Amendment 2094-40)
This is similar to SMPTE ST2094-40:2016, but omits the mastering display and target display actual peak luminance LUTs, the rectangular boundaries and ellipse coefficients, and support for multiple processing windows, as these are intentionally left unused in this version of the specification.
◆ VLC_ANCILLARY_ID_ICC
| #define VLC_ANCILLARY_ID_ICC VLC_FOURCC('i','C','C','P') |
◆ vlc_ancillary_free_cb
| typedef void(* vlc_ancillary_free_cb) (void *data) |
Callback to free an ancillary data.
◆ vlc_ancillary_id
ID of an ancillary.
Each ancillary user can create its own unique ID via VLC_ANCILLARY_ID.
◆ vlc_icc_profile_t
◆ vlc_video_dovi_metadata_t
◆ vlc_video_hdr_dynamic_metadata_t
◆ vlc_dovi_nlq_method_t
| Enumerator |
|---|
| VLC_DOVI_NLQ_NONE | |
| VLC_DOVI_NLQ_LINEAR_DZ | |
◆ vlc_dovi_reshape_method_t
Dolby Vision metadata description.
| Enumerator |
|---|
| VLC_DOVI_RESHAPE_POLYNOMIAL | |
| VLC_DOVI_RESHAPE_MMR | |
◆ vlc_ancillary_Create()
◆ vlc_ancillary_CreateWithFreeCb()
◆ vlc_ancillary_GetData()
| void * vlc_ancillary_GetData |
( |
const struct vlc_ancillary * |
ancillary | ) |
|
◆ vlc_ancillary_Hold()
◆ vlc_ancillary_Release()
◆ application_version
| uint8_t vlc_video_hdr_dynamic_metadata_t::application_version |
◆ average_maxrgb
| float vlc_video_hdr_dynamic_metadata_t::average_maxrgb |
◆ bezier_curve_anchors
| float vlc_video_hdr_dynamic_metadata_t::bezier_curve_anchors[15] |
◆ bl_bit_depth
| uint8_t vlc_video_dovi_metadata_t::bl_bit_depth |
◆ coef_log2_denom
| uint8_t vlc_video_dovi_metadata_t::coef_log2_denom |
◆ country_code
| uint8_t vlc_video_hdr_dynamic_metadata_t::country_code |
◆ curves
◆ data
| uint8_t vlc_icc_profile_t::data[] |
◆ dz_slope
| uint64_t vlc_video_dovi_metadata_t::vlc_dovi_nlq_t::dz_slope |
◆ dz_threshold
| uint64_t vlc_video_dovi_metadata_t::vlc_dovi_nlq_t::dz_threshold |
◆ el_bit_depth
| uint8_t vlc_video_dovi_metadata_t::el_bit_depth |
◆ fraction_bright_pixels
| float vlc_video_hdr_dynamic_metadata_t::fraction_bright_pixels |
◆ hdr_in_max
| uint64_t vlc_video_dovi_metadata_t::vlc_dovi_nlq_t::hdr_in_max |
| struct { ... } vlc_video_hdr_dynamic_metadata_t::histogram[15] |
◆ knee_point_x
| float vlc_video_hdr_dynamic_metadata_t::knee_point_x |
◆ knee_point_y
| float vlc_video_hdr_dynamic_metadata_t::knee_point_y |
◆ linear_matrix
| float vlc_video_dovi_metadata_t::linear_matrix[9] |
◆ mapping_idc
◆ maxscl
| float vlc_video_hdr_dynamic_metadata_t::maxscl[3] |
◆ mmr_coef
| int64_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::mmr_coef[8][3][7] |
◆ mmr_constant
| int64_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::mmr_constant[8] |
◆ mmr_order
| uint8_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::mmr_order[8] |
◆ nlq
◆ nlq_method_idc
◆ nonlinear_matrix
| float vlc_video_dovi_metadata_t::nonlinear_matrix[9] |
◆ nonlinear_offset
| float vlc_video_dovi_metadata_t::nonlinear_offset[3] |
◆ num_bezier_anchors
| uint8_t vlc_video_hdr_dynamic_metadata_t::num_bezier_anchors |
◆ num_histogram
| uint8_t vlc_video_hdr_dynamic_metadata_t::num_histogram |
◆ num_pivots
| uint8_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::num_pivots |
◆ offset
| uint16_t vlc_video_dovi_metadata_t::vlc_dovi_nlq_t::offset |
◆ offset_depth
| uint8_t vlc_video_dovi_metadata_t::vlc_dovi_nlq_t::offset_depth |
◆ [1/2]
| uint8_t { ... } ::percentage |
◆ percentage [2/2]
| uint8_t vlc_video_hdr_dynamic_metadata_t::percentage |
◆ percentile [1/2]
| float vlc_video_hdr_dynamic_metadata_t::percentile |
◆ [2/2]
| float { ... } ::percentile |
◆ pivots
| uint16_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::pivots[9] |
◆ poly_coef
| int64_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::poly_coef[8][3] |
◆ poly_order
| uint8_t vlc_video_dovi_metadata_t::vlc_dovi_reshape_t::poly_order[8] |
◆ size
| size_t vlc_icc_profile_t::size |
◆ source_max_pq
| uint16_t vlc_video_dovi_metadata_t::source_max_pq |
◆ source_min_pq
| uint16_t vlc_video_dovi_metadata_t::source_min_pq |
◆ targeted_luminance
| float vlc_video_hdr_dynamic_metadata_t::targeted_luminance |
◆ tone_mapping_flag
| uint8_t vlc_video_hdr_dynamic_metadata_t::tone_mapping_flag |