On 10/28/2016 12:03 AM, James Almer wrote: > On 10/22/2016 5:33 PM, James Almer wrote: >> This avoids potential rounding errors and guarantees the source aspect >> ratio is preserved. >> Keep writing pixel values when Stereo 3D Mode is enabled and for WebM, >> as the format doesn't support anything else. >> >> This fixes ticket #5743, implementing the suggestion from ticket #5903. >> >> Signed-off-by: James Almer <jamr...@gmail.com> >> --- >> libavformat/matroskaenc.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) >> >> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c >> index 03d5326..5790fe1 100644 >> --- a/libavformat/matroskaenc.c >> +++ b/libavformat/matroskaenc.c >> @@ -1193,8 +1193,19 @@ static int mkv_write_track(AVFormatContext *s, >> MatroskaMuxContext *mkv, >> return AVERROR(EINVAL); >> } >> if (d_width != par->width || display_width_div != 1 || >> display_height_div != 1) { >> - put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , d_width / >> display_width_div); >> - put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, >> par->height / display_height_div); >> + if (mkv->mode == MODE_WEBM || display_width_div != 1 || >> display_height_div != 1) { >> + put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , >> d_width / display_width_div); >> + put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, >> par->height / display_height_div); >> + } else { >> + AVRational display_aspect_ratio; >> + av_reduce(&display_aspect_ratio.num, >> &display_aspect_ratio.den, >> + par->width * >> (int64_t)st->sample_aspect_ratio.num, >> + par->height * >> (int64_t)st->sample_aspect_ratio.den, >> + 1024 * 1024); >> + put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH, >> display_aspect_ratio.num); >> + put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, >> display_aspect_ratio.den); >> + put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYUNIT, >> MATROSKA_VIDEO_DISPLAYUNIT_DAR); >> + } >> } >> } else if (display_width_div != 1 || display_height_div != 1) { >> put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , par->width / >> display_width_div); > > Ping. >
Applied _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel