summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/options.rst11
-rw-r--r--video/out/vo.c8
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;