PR #21669 opened by mkver
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21669
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21669.patch


>From c94b556e8d952dba9e9e5e2af2e53faf72ebce04 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Fri, 6 Feb 2026 16:33:11 +0100
Subject: [PATCH 1/4] avcodec/adpcm: Don't set AVCodec.sample_fmts

It is unnecessary for a decoder (the sample fmt is
set lateron during init and the user has no choice
over this (even for the decoders where sample_fmts
contains two entries).

(This also fixes the ADPCM_DECODER macro: It's second
and third parameters were called "name" and "sample_fmts",
yet the second argument always contained the sample fmts.)

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/adpcm.c | 139 +++++++++++++++++++++------------------------
 1 file changed, 65 insertions(+), 74 deletions(-)

diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 31340af677..201ea3fbaa 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -2935,91 +2935,82 @@ static av_cold void adpcm_flush(AVCodecContext *avctx)
 }
 
 
-static const enum AVSampleFormat sample_fmts_s16[]  = { AV_SAMPLE_FMT_S16,
-                                                        AV_SAMPLE_FMT_NONE };
-static const enum AVSampleFormat sample_fmts_s16p[] = { AV_SAMPLE_FMT_S16P,
-                                                        AV_SAMPLE_FMT_NONE };
-static const enum AVSampleFormat sample_fmts_both[] = { AV_SAMPLE_FMT_S16,
-                                                        AV_SAMPLE_FMT_S16P,
-                                                        AV_SAMPLE_FMT_NONE };
-
-#define ADPCM_DECODER_0(id_, sample_fmts_, name_, long_name_)
-#define ADPCM_DECODER_1(id_, sample_fmts_, name_, long_name_) \
+#define ADPCM_DECODER_0(id_, name_, long_name_)
+#define ADPCM_DECODER_1(id_, name_, long_name_)             \
 const FFCodec ff_ ## name_ ## _decoder = {                  \
     .p.name         = #name_,                               \
     CODEC_LONG_NAME(long_name_),                            \
     .p.type         = AVMEDIA_TYPE_AUDIO,                   \
     .p.id           = id_,                                  \
     .p.capabilities = AV_CODEC_CAP_DR1,                     \
-    CODEC_SAMPLEFMTS_ARRAY(sample_fmts_),                   \
     .priv_data_size = sizeof(ADPCMDecodeContext),           \
     .init           = adpcm_decode_init,                    \
     FF_CODEC_DECODE_CB(adpcm_decode_frame),                 \
     .flush          = adpcm_flush,                          \
 };
-#define ADPCM_DECODER_2(enabled, codec_id, name, sample_fmts, long_name) \
-    ADPCM_DECODER_ ## enabled(codec_id, name, sample_fmts, long_name)
-#define ADPCM_DECODER_3(config, codec_id, name, sample_fmts, long_name) \
-    ADPCM_DECODER_2(config, codec_id, name, sample_fmts, long_name)
-#define ADPCM_DECODER(codec, name, sample_fmts, long_name) \
+#define ADPCM_DECODER_2(enabled, codec_id, name, long_name) \
+    ADPCM_DECODER_ ## enabled(codec_id, name, long_name)
+#define ADPCM_DECODER_3(config, codec_id, name, long_name) \
+    ADPCM_DECODER_2(config, codec_id, name, long_name)
+#define ADPCM_DECODER(codec, name, long_name) \
     ADPCM_DECODER_3(CONFIG_ ## codec ## _DECODER, AV_CODEC_ID_ ## codec, \
-                    name, sample_fmts, long_name)
+                    name, long_name)
 
 /* Note: Do not forget to add new entries to the Makefile as well. */
