|
|
@ -1869,6 +1869,21 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { |
|
|
|
avcodec_chroma_pos_to_enum((color->chroma_siting_horz - 1) << 7, |
|
|
|
avcodec_chroma_pos_to_enum((color->chroma_siting_horz - 1) << 7, |
|
|
|
(color->chroma_siting_vert - 1) << 7); |
|
|
|
(color->chroma_siting_vert - 1) << 7); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (color->max_cll && color->max_fall) { |
|
|
|
|
|
|
|
size_t size = 0; |
|
|
|
|
|
|
|
int ret; |
|
|
|
|
|
|
|
AVContentLightMetadata *metadata = av_content_light_metadata_alloc(&size); |
|
|
|
|
|
|
|
if (!metadata) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
ret = av_stream_add_side_data(st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, |
|
|
|
|
|
|
|
(uint8_t *)metadata, size); |
|
|
|
|
|
|
|
if (ret < 0) { |
|
|
|
|
|
|
|
av_freep(&metadata); |
|
|
|
|
|
|
|
return ret; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
metadata->MaxCLL = color->max_cll; |
|
|
|
|
|
|
|
metadata->MaxFALL = color->max_fall; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (has_mastering_primaries || has_mastering_luminance) { |
|
|
|
if (has_mastering_primaries || has_mastering_luminance) { |
|
|
|
// Use similar rationals as other standards.
|
|
|
|
// Use similar rationals as other standards.
|
|
|
|