[FFmpeg-devel] [PATCH] libavfilter/vf_scale_npp: fix yuva420p -> yuv420p conversion

Jorge Estrada jestrada.list at gmail.com
Sun Jul 20 01:31:39 EEST 2025


When converting from yuva420p to yuv420p the resize loop would try to access an output plane that did not exist.
Added a check for the output planes existence.

Example cmd: ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i example.mp4 -vf scale_npp=format=yuva420p,scale_npp=format=yuv420p -c:v h264_nvenc -f null -

Signed-off-by: Jorge Estrada <jestrada.list at gmail.com>
---
 libavfilter/vf_scale_npp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_scale_npp.c b/libavfilter/vf_scale_npp.c
index 1b1b7b9fc9..5387bf9c7a 100644
--- a/libavfilter/vf_scale_npp.c
+++ b/libavfilter/vf_scale_npp.c
@@ -721,7 +721,7 @@ static int nppscale_resize(AVFilterContext *ctx, NPPScaleStageContext *stage,
     NppStatus err;
     int i;
 
-    for (i = 0; i < FF_ARRAY_ELEMS(stage->planes_in) && i < FF_ARRAY_ELEMS(in->data) && in->data[i]; i++) {
+    for (i = 0; i < FF_ARRAY_ELEMS(stage->planes_in) && i < FF_ARRAY_ELEMS(in->data) && in->data[i] && out->data[i]; i++) {
         int iw = stage->planes_in[i].width;
         int ih = stage->planes_in[i].height;
         int ow = stage->planes_out[i].width;
-- 
2.34.1



More information about the ffmpeg-devel mailing list