From 826ce82cad315f7a48f9c971d3a5fa005a9eab46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Fri, 1 Sep 2023 12:26:38 +0200 Subject: vd_lavc: disable cropping by decoder Cropping by decoder has limitations with regards to aligment and hwdec. It doesn't work to offset top left corner with hwdec and even with software decoding it don't crop fully when resulting data would not be aligned. VO cropping is way more robust. --- video/decode/vd_lavc.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'video') diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c index 0c87005ddd..54a9975915 100644 --- a/video/decode/vd_lavc.c +++ b/video/decode/vd_lavc.c @@ -80,6 +80,7 @@ struct vd_lavc_params { int threads; bool bitexact; bool old_x264; + bool apply_cropping; bool check_hw_profile; int software_fallback; char **avopts; @@ -120,6 +121,7 @@ const struct m_sub_options vd_lavc_conf = { {"vd-lavc-o", OPT_KEYVALUELIST(avopts)}, {"vd-lavc-dr", OPT_CHOICE(dr, {"auto", -1}, {"no", 0}, {"yes", 1})}, + {"vd-apply-cropping", OPT_BOOL(apply_cropping)}, {"hwdec", OPT_STRINGLIST(hwdec_api), .help = hwdec_opt_help, .flags = M_OPT_OPTIONAL_PARAM | UPDATE_HWDEC}, @@ -772,6 +774,7 @@ static void init_avctx(struct mp_filter *vd) avctx->skip_loop_filter = lavc_param->skip_loop_filter; avctx->skip_idct = lavc_param->skip_idct; avctx->skip_frame = lavc_param->skip_frame; + avctx->apply_cropping = lavc_param->apply_cropping; if (lavc_codec->id == AV_CODEC_ID_H264 && lavc_param->old_x264) av_opt_set(avctx, "x264_build", "150", AV_OPT_SEARCH_CHILDREN); -- cgit v1.2.3