On Fri, 2 Dec 2016 16:09:25 -0300 James Almer <jamr...@gmail.com> wrote:
> 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)); ok... > 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; > } Uh what? Am I missing something, or do you rely on sizeof(AVMasteringDisplayMetadata) being part of the ABI? Because the alloc function only exists because the struct size is not part of the ABI. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel