diff options
author | Anton Khirnov <anton@khirnov.net> | 2024-09-25 11:58:57 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2024-09-28 17:04:33 +0200 |
commit | d3f76dbca122360215ded32c3d0e974216511d3e (patch) | |
tree | de3aa6c6929e4f362873666ae9ede0f2b40f546e | |
parent | 577708a70ad873badcf4e7e8aa070fc1a95042fd (diff) | |
download | ffmpeg-d3f76dbca122360215ded32c3d0e974216511d3e.tar.gz |
lavd/lavfi: stop using avfilter_graph_create_filter() incorrectly
See previous commits for details.
-rw-r--r-- | libavdevice/lavfi.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c index ce10d61f8a..17657a0638 100644 --- a/libavdevice/lavfi.c +++ b/libavdevice/lavfi.c @@ -249,18 +249,24 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx) AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_DBL, }; - ret = avfilter_graph_create_filter(&sink, abuffersink, - inout->name, NULL, - NULL, lavfi->graph); - if (ret >= 0) - ret = av_opt_set_bin(sink, "sample_fmts", (const uint8_t*)sample_fmts, - sizeof(sample_fmts), AV_OPT_SEARCH_CHILDREN); + sink = avfilter_graph_alloc_filter(lavfi->graph, abuffersink, inout->name); + if (!sink) { + ret = AVERROR(ENOMEM); + goto end; + } + + ret = av_opt_set_bin(sink, "sample_fmts", (const uint8_t*)sample_fmts, + sizeof(sample_fmts), AV_OPT_SEARCH_CHILDREN); if (ret < 0) goto end; ret = av_opt_set_int(sink, "all_channel_counts", 1, AV_OPT_SEARCH_CHILDREN); if (ret < 0) goto end; + + ret = avfilter_init_dict(sink, NULL); + if (ret < 0) + goto end; } else { av_log(avctx, AV_LOG_ERROR, "Output '%s' is not a video or audio output, not yet supported\n", inout->name); |