From c9204fe3a521654b914c91893faa709158db77ba Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 14 Jan 2016 09:46:03 +0100 Subject: video: fix interactively changing aspect ratio The aspect ratio calculations are cached (mainly so that aspect ratio related messages are not logged on every frame). The cache is not clared anymore when video filters are reconfigured, but changing the video-aspect-ratio property relied on it. Make it explicit. Fixes #2714. --- player/command.c | 2 +- video/decode/dec_video.c | 5 +++++ video/decode/dec_video.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/player/command.c b/player/command.c index 1bcc985785..453ab47b92 100644 --- a/player/command.c +++ b/player/command.c @@ -2771,7 +2771,7 @@ static int mp_property_aspect(void *ctx, struct m_property *prop, case M_PROPERTY_SET: { mpctx->opts->movie_aspect = *(float *)arg; if (mpctx->d_video) { - reinit_video_filters(mpctx); + video_reset_aspect(mpctx->d_video); mp_force_video_refresh(mpctx); } return M_PROPERTY_OK; diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c index 9cd3ecf962..00af2e4c7b 100644 --- a/video/decode/dec_video.c +++ b/video/decode/dec_video.c @@ -359,3 +359,8 @@ struct mp_image *video_decode(struct dec_video *d_video, d_video->decoded_pts = pts; return mpi; } + +void video_reset_aspect(struct dec_video *d_video) +{ + d_video->last_format = (struct mp_image_params){0}; +} diff --git a/video/decode/dec_video.h b/video/decode/dec_video.h index a093370213..dc2f62f4a4 100644 --- a/video/decode/dec_video.h +++ b/video/decode/dec_video.h @@ -87,5 +87,6 @@ struct mp_image *video_decode(struct dec_video *d_video, int video_vd_control(struct dec_video *d_video, int cmd, void *arg); void video_reset_decoding(struct dec_video *d_video); +void video_reset_aspect(struct dec_video *d_video); #endif /* MPLAYER_DEC_VIDEO_H */ -- cgit v1.2.3