diff options
author | Anton Khirnov <anton@khirnov.net> | 2024-09-25 12:18:31 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2024-09-28 17:04:33 +0200 |
commit | d18d119b8fc09023668eaecc33f839ba06e7a1ec (patch) | |
tree | f7f8cec8779dce57a579ed74881d237993248007 /doc/examples/transcode.c | |
parent | 87faa8aebacd6a279b9d2157373776ac8972d859 (diff) | |
download | ffmpeg-d18d119b8fc09023668eaecc33f839ba06e7a1ec.tar.gz |
doc/examples/transcode: stop using avfilter_graph_create_filter() incorrectly
See previous commits for details.
Diffstat (limited to 'doc/examples/transcode.c')
-rw-r--r-- | doc/examples/transcode.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c index cbe5088ef6..7d1e1826a3 100644 --- a/doc/examples/transcode.c +++ b/doc/examples/transcode.c @@ -283,10 +283,10 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, goto end; } - ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out", - NULL, NULL, filter_graph); - if (ret < 0) { + buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out"); + if (!buffersink_ctx) { av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n"); + ret = AVERROR(ENOMEM); goto end; } @@ -297,6 +297,12 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n"); goto end; } + + ret = avfilter_init_dict(buffersink_ctx, NULL); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot initialize buffer sink\n"); + goto end; + } } else if (dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { char buf[64]; buffersrc = avfilter_get_by_name("abuffer"); @@ -322,10 +328,10 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, goto end; } - ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out", - NULL, NULL, filter_graph); - if (ret < 0) { + buffersink_ctx = avfilter_graph_alloc_filter(filter_graph, buffersink, "out"); + if (!buffersink_ctx) { av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n"); + ret = AVERROR(ENOMEM); goto end; } @@ -352,6 +358,12 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n"); goto end; } + + ret = avfilter_init_dict(buffersink_ctx, NULL); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot initialize audio buffer sink\n"); + goto end; + } } else { ret = AVERROR_UNKNOWN; goto end; |