diff --git a/libavfilter/vf_scale_npp.c b/libavfilter/vf_scale_npp.c index 0e636a997d..be1f81f8ad 100644 --- a/libavfilter/vf_scale_npp.c +++ b/libavfilter/vf_scale_npp.c @@ -336,9 +336,11 @@ static int init_processing_chain(AVFilterContext *ctx, int in_width, int in_heig last_stage = i; } - if (last_stage < 0) - return 0; - ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->stages[last_stage].frames_ctx); + if (last_stage >= 0) + ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->stages[last_stage].frames_ctx); + else + ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(ctx->inputs[0]->hw_frames_ctx); + if (!ctx->outputs[0]->hw_frames_ctx) return AVERROR(ENOMEM);