Signed-off-by: James Almer <jamr...@gmail.com> --- libavformat/matroskadec.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 017a533..7b070ff 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1841,14 +1841,11 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { // Use similar rationals as other standards. const int chroma_den = 50000; const int luma_den = 10000; - AVMasteringDisplayMetadata *metadata = - (AVMasteringDisplayMetadata*) av_stream_new_side_data( - st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, - sizeof(AVMasteringDisplayMetadata)); + int ret; + AVMasteringDisplayMetadata *metadata = av_mastering_display_metadata_alloc(); if (!metadata) { return AVERROR(ENOMEM); } - memset(metadata, 0, sizeof(AVMasteringDisplayMetadata)); if (has_mastering_primaries) { metadata->display_primaries[0][0] = av_make_q( round(mastering_meta->r_x * chroma_den), chroma_den); @@ -1875,6 +1872,13 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { round(mastering_meta->min_luminance * luma_den), luma_den); metadata->has_luminance = 1; } + + ret = av_stream_add_side_data(st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + (uint8_t *)metadata, sizeof(AVMasteringDisplayMetadata)); + if (ret < 0) { + av_freep(&metadata); + return ret; + } } return 0; } -- 2.10.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel