From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 6843B4B9A3 for ; Fri, 30 Jan 2026 00:26:01 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'zs24seme/YSkaR+PWWykz0Wdx/QgoH59lmjZfO6SJec=', expected b'57wpzCp/VegylWoFh4M4GyEKQM1oFop5DeER9UwTj94=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1769732737; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=zs24seme/YSkaR+PWWykz0Wdx/QgoH59lmjZfO6SJec=; b=mYDW5ayAfh5b1kjnsZnAZ97PDBkRXWLEkqSJfTPifAlLVIBvoOdWA++oGnUX1JZRYgMeq 7n9PW9f4snLUAtuWzjiSHEKB5aMZ6SF96XZLZzzpts50WsU/8kde5nYe0oG0m0FVUU/hWxI aGR5+rxad7rFpWtll3qsBFLal7seddGA+hTSQtu/WsWVUV/Ce8aLsCbHZzWRdOVwm1yZtsW 6HokWqpeafgCcLP+CAWYxgjxpxhuNbwlKbKsWbViPjQxc579ye2tnSZur3FhfjMCuUH2FpC KbrtuOvddgVb/SCK/AKfKjiqc5F4U9j3iMWQJQRYXj1ET/kjzs4dJsKaQ8Hw== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id ECECA690F2C; Fri, 30 Jan 2026 02:25:37 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1769732709; b=i0o5339cHB9j+jJxm23jWyNSnqG1u/BQr4+W5C7PieFZ++O88pHWJhtJxkrXmgnmBiOWg WBRxKKeazPPobx/JWAaMKNGLlZh70FjjkVt7g/1VaC17AHXk2vAq2vBjHwTPLn+FvE93k08 HNG93o/XV5ts8NmobjZ3GlLTdUzoVjn9pkH7JH+jgCJ81KUgGElmbT9naVJUs8gusJGCL8I iv8tglsWMIhqxd3gyUI2sC86M0Nyy1tNWGAlF5w8bnRPG3GBFEptOn/oE5f3seNu5lrUZss 0SBXC1OuFB23BYCouxpdFYTYr6NCb+CN42pgJSR0SUARCsSIHHMQThIGYGVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1769732709; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=LeG9pK+4w6H4pBuQtyKMWnEOzFBdEei1MnkSSrM6ars=; b=E+nDhl3DZF+/hnDqWrtF1mS1j7PwR+vQLcY5Y8Q55DGjL9VgILWbx9BujCPHD0pCEHhje xMOJcFj4ZaB3XxFmz3OTKx3/zk+SswOPECafN6vwODOW/S8fw9L9blcn9ZaFrATu3OWpnSx rQcC3ydaaoSv8dDztCeEJUpvMsy8eQ6YJOnoGGej0JAgvBgxJ/DpdMqw9jaI+vRTsoTUOfb 1X6/SsIC6V5wGU9edtPEOuE8hAhOmTIVMZ4AxOwMqMmxwUlXGyl/+Dzn9JGjIEM1bm3EG73 z0XIstBs5PDbQNn66h66w53kC8v2gAnpNdjfZtKjD3fpOCPmE+kd8AOcT0vQ== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1769732699; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=57wpzCp/VegylWoFh4M4GyEKQM1oFop5DeER9UwTj94=; b=S+jz7WbQcRn7OhXLRswsEggIPadhl3vp0cy2J9s8OBNj7BUvUyX+hx6VMAV8uNxKuPjeV m/5VvH5Y3ihxSN/2ILBSAWoqx7/5sbK6KIrXW8r8UNbh1OCl2A5m+MQK0g+VtbA7BdxT0he V13dxLVvafkhx7Vlxbey7zvs2AHFDJ8os/I9HrgydUEpXtMoQdKyrfyG4kV1Pb9sJih1kGq HL9LN5p1PWLj5yDJ7WX2q7ZdJbh7+RirMvXMSqPEN9c25sqP7SbYKkh/pZkTQiA2M2qmJUn cYvZf/Et5vgIrkM4DXBfU82MA9+k903Z5D5xqy2vifG1DZ+0Ac8fswQk568Q== Received: from c8d966988b92 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 4C480690F19 for ; Fri, 30 Jan 2026 02:24:59 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 Jan 2026 00:24:58 -0000 Message-ID: <176973269952.25.3177664639718354447@4457048688e7> Message-ID-Hash: XNKLCY2UKBCYER2S2AMBS3NOQ3343B5W X-Message-ID-Hash: XNKLCY2UKBCYER2S2AMBS3NOQ3343B5W X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] avfilter/formats,vsrc_testsrc: use type-safe formats functions (PR #21606) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: mkver via ffmpeg-devel Cc: mkver Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21606 opened by mkver URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21606 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21606.patch >>From 53a0e6e90bd5c54cf0a9423d9272a69dc9bcfef9 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 30 Jan 2026 00:56:49 +0100 Subject: [PATCH 1/2] avfilter/formats,vsrc_testsrc: use type-safe formats functions Signed-off-by: Andreas Rheinhardt --- libavfilter/formats.c | 4 ++-- libavfilter/vsrc_testsrc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 2186eb1619..6fbdeb2d26 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -1179,11 +1179,11 @@ int ff_default_query_formats(AVFilterContext *ctx) switch (f->formats_state) { case FF_FILTER_FORMATS_PIXFMT_LIST: type = AVMEDIA_TYPE_VIDEO; - formats = ff_make_format_list(f->formats.pixels_list); + formats = ff_make_pixel_format_list(f->formats.pixels_list); break; case FF_FILTER_FORMATS_SAMPLEFMTS_LIST: type = AVMEDIA_TYPE_AUDIO; - formats = ff_make_format_list(f->formats.samples_list); + formats = ff_make_sample_format_list(f->formats.samples_list); break; case FF_FILTER_FORMATS_SINGLE_PIXFMT: type = AVMEDIA_TYPE_VIDEO; diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index 4d7288f18a..bfc3491596 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -1493,7 +1493,7 @@ static int smptebars_query_formats(const AVFilterContext *ctx, if ((ret = ff_set_common_color_ranges2(ctx, cfg_in, cfg_out, ff_make_formats_list_singleton(AVCOL_RANGE_MPEG)))) return ret; - return ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, smptebars_pix_fmts); + return ff_set_pixel_formats_from_list2(ctx, cfg_in, cfg_out, smptebars_pix_fmts); } AVFILTER_DEFINE_CLASS_EXT(palbars, "pal(75|100)bars", options); @@ -2260,7 +2260,7 @@ static int zoneplate_query_formats(const AVFilterContext *ctx, if ((ret = ff_set_common_color_ranges2(ctx, cfg_in, cfg_out, ff_make_formats_list_singleton(AVCOL_RANGE_JPEG)))) return ret; - return ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, zoneplate_pix_fmts); + return ff_set_pixel_formats_from_list2(ctx, cfg_in, cfg_out, zoneplate_pix_fmts); } static const AVFilterPad avfilter_vsrc_zoneplate_outputs[] = { -- 2.52.0 >>From 32793f755fb605bbf7f4970adc1566fb4ba761ca Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 30 Jan 2026 01:01:45 +0100 Subject: [PATCH 2/2] fftools/ffmpeg_{filter,mux_init}: Improve type-safety Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg.h | 5 ++++- fftools/ffmpeg_filter.c | 15 +++++++++------ fftools/ffmpeg_mux_init.c | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 7720dd9c59..3e66534d48 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -347,7 +347,10 @@ typedef struct OutputFilterOptions { int sample_rate; AVChannelLayout ch_layout; - const int *formats; + union { + const enum AVPixelFormat *pix_fmts; + const enum AVSampleFormat *sample_fmts; + }; const int *sample_rates; const AVChannelLayout *ch_layouts; const AVRational *frame_rates; diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 4387c992da..765b65d0ec 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -223,7 +223,10 @@ typedef struct OutputFilterPriv { // those are only set if no format is specified and the encoder gives us multiple options // They point directly to the relevant lists of the encoder. - const int *formats; + union { + const enum AVPixelFormat *pix_fmts; + const enum AVSampleFormat *sample_fmts; + }; const AVChannelLayout *ch_layouts; const int *sample_rates; const enum AVColorSpace *color_spaces; @@ -399,10 +402,10 @@ static void choose_ ## name (OutputFilterPriv *ofp, AVBPrint *bprint) \ av_bprint_chars(bprint, ':', 1); \ } -DEF_CHOOSE_FORMAT(pix_fmts, enum AVPixelFormat, format, formats, +DEF_CHOOSE_FORMAT(pix_fmts, enum AVPixelFormat, format, pix_fmts, AV_PIX_FMT_NONE, "%s", av_get_pix_fmt_name) -DEF_CHOOSE_FORMAT(sample_fmts, enum AVSampleFormat, format, formats, +DEF_CHOOSE_FORMAT(sample_fmts, enum AVSampleFormat, format, sample_fmts, AV_SAMPLE_FMT_NONE, "%s", av_get_sample_fmt_name) DEF_CHOOSE_FORMAT(sample_rates, int, sample_rate, sample_rates, 0, @@ -859,7 +862,7 @@ int ofilter_bind_enc(OutputFilter *ofilter, unsigned sched_idx_enc, if (opts->format != AV_PIX_FMT_NONE) { ofp->format = opts->format; } else - ofp->formats = opts->formats; + ofp->pix_fmts = opts->pix_fmts; if (opts->color_space != AVCOL_SPC_UNSPECIFIED) ofp->color_space = opts->color_space; @@ -898,7 +901,7 @@ int ofilter_bind_enc(OutputFilter *ofilter, unsigned sched_idx_enc, if (opts->format != AV_SAMPLE_FMT_NONE) { ofp->format = opts->format; } else { - ofp->formats = opts->formats; + ofp->sample_fmts = opts->sample_fmts; } if (opts->sample_rate) { ofp->sample_rate = opts->sample_rate; @@ -1702,7 +1705,7 @@ static int configure_output_video_filter(FilterGraphPriv *fgp, AVFilterGraph *gr } av_assert0(!(ofp->flags & OFILTER_FLAG_DISABLE_CONVERT) || - ofp->format != AV_PIX_FMT_NONE || !ofp->formats); + ofp->format != AV_PIX_FMT_NONE || !ofp->pix_fmts); av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED); choose_pix_fmts(ofp, &bprint); choose_color_spaces(ofp, &bprint); diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c index 0569f62836..4cb8f91d6e 100644 --- a/fftools/ffmpeg_mux_init.c +++ b/fftools/ffmpeg_mux_init.c @@ -949,7 +949,7 @@ ost_bind_filter(const Muxer *mux, MuxStream *ms, OutputFilter *ofilter, if (!keep_pix_fmt) { ret = avcodec_get_supported_config(enc_ctx, NULL, AV_CODEC_CONFIG_PIX_FORMAT, 0, - (const void **) &opts.formats, NULL); + (const void **) &opts.pix_fmts, NULL); if (ret < 0) return ret; } @@ -978,7 +978,7 @@ ost_bind_filter(const Muxer *mux, MuxStream *ms, OutputFilter *ofilter, } else { ret = avcodec_get_supported_config(enc_ctx, NULL, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, - (const void **) &opts.formats, NULL); + (const void **) &opts.sample_fmts, NULL); if (ret < 0) return ret; ret = avcodec_get_supported_config(enc_ctx, NULL, -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org