diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 17861e60be..3c378bca2c 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -1858,6 +1858,10 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c const AVDictionaryEntry *e = NULL; int nb_pix_fmts = 0; int i, j; + AVBufferSrcParameters *par = av_buffersrc_parameters_alloc(); + + if (!par) + return AVERROR(ENOMEM); for (i = 0; i < renderer_info.num_texture_formats; i++) { for (j = 0; j < FF_ARRAY_ELEMS(sdl_texture_format_map) - 1; j++) { @@ -1893,6 +1897,10 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c "ffplay_buffer", buffersrc_args, NULL, graph)) < 0) goto fail; + par->hw_frames_ctx = frame->hw_frames_ctx; + ret = av_buffersrc_parameters_set(filt_src, par); + if (ret < 0) + goto fail; ret = avfilter_graph_create_filter(&filt_out, avfilter_get_by_name("buffersink"), @@ -1959,6 +1967,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c is->out_video_filter = filt_out; fail: + av_freep(&par); return ret; }