From 37319ab64452a605c4178711227383f0df31473e Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 13 Dec 2013 22:25:38 +0100 Subject: video: change --video-zoom behavior Use the scaled video size (i.e. as shown on the window) as reference for zoom. This is the easiest way to fix different width/height scale factors as they happen when zooming video with a pixel aspect ratio other than 1:1. Also fix the unscaled mode, so that it 1. doesn't scale even with --video-zoom, and 2. doesn't scale by small amounts when the video is cropped by making the window smaller than the video. --- video/out/vo.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'video') diff --git a/video/out/vo.c b/video/out/vo.c index 578fc18fd0..0eb04a6d1f 100644 --- a/video/out/vo.c +++ b/video/out/vo.c @@ -508,10 +508,12 @@ static void src_dst_split_scaling(int src_size, int dst_size, int *dst_start, int *dst_end, int *osd_margin_a, int *osd_margin_b) { - if (unscaled) + if (unscaled) { scaled_src_size = src_size; + zoom = 0.0; + } - scaled_src_size += zoom * src_size; + scaled_src_size += zoom * scaled_src_size; align = (align + 1) / 2; *src_start = 0; @@ -537,7 +539,7 @@ static void src_dst_split_scaling(int src_size, int dst_size, *dst_end = dst_size; } - if (unscaled && zoom == 1.0) { + if (unscaled) { // Force unscaled by reducing the range for src or dst int src_s = *src_end - *src_start; int dst_s = *dst_end - *dst_start; -- cgit v1.2.3