summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-09-20 15:38:19 +0200
committerwm4 <wm4@nowhere>2016-09-20 15:44:23 +0200
commit23639e5b0ea5d4af50a2d5aedef11cd240e2390c (patch)
tree994ec33c1c686c08160be493f97b98ebee3f3fa0 /video
parente13eb3fede680fdadb76efce957806654cda0f23 (diff)
downloadmpv-23639e5b0ea5d4af50a2d5aedef11cd240e2390c.tar.bz2
mpv-23639e5b0ea5d4af50a2d5aedef11cd240e2390c.tar.xz
video: handle override video parameters in a better place
This really shouldn't be in vd_lavc.c - move it to dec_video.c, where it also applies aspect overrides. This makes all overrides in one place. The previous commit contains some required changes for resetting the image parameters change detection (i.e. it's not done only on video aspect override changes).
Diffstat (limited to 'video')
-rw-r--r--video/decode/dec_video.c7
-rw-r--r--video/decode/vd_lavc.c8
2 files changed, 7 insertions, 8 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c
index 51f959ff6d..02fa334e2b 100644
--- a/video/decode/dec_video.c
+++ b/video/decode/dec_video.c
@@ -236,6 +236,13 @@ static void fix_image_params(struct dec_video *d_video,
if (p.p_w <= 0 || p.p_h <= 0)
p.p_w = p.p_h = 1;
+ if (opts->video_rotate < 0) {
+ p.rotate = 0;
+ } else {
+ p.rotate = (p.rotate + opts->video_rotate) % 360;
+ }
+ p.stereo_out = opts->video_stereo_mode;
+
// Detect colorspace from resolution.
mp_image_params_guess_csp(&p);
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index d8a8b320b0..6328f5fe49 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -592,7 +592,6 @@ static void update_image_params(struct dec_video *vd, AVFrame *frame,
struct mp_image_params *out_params)
{
vd_ffmpeg_ctx *ctx = vd->priv;
- struct MPOpts *opts = ctx->opts;
#if HAVE_AVUTIL_MASTERING_METADATA
// Get the reference peak (for HDR) if available. This is cached into ctx
@@ -632,13 +631,6 @@ static void update_image_params(struct dec_video *vd, AVFrame *frame,
.rotate = vd->codec->rotate,
.stereo_in = vd->codec->stereo_mode,
};
-
- if (opts->video_rotate < 0) {
- out_params->rotate = 0;
- } else {
- out_params->rotate = (out_params->rotate + opts->video_rotate) % 360;
- }
- out_params->stereo_out = opts->video_stereo_mode;
}
static enum AVPixelFormat get_format_hwdec(struct AVCodecContext *avctx,