diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
index 159832a120cfe6a48561c3443a35c5e0cb8e6693..4b1fb924f68cbf1aedc2f1050b905d39c9c9af7f 100644
--- a/libavdevice/lavfi.c
+++ b/libavdevice/lavfi.c
@@ -243,13 +243,12 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx)
                                                   AV_SAMPLE_FMT_S32,
                                                   AV_SAMPLE_FMT_FLT,
                                                   AV_SAMPLE_FMT_DBL, -1 };
-            AVABufferSinkParams *abuffersink_params = av_abuffersink_params_alloc();
-            abuffersink_params->sample_fmts = sample_fmts;
 
             ret = avfilter_graph_create_filter(&sink, abuffersink,
                                                inout->name, NULL,
-                                               abuffersink_params, lavfi->graph);
-            av_free(abuffersink_params);
+                                               NULL, lavfi->graph);
+
+            av_opt_set_int_list(sink, "sample_fmts", sample_fmts,  AV_SAMPLE_FMT_NONE, AV_OPT_SEARCH_CHILDREN);
             if (ret < 0)
                 goto end;
         }