From: Niklas Haas <ffmpeg@haasn.xyz> To: ffmpeg-devel@ffmpeg.org Cc: Niklas Haas <git@haasn.dev> Subject: [FFmpeg-devel] [PATCH] avfilter/formats: set audio fmt lists for vaf filters Date: Thu, 14 Dec 2023 15:39:11 +0100 Message-ID: <20231214143911.39198-1-ffmpeg@haasn.xyz> (raw) In-Reply-To: <20231214030948.GH6420@pb2> From: Niklas Haas <git@haasn.dev> Currently, the logic inside the FF_FILTER_FORMATS_QUERY_FUNC branch prevents this code from running in the event that we have a filter with a single video input and a single audio output, as the resulting audio output link will not have its channel counts / samplerates correctly initialized to their default values, possibly triggering a segfault downstream. An example of such a filter is vaf_spectrumsynth. Although this particular filter already sets up the channel counts and samplerates as part of the query function and therefore avoids triggering this bug, the bug still exists in principle. (And importantly, sets a wrong precedent) --- libavfilter/formats.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavfilter/formats.c b/libavfilter/formats.c index d1c97daf64..114886aeb2 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -808,16 +808,17 @@ int ff_default_query_formats(AVFilterContext *ctx) /* Intended fallthrough */ case FF_FILTER_FORMATS_PASSTHROUGH: case FF_FILTER_FORMATS_QUERY_FUNC: - type = ctx->nb_inputs ? ctx->inputs [0]->type : - ctx->nb_outputs ? ctx->outputs[0]->type : AVMEDIA_TYPE_VIDEO; - formats = ff_all_formats(type); + type = AVMEDIA_TYPE_UNKNOWN; + formats = ff_all_formats(ctx->nb_inputs ? ctx->inputs [0]->type : + ctx->nb_outputs ? ctx->outputs[0]->type : + AVMEDIA_TYPE_VIDEO); break; } ret = ff_set_common_formats(ctx, formats); if (ret < 0) return ret; - if (type == AVMEDIA_TYPE_AUDIO) { + if (type != AVMEDIA_TYPE_VIDEO) { ret = ff_set_common_all_channel_counts(ctx); if (ret < 0) return ret; -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-12-14 14:39 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-13 13:11 [FFmpeg-devel] [PATCH v2 00/15] YUV colorspace filter negotiation Niklas Haas 2023-12-13 13:11 ` [FFmpeg-devel] [PATCH v2 01/15] avfilter/formats: document ff_default_query_formats Niklas Haas 2023-12-13 13:11 ` [FFmpeg-devel] [PATCH v2 02/15] avfilter: always call ff_default_query_formats Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 03/15] avfilter: add negotiation API for color space/range Niklas Haas 2023-12-14 3:09 ` Michael Niedermayer 2023-12-14 14:09 ` Niklas Haas 2023-12-14 14:39 ` Niklas Haas [this message] 2023-12-14 14:40 ` [FFmpeg-devel] [PATCH] avfilter/formats: set audio fmt lists for vaf filters Niklas Haas 2023-12-14 19:18 ` Michael Niedermayer 2023-12-19 15:03 ` Nicolas George 2024-01-03 3:04 ` [FFmpeg-devel] [PATCH v2 03/15] avfilter: add negotiation API for color space/range Xiang, Haihao 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 04/15] fftools/ffmpeg_filter: don't clear buffersrc params Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 05/15] avfilter/buffersrc: add color_space/range parameters Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 06/15] fftools/ffmpeg_filter: configure buffersrc with csp/range Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 07/15] vf_scale: use colorspace negotiation API Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 08/15] avfilter/vf_zscale: remove unused variables Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 09/15] avfilter/vf_zscale: switch to colorspace negotiation API Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 10/15] avfilter/vf_libplacebo: don't force dovi frames to bt.2020-ncl Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 11/15] avfilter/vf_libplacebo: switch to colorspace negotiation API Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 12/15] avfilter/buffersink: add color space/range accessors Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 13/15] avfilter/vf_format: re-use AVFilterFormats for pix_fmt parsing Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 14/15] avfilter/vf_format: add color_ranges/spaces Niklas Haas 2023-12-13 13:12 ` [FFmpeg-devel] [PATCH v2 15/15] avfilter/vf_format: allow empty pix_fmts list Niklas Haas 2023-12-24 18:35 ` [FFmpeg-devel] [PATCH v2 00/15] YUV colorspace filter negotiation Niklas Haas 2023-12-31 21:50 ` Niklas Haas 2024-01-04 19:32 ` Dong, Ruijing via ffmpeg-devel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231214143911.39198-1-ffmpeg@haasn.xyz \ --to=ffmpeg@haasn.xyz \ --cc=ffmpeg-devel@ffmpeg.org \ --cc=git@haasn.dev \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git