avformat/matroskadec: export Content Light Level metadata

Based on a patch by Hendrik Leppkes

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2017-04-25 15:04:00 -03:00
parent d61f93bf04
commit 095147ae06
1 changed files with 15 additions and 0 deletions

View File

@ -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,
(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) {
// Use similar rationals as other standards.