summaryrefslogtreecommitdiffstats
path: root/video/decode/vd.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/decode/vd.c')
-rw-r--r--video/decode/vd.c33
1 files changed, 9 insertions, 24 deletions
diff --git a/video/decode/vd.c b/video/decode/vd.c
index 9545226fb9..ad2af3a2cd 100644
--- a/video/decode/vd.c
+++ b/video/decode/vd.c
@@ -120,30 +120,16 @@ int mpcodecs_reconfig_vo(sh_video_t *sh, const struct mp_image_params *params)
else if (sh->stream_aspect != 0.0)
sh->aspect = sh->stream_aspect;
- int d_w = p.w;
- int d_h = p.h;
-
- if (sh->aspect > 0.01) {
- int new_w = d_h * sh->aspect;
- int new_h = d_h;
- // we don't like horizontal downscale
- if (new_w < d_w) {
- new_w = d_w;
- new_h = d_w / sh->aspect;
- }
- if (abs(d_w - new_w) >= 4 || abs(d_h - new_h) >= 4) {
- d_w = new_w;
- d_h = new_h;
- mp_tmsg(MSGT_CPLAYER, MSGL_V, "Aspect ratio is %.2f:1 - "
- "scaling to correct movie aspect.\n", sh->aspect);
- }
-
+ vf_set_dar(&p.d_w, &p.d_h, p.w, p.h, sh->aspect);
+ if (abs(p.d_w - p.w) >= 4 || abs(p.d_h - p.h) >= 4) {
+ mp_tmsg(MSGT_CPLAYER, MSGL_V, "Aspect ratio is %.2f:1 - "
+ "scaling to correct movie aspect.\n", sh->aspect);
mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ASPECT=%1.4f\n", sh->aspect);
+ } else {
+ p.d_w = p.w;
+ p.d_h = p.h;
}
- p.d_w = d_w;
- p.d_h = d_h;
-
// Apply user overrides
if (opts->requested_colorspace != MP_CSP_AUTO)
p.colorspace = opts->requested_colorspace;
@@ -158,9 +144,8 @@ int mpcodecs_reconfig_vo(sh_video_t *sh, const struct mp_image_params *params)
vocfg_flags = (flip ? VOFLAG_FLIPPING : 0);
// Time to config libvo!
- mp_msg(MSGT_CPLAYER, MSGL_V,
- "VO Config (%dx%d->%dx%d,flags=%d,0x%X)\n", sh->disp_w,
- sh->disp_h, d_w, d_h, vocfg_flags, p.imgfmt);
+ mp_msg(MSGT_CPLAYER, MSGL_V, "VO Config (%dx%d->%dx%d,flags=%d,0x%X)\n",
+ p.w, p.h, p.d_w, p.d_h, vocfg_flags, p.imgfmt);
if (vf_reconfig_wrapper(vf, &p, vocfg_flags) < 0) {
mp_tmsg(MSGT_CPLAYER, MSGL_WARN, "FATAL: Cannot initialize video driver.\n");