lavd/xv: take aspect ratio into account.

This commit is contained in:
Nicolas George 2013-11-25 17:26:07 +01:00
parent ea6825fd09
commit c37bbe54f4

View File

@ -130,8 +130,15 @@ static int xv_write_header(AVFormatContext *s)
xv->image_width = encctx->width; xv->image_width = encctx->width;
xv->image_height = encctx->height; xv->image_height = encctx->height;
if (!xv->window_width && !xv->window_height) { if (!xv->window_width && !xv->window_height) {
AVRational sar = encctx->sample_aspect_ratio;
xv->window_width = encctx->width; xv->window_width = encctx->width;
xv->window_height = encctx->height; 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 = XCreateSimpleWindow(xv->display, DefaultRootWindow(xv->display),
xv->window_x, xv->window_y, xv->window_x, xv->window_y,