-ADPCM_DECODER(ADPCM_4XM,         sample_fmts_s16p, adpcm_4xm,         "ADPCM 
4X Movie")
-ADPCM_DECODER(ADPCM_AFC,         sample_fmts_s16p, adpcm_afc,         "ADPCM 
Nintendo Gamecube AFC")
-ADPCM_DECODER(ADPCM_AGM,         sample_fmts_s16,  adpcm_agm,         "ADPCM 
AmuseGraphics Movie")
-ADPCM_DECODER(ADPCM_AICA,        sample_fmts_s16p, adpcm_aica,        "ADPCM 
Yamaha AICA")
-ADPCM_DECODER(ADPCM_ARGO,        sample_fmts_s16p, adpcm_argo,        "ADPCM 
Argonaut Games")
-ADPCM_DECODER(ADPCM_CIRCUS,      sample_fmts_s16,  adpcm_circus,      "ADPCM 
Circus")
-ADPCM_DECODER(ADPCM_CT,          sample_fmts_s16,  adpcm_ct,          "ADPCM 
Creative Technology")
-ADPCM_DECODER(ADPCM_DTK,         sample_fmts_s16p, adpcm_dtk,         "ADPCM 
Nintendo Gamecube DTK")
-ADPCM_DECODER(ADPCM_EA,          sample_fmts_s16,  adpcm_ea,          "ADPCM 
Electronic Arts")
-ADPCM_DECODER(ADPCM_EA_MAXIS_XA, sample_fmts_s16,  adpcm_ea_maxis_xa, "ADPCM 
Electronic Arts Maxis CDROM XA")
-ADPCM_DECODER(ADPCM_EA_R1,       sample_fmts_s16p, adpcm_ea_r1,       "ADPCM 
Electronic Arts R1")
-ADPCM_DECODER(ADPCM_EA_R2,       sample_fmts_s16p, adpcm_ea_r2,       "ADPCM 
Electronic Arts R2")
-ADPCM_DECODER(ADPCM_EA_R3,       sample_fmts_s16p, adpcm_ea_r3,       "ADPCM 
Electronic Arts R3")
-ADPCM_DECODER(ADPCM_EA_XAS,      sample_fmts_s16p, adpcm_ea_xas,      "ADPCM 
Electronic Arts XAS")
-ADPCM_DECODER(ADPCM_IMA_ACORN,   sample_fmts_s16,  adpcm_ima_acorn,   "ADPCM 
IMA Acorn Replay")
-ADPCM_DECODER(ADPCM_IMA_AMV,     sample_fmts_s16,  adpcm_ima_amv,     "ADPCM 
IMA AMV")
-ADPCM_DECODER(ADPCM_IMA_APC,     sample_fmts_s16,  adpcm_ima_apc,     "ADPCM 
IMA CRYO APC")
-ADPCM_DECODER(ADPCM_IMA_APM,     sample_fmts_s16,  adpcm_ima_apm,     "ADPCM 
IMA Ubisoft APM")
-ADPCM_DECODER(ADPCM_IMA_CUNNING, sample_fmts_s16p, adpcm_ima_cunning, "ADPCM 
IMA Cunning Developments")
-ADPCM_DECODER(ADPCM_IMA_DAT4,    sample_fmts_s16,  adpcm_ima_dat4,    "ADPCM 
IMA Eurocom DAT4")
-ADPCM_DECODER(ADPCM_IMA_DK3,     sample_fmts_s16,  adpcm_ima_dk3,     "ADPCM 
IMA Duck DK3")
-ADPCM_DECODER(ADPCM_IMA_DK4,     sample_fmts_s16,  adpcm_ima_dk4,     "ADPCM 
IMA Duck DK4")
-ADPCM_DECODER(ADPCM_IMA_EA_EACS, sample_fmts_s16,  adpcm_ima_ea_eacs, "ADPCM 
IMA Electronic Arts EACS")
-ADPCM_DECODER(ADPCM_IMA_EA_SEAD, sample_fmts_s16,  adpcm_ima_ea_sead, "ADPCM 
IMA Electronic Arts SEAD")
-ADPCM_DECODER(ADPCM_IMA_ESCAPE,  sample_fmts_s16,  adpcm_ima_escape,  "ADPCM 
IMA Acorn Escape")
-ADPCM_DECODER(ADPCM_IMA_HVQM2,   sample_fmts_s16,  adpcm_ima_hvqm2,   "ADPCM 
IMA HVQM2")
-ADPCM_DECODER(ADPCM_IMA_HVQM4,   sample_fmts_s16,  adpcm_ima_hvqm4,   "ADPCM 
IMA HVQM4")
-ADPCM_DECODER(ADPCM_IMA_ISS,     sample_fmts_s16,  adpcm_ima_iss,     "ADPCM 
IMA Funcom ISS")
-ADPCM_DECODER(ADPCM_IMA_MAGIX,   sample_fmts_s16,  adpcm_ima_magix,   "ADPCM 
IMA Magix")
-ADPCM_DECODER(ADPCM_IMA_MOFLEX,  sample_fmts_s16p, adpcm_ima_moflex,  "ADPCM 
IMA MobiClip MOFLEX")
-ADPCM_DECODER(ADPCM_IMA_MTF,     sample_fmts_s16,  adpcm_ima_mtf,     "ADPCM 
IMA Capcom's MT Framework")
-ADPCM_DECODER(ADPCM_IMA_OKI,     sample_fmts_s16,  adpcm_ima_oki,     "ADPCM 
IMA Dialogic OKI")
-ADPCM_DECODER(ADPCM_IMA_PDA,     sample_fmts_s16,  adpcm_ima_pda,     "ADPCM 
IMA PlayDate")
-ADPCM_DECODER(ADPCM_IMA_QT,      sample_fmts_s16p, adpcm_ima_qt,      "ADPCM 
IMA QuickTime")
-ADPCM_DECODER(ADPCM_IMA_RAD,     sample_fmts_s16,  adpcm_ima_rad,     "ADPCM 
IMA Radical")
-ADPCM_DECODER(ADPCM_IMA_SSI,     sample_fmts_s16,  adpcm_ima_ssi,     "ADPCM 
IMA Simon & Schuster Interactive")
-ADPCM_DECODER(ADPCM_IMA_SMJPEG,  sample_fmts_s16,  adpcm_ima_smjpeg,  "ADPCM 
IMA Loki SDL MJPEG")
-ADPCM_DECODER(ADPCM_IMA_ALP,     sample_fmts_s16,  adpcm_ima_alp,     "ADPCM 
IMA High Voltage Software ALP")
-ADPCM_DECODER(ADPCM_IMA_WAV,     sample_fmts_s16p, adpcm_ima_wav,     "ADPCM 
IMA WAV")
-ADPCM_DECODER(ADPCM_IMA_WS,      sample_fmts_both, adpcm_ima_ws,      "ADPCM 
IMA Westwood")
-ADPCM_DECODER(ADPCM_IMA_XBOX,    sample_fmts_s16p, adpcm_ima_xbox,    "ADPCM 
IMA Xbox")
-ADPCM_DECODER(ADPCM_MS,          sample_fmts_both, adpcm_ms,          "ADPCM 
Microsoft")
-ADPCM_DECODER(ADPCM_MTAF,        sample_fmts_s16p, adpcm_mtaf,        "ADPCM 
MTAF")
-ADPCM_DECODER(ADPCM_N64,         sample_fmts_s16p, adpcm_n64,         "ADPCM 
Silicon Graphics N64")
-ADPCM_DECODER(ADPCM_PSX,         sample_fmts_s16p, adpcm_psx,         "ADPCM 
Playstation")
-ADPCM_DECODER(ADPCM_PSXC,        sample_fmts_s16p, adpcm_psxc,        "ADPCM 
Playstation C")
-ADPCM_DECODER(ADPCM_SANYO,       sample_fmts_s16p, adpcm_sanyo,       "ADPCM 
Sanyo")
-ADPCM_DECODER(ADPCM_SBPRO_2,     sample_fmts_s16,  adpcm_sbpro_2,     "ADPCM 
Sound Blaster Pro 2-bit")
-ADPCM_DECODER(ADPCM_SBPRO_3,     sample_fmts_s16,  adpcm_sbpro_3,     "ADPCM 
Sound Blaster Pro 2.6-bit")
-ADPCM_DECODER(ADPCM_SBPRO_4,     sample_fmts_s16,  adpcm_sbpro_4,     "ADPCM 
Sound Blaster Pro 4-bit")
-ADPCM_DECODER(ADPCM_SWF,         sample_fmts_s16,  adpcm_swf,         "ADPCM 
Shockwave Flash")
-ADPCM_DECODER(ADPCM_THP_LE,      sample_fmts_s16p, adpcm_thp_le,      "ADPCM 
Nintendo THP (little-endian)")
-ADPCM_DECODER(ADPCM_THP,         sample_fmts_s16p, adpcm_thp,         "ADPCM 
Nintendo THP")
-ADPCM_DECODER(ADPCM_XA,          sample_fmts_s16p, adpcm_xa,          "ADPCM 
CDROM XA")
-ADPCM_DECODER(ADPCM_XMD,         sample_fmts_s16p, adpcm_xmd,         "ADPCM 
Konami XMD")
-ADPCM_DECODER(ADPCM_YAMAHA,      sample_fmts_s16,  adpcm_yamaha,      "ADPCM 
Yamaha")
-ADPCM_DECODER(ADPCM_ZORK,        sample_fmts_s16,  adpcm_zork,        "ADPCM 
Zork")
+ADPCM_DECODER(ADPCM_4XM,         adpcm_4xm,         "ADPCM 4X Movie")
+ADPCM_DECODER(ADPCM_AFC,         adpcm_afc,         "ADPCM Nintendo Gamecube 
AFC")
+ADPCM_DECODER(ADPCM_AGM,         adpcm_agm,         "ADPCM AmuseGraphics 
Movie")
+ADPCM_DECODER(ADPCM_AICA,        adpcm_aica,        "ADPCM Yamaha AICA")
+ADPCM_DECODER(ADPCM_ARGO,        adpcm_argo,        "ADPCM Argonaut Games")
+ADPCM_DECODER(ADPCM_CIRCUS,      adpcm_circus,      "ADPCM Circus")
+ADPCM_DECODER(ADPCM_CT,          adpcm_ct,          "ADPCM Creative 
Technology")
+ADPCM_DECODER(ADPCM_DTK,         adpcm_dtk,         "ADPCM Nintendo Gamecube 
DTK")
+ADPCM_DECODER(ADPCM_EA,          adpcm_ea,          "ADPCM Electronic Arts")
+ADPCM_DECODER(ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa, "ADPCM Electronic Arts 
Maxis CDROM XA")
+ADPCM_DECODER(ADPCM_EA_R1,       adpcm_ea_r1,       "ADPCM Electronic Arts R1")
+ADPCM_DECODER(ADPCM_EA_R2,       adpcm_ea_r2,       "ADPCM Electronic Arts R2")
+ADPCM_DECODER(ADPCM_EA_R3,       adpcm_ea_r3,       "ADPCM Electronic Arts R3")
+ADPCM_DECODER(ADPCM_EA_XAS,      adpcm_ea_xas,      "ADPCM Electronic Arts 
XAS")
+ADPCM_DECODER(ADPCM_IMA_ACORN,   adpcm_ima_acorn,   "ADPCM IMA Acorn Replay")
+ADPCM_DECODER(ADPCM_IMA_AMV,     adpcm_ima_amv,     "ADPCM IMA AMV")
+ADPCM_DECODER(ADPCM_IMA_APC,     adpcm_ima_apc,     "ADPCM IMA CRYO APC")
+ADPCM_DECODER(ADPCM_IMA_APM,     adpcm_ima_apm,     "ADPCM IMA Ubisoft APM")
+ADPCM_DECODER(ADPCM_IMA_CUNNING, adpcm_ima_cunning, "ADPCM IMA Cunning 
Developments")
+ADPCM_DECODER(ADPCM_IMA_DAT4,    adpcm_ima_dat4,    "ADPCM IMA Eurocom DAT4")
+ADPCM_DECODER(ADPCM_IMA_DK3,     adpcm_ima_dk3,     "ADPCM IMA Duck DK3")
+ADPCM_DECODER(ADPCM_IMA_DK4,     adpcm_ima_dk4,     "ADPCM IMA Duck DK4")
+ADPCM_DECODER(ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs, "ADPCM IMA Electronic Arts 
EACS")
+ADPCM_DECODER(ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead, "ADPCM IMA Electronic Arts 
SEAD")
+ADPCM_DECODER(ADPCM_IMA_ESCAPE,  adpcm_ima_escape,  "ADPCM IMA Acorn Escape")
+ADPCM_DECODER(ADPCM_IMA_HVQM2,   adpcm_ima_hvqm2,   "ADPCM IMA HVQM2")
+ADPCM_DECODER(ADPCM_IMA_HVQM4,   adpcm_ima_hvqm4,   "ADPCM IMA HVQM4")
+ADPCM_DECODER(ADPCM_IMA_ISS,     adpcm_ima_iss,     "ADPCM IMA Funcom ISS")
+ADPCM_DECODER(ADPCM_IMA_MAGIX,   adpcm_ima_magix,   "ADPCM IMA Magix")
+ADPCM_DECODER(ADPCM_IMA_MOFLEX,  adpcm_ima_moflex,  "ADPCM IMA MobiClip 
MOFLEX")
+ADPCM_DECODER(ADPCM_IMA_MTF,     adpcm_ima_mtf,     "ADPCM IMA Capcom's MT 
Framework")
+ADPCM_DECODER(ADPCM_IMA_OKI,     adpcm_ima_oki,     "ADPCM IMA Dialogic OKI")
+ADPCM_DECODER(ADPCM_IMA_PDA,     adpcm_ima_pda,     "ADPCM IMA PlayDate")
+ADPCM_DECODER(ADPCM_IMA_QT,      adpcm_ima_qt,      "ADPCM IMA QuickTime")
+ADPCM_DECODER(ADPCM_IMA_RAD,     adpcm_ima_rad,     "ADPCM IMA Radical")
+ADPCM_DECODER(ADPCM_IMA_SSI,     adpcm_ima_ssi,     "ADPCM IMA Simon & 
Schuster Interactive")
+ADPCM_DECODER(ADPCM_IMA_SMJPEG,  adpcm_ima_smjpeg,  "ADPCM IMA Loki SDL MJPEG")
+ADPCM_DECODER(ADPCM_IMA_ALP,     adpcm_ima_alp,     "ADPCM IMA High Voltage 
Software ALP")
+ADPCM_DECODER(ADPCM_IMA_WAV,     adpcm_ima_wav,     "ADPCM IMA WAV")
+ADPCM_DECODER(ADPCM_IMA_WS,      adpcm_ima_ws,      "ADPCM IMA Westwood")
+ADPCM_DECODER(ADPCM_IMA_XBOX,    adpcm_ima_xbox,    "ADPCM IMA Xbox")
+ADPCM_DECODER(ADPCM_MS,          adpcm_ms,          "ADPCM Microsoft")
+ADPCM_DECODER(ADPCM_MTAF,        adpcm_mtaf,        "ADPCM MTAF")
+ADPCM_DECODER(ADPCM_N64,         adpcm_n64,         "ADPCM Silicon Graphics 
N64")
+ADPCM_DECODER(ADPCM_PSX,         adpcm_psx,         "ADPCM Playstation")
+ADPCM_DECODER(ADPCM_PSXC,        adpcm_psxc,        "ADPCM Playstation C")
+ADPCM_DECODER(ADPCM_SANYO,       adpcm_sanyo,       "ADPCM Sanyo")
+ADPCM_DECODER(ADPCM_SBPRO_2,     adpcm_sbpro_2,     "ADPCM Sound Blaster Pro 
2-bit")
+ADPCM_DECODER(ADPCM_SBPRO_3,     adpcm_sbpro_3,     "ADPCM Sound Blaster Pro 
2.6-bit")
+ADPCM_DECODER(ADPCM_SBPRO_4,     adpcm_sbpro_4,     "ADPCM Sound Blaster Pro 
4-bit")
+ADPCM_DECODER(ADPCM_SWF,         adpcm_swf,         "ADPCM Shockwave Flash")
+ADPCM_DECODER(ADPCM_THP_LE,      adpcm_thp_le,      "ADPCM Nintendo THP 
(little-endian)")
+ADPCM_DECODER(ADPCM_THP,         adpcm_thp,         "ADPCM Nintendo THP")
+ADPCM_DECODER(ADPCM_XA,          adpcm_xa,          "ADPCM CDROM XA")
+ADPCM_DECODER(ADPCM_XMD,         adpcm_xmd,         "ADPCM Konami XMD")
+ADPCM_DECODER(ADPCM_YAMAHA,      adpcm_yamaha,      "ADPCM Yamaha")
+ADPCM_DECODER(ADPCM_ZORK,        adpcm_zork,        "ADPCM Zork")
-- 
2.52.0


>From 4474c1c6e090739fdd622c52c364a588ec8a0d2d Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Fri, 6 Feb 2026 22:48:49 +0100
Subject: [PATCH 2/4] avcodec/sbcdec: Don't set encoder-only fields

ch_layouts, sample_fmts and supported_samplerates
are of no use for a decoder, so don't set them.
In this case this fixes an inconsistency:
ch_layouts contained mono and stereo, yet lateron
the AVCodecContext's ch_layout is always populated
with an AV_CHANNEL_ORDER_UNSPEC layout.

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/sbcdec.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c
index d39319966c..d999cefd22 100644
--- a/libavcodec/sbcdec.c
+++ b/libavcodec/sbcdec.c
@@ -371,7 +371,4 @@ const FFCodec ff_sbc_decoder = {
     .init                  = sbc_decode_init,
     FF_CODEC_DECODE_CB(sbc_decode_frame),
     .p.capabilities        = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
-    CODEC_SAMPLERATES(16000, 32000, 44100, 48000),
 };
-- 
2.52.0


>From 7962f3010bdbe200657aaf4dfa54c9efd3713990 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Fri, 6 Feb 2026 23:16:29 +0100
Subject: [PATCH 3/4] avcodec: Don't set AVCodec.sample_fmts,ch_layouts for
 decoders

It is pointless for them given that these values will
be overridden by the decoder lateron anyway.
The only exceptions to this are scenarios where the decoder
actually checks request_sample_fmt or where there are both
fixed- and floating point decoders.

(IMO something like get_format() for audio would be better for
both cases.)

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/8svx.c           | 2 --
 libavcodec/adxdec.c         | 1 -
 libavcodec/amrnbdec.c       | 1 -
 libavcodec/amrwbdec.c       | 1 -
 libavcodec/apac.c           | 1 -
 libavcodec/apedec.c         | 1 -
 libavcodec/atrac1.c         | 1 -
 libavcodec/atrac3.c         | 2 --
 libavcodec/bonk.c           | 1 -
 libavcodec/cngdec.c         | 1 -
 libavcodec/cook.c           | 1 -
 libavcodec/dcadec.c         | 1 -
 libavcodec/dolby_e.c        | 1 -
 libavcodec/dsddec.c         | 1 -
 libavcodec/dstdec.c         | 1 -
 libavcodec/fastaudio.c      | 1 -
 libavcodec/hcadec.c         | 1 -
 libavcodec/imc.c            | 2 --
 libavcodec/libcodec2.c      | 3 ---
 libavcodec/mace.c           | 2 --
 libavcodec/metasound.c      | 1 -
 libavcodec/misc4.c          | 1 -
 libavcodec/mpc7.c           | 1 -
 libavcodec/mpc8.c           | 1 -
 libavcodec/nellymoserdec.c  | 1 -
 libavcodec/on2avc.c         | 1 -
 libavcodec/osq.c            | 1 -
 libavcodec/pcm-bluray.c     | 1 -
 libavcodec/pcm-dvd.c        | 1 -
 libavcodec/qoadec.c         | 1 -
 libavcodec/ralf.c           | 1 -
 libavcodec/shorten.c        | 1 -
 libavcodec/takdec.c         | 1 -
 libavcodec/twinvqdec.c      | 1 -
 libavcodec/vorbisdec.c      | 2 --
 libavcodec/wmadec.c         | 2 --
 libavcodec/wmalosslessdec.c | 1 -
 libavcodec/wmaprodec.c      | 3 ---
 38 files changed, 48 deletions(-)

diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 18203ee69e..6afc2f727c 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -198,7 +198,6 @@ const FFCodec ff_eightsvx_fib_decoder = {
   FF_CODEC_DECODE_CB(eightsvx_decode_frame),
   .close          = eightsvx_decode_close,
   .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P),
 };
 #endif
 #if CONFIG_EIGHTSVX_EXP_DECODER
@@ -212,6 +211,5 @@ const FFCodec ff_eightsvx_exp_decoder = {
   FF_CODEC_DECODE_CB(eightsvx_decode_frame),
   .close          = eightsvx_decode_close,
   .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P),
 };
 #endif
diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c
index 49c2e25182..019fc1a90d 100644
--- a/libavcodec/adxdec.c
+++ b/libavcodec/adxdec.c
@@ -265,5 +265,4 @@ const FFCodec ff_adpcm_adx_decoder = {
     .flush          = adx_decode_flush,
     .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
                       AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c
index 822dc1297b..b8e340684b 100644
--- a/libavcodec/amrnbdec.c
+++ b/libavcodec/amrnbdec.c
@@ -1104,5 +1104,4 @@ const FFCodec ff_amrnb_decoder = {
     .init           = amrnb_decode_init,
     FF_CODEC_DECODE_CB(amrnb_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c
index 91fb870a64..3557b4709d 100644
--- a/libavcodec/amrwbdec.c
+++ b/libavcodec/amrwbdec.c
@@ -1308,5 +1308,4 @@ const FFCodec ff_amrwb_decoder = {
     .init           = amrwb_decode_init,
     FF_CODEC_DECODE_CB(amrwb_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/apac.c b/libavcodec/apac.c
index a092b1e372..00e48e7635 100644
--- a/libavcodec/apac.c
+++ b/libavcodec/apac.c
@@ -271,5 +271,4 @@ const FFCodec ff_apac_decoder = {
     .p.capabilities   = AV_CODEC_CAP_DELAY |
                         AV_CODEC_CAP_DR1,
     .caps_internal    = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 58f5355b58..9a184f9807 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -1764,6 +1764,5 @@ const FFCodec ff_ape_decoder = {
                       AV_CODEC_CAP_DR1,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
     .flush          = ape_flush,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, 
AV_SAMPLE_FMT_S32P),
     .p.priv_class   = &ape_decoder_class,
 };
diff --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c
index b708c31897..2625b8f87d 100644
--- a/libavcodec/atrac1.c
+++ b/libavcodec/atrac1.c
@@ -399,6 +399,5 @@ const FFCodec ff_atrac1_decoder = {
     .close          = atrac1_decode_end,
     FF_CODEC_DECODE_CB(atrac1_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index d91bdc79ac..7f362f453d 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -1028,7 +1028,6 @@ const FFCodec ff_atrac3_decoder = {
     .close            = atrac3_decode_close,
     FF_CODEC_DECODE_CB(atrac3_decode_frame),
     .p.capabilities   = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal    = FF_CODEC_CAP_INIT_CLEANUP,
 };
 
@@ -1042,6 +1041,5 @@ const FFCodec ff_atrac3al_decoder = {
     .close            = atrac3_decode_close,
     FF_CODEC_DECODE_CB(atrac3al_decode_frame),
     .p.capabilities   = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal    = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/bonk.c b/libavcodec/bonk.c
index 99098ef2b0..67eb8d6a14 100644
--- a/libavcodec/bonk.c
+++ b/libavcodec/bonk.c
@@ -429,5 +429,4 @@ const FFCodec ff_bonk_decoder = {
     .p.capabilities   = AV_CODEC_CAP_DELAY |
                         AV_CODEC_CAP_DR1,
     .caps_internal    = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/cngdec.c b/libavcodec/cngdec.c
index e65f0f084e..eb37c33eb4 100644
--- a/libavcodec/cngdec.c
+++ b/libavcodec/cngdec.c
@@ -173,7 +173,6 @@ const FFCodec ff_comfortnoise_decoder = {
     FF_CODEC_DECODE_CB(cng_decode_frame),
     .flush          = cng_decode_flush,
     .close          = cng_decode_close,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/cook.c b/libavcodec/cook.c
index f627967ffb..cc6005d3ff 100644
--- a/libavcodec/cook.c
+++ b/libavcodec/cook.c
@@ -1308,6 +1308,5 @@ const FFCodec ff_cook_decoder = {
     .close          = cook_decode_close,
     FF_CODEC_DECODE_CB(cook_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index 4572cf4490..0d7bf1c53c 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -416,7 +416,6 @@ const FFCodec ff_dca_decoder = {
     .close          = dcadec_close,
     .flush          = dcadec_flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, 
AV_SAMPLE_FMT_FLTP),
     .p.priv_class   = &dcadec_class,
     .p.profiles     = NULL_IF_CONFIG_SMALL(ff_dca_profiles),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c
index bbcb747c06..2d32ac2832 100644
--- a/libavcodec/dolby_e.c
+++ b/libavcodec/dolby_e.c
@@ -1310,6 +1310,5 @@ const FFCodec ff_dolby_e_decoder = {
     .close          = dolby_e_close,
     .flush          = dolby_e_flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c
index aa8577d667..2d337a7d04 100644
--- a/libavcodec/dsddec.c
+++ b/libavcodec/dsddec.c
@@ -126,7 +126,6 @@ const FFCodec ff_ ## name_ ## _decoder = { \
     .init         = decode_init, \
     FF_CODEC_DECODE_CB(decode_frame), \
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS, \
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP), \
 };
 
 DSD_DECODER(DSD_LSBF, dsd_lsbf, "DSD (Direct Stream Digital), least 
significant bit first")
diff --git a/libavcodec/dstdec.c b/libavcodec/dstdec.c
index cfb34b7b3c..d747670141 100644
--- a/libavcodec/dstdec.c
+++ b/libavcodec/dstdec.c
@@ -392,5 +392,4 @@ const FFCodec ff_dst_decoder = {
     .init           = decode_init,
     FF_CODEC_DECODE_CB(decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT),
 };
diff --git a/libavcodec/fastaudio.c b/libavcodec/fastaudio.c
index ee31a06f18..d361b410b9 100644
--- a/libavcodec/fastaudio.c
+++ b/libavcodec/fastaudio.c
@@ -196,5 +196,4 @@ const FFCodec ff_fastaudio_decoder = {
     FF_CODEC_DECODE_CB(fastaudio_decode),
     .close          = fastaudio_close,
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/hcadec.c b/libavcodec/hcadec.c
index 7780372cf3..2eac70b60f 100644
--- a/libavcodec/hcadec.c
+++ b/libavcodec/hcadec.c
@@ -635,5 +635,4 @@ const FFCodec ff_hca_decoder = {
     .close          = decode_close,
     .p.capabilities = AV_CODEC_CAP_DR1,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 2e4a74f46f..fa02fd5d8a 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -1033,7 +1033,6 @@ const FFCodec ff_imc_decoder = {
     FF_CODEC_DECODE_CB(imc_decode_frame),
     .flush          = flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 #endif
@@ -1049,7 +1048,6 @@ const FFCodec ff_iac_decoder = {
     FF_CODEC_DECODE_CB(imc_decode_frame),
     .flush          = flush,
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 #endif
diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c
index b0ba01bcb4..4e82b9711d 100644
--- a/libavcodec/libcodec2.c
+++ b/libavcodec/libcodec2.c
@@ -182,9 +182,6 @@ const FFCodec ff_libcodec2_decoder = {
     .p.type                 = AVMEDIA_TYPE_AUDIO,
     .p.id                   = AV_CODEC_ID_CODEC2,
     .p.capabilities         = AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLERATES(8000),
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
-    CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
     .caps_internal          = FF_CODEC_CAP_NOT_INIT_THREADSAFE,
     .priv_data_size         = sizeof(LibCodec2Context),
     .init                   = libcodec2_init_decoder,
diff --git a/libavcodec/mace.c b/libavcodec/mace.c
index 2aa54fb548..299e5f5cfe 100644
--- a/libavcodec/mace.c
+++ b/libavcodec/mace.c
@@ -293,7 +293,6 @@ const FFCodec ff_mace3_decoder = {
     .init           = mace_decode_init,
     FF_CODEC_DECODE_CB(mace_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
 
 const FFCodec ff_mace6_decoder = {
@@ -305,5 +304,4 @@ const FFCodec ff_mace6_decoder = {
     .init           = mace_decode_init,
     FF_CODEC_DECODE_CB(mace_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/metasound.c b/libavcodec/metasound.c
index 0ea9088e8d..0cca237c1c 100644
--- a/libavcodec/metasound.c
+++ b/libavcodec/metasound.c
@@ -374,6 +374,5 @@ const FFCodec ff_metasound_decoder = {
     .close          = ff_twinvq_decode_close,
     FF_CODEC_DECODE_CB(ff_twinvq_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/misc4.c b/libavcodec/misc4.c
index ba79b95efe..d92c671d1d 100644
--- a/libavcodec/misc4.c
+++ b/libavcodec/misc4.c
@@ -181,5 +181,4 @@ const FFCodec ff_misc4_decoder = {
     FF_CODEC_DECODE_CB(misc4_decode),
     .p.capabilities   = AV_CODEC_CAP_DR1 |
                         AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
 };
diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index 98ef1732cf..b95cec1f0f 100644
--- a/libavcodec/mpc7.c
+++ b/libavcodec/mpc7.c
@@ -324,5 +324,4 @@ const FFCodec ff_mpc7_decoder = {
     FF_CODEC_DECODE_CB(mpc7_decode_frame),
     .flush          = mpc7_decode_flush,
     .p.capabilities = AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index df23ef3701..aad9f9f173 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -399,5 +399,4 @@ const FFCodec ff_mpc8_decoder = {
     FF_CODEC_DECODE_CB(mpc8_decode_frame),
     .flush          = mpc8_decode_flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
 };
diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c
index bfde5bba26..36477173ff 100644
--- a/libavcodec/nellymoserdec.c
+++ b/libavcodec/nellymoserdec.c
@@ -202,5 +202,4 @@ const FFCodec ff_nellymoser_decoder = {
     .close          = decode_end,
     FF_CODEC_DECODE_CB(decode_tag),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_PARAM_CHANGE | 
AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT),
 };
diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index 57bd5fd6d6..0a912cc30b 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@ -1023,5 +1023,4 @@ const FFCodec ff_on2avc_decoder = {
     .close          = on2avc_decode_close,
     .p.capabilities = AV_CODEC_CAP_DR1,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/osq.c b/libavcodec/osq.c
index 2845c59118..512581e0a4 100644
--- a/libavcodec/osq.c
+++ b/libavcodec/osq.c
@@ -495,6 +495,5 @@ const FFCodec ff_osq_decoder = {
     .p.capabilities   = AV_CODEC_CAP_CHANNEL_CONF |
                         AV_CODEC_CAP_DR1,
     .caps_internal    = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, 
AV_SAMPLE_FMT_S32P),
     .flush            = osq_flush,
 };
diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c
index e3f83e0b0f..194224c67e 100644
--- a/libavcodec/pcm-bluray.c
+++ b/libavcodec/pcm-bluray.c
@@ -307,5 +307,4 @@ const FFCodec ff_pcm_bluray_decoder = {
     .p.id           = AV_CODEC_ID_PCM_BLURAY,
     FF_CODEC_DECODE_CB(pcm_bluray_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
 };
diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c
index 06389a21af..b3f0624b5b 100644
--- a/libavcodec/pcm-dvd.c
+++ b/libavcodec/pcm-dvd.c
@@ -305,5 +305,4 @@ const FFCodec ff_pcm_dvd_decoder = {
     FF_CODEC_DECODE_CB(pcm_dvd_decode_frame),
     .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
                       AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
 };
diff --git a/libavcodec/qoadec.c b/libavcodec/qoadec.c
index 770bbe4706..aa3e30a1b8 100644
--- a/libavcodec/qoadec.c
+++ b/libavcodec/qoadec.c
@@ -165,5 +165,4 @@ const FFCodec ff_qoa_decoder = {
     FF_CODEC_DECODE_CB(qoa_decode_frame),
     .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
                       AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
 };
diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c
index 98e869db1f..7d9037ceaa 100644
--- a/libavcodec/ralf.c
+++ b/libavcodec/ralf.c
@@ -523,6 +523,5 @@ const FFCodec ff_ralf_decoder = {
     .flush          = decode_flush,
     .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
                       AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
index bed9293680..c0325a81f8 100644
--- a/libavcodec/shorten.c
+++ b/libavcodec/shorten.c
@@ -817,5 +817,4 @@ const FFCodec ff_shorten_decoder = {
     .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
                       AV_CODEC_CAP_DELAY |
                       AV_CODEC_CAP_DR1,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_U8P),
 };
diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c
index 1e6e6caebd..42a43e8695 100644
--- a/libavcodec/takdec.c
+++ b/libavcodec/takdec.c
@@ -953,5 +953,4 @@ const FFCodec ff_tak_decoder = {
     FF_CODEC_DECODE_CB(tak_decode_frame),
     UPDATE_THREAD_CONTEXT(update_thread_context),
     .p.capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | 
AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, 
AV_SAMPLE_FMT_S32P),
 };
diff --git a/libavcodec/twinvqdec.c b/libavcodec/twinvqdec.c
index 983a47a65b..180704c932 100644
--- a/libavcodec/twinvqdec.c
+++ b/libavcodec/twinvqdec.c
@@ -423,6 +423,5 @@ const FFCodec ff_twinvq_decoder = {
     .close          = ff_twinvq_decode_close,
     FF_CODEC_DECODE_CB(ff_twinvq_decode_frame),
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c
index 60a83f394f..aff95f44a9 100644
--- a/libavcodec/vorbisdec.c
+++ b/libavcodec/vorbisdec.c
@@ -1896,6 +1896,4 @@ const FFCodec ff_vorbis_decoder = {
     .flush           = vorbis_decode_flush,
     .p.capabilities  = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
     .caps_internal   = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_CH_LAYOUTS_ARRAY(ff_vorbis_ch_layouts),
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
 };
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 78ea25e109..d0607b8305 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -1023,7 +1023,6 @@ const FFCodec ff_wmav1_decoder = {
     FF_CODEC_DECODE_CB(wma_decode_superframe),
     .flush          = flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 #endif
@@ -1039,7 +1038,6 @@ const FFCodec ff_wmav2_decoder = {
     FF_CODEC_DECODE_CB(wma_decode_superframe),
     .flush          = flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 #endif
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index a3385f9b25..72d2f31751 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -1337,5 +1337,4 @@ const FFCodec ff_wmalossless_decoder = {
     .flush          = flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
 };
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
index b15bf31ccc..dd33c56e54 100644
--- a/libavcodec/wmaprodec.c
+++ b/libavcodec/wmaprodec.c
@@ -2097,7 +2097,6 @@ const FFCodec ff_wmapro_decoder = {
     FF_CODEC_DECODE_CB(wmapro_decode_packet),
     .p.capabilities = AV_CODEC_CAP_DR1,
     .flush          = wmapro_flush,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 
@@ -2112,7 +2111,6 @@ const FFCodec ff_xma1_decoder = {
     FF_CODEC_DECODE_CB(xma_decode_packet),
     .flush          = xma_flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
 
@@ -2127,6 +2125,5 @@ const FFCodec ff_xma2_decoder = {
     FF_CODEC_DECODE_CB(xma_decode_packet),
     .flush          = xma_flush,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
-    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };
-- 
2.52.0


>From cfbc2d40c11c3ebea7e77eb36f57b2cb38f12db7 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Fri, 6 Feb 2026 23:28:12 +0100
Subject: [PATCH 4/4] avcodec/libcodec2: Remove always-false checks

Already checked via CODEC_SAMPLERATES and CODEC_SAMPLEFMTS.

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/libcodec2.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c
index 4e82b9711d..8895865721 100644
--- a/libavcodec/libcodec2.c
+++ b/libavcodec/libcodec2.c
@@ -104,13 +104,6 @@ static av_cold int libcodec2_init_encoder(AVCodecContext 
*avctx)
 {
     LibCodec2Context *c2 = avctx->priv_data;
 
-    //will need to be smarter once we get wideband support
-    if (avctx->sample_rate != 8000 ||
-        avctx->sample_fmt != AV_SAMPLE_FMT_S16) {
-        av_log(avctx, AV_LOG_ERROR, "only 8 kHz 16-bit mono allowed\n");
-        return AVERROR(EINVAL);
-    }
-
     avctx->extradata = av_mallocz(CODEC2_EXTRADATA_SIZE + 
AV_INPUT_BUFFER_PADDING_SIZE);
     if (!avctx->extradata) {
         return AVERROR(ENOMEM);
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to