[vlc-commits] vpx: decoder: Set i_sar_num and i_sar_den
Andrew Clayton
git at videolan.org
Tue Jan 24 17:13:57 CET 2017
vlc | branch: master | Andrew Clayton <andrew at digital-domain.net> | Tue Jan 24 03:28:12 2017 +0000| [7d69fdb7d87f1c49352a50ee2374ae13cfeeb184] | committer: Tristan Matthews
vpx: decoder: Set i_sar_num and i_sar_den
Since commit 0bceaf96 ("vpx: increase decoder capability (refs #16836)")
made libvpx the default this has broken the default playback of VP8/9
video where the sample aspect ratio (SAR) is not equal to one. e.g
Given a video like
vp8, yuv420p, 720x576, SAR 64:45 DAR 16:9, 25 fps
which is meant to be played back at 1024x576, will playback at 720x576
due to not passing the SAR value through.
I have many such videos as encoded from PAL DVD's. Another example is
vp8, yuv420p, 720x576, SAR 16:15 DAR 4:3, 25 fps
this should actually playback at 768x576.
So this commit simply passes the SAR values through. Without this
passing --codec=ffmpeg or --codec=avcodec also restores previous
behaviour.
Signed-off-by: Andrew Clayton <andrew at digital-domain.net>
Signed-off-by: Tristan Matthews <tmatth at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7d69fdb7d87f1c49352a50ee2374ae13cfeeb184
---
modules/codec/vpx.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c
index fa494d8..86cb262 100644
--- a/modules/codec/vpx.c
+++ b/modules/codec/vpx.c
@@ -328,6 +328,11 @@ static int OpenDecoder(vlc_object_t *p_this)
dec->fmt_out.video.i_width = dec->fmt_in.video.i_width;
dec->fmt_out.video.i_height = dec->fmt_in.video.i_height;
+ if (dec->fmt_in.video.i_sar_num > 0 && dec->fmt_in.video.i_sar_den > 0) {
+ dec->fmt_out.video.i_sar_num = dec->fmt_in.video.i_sar_num;
+ dec->fmt_out.video.i_sar_den = dec->fmt_in.video.i_sar_den;
+ }
+
return VLC_SUCCESS;
}
More information about the vlc-commits
mailing list