aboutsummaryrefslogtreecommitdiffstats
path: root/libavdevice
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2013-11-25 17:26:07 +0100
committerNicolas George <george@nsup.org>2014-03-08 12:29:32 +0100
commitc37bbe54f400edc8cb0070138328048943e90b1a (patch)
treeb7c20bad3351a84d075a43801459eea9266e01eb /libavdevice
parentea6825fd090ef3f8edbce506d2fbf6e187f585fa (diff)
downloadffmpeg-c37bbe54f400edc8cb0070138328048943e90b1a.tar.gz
lavd/xv: take aspect ratio into account.
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/xv.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavdevice/xv.c b/libavdevice/xv.c
index ab08e3e0f7..2948e6d9b7 100644
--- a/libavdevice/xv.c
+++ b/libavdevice/xv.c
@@ -130,8 +130,15 @@ static int xv_write_header(AVFormatContext *s)
xv->image_width = encctx->width;
xv->image_height = encctx->height;
if (!xv->window_width && !xv->window_height) {
+ AVRational sar = encctx->sample_aspect_ratio;
xv->window_width = encctx->width;
xv->window_height = encctx->height;
+ if (sar.num) {
+ if (sar.num > sar.den)
+ xv->window_width = av_rescale(xv->window_width, sar.num, sar.den);
+ if (sar.num < sar.den)
+ xv->window_height = av_rescale(xv->window_height, sar.den, sar.num);
+ }
}
xv->window = XCreateSimpleWindow(xv->display, DefaultRootWindow(xv->display),
xv->window_x, xv->window_y,