diff options
-rw-r--r-- | DOCS/man/en/options.rst | 11 | ||||
-rw-r--r-- | video/out/vo.c | 8 |
2 files changed, 13 insertions, 6 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index 9739a54d5b..584567bc50 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -2667,6 +2667,10 @@ OPTIONS ``--video-zoom`` option is set to a value other than ``1``, scaling is enabled, but the video isn't automatically scaled to the window size.) + The video and monitor aspects aspect will be ignored. Aspect correction + would require to scale the video in the X or Y direction, but this option + disables scaling, disabling all aspect correction. + Note that the scaler algorithm may still be used, even if the video isn't scaled. For example, this can influence chroma conversion. @@ -2674,10 +2678,11 @@ OPTIONS ``--video-zoom=<value>`` Adjust the video display scale factor by the given value. The unit is in - fractions of original video size. + fractions of the (scaled) window video size. - For example, given a 1280x720 video, ``--video-zoom=-0.1`` would make the - video by 128 pixels smaller in X direction, and 72 pixels in Y direction. + For example, given a 1280x720 video shown in a 1280x720 window, + ``--video-zoom=-0.1`` would make the video by 128 pixels smaller in + X direction, and 72 pixels in Y direction. This option is disabled if the ``--no-keepaspect`` option is used. 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; |