* Re: [FFmpeg-devel] [PATCH 1/2] avcodec/sbcenc: Mark sbc_encode_init() as av_cold
2025-03-06 15:07 [FFmpeg-devel] [PATCH 1/2] avcodec/sbcenc: Mark sbc_encode_init() as av_cold Andreas Rheinhardt
@ 2025-03-07 0:35 ` Andreas Rheinhardt
2025-03-09 4:02 ` Andreas Rheinhardt
2025-03-08 17:31 ` Andreas Rheinhardt
1 sibling, 1 reply; 4+ messages in thread
From: Andreas Rheinhardt @ 2025-03-07 0:35 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1: Type: text/plain, Size: 151 bytes --]
Andreas Rheinhardt:
> Patches attached
>
And here is another one on top of this that gets rid of all the
deprecation warnings with Clang.
- Andreas
[-- Attachment #2: 0003-avcodec-codec_internal-all-Use-macros-to-set-depreca.patch --]
[-- Type: text/x-patch, Size: 192268 bytes --]
From 75dc67e32598537b8c0f1aa32a139a9acfa03ce1 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Fri, 7 Mar 2025 01:19:27 +0100
Subject: [PATCH 3/3] avcodec/codec_internal, all: Use macros to set deprecated
AVCodec fields
The aim of this is twofold: a) Clang warns when setting a deprecated
field in a definition and because several of the widely set
AVCodec fields are deprecated, one gets several hundred warnings
from Clang for an ordinary build. Yet fortunately Clang (unlike GCC)
allows to disable deprecation warnings inside a definition, so
that one can create simple macros to set these fields that also suppress
deprecation warnings for Clang. This has already been done in
fdff1b9cbfd8cf5a9810c29efa4baf13a4786742 for AVCodec.channel_layouts.
b) Using macros will allow to easily migrate these fields to internal ones.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavcodec/8svx.c | 6 ++----
libavcodec/a64multienc.c | 4 ++--
libavcodec/aac/aacdec.c | 12 ++++--------
libavcodec/aac/aacdec_latm.h | 6 ++----
libavcodec/aacenc.c | 5 ++---
libavcodec/ac3dec_fixed.c | 3 +--
libavcodec/ac3dec_float.c | 6 ++----
libavcodec/ac3enc_fixed.c | 7 +++----
libavcodec/ac3enc_float.c | 7 +++----
libavcodec/adpcm.c | 2 +-
libavcodec/adpcmenc.c | 4 ++--
libavcodec/adxdec.c | 3 +--
libavcodec/adxenc.c | 3 +--
libavcodec/alacenc.c | 6 ++----
libavcodec/aliaspixenc.c | 4 +---
libavcodec/amfdec.c | 2 +-
libavcodec/amfenc_av1.c | 2 +-
libavcodec/amfenc_h264.c | 2 +-
libavcodec/amfenc_hevc.c | 2 +-
libavcodec/amrnbdec.c | 3 +--
libavcodec/amrwbdec.c | 3 +--
libavcodec/apac.c | 4 +---
libavcodec/apedec.c | 5 +----
libavcodec/aptxdec.c | 10 ++++------
libavcodec/aptxenc.c | 14 ++++++--------
libavcodec/asvenc.c | 6 ++----
libavcodec/atrac1.c | 3 +--
libavcodec/atrac3.c | 6 ++----
libavcodec/audiotoolboxenc.c | 7 ++-----
libavcodec/avuienc.c | 2 +-
libavcodec/bitpacked_enc.c | 3 +--
libavcodec/bmpenc.c | 12 +++++-------
libavcodec/bonk.c | 3 +--
libavcodec/cfhdenc.c | 7 +------
libavcodec/cinepakenc.c | 2 +-
libavcodec/cljrenc.c | 3 +--
libavcodec/cngdec.c | 3 +--
libavcodec/cngenc.c | 5 ++---
libavcodec/codec_internal.h | 28 +++++++++++++++++++++++++++
libavcodec/cook.c | 3 +--
libavcodec/d3d12va_encode_hevc.c | 5 +----
libavcodec/dcadec.c | 3 +--
libavcodec/dcaenc.c | 16 +++++----------
libavcodec/dfpwmenc.c | 2 +-
libavcodec/dnxhdenc.c | 9 ++-------
libavcodec/dolby_e.c | 2 +-
libavcodec/dpxenc.c | 16 +++++++--------
libavcodec/dsddec.c | 3 +--
libavcodec/dstdec.c | 3 +--
libavcodec/dvenc.c | 5 +----
libavcodec/dxvenc.c | 4 +---
libavcodec/eac3enc.c | 7 +++----
libavcodec/exrenc.c | 6 +-----
libavcodec/fastaudio.c | 3 +--
libavcodec/ffv1enc.c | 7 ++-----
libavcodec/ffv1enc_vulkan.c | 5 +----
libavcodec/fitsenc.c | 9 ++-------
libavcodec/flacdec.c | 7 ++-----
libavcodec/flacenc.c | 4 +---
libavcodec/flashsv2enc.c | 2 +-
libavcodec/flashsvenc.c | 2 +-
libavcodec/flvenc.c | 3 +--
libavcodec/g722enc.c | 6 ++----
libavcodec/g723_1enc.c | 8 ++------
libavcodec/g726.c | 6 ++----
libavcodec/gif.c | 6 ++----
libavcodec/h261enc.c | 3 +--
libavcodec/hapenc.c | 4 +---
libavcodec/hcadec.c | 3 +--
libavcodec/hdrenc.c | 5 +----
libavcodec/huffyuvenc.c | 10 +++-------
libavcodec/imc.c | 6 ++----
libavcodec/ituh263enc.c | 4 ++--
libavcodec/j2kenc.c | 6 ++----
libavcodec/jpeglsenc.c | 7 ++-----
libavcodec/lclenc.c | 2 +-
libavcodec/libcodec2.c | 12 ++++++------
libavcodec/libfdk-aacenc.c | 7 +++----
libavcodec/libgsmenc.c | 10 ++++------
libavcodec/libilbc.c | 3 +--
libavcodec/libjxlenc.c | 4 ++--
libavcodec/libkvazaar.c | 2 +-
libavcodec/liblc3enc.c | 6 ++----
libavcodec/libmp3lame.c | 12 +++---------
libavcodec/libopencore-amr.c | 3 +--
libavcodec/libopenh264enc.c | 4 +---
libavcodec/libopenjpegenc.c | 6 ++----
libavcodec/libopusdec.c | 4 +---
libavcodec/libopusenc.c | 6 ++----
libavcodec/librav1e.c | 2 +-
libavcodec/libshine.c | 10 +++-------
libavcodec/libspeexenc.c | 10 +++-------
libavcodec/libsvtav1.c | 4 +---
libavcodec/libtheoraenc.c | 4 +---
libavcodec/libtwolame.c | 17 ++++------------
libavcodec/libvo-amrwbenc.c | 3 +--
libavcodec/libvorbisenc.c | 3 +--
libavcodec/libvpxenc.c | 2 +-
libavcodec/libvvenc.c | 2 +-
libavcodec/libwebpenc.c | 2 +-
libavcodec/libwebpenc_animencoder.c | 2 +-
libavcodec/libx264.c | 6 +++---
libavcodec/libxavs.c | 2 +-
libavcodec/libxavs2.c | 3 +--
libavcodec/libxeve.c | 2 +-
libavcodec/libxvid.c | 2 +-
libavcodec/ljpegenc.c | 8 +++-----
libavcodec/mace.c | 6 ++----
libavcodec/magicyuvenc.c | 8 +++-----
libavcodec/mediacodecenc.c | 2 +-
libavcodec/metasound.c | 3 +--
libavcodec/mfenc.c | 7 ++-----
libavcodec/misc4.c | 3 +--
libavcodec/mjpegenc.c | 11 +++--------
libavcodec/mlpenc.c | 27 ++++++++++----------------
libavcodec/mpc7.c | 3 +--
libavcodec/mpc8.c | 3 +--
libavcodec/mpeg12enc.c | 11 ++++-------
libavcodec/mpeg4videoenc.c | 2 +-
libavcodec/mpegaudiodec_fixed.c | 19 +++++-------------
libavcodec/mpegaudiodec_float.c | 19 +++++-------------
libavcodec/mpegaudioenc_fixed.c | 11 +++--------
libavcodec/mpegaudioenc_float.c | 11 +++--------
libavcodec/msmpeg4enc.c | 6 +++---
libavcodec/msrleenc.c | 4 +---
libavcodec/msvideo1enc.c | 2 +-
libavcodec/nellymoserdec.c | 3 +--
libavcodec/nellymoserenc.c | 5 ++---
libavcodec/null.c | 15 ++++++---------
libavcodec/nvenc_av1.c | 2 +-
libavcodec/nvenc_h264.c | 2 +-
libavcodec/nvenc_hevc.c | 2 +-
libavcodec/omx.c | 4 ++--
libavcodec/on2avc.c | 3 +--
libavcodec/opus/enc.c | 8 +++-----
libavcodec/osq.c | 5 +----
libavcodec/pamenc.c | 12 +++++-------
libavcodec/pcm-bluray.c | 4 +---
libavcodec/pcm-blurayenc.c | 22 +++++++--------------
libavcodec/pcm-dvd.c | 4 +---
libavcodec/pcm-dvdenc.c | 13 ++++---------
libavcodec/pcm.c | 6 ++----
libavcodec/pcxenc.c | 12 +++++-------
libavcodec/pngenc.c | 27 +++++++++++---------------
libavcodec/pnmenc.c | 26 +++++++------------------
libavcodec/proresenc_anatoliy.c | 4 ++--
libavcodec/proresenc_kostya.c | 5 +----
libavcodec/qoadec.c | 3 +--
libavcodec/qoienc.c | 5 +----
libavcodec/qsvenc_av1.c | 5 +----
libavcodec/qsvenc_h264.c | 4 +---
libavcodec/qsvenc_hevc.c | 15 ++++-----------
libavcodec/qsvenc_jpeg.c | 7 ++-----
libavcodec/qsvenc_mpeg2.c | 4 +---
libavcodec/qsvenc_vp9.c | 8 ++------
libavcodec/qtrleenc.c | 5 ++---
libavcodec/r210enc.c | 6 +++---
libavcodec/ra144enc.c | 7 +++----
libavcodec/ralf.c | 3 +--
libavcodec/roqaudioenc.c | 3 +--
libavcodec/roqvideoenc.c | 3 +--
libavcodec/rpzaenc.c | 3 +--
libavcodec/rv10enc.c | 2 +-
libavcodec/rv20enc.c | 2 +-
libavcodec/s302menc.c | 6 ++----
libavcodec/sbcdec.c | 9 +++------
libavcodec/sbcenc.c | 9 +++------
libavcodec/sgienc.c | 11 ++++-------
libavcodec/shorten.c | 4 +---
libavcodec/smcenc.c | 3 +--
libavcodec/snowenc.c | 7 ++-----
libavcodec/sonic.c | 4 ++--
libavcodec/speedhqenc.c | 5 +----
libavcodec/sunrastenc.c | 9 ++++-----
libavcodec/svq1enc.c | 3 +--
libavcodec/takdec.c | 5 +----
libavcodec/targaenc.c | 6 ++----
libavcodec/tiffenc.c | 6 ++----
libavcodec/ttaenc.c | 5 +----
libavcodec/twinvqdec.c | 3 +--
libavcodec/utvideoenc.c | 6 ++----
libavcodec/v210enc.c | 2 +-
libavcodec/v308enc.c | 2 +-
libavcodec/v408enc.c | 2 +-
libavcodec/v410enc.c | 2 +-
libavcodec/vaapi_encode_av1.c | 5 +----
libavcodec/vaapi_encode_h264.c | 5 +----
libavcodec/vaapi_encode_h265.c | 5 +----
libavcodec/vaapi_encode_mjpeg.c | 5 +----
libavcodec/vaapi_encode_mpeg2.c | 5 +----
libavcodec/vaapi_encode_vp8.c | 5 +----
libavcodec/vaapi_encode_vp9.c | 5 +----
libavcodec/vbnenc.c | 4 +---
libavcodec/vc2enc.c | 2 +-
libavcodec/videotoolboxenc.c | 6 +++---
libavcodec/vorbisdec.c | 5 ++---
libavcodec/vorbisenc.c | 3 +--
libavcodec/vulkan_encode_h264.c | 5 +----
libavcodec/vulkan_encode_h265.c | 5 +----
libavcodec/wavarc.c | 4 +---
libavcodec/wavpackenc.c | 7 ++-----
libavcodec/wbmpenc.c | 5 +----
libavcodec/wmadec.c | 6 ++----
libavcodec/wmaenc.c | 6 ++----
libavcodec/wmalosslessdec.c | 4 +---
libavcodec/wmaprodec.c | 9 +++------
libavcodec/wmv2enc.c | 3 +--
libavcodec/xbmenc.c | 3 +--
libavcodec/xfaceenc.c | 2 +-
libavcodec/xwdenc.c | 30 ++++++++---------------------
libavcodec/y41penc.c | 3 +--
libavcodec/yuv4enc.c | 2 +-
libavcodec/zmbvenc.c | 20 +++++++++++--------
213 files changed, 451 insertions(+), 834 deletions(-)
diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 43567df3d7..18203ee69e 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -198,8 +198,7 @@ const FFCodec ff_eightsvx_fib_decoder = {
FF_CODEC_DECODE_CB(eightsvx_decode_frame),
.close = eightsvx_decode_close,
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P),
};
#endif
#if CONFIG_EIGHTSVX_EXP_DECODER
@@ -213,7 +212,6 @@ const FFCodec ff_eightsvx_exp_decoder = {
FF_CODEC_DECODE_CB(eightsvx_decode_frame),
.close = eightsvx_decode_close,
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P),
};
#endif
diff --git a/libavcodec/a64multienc.c b/libavcodec/a64multienc.c
index 38edbe3a77..d81718dff5 100644
--- a/libavcodec/a64multienc.c
+++ b/libavcodec/a64multienc.c
@@ -403,7 +403,7 @@ const FFCodec ff_a64multi_encoder = {
.init = a64multi_encode_init,
FF_CODEC_ENCODE_CB(a64multi_encode_frame),
.close = a64multi_close_encoder,
- .p.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_GRAY8),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -418,7 +418,7 @@ const FFCodec ff_a64multi5_encoder = {
.init = a64multi_encode_init,
FF_CODEC_ENCODE_CB(a64multi_encode_frame),
.close = a64multi_close_encoder,
- .p.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_GRAY8),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/aac/aacdec.c b/libavcodec/aac/aacdec.c
index 22c70da27f..18e072c0c9 100644
--- a/libavcodec/aac/aacdec.c
+++ b/libavcodec/aac/aacdec.c
@@ -2548,12 +2548,10 @@ const FFCodec ff_aac_decoder = {
.init = ff_aac_decode_init_float,
.close = decode_close,
FF_CODEC_DECODE_CB(aac_decode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.ch_layouts = ff_aac_ch_layout,
+ CODEC_CH_LAYOUTS_ARRAY(ff_aac_ch_layout),
.flush = flush,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
};
@@ -2570,12 +2568,10 @@ const FFCodec ff_aac_fixed_decoder = {
.init = ff_aac_decode_init_fixed,
.close = decode_close,
FF_CODEC_DECODE_CB(aac_decode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.ch_layouts = ff_aac_ch_layout,
+ CODEC_CH_LAYOUTS_ARRAY(ff_aac_ch_layout),
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
.flush = flush,
};
diff --git a/libavcodec/aac/aacdec_latm.h b/libavcodec/aac/aacdec_latm.h
index 047c11e0fb..398d40741b 100644
--- a/libavcodec/aac/aacdec_latm.h
+++ b/libavcodec/aac/aacdec_latm.h
@@ -339,12 +339,10 @@ const FFCodec ff_aac_latm_decoder = {
.init = latm_decode_init,
.close = decode_close,
FF_CODEC_DECODE_CB(latm_decode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.ch_layouts = ff_aac_ch_layout,
+ CODEC_CH_LAYOUTS_ARRAY(ff_aac_ch_layout),
.flush = flush,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
};
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 673bcea5d8..0f124408da 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -1344,9 +1344,8 @@ const FFCodec ff_aac_encoder = {
FF_CODEC_ENCODE_CB(aac_encode_frame),
.close = aac_encode_end,
.defaults = aac_encode_defaults,
- .p.supported_samplerates = ff_mpeg4audio_sample_rates,
+ CODEC_SAMPLERATES_ARRAY(ff_mpeg4audio_sample_rates),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &aacenc_class,
};
diff --git a/libavcodec/ac3dec_fixed.c b/libavcodec/ac3dec_fixed.c
index e284140e74..285553c22e 100644
--- a/libavcodec/ac3dec_fixed.c
+++ b/libavcodec/ac3dec_fixed.c
@@ -186,7 +186,6 @@ const FFCodec ff_ac3_fixed_decoder = {
FF_CODEC_DECODE_CB(ac3_decode_frame),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/ac3dec_float.c b/libavcodec/ac3dec_float.c
index 31f5590729..95a0c424c6 100644
--- a/libavcodec/ac3dec_float.c
+++ b/libavcodec/ac3dec_float.c
@@ -76,8 +76,7 @@ const FFCodec ff_ac3_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
CODEC_LONG_NAME("ATSC A/52A (AC-3)"),
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &ac3_eac3_decoder_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -95,8 +94,7 @@ const FFCodec ff_eac3_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
CODEC_LONG_NAME("ATSC A/52B (AC-3, E-AC-3)"),
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &ac3_eac3_decoder_class,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_eac3_profiles),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c
index 869e1f27a2..42530b0ea1 100644
--- a/libavcodec/ac3enc_fixed.c
+++ b/libavcodec/ac3enc_fixed.c
@@ -119,11 +119,10 @@ const FFCodec ff_ac3_fixed_encoder = {
.init = ac3_fixed_encode_init,
FF_CODEC_ENCODE_CB(ff_ac3_encode_frame),
.close = ff_ac3_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
.p.priv_class = &ff_ac3enc_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.supported_samplerates = ff_ac3_sample_rate_tab,
- .p.ch_layouts = ff_ac3_ch_layouts,
+ CODEC_SAMPLERATES_ARRAY(ff_ac3_sample_rate_tab),
+ CODEC_CH_LAYOUTS_ARRAY(ff_ac3_ch_layouts),
.defaults = ff_ac3_enc_defaults,
};
diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c
index 94e8ebc42d..0ae7ddd7eb 100644
--- a/libavcodec/ac3enc_float.c
+++ b/libavcodec/ac3enc_float.c
@@ -121,11 +121,10 @@ const FFCodec ff_ac3_encoder = {
.init = ff_ac3_float_encode_init,
FF_CODEC_ENCODE_CB(ff_ac3_encode_frame),
.close = ff_ac3_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &ff_ac3enc_class,
- .p.supported_samplerates = ff_ac3_sample_rate_tab,
- .p.ch_layouts = ff_ac3_ch_layouts,
+ CODEC_SAMPLERATES_ARRAY(ff_ac3_sample_rate_tab),
+ CODEC_CH_LAYOUTS_ARRAY(ff_ac3_ch_layouts),
.defaults = ff_ac3_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 41b6ce6f9a..e20b60e05f 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -2395,7 +2395,7 @@ const FFCodec ff_ ## name_ ## _decoder = { \
.p.type = AVMEDIA_TYPE_AUDIO, \
.p.id = id_, \
.p.capabilities = AV_CODEC_CAP_DR1, \
- .p.sample_fmts = sample_fmts_, \
+ CODEC_SAMPLEFMTS_ARRAY(sample_fmts_), \
.priv_data_size = sizeof(ADPCMDecodeContext), \
.init = adpcm_decode_init, \
FF_CODEC_DECODE_CB(adpcm_decode_frame), \
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index 4d7534e47f..96a053351d 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -1002,11 +1002,11 @@ const FFCodec ff_ ## name_ ## _encoder = { \
CODEC_LONG_NAME(long_name_), \
.p.type = AVMEDIA_TYPE_AUDIO, \
.p.id = id_, \
- .p.sample_fmts = sample_fmts_, \
- .p.ch_layouts = ch_layouts, \
.p.capabilities = capabilities_ | AV_CODEC_CAP_DR1 | \
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, \
.p.priv_class = &adpcm_encoder_class, \
+ CODEC_CH_LAYOUTS_ARRAY(ch_layouts), \
+ CODEC_SAMPLEFMTS_ARRAY(sample_fmts_), \
.priv_data_size = sizeof(ADPCMEncodeContext), \
.init = adpcm_encode_init, \
FF_CODEC_ENCODE_CB(adpcm_encode_frame), \
diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c
index 4300dede5e..21be6fea97 100644
--- a/libavcodec/adxdec.c
+++ b/libavcodec/adxdec.c
@@ -264,6 +264,5 @@ const FFCodec ff_adpcm_adx_decoder = {
.flush = adx_decode_flush,
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/adxenc.c b/libavcodec/adxenc.c
index 796efdab63..5a8d4b8625 100644
--- a/libavcodec/adxenc.c
+++ b/libavcodec/adxenc.c
@@ -197,7 +197,6 @@ const FFCodec ff_adpcm_adx_encoder = {
.priv_data_size = sizeof(ADXContext),
.init = adx_encode_init,
FF_CODEC_ENCODE_CB(adx_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.caps_internal = FF_CODEC_CAP_EOF_FLUSH,
};
diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c
index caac624217..474200fee5 100644
--- a/libavcodec/alacenc.c
+++ b/libavcodec/alacenc.c
@@ -646,8 +646,6 @@ const FFCodec ff_alac_encoder = {
.init = alac_encode_init,
FF_CODEC_ENCODE_CB(alac_encode_frame),
.close = alac_encode_close,
- .p.ch_layouts = ff_alac_ch_layouts,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS_ARRAY(ff_alac_ch_layouts),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/aliaspixenc.c b/libavcodec/aliaspixenc.c
index 90d2a63319..ed9202088c 100644
--- a/libavcodec/aliaspixenc.c
+++ b/libavcodec/aliaspixenc.c
@@ -108,7 +108,5 @@ const FFCodec ff_alias_pix_encoder = {
.p.id = AV_CODEC_ID_ALIAS_PIX,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_BGR24, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24, AV_PIX_FMT_GRAY8),
};
diff --git a/libavcodec/amfdec.c b/libavcodec/amfdec.c
index 88e55a7752..44ccd63aaf 100644
--- a/libavcodec/amfdec.c
+++ b/libavcodec/amfdec.c
@@ -705,7 +705,7 @@ const FFCodec ff_##x##_amf_decoder = { \
.bsfs = bsf_name, \
.p.capabilities = AV_CODEC_CAP_HARDWARE | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_AVOID_PROBING, \
.p.priv_class = &amf_decode_class, \
- .p.pix_fmts = amf_dec_pix_fmts, \
+ CODEC_PIXFMTS_ARRAY(amf_dec_pix_fmts), \
.hw_configs = amf_hw_configs, \
.p.wrapper_name = "amf", \
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE, \
diff --git a/libavcodec/amfenc_av1.c b/libavcodec/amfenc_av1.c
index 1821d9ae00..05ad2b8897 100644
--- a/libavcodec/amfenc_av1.c
+++ b/libavcodec/amfenc_av1.c
@@ -713,7 +713,7 @@ const FFCodec ff_av1_amf_encoder = {
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE |
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = ff_amf_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_amf_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.p.wrapper_name = "amf",
.hw_configs = ff_amfenc_hw_configs,
diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index 1a217350ae..4291f0ea64 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -609,7 +609,7 @@ const FFCodec ff_h264_amf_encoder = {
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = ff_amf_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_amf_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.wrapper_name = "amf",
.hw_configs = ff_amfenc_hw_configs,
diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c
index 5e389810c0..81ef1534f5 100644
--- a/libavcodec/amfenc_hevc.c
+++ b/libavcodec/amfenc_hevc.c
@@ -558,7 +558,7 @@ const FFCodec ff_hevc_amf_encoder = {
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = ff_amf_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_amf_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.wrapper_name = "amf",
.hw_configs = ff_amfenc_hw_configs,
diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c
index bfdcbba778..822dc1297b 100644
--- a/libavcodec/amrnbdec.c
+++ b/libavcodec/amrnbdec.c
@@ -1104,6 +1104,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c
index bb0864587a..929fc30a3c 100644
--- a/libavcodec/amrwbdec.c
+++ b/libavcodec/amrwbdec.c
@@ -1307,6 +1307,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/apac.c b/libavcodec/apac.c
index eb05d38636..ed335d69e4 100644
--- a/libavcodec/apac.c
+++ b/libavcodec/apac.c
@@ -274,7 +274,5 @@ const FFCodec ff_apac_decoder = {
#endif
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index d75a85f466..19cab5312e 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -1767,9 +1767,6 @@ const FFCodec ff_ape_decoder = {
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.flush = ape_flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
.p.priv_class = &ape_decoder_class,
};
diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c
index 4b083b6558..35f50052a6 100644
--- a/libavcodec/aptxdec.c
+++ b/libavcodec/aptxdec.c
@@ -183,9 +183,8 @@ const FFCodec ff_aptx_decoder = {
.init = ff_aptx_init,
FF_CODEC_DECODE_CB(aptx_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
};
#endif
@@ -199,8 +198,7 @@ const FFCodec ff_aptx_hd_decoder = {
.init = ff_aptx_init,
FF_CODEC_DECODE_CB(aptx_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
};
#endif
diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c
index 5e041b9a1b..ab02459733 100644
--- a/libavcodec/aptxenc.c
+++ b/libavcodec/aptxenc.c
@@ -276,10 +276,9 @@ const FFCodec ff_aptx_encoder = {
.init = aptx_encode_init,
FF_CODEC_ENCODE_CB(aptx_encode_frame),
.close = aptx_close,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]) {8000, 16000, 24000, 32000, 44100, 48000, 0},
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
+ CODEC_SAMPLERATES(8000, 16000, 24000, 32000, 44100, 48000),
};
#endif
@@ -294,9 +293,8 @@ const FFCodec ff_aptx_hd_encoder = {
.init = aptx_encode_init,
FF_CODEC_ENCODE_CB(aptx_encode_frame),
.close = aptx_close,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]) {8000, 16000, 24000, 32000, 44100, 48000, 0},
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P),
+ CODEC_SAMPLERATES(8000, 16000, 24000, 32000, 44100, 48000),
};
#endif
diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c
index 4f81a4015d..9218a41021 100644
--- a/libavcodec/asvenc.c
+++ b/libavcodec/asvenc.c
@@ -365,8 +365,7 @@ const FFCodec ff_asv1_encoder = {
.priv_data_size = sizeof(ASVEncContext),
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
#endif
@@ -381,8 +380,7 @@ const FFCodec ff_asv2_encoder = {
.priv_data_size = sizeof(ASVEncContext),
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
#endif
diff --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c
index cdcc7a669e..f0bef9b9e6 100644
--- a/libavcodec/atrac1.c
+++ b/libavcodec/atrac1.c
@@ -399,7 +399,6 @@ const FFCodec ff_atrac1_decoder = {
.close = atrac1_decode_end,
FF_CODEC_DECODE_CB(atrac1_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index 39ddfd9e45..756d8f4f71 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -1032,8 +1032,7 @@ const FFCodec ff_atrac3_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -1051,7 +1050,6 @@ const FFCodec ff_atrac3al_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index 908b56055f..d999e5e8a2 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -650,13 +650,10 @@ static const AVOption options[] = {
.p.priv_class = &ffat_##NAME##_enc_class, \
.p.capabilities = AV_CODEC_CAP_DELAY | \
AV_CODEC_CAP_ENCODER_FLUSH CAPS, \
- .p.ch_layouts = CH_LAYOUTS, \
- .p.sample_fmts = (const enum AVSampleFormat[]) { \
- AV_SAMPLE_FMT_S16, \
- AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_NONE \
- }, \
.p.profiles = PROFILES, \
.p.wrapper_name = "at", \
+ CODEC_CH_LAYOUTS_ARRAY(CH_LAYOUTS), \
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_U8), \
};
static const AVChannelLayout aac_at_ch_layouts[] = {
diff --git a/libavcodec/avuienc.c b/libavcodec/avuienc.c
index a2391b31ef..0dea87f104 100644
--- a/libavcodec/avuienc.c
+++ b/libavcodec/avuienc.c
@@ -99,7 +99,7 @@ const FFCodec ff_avui_encoder = {
.p.id = AV_CODEC_ID_AVUI,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_EXPERIMENTAL |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_UYVY422, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_UYVY422),
.color_ranges = AVCOL_RANGE_MPEG,
.init = avui_encode_init,
FF_CODEC_ENCODE_CB(avui_encode_frame),
diff --git a/libavcodec/bitpacked_enc.c b/libavcodec/bitpacked_enc.c
index 3c4e11293d..cde3cf83ee 100644
--- a/libavcodec/bitpacked_enc.c
+++ b/libavcodec/bitpacked_enc.c
@@ -114,6 +114,5 @@ const FFCodec ff_bitpacked_encoder = {
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV422P10,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P10),
};
diff --git a/libavcodec/bmpenc.c b/libavcodec/bmpenc.c
index 48f25170ba..15d6778f24 100644
--- a/libavcodec/bmpenc.c
+++ b/libavcodec/bmpenc.c
@@ -164,11 +164,9 @@ const FFCodec ff_bmp_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = bmp_encode_init,
FF_CODEC_ENCODE_CB(bmp_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR24,
- AV_PIX_FMT_RGB565, AV_PIX_FMT_RGB555, AV_PIX_FMT_RGB444,
- AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE, AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8,
- AV_PIX_FMT_MONOBLACK,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR24,
+ AV_PIX_FMT_RGB565, AV_PIX_FMT_RGB555, AV_PIX_FMT_RGB444,
+ AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE,
+ AV_PIX_FMT_BGR4_BYTE, AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_MONOBLACK),
};
diff --git a/libavcodec/bonk.c b/libavcodec/bonk.c
index 14b7457a1a..77776dfc27 100644
--- a/libavcodec/bonk.c
+++ b/libavcodec/bonk.c
@@ -432,6 +432,5 @@ const FFCodec ff_bonk_decoder = {
#endif
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/cfhdenc.c b/libavcodec/cfhdenc.c
index ceea15efc4..42e01bfd85 100644
--- a/libavcodec/cfhdenc.c
+++ b/libavcodec/cfhdenc.c
@@ -864,12 +864,7 @@ const FFCodec ff_cfhd_encoder = {
.init = cfhd_encode_init,
.close = cfhd_encode_close,
FF_CODEC_ENCODE_CB(cfhd_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUV422P10,
- AV_PIX_FMT_GBRP12,
- AV_PIX_FMT_GBRAP12,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRAP12),
.color_ranges = AVCOL_RANGE_MPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/cinepakenc.c b/libavcodec/cinepakenc.c
index f6145131a2..104a9f485e 100644
--- a/libavcodec/cinepakenc.c
+++ b/libavcodec/cinepakenc.c
@@ -1223,7 +1223,7 @@ const FFCodec ff_cinepak_encoder = {
.init = cinepak_encode_init,
FF_CODEC_ENCODE_CB(cinepak_encode_frame),
.close = cinepak_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_GRAY8),
.p.priv_class = &cinepak_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/cljrenc.c b/libavcodec/cljrenc.c
index 4698dfd725..3b71a85aa9 100644
--- a/libavcodec/cljrenc.c
+++ b/libavcodec/cljrenc.c
@@ -116,8 +116,7 @@ const FFCodec ff_cljr_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.priv_data_size = sizeof(CLJRContext),
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV411P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV411P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &cljr_class,
};
diff --git a/libavcodec/cngdec.c b/libavcodec/cngdec.c
index bacbd54fab..dfcc685e7e 100644
--- a/libavcodec/cngdec.c
+++ b/libavcodec/cngdec.c
@@ -173,8 +173,7 @@ const FFCodec ff_comfortnoise_decoder = {
FF_CODEC_DECODE_CB(cng_decode_frame),
.flush = cng_decode_flush,
.close = cng_decode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ 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/cngenc.c b/libavcodec/cngenc.c
index c430136809..69501dae6f 100644
--- a/libavcodec/cngenc.c
+++ b/libavcodec/cngenc.c
@@ -108,8 +108,7 @@ const FFCodec ff_comfortnoise_encoder = {
.init = cng_encode_init,
FF_CODEC_ENCODE_CB(cng_encode_frame),
.close = cng_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/codec_internal.h b/libavcodec/codec_internal.h
index 473d72fdbb..b2df8e729a 100644
--- a/libavcodec/codec_internal.h
+++ b/libavcodec/codec_internal.h
@@ -327,6 +327,34 @@ int ff_default_get_supported_config(const struct AVCodecContext *avctx,
.cb_type = FF_CODEC_CB_TYPE_RECEIVE_PACKET, \
.cb.receive_packet = (func)
+#ifdef __clang__
+#define DISABLE_DEPRECATION_WARNINGS FF_DISABLE_DEPRECATION_WARNINGS
+#define ENABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS
+#else
+#define DISABLE_DEPRECATION_WARNINGS
+#define ENABLE_DEPRECATION_WARNINGS
+#endif
+
+#define CODEC_CH_LAYOUTS(...) CODEC_CH_LAYOUTS_ARRAY(((const AVChannelLayout[]) { __VA_ARGS__, { 0 } }))
+#define CODEC_CH_LAYOUTS_ARRAY(array) CODEC_ARRAY(ch_layouts, (array))
+
+#define CODEC_SAMPLERATES(...) CODEC_SAMPLERATES_ARRAY(((const int[]) { __VA_ARGS__, 0 }))
+#define CODEC_SAMPLERATES_ARRAY(array) CODEC_ARRAY(supported_samplerates, (array))
+
+#define CODEC_SAMPLEFMTS(...) CODEC_SAMPLEFMTS_ARRAY(((const enum AVSampleFormat[]) { __VA_ARGS__, AV_SAMPLE_FMT_NONE }))
+#define CODEC_SAMPLEFMTS_ARRAY(array) CODEC_ARRAY(sample_fmts, (array))
+
+#define CODEC_FRAMERATES(...) CODEC_FRAMERATES_ARRAY(((const AVRational[]) { __VA_ARGS__, { 0, 0 } }))
+#define CODEC_FRAMERATES_ARRAY(array) CODEC_ARRAY(supported_framerates, (array))
+
+#define CODEC_PIXFMTS(...) CODEC_PIXFMTS_ARRAY(((const enum AVPixelFormat[]) { __VA_ARGS__, AV_PIX_FMT_NONE }))
+#define CODEC_PIXFMTS_ARRAY(array) CODEC_ARRAY(pix_fmts, (array))
+
+#define CODEC_ARRAY(field, array) \
+ DISABLE_DEPRECATION_WARNINGS \
+ .p.field = (array) \
+ ENABLE_DEPRECATION_WARNINGS
+
static av_always_inline const FFCodec *ffcodec(const AVCodec *codec)
{
return (const FFCodec*)codec;
diff --git a/libavcodec/cook.c b/libavcodec/cook.c
index dbe6b5b96c..f627967ffb 100644
--- a/libavcodec/cook.c
+++ b/libavcodec/cook.c
@@ -1308,7 +1308,6 @@ const FFCodec ff_cook_decoder = {
.close = cook_decode_close,
FF_CODEC_DECODE_CB(cook_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/d3d12va_encode_hevc.c b/libavcodec/d3d12va_encode_hevc.c
index 644aeab7df..4c0a8c09f9 100644
--- a/libavcodec/d3d12va_encode_hevc.c
+++ b/libavcodec/d3d12va_encode_hevc.c
@@ -788,10 +788,7 @@ const FFCodec ff_hevc_d3d12va_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = d3d12va_encode_hevc_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_D3D12,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_D3D12),
.hw_configs = ff_d3d12va_encode_hw_configs,
.p.wrapper_name = "d3d12va",
};
diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index 86d86ea458..4572cf4490 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -416,8 +416,7 @@ const FFCodec ff_dca_decoder = {
.close = dcadec_close,
.flush = dcadec_flush,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE },
+ 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/dcaenc.c b/libavcodec/dcaenc.c
index 83f13472d3..94b0ff7673 100644
--- a/libavcodec/dcaenc.c
+++ b/libavcodec/dcaenc.c
@@ -1322,17 +1322,11 @@ const FFCodec ff_dca_encoder = {
.close = encode_close,
FF_CODEC_ENCODE_CB(encode_frame),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = sample_rates,
- .p.ch_layouts = (const AVChannelLayout[]){
- AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- AV_CHANNEL_LAYOUT_2_2,
- AV_CHANNEL_LAYOUT_5POINT0,
- AV_CHANNEL_LAYOUT_5POINT1,
- { 0 },
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32),
+ CODEC_SAMPLERATES_ARRAY(sample_rates),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO,
+ AV_CHANNEL_LAYOUT_2_2, AV_CHANNEL_LAYOUT_5POINT0,
+ AV_CHANNEL_LAYOUT_5POINT1),
.defaults = defaults,
.p.priv_class = &dcaenc_class,
};
diff --git a/libavcodec/dfpwmenc.c b/libavcodec/dfpwmenc.c
index 5318b04a39..ee3005fa5c 100644
--- a/libavcodec/dfpwmenc.c
+++ b/libavcodec/dfpwmenc.c
@@ -115,7 +115,7 @@ const FFCodec ff_dfpwm_encoder = {
.priv_data_size = sizeof(DFPWMState),
.init = dfpwm_enc_init,
FF_CODEC_ENCODE_CB(dfpwm_enc_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_NONE},
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8),
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_VARIABLE_FRAME_SIZE |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
};
diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c
index b12a2e8851..6009e392f8 100644
--- a/libavcodec/dnxhdenc.c
+++ b/libavcodec/dnxhdenc.c
@@ -1360,13 +1360,8 @@ const FFCodec ff_dnxhd_encoder = {
.init = dnxhd_encode_init,
FF_CODEC_ENCODE_CB(dnxhd_encode_picture),
.close = dnxhd_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_YUV422P10,
- AV_PIX_FMT_YUV444P10,
- AV_PIX_FMT_GBRP10,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV422P10,
+ AV_PIX_FMT_YUV444P10, AV_PIX_FMT_GBRP10),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &dnxhd_class,
.defaults = dnxhd_defaults,
diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c
index 9c3f6006c2..bbcb747c06 100644
--- a/libavcodec/dolby_e.c
+++ b/libavcodec/dolby_e.c
@@ -1310,6 +1310,6 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c
index e136cc1b9e..400ff98395 100644
--- a/libavcodec/dpxenc.c
+++ b/libavcodec/dpxenc.c
@@ -283,13 +283,11 @@ const FFCodec ff_dpx_encoder = {
.priv_data_size = sizeof(DPXContext),
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR,
- AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE,
- AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
- AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
- AV_PIX_FMT_GBRP10LE, AV_PIX_FMT_GBRP10BE,
- AV_PIX_FMT_GBRP12LE, AV_PIX_FMT_GBRP12BE,
- AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_GRAY8,
+ AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR,
+ AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE,
+ AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
+ AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
+ AV_PIX_FMT_GBRP10LE, AV_PIX_FMT_GBRP10BE,
+ AV_PIX_FMT_GBRP12LE, AV_PIX_FMT_GBRP12BE),
};
diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c
index dd1ea83784..793cfc9f06 100644
--- a/libavcodec/dsddec.c
+++ b/libavcodec/dsddec.c
@@ -126,8 +126,7 @@ 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, \
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, \
- AV_SAMPLE_FMT_NONE }, \
+ 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 4b1762db33..cfb34b7b3c 100644
--- a/libavcodec/dstdec.c
+++ b/libavcodec/dstdec.c
@@ -392,6 +392,5 @@ const FFCodec ff_dst_decoder = {
.init = decode_init,
FF_CODEC_DECODE_CB(decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT),
};
diff --git a/libavcodec/dvenc.c b/libavcodec/dvenc.c
index db79497b50..c7fc930b4b 100644
--- a/libavcodec/dvenc.c
+++ b/libavcodec/dvenc.c
@@ -1247,10 +1247,7 @@ const FFCodec ff_dvvideo_encoder = {
.priv_data_size = sizeof(DVEncContext),
.init = dvvideo_encode_init,
FF_CODEC_ENCODE_CB(dvvideo_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &dvvideo_encode_class,
};
diff --git a/libavcodec/dxvenc.c b/libavcodec/dxvenc.c
index 8229438373..808d8daedb 100644
--- a/libavcodec/dxvenc.c
+++ b/libavcodec/dxvenc.c
@@ -351,8 +351,6 @@ const FFCodec ff_dxv_encoder = {
AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_FRAME_THREADS,
.p.priv_class = &dxvenc_class,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGBA, AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGBA),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 8ef3e7e773..3590b821a3 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -273,11 +273,10 @@ const FFCodec ff_eac3_encoder = {
.init = eac3_encode_init,
FF_CODEC_ENCODE_CB(ff_ac3_encode_frame),
.close = ff_ac3_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &eac3enc_class,
- .p.supported_samplerates = ff_ac3_sample_rate_tab,
- .p.ch_layouts = ff_ac3_ch_layouts,
+ CODEC_SAMPLERATES_ARRAY(ff_ac3_sample_rate_tab),
+ CODEC_CH_LAYOUTS_ARRAY(ff_ac3_ch_layouts),
.defaults = ff_ac3_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/exrenc.c b/libavcodec/exrenc.c
index 71ec07054e..e6424092a5 100644
--- a/libavcodec/exrenc.c
+++ b/libavcodec/exrenc.c
@@ -551,9 +551,5 @@ const FFCodec ff_exr_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_GRAYF32,
- AV_PIX_FMT_GBRPF32,
- AV_PIX_FMT_GBRAPF32,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_GRAYF32, AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32),
};
diff --git a/libavcodec/fastaudio.c b/libavcodec/fastaudio.c
index 33ad26f8a1..b9d7a30b11 100644
--- a/libavcodec/fastaudio.c
+++ b/libavcodec/fastaudio.c
@@ -195,6 +195,5 @@ const FFCodec ff_fastaudio_decoder = {
FF_CODEC_DECODE_CB(fastaudio_decode),
.close = fastaudio_close,
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 2e3262db54..0142e8d2e5 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -1391,7 +1391,7 @@ const FFCodec ff_ffv1_encoder = {
.init = encode_init_internal,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
+ CODEC_PIXFMTS(
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV444P,
AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV411P,
AV_PIX_FMT_YUV410P, AV_PIX_FMT_0RGB32, AV_PIX_FMT_RGB32, AV_PIX_FMT_YUV420P16,
@@ -1411,10 +1411,7 @@ const FFCodec ff_ffv1_encoder = {
AV_PIX_FMT_GBRAP16, AV_PIX_FMT_RGBA64,
AV_PIX_FMT_GRAY9,
AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV444P14,
- AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV440P12,
- AV_PIX_FMT_NONE
-
- },
+ AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV440P12),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ffv1_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_EOF_FLUSH,
diff --git a/libavcodec/ffv1enc_vulkan.c b/libavcodec/ffv1enc_vulkan.c
index 6a12ee2055..2bbf310fce 100644
--- a/libavcodec/ffv1enc_vulkan.c
+++ b/libavcodec/ffv1enc_vulkan.c
@@ -1854,10 +1854,7 @@ const FFCodec ff_ffv1_vulkan_encoder = {
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_EOF_FLUSH,
.defaults = vulkan_encode_ffv1_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VULKAN,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VULKAN),
.hw_configs = vulkan_encode_ffv1_hw_configs,
.p.wrapper_name = "vulkan",
};
diff --git a/libavcodec/fitsenc.c b/libavcodec/fitsenc.c
index 86ea11f0c0..2a31514068 100644
--- a/libavcodec/fitsenc.c
+++ b/libavcodec/fitsenc.c
@@ -117,11 +117,6 @@ const FFCodec ff_fits_encoder = {
.p.id = AV_CODEC_ID_FITS,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(fits_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_GBRAP16BE,
- AV_PIX_FMT_GBRP16BE,
- AV_PIX_FMT_GBRP,
- AV_PIX_FMT_GBRAP,
- AV_PIX_FMT_GRAY16BE,
- AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRAP16BE, AV_PIX_FMT_GBRP16BE, AV_PIX_FMT_GBRP,
+ AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY8),
};
diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
index ad921a1bd1..0c88f577a1 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -827,10 +827,7 @@ const FFCodec ff_flac_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1 |
AV_CODEC_CAP_FRAME_THREADS,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P,
+ AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P),
.p.priv_class = &flac_decoder_class,
};
diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
index 3a9578f5cd..c6b9eb437a 100644
--- a/libavcodec/flacenc.c
+++ b/libavcodec/flacenc.c
@@ -1760,9 +1760,7 @@ const FFCodec ff_flac_encoder = {
.init = flac_encode_init,
FF_CODEC_ENCODE_CB(flac_encode_frame),
.close = flac_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
.p.priv_class = &flac_encoder_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_EOF_FLUSH,
};
diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c
index 6156d00d0d..91d65082fb 100644
--- a/libavcodec/flashsv2enc.c
+++ b/libavcodec/flashsv2enc.c
@@ -920,6 +920,6 @@ const FFCodec ff_flashsv2_encoder = {
.init = flashsv2_encode_init,
FF_CODEC_ENCODE_CB(flashsv2_encode_frame),
.close = flashsv2_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c
index f650e517d0..bd4c8651e2 100644
--- a/libavcodec/flashsvenc.c
+++ b/libavcodec/flashsvenc.c
@@ -262,5 +262,5 @@ const FFCodec ff_flashsv_encoder = {
.init = flashsv_encode_init,
FF_CODEC_ENCODE_CB(flashsv_encode_frame),
.close = flashsv_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24),
};
diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c
index cbe3b7f056..497df7839e 100644
--- a/libavcodec/flvenc.c
+++ b/libavcodec/flvenc.c
@@ -104,7 +104,6 @@ const FFCodec ff_flv_encoder = {
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
diff --git a/libavcodec/g722enc.c b/libavcodec/g722enc.c
index 19ab0f8b55..fc3db7cc8b 100644
--- a/libavcodec/g722enc.c
+++ b/libavcodec/g722enc.c
@@ -382,9 +382,7 @@ const FFCodec ff_adpcm_g722_encoder = {
.init = g722_encode_init,
.close = g722_encode_close,
FF_CODEC_ENCODE_CB(g722_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]){
- AV_CHANNEL_LAYOUT_MONO, { 0 }
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/g723_1enc.c b/libavcodec/g723_1enc.c
index be80153130..ee5b0fe251 100644
--- a/libavcodec/g723_1enc.c
+++ b/libavcodec/g723_1enc.c
@@ -1246,10 +1246,6 @@ const FFCodec ff_g723_1_encoder = {
.init = g723_1_encode_init,
FF_CODEC_ENCODE_CB(g723_1_encode_frame),
.defaults = defaults,
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
- },
- .p.ch_layouts = (const AVChannelLayout[]){
- AV_CHANNEL_LAYOUT_MONO, { 0 }
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
};
diff --git a/libavcodec/g726.c b/libavcodec/g726.c
index e048cd973e..5491b7eb7a 100644
--- a/libavcodec/g726.c
+++ b/libavcodec/g726.c
@@ -410,8 +410,7 @@ const FFCodec ff_adpcm_g726_encoder = {
.priv_data_size = sizeof(G726Context),
.init = g726_encode_init,
FF_CODEC_ENCODE_CB(g726_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.priv_class = &g726_class,
.defaults = defaults,
};
@@ -428,8 +427,7 @@ const FFCodec ff_adpcm_g726le_encoder = {
.priv_data_size = sizeof(G726Context),
.init = g726_encode_init,
FF_CODEC_ENCODE_CB(g726_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.priv_class = &g726_class,
.defaults = defaults,
};
diff --git a/libavcodec/gif.c b/libavcodec/gif.c
index c36fa66737..04f5341ea7 100644
--- a/libavcodec/gif.c
+++ b/libavcodec/gif.c
@@ -559,10 +559,8 @@ const FFCodec ff_gif_encoder = {
.init = gif_encode_init,
FF_CODEC_ENCODE_CB(gif_encode_frame),
.close = gif_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE,
+ AV_PIX_FMT_BGR4_BYTE, AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8),
.p.priv_class = &gif_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c
index dabab9d80a..7f0a3819cf 100644
--- a/libavcodec/h261enc.c
+++ b/libavcodec/h261enc.c
@@ -389,7 +389,6 @@ const FFCodec ff_h261_encoder = {
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
diff --git a/libavcodec/hapenc.c b/libavcodec/hapenc.c
index 8dc12a851c..c4b790035f 100644
--- a/libavcodec/hapenc.c
+++ b/libavcodec/hapenc.c
@@ -361,8 +361,6 @@ const FFCodec ff_hap_encoder = {
.init = hap_init,
FF_CODEC_ENCODE_CB(hap_encode),
.close = hap_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGBA, AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGBA),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/hcadec.c b/libavcodec/hcadec.c
index e8f877c3cf..feb3dce3de 100644
--- a/libavcodec/hcadec.c
+++ b/libavcodec/hcadec.c
@@ -634,6 +634,5 @@ const FFCodec ff_hca_decoder = {
.close = decode_close,
.p.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/hdrenc.c b/libavcodec/hdrenc.c
index a7bf36946d..71478475e0 100644
--- a/libavcodec/hdrenc.c
+++ b/libavcodec/hdrenc.c
@@ -182,9 +182,6 @@ const FFCodec ff_hdr_encoder = {
.init = hdr_encode_init,
FF_CODEC_ENCODE_CB(hdr_encode_frame),
.close = hdr_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_GBRPF32,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRPF32),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c
index 5e8b5c0dd7..b213d4dc95 100644
--- a/libavcodec/huffyuvenc.c
+++ b/libavcodec/huffyuvenc.c
@@ -1022,10 +1022,7 @@ const FFCodec ff_huffyuv_encoder = {
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
.p.priv_class = &normal_class,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_YUV422P, AV_PIX_FMT_RGB24,
- AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P, AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB32),
.color_ranges = AVCOL_RANGE_MPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -1050,7 +1047,7 @@ const FFCodec ff_ffvhuff_encoder = {
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
.p.priv_class = &ff_class,
- .p.pix_fmts = (const enum AVPixelFormat[]){
+ CODEC_PIXFMTS(
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P,
AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P,
AV_PIX_FMT_GBRP,
@@ -1065,8 +1062,7 @@ const FFCodec ff_ffvhuff_encoder = {
AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA422P16,
AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUVA444P16,
AV_PIX_FMT_RGB24,
- AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE
- },
+ AV_PIX_FMT_RGB32),
.color_ranges = AVCOL_RANGE_MPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 5891e3621a..76df971aaa 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -1031,8 +1031,7 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -1048,8 +1047,7 @@ const FFCodec ff_iac_decoder = {
FF_CODEC_DECODE_CB(imc_decode_frame),
.flush = flush,
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index 1ef4a8f88e..31e04a5c94 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -919,7 +919,7 @@ const FFCodec ff_h263_encoder = {
CODEC_LONG_NAME("H.263 / H.263-1996"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_H263,
- .p.pix_fmts = (const enum AVPixelFormat[]){AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &h263_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
@@ -951,7 +951,7 @@ const FFCodec ff_h263p_encoder = {
CODEC_LONG_NAME("H.263+ / H.263-1998 / H.263 version 2"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_H263P,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &h263p_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS |
diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c
index 60cc0f3093..0f6406df2d 100644
--- a/libavcodec/j2kenc.c
+++ b/libavcodec/j2kenc.c
@@ -1845,7 +1845,7 @@ const FFCodec ff_jpeg2000_encoder = {
.init = j2kenc_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = j2kenc_destroy,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
+ CODEC_PIXFMTS(
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48,
AV_PIX_FMT_GBR24P,AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16,
@@ -1862,9 +1862,7 @@ const FFCodec ff_jpeg2000_encoder = {
AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA422P16,
AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUVA444P16,
- AV_PIX_FMT_PAL8,
- AV_PIX_FMT_NONE
- },
+ AV_PIX_FMT_PAL8),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &j2k_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c
index d2f4a52f24..edc3fa600c 100644
--- a/libavcodec/jpeglsenc.c
+++ b/libavcodec/jpeglsenc.c
@@ -484,10 +484,7 @@ const FFCodec ff_jpegls_encoder = {
.init = encode_jpegls_init,
FF_CODEC_ENCODE_CB(encode_picture_ls),
.close = encode_jpegls_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c
index dd5eed9d63..f328e12627 100644
--- a/libavcodec/lclenc.c
+++ b/libavcodec/lclenc.c
@@ -162,6 +162,6 @@ const FFCodec ff_zlib_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c
index ebcd20c447..b0ba01bcb4 100644
--- a/libavcodec/libcodec2.c
+++ b/libavcodec/libcodec2.c
@@ -182,9 +182,9 @@ const FFCodec ff_libcodec2_decoder = {
.p.type = AVMEDIA_TYPE_AUDIO,
.p.id = AV_CODEC_ID_CODEC2,
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF,
- .p.supported_samplerates = (const int[]){ 8000, 0 },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
+ 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,
@@ -199,9 +199,9 @@ const FFCodec ff_libcodec2_encoder = {
.p.id = AV_CODEC_ID_CODEC2,
.p.capabilities = AV_CODEC_CAP_DR1 |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.supported_samplerates = (const int[]){ 8000, 0 },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
+ CODEC_SAMPLERATES(8000),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
.p.priv_class = &libcodec2_enc_class,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE,
.priv_data_size = sizeof(LibCodec2Context),
diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
index 4dcfb25db7..1a3f127d37 100644
--- a/libavcodec/libfdk-aacenc.c
+++ b/libavcodec/libfdk-aacenc.c
@@ -607,12 +607,11 @@ const FFCodec ff_libfdk_aac_encoder = {
FF_CODEC_ENCODE_CB(aac_encode_frame),
.flush = aac_encode_flush,
.close = aac_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.priv_class = &aac_enc_class,
.defaults = aac_encode_defaults,
.p.profiles = profiles,
- .p.supported_samplerates = aac_sample_rates,
+ CODEC_SAMPLERATES_ARRAY(aac_sample_rates),
.p.wrapper_name = "libfdk",
- .p.ch_layouts = aac_ch_layouts,
+ CODEC_CH_LAYOUTS_ARRAY(aac_ch_layouts),
};
diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c
index 505b6afb07..6b4786a8a5 100644
--- a/libavcodec/libgsmenc.c
+++ b/libavcodec/libgsmenc.c
@@ -127,9 +127,8 @@ const FFCodec ff_libgsm_encoder = {
FF_CODEC_ENCODE_CB(libgsm_encode_frame),
.close = libgsm_encode_close,
.defaults = libgsm_defaults,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.wrapper_name = "libgsm",
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE,
};
@@ -145,9 +144,8 @@ const FFCodec ff_libgsm_ms_encoder = {
FF_CODEC_ENCODE_CB(libgsm_encode_frame),
.close = libgsm_encode_close,
.defaults = libgsm_defaults,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.wrapper_name = "libgsm",
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE,
};
diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c
index 9ca90bf0c6..f496f16db9 100644
--- a/libavcodec/libilbc.c
+++ b/libavcodec/libilbc.c
@@ -210,8 +210,7 @@ const FFCodec ff_libilbc_encoder = {
.priv_data_size = sizeof(ILBCEncContext),
.init = ilbc_encode_init,
FF_CODEC_ENCODE_CB(ilbc_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.defaults = ilbc_encode_defaults,
.p.priv_class = &ilbc_enc_class,
.p.wrapper_name = "libbilbc",
diff --git a/libavcodec/libjxlenc.c b/libavcodec/libjxlenc.c
index 7e1abe385d..81d466e6cc 100644
--- a/libavcodec/libjxlenc.c
+++ b/libavcodec/libjxlenc.c
@@ -699,7 +699,7 @@ const FFCodec ff_libjxl_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_AUTO_THREADS | FF_CODEC_CAP_INIT_CLEANUP |
FF_CODEC_CAP_ICC_PROFILES,
- .p.pix_fmts = libjxl_supported_pixfmts,
+ CODEC_PIXFMTS_ARRAY(libjxl_supported_pixfmts),
.p.priv_class = &libjxl_encode_class,
.p.wrapper_name = "libjxl",
};
@@ -719,7 +719,7 @@ const FFCodec ff_libjxl_anim_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_AUTO_THREADS | FF_CODEC_CAP_INIT_CLEANUP |
FF_CODEC_CAP_ICC_PROFILES,
- .p.pix_fmts = libjxl_supported_pixfmts,
+ CODEC_PIXFMTS_ARRAY(libjxl_supported_pixfmts),
.p.priv_class = &libjxl_encode_class,
.p.wrapper_name = "libjxl",
};
diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
index e82be2a35f..953b893b59 100644
--- a/libavcodec/libkvazaar.c
+++ b/libavcodec/libkvazaar.c
@@ -333,7 +333,7 @@ const FFCodec ff_libkvazaar_encoder = {
.p.id = AV_CODEC_ID_HEVC,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_OTHER_THREADS,
- .p.pix_fmts = pix_fmts,
+ CODEC_PIXFMTS_ARRAY(pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
diff --git a/libavcodec/liblc3enc.c b/libavcodec/liblc3enc.c
index 3c0bcc6840..66007a90f3 100644
--- a/libavcodec/liblc3enc.c
+++ b/libavcodec/liblc3enc.c
@@ -201,12 +201,10 @@ const FFCodec ff_liblc3_encoder = {
.p.type = AVMEDIA_TYPE_AUDIO,
.p.id = AV_CODEC_ID_LC3,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
- .p.supported_samplerates = (const int [])
- { 96000, 48000, 32000, 24000, 16000, 8000, 0 },
- .p.sample_fmts = (const enum AVSampleFormat[])
- { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE },
.p.priv_class = &class,
.p.wrapper_name = "liblc3",
+ CODEC_SAMPLERATES(96000, 48000, 32000, 24000, 16000, 8000),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.priv_data_size = sizeof(LibLC3EncContext),
.init = liblc3_encode_init,
.close = liblc3_encode_close,
diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c
index 42558178e8..01b8985b8c 100644
--- a/libavcodec/libmp3lame.c
+++ b/libavcodec/libmp3lame.c
@@ -348,15 +348,9 @@ const FFCodec ff_libmp3lame_encoder = {
.init = mp3lame_encode_init,
FF_CODEC_ENCODE_CB(mp3lame_encode_frame),
.close = mp3lame_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = libmp3lame_sample_rates,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 },
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16P),
+ CODEC_SAMPLERATES_ARRAY(libmp3lame_sample_rates),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
.p.priv_class = &libmp3lame_class,
.defaults = libmp3lame_defaults,
.p.wrapper_name = "libmp3lame",
diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index b127b33101..95c7b9b137 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -302,8 +302,7 @@ const FFCodec ff_libopencore_amrnb_encoder = {
.init = amr_nb_encode_init,
FF_CODEC_ENCODE_CB(amr_nb_encode_frame),
.close = amr_nb_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.p.priv_class = &amrnb_class,
};
#endif /* CONFIG_LIBOPENCORE_AMRNB_ENCODER */
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c
index 7107c1a679..78b5dc959d 100644
--- a/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c
@@ -442,9 +442,7 @@ const FFCodec ff_libopenh264_encoder = {
.close = svc_encode_close,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP |
FF_CODEC_CAP_AUTO_THREADS,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_YUVJ420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.defaults = svc_enc_defaults,
.p.priv_class = &class,
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index 01b67dffda..b797d34e1c 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -765,7 +765,7 @@ const FFCodec ff_libopenjpeg_encoder = {
FF_CODEC_ENCODE_CB(libopenjpeg_encode_frame),
.p.capabilities = AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
+ CODEC_PIXFMTS(
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48,
AV_PIX_FMT_RGBA64, AV_PIX_FMT_GBR24P,
AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
@@ -782,9 +782,7 @@ const FFCodec ff_libopenjpeg_encoder = {
AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV444P14,
AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16,
AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA444P16,
- AV_PIX_FMT_XYZ12,
- AV_PIX_FMT_NONE
- },
+ AV_PIX_FMT_XYZ12),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &openjpeg_class,
.p.wrapper_name = "libopenjpeg",
diff --git a/libavcodec/libopusdec.c b/libavcodec/libopusdec.c
index 9b9a610343..c602499b7c 100644
--- a/libavcodec/libopusdec.c
+++ b/libavcodec/libopusdec.c
@@ -244,9 +244,7 @@ const FFCodec ff_libopus_decoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16),
.p.priv_class = &libopusdec_class,
.p.wrapper_name = "libopus",
};
diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index 6b8b2cda0e..131886c8ea 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -592,10 +592,8 @@ const FFCodec ff_libopus_encoder = {
.init = libopus_encode_init,
FF_CODEC_ENCODE_CB(libopus_encode),
.close = libopus_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = libopus_sample_rates,
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT),
+ CODEC_SAMPLERATES_ARRAY(libopus_sample_rates),
.p.priv_class = &libopus_class,
.defaults = libopus_defaults,
.p.wrapper_name = "libopus",
diff --git a/libavcodec/librav1e.c b/libavcodec/librav1e.c
index 546d00297d..3e87e4742e 100644
--- a/libavcodec/librav1e.c
+++ b/libavcodec/librav1e.c
@@ -667,7 +667,7 @@ const FFCodec ff_librav1e_encoder = {
.priv_data_size = sizeof(librav1eContext),
.p.priv_class = &class,
.defaults = librav1e_defaults,
- .p.pix_fmts = librav1e_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(librav1e_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS |
AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_RECON_FRAME |
diff --git a/libavcodec/libshine.c b/libavcodec/libshine.c
index 333d86f774..aa71383bfb 100644
--- a/libavcodec/libshine.c
+++ b/libavcodec/libshine.c
@@ -137,12 +137,8 @@ const FFCodec ff_libshine_encoder = {
.init = libshine_encode_init,
FF_CODEC_ENCODE_CB(libshine_encode_frame),
.close = libshine_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = libshine_sample_rates,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 },
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
+ CODEC_SAMPLERATES_ARRAY(libshine_sample_rates),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
.p.wrapper_name = "libshine",
};
diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c
index 7b19db5a2a..6f2d1ac7e9 100644
--- a/libavcodec/libspeexenc.c
+++ b/libavcodec/libspeexenc.c
@@ -353,13 +353,9 @@ const FFCodec ff_libspeex_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 },
- },
- .p.supported_samplerates = (const int[]){ 8000, 16000, 32000, 0 },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLERATES(8000, 16000, 32000),
.p.priv_class = &speex_class,
.defaults = defaults,
.p.wrapper_name = "libspeex",
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 43fe531fde..687b318c3d 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -770,9 +770,7 @@ const FFCodec ff_libsvtav1_encoder = {
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_AUTO_THREADS | FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_YUV420P10,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P10),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = eb_enc_defaults,
diff --git a/libavcodec/libtheoraenc.c b/libavcodec/libtheoraenc.c
index 761cd45d44..eb94458639 100644
--- a/libavcodec/libtheoraenc.c
+++ b/libavcodec/libtheoraenc.c
@@ -388,9 +388,7 @@ const FFCodec ff_libtheora_encoder = {
.init = encode_init,
.close = encode_close,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.wrapper_name = "libtheora",
};
diff --git a/libavcodec/libtwolame.c b/libavcodec/libtwolame.c
index f3bd4771d7..18b40dafcc 100644
--- a/libavcodec/libtwolame.c
+++ b/libavcodec/libtwolame.c
@@ -221,18 +221,9 @@ const FFCodec ff_libtwolame_encoder = {
.close = twolame_encode_close,
.defaults = twolame_defaults,
.p.priv_class = &twolame_class,
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE
- },
- .p.ch_layouts = (const AVChannelLayout[]) {
- AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 },
- },
- .p.supported_samplerates = twolame_samplerates,
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
+ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLERATES_ARRAY(twolame_samplerates),
.p.wrapper_name = "libtwolame",
};
diff --git a/libavcodec/libvo-amrwbenc.c b/libavcodec/libvo-amrwbenc.c
index 02b8941a6d..c68b66fc43 100644
--- a/libavcodec/libvo-amrwbenc.c
+++ b/libavcodec/libvo-amrwbenc.c
@@ -153,6 +153,5 @@ const FFCodec ff_libvo_amrwbenc_encoder = {
.init = amr_wb_encode_init,
FF_CODEC_ENCODE_CB(amr_wb_encode_frame),
.close = amr_wb_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
};
diff --git a/libavcodec/libvorbisenc.c b/libavcodec/libvorbisenc.c
index e4f8cb67ef..6aa1ec3b3c 100644
--- a/libavcodec/libvorbisenc.c
+++ b/libavcodec/libvorbisenc.c
@@ -386,8 +386,7 @@ const FFCodec ff_libvorbis_encoder = {
.init = libvorbis_encode_init,
FF_CODEC_ENCODE_CB(libvorbis_encode_frame),
.close = libvorbis_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.p.priv_class = &vorbis_class,
.defaults = defaults,
.p.wrapper_name = "libvorbis",
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 228ede7c84..05b625973e 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -2044,7 +2044,7 @@ const FFCodec ff_libvpx_vp8_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP |
FF_CODEC_CAP_AUTO_THREADS,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class_vp8,
.defaults = defaults,
diff --git a/libavcodec/libvvenc.c b/libavcodec/libvvenc.c
index ece9badb19..d3c18045cf 100644
--- a/libavcodec/libvvenc.c
+++ b/libavcodec/libvvenc.c
@@ -482,7 +482,7 @@ const FFCodec ff_libvvenc_encoder = {
.p.priv_class = &class,
.p.wrapper_name = "libvvenc",
.priv_data_size = sizeof(VVenCContext),
- .p.pix_fmts = pix_fmts_vvenc,
+ CODEC_PIXFMTS_ARRAY(pix_fmts_vvenc),
.init = vvenc_init,
FF_CODEC_ENCODE_CB(vvenc_frame),
.close = vvenc_close,
diff --git a/libavcodec/libwebpenc.c b/libavcodec/libwebpenc.c
index 670412cc6e..8ea1bc8803 100644
--- a/libavcodec/libwebpenc.c
+++ b/libavcodec/libwebpenc.c
@@ -94,7 +94,7 @@ const FFCodec ff_libwebp_encoder = {
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_WEBP,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = ff_libwebpenc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_libwebpenc_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ff_libwebpenc_class,
.p.wrapper_name = "libwebp",
diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c
index c5361d7f92..15592fbd14 100644
--- a/libavcodec/libwebpenc_animencoder.c
+++ b/libavcodec/libwebpenc_animencoder.c
@@ -167,7 +167,7 @@ const FFCodec ff_libwebp_anim_encoder = {
.p.id = AV_CODEC_ID_WEBP,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = ff_libwebpenc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_libwebpenc_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ff_libwebpenc_class,
.p.wrapper_name = "libwebp",
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 409f45fc7d..5209963841 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -1633,7 +1633,7 @@ const FFCodec ff_libx264_encoder = {
.flush = X264_flush,
.close = X264_close,
.defaults = x264_defaults,
- .p.pix_fmts = pix_fmts_all,
+ CODEC_PIXFMTS_ARRAY(pix_fmts_all),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS
#if X264_BUILD < 158
@@ -1659,7 +1659,7 @@ const FFCodec ff_libx264rgb_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_OTHER_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = pix_fmts_8bit_rgb,
+ CODEC_PIXFMTS_ARRAY(pix_fmts_8bit_rgb),
.p.priv_class = &rgbclass,
.p.wrapper_name = "libx264",
.priv_data_size = sizeof(X264Context),
@@ -1691,7 +1691,7 @@ const FFCodec ff_libx262_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_OTHER_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = pix_fmts_8bit,
+ CODEC_PIXFMTS_ARRAY(pix_fmts_8bit),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &X262_class,
.p.wrapper_name = "libx264",
diff --git a/libavcodec/libxavs.c b/libavcodec/libxavs.c
index d0f6e141c7..2fb87dc7a4 100644
--- a/libavcodec/libxavs.c
+++ b/libavcodec/libxavs.c
@@ -434,7 +434,7 @@ const FFCodec ff_libxavs_encoder = {
.close = XAVS_close,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_AUTO_THREADS,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &xavs_class,
.defaults = xavs_defaults,
diff --git a/libavcodec/libxavs2.c b/libavcodec/libxavs2.c
index 1021d2ae2f..d7583e8b67 100644
--- a/libavcodec/libxavs2.c
+++ b/libavcodec/libxavs2.c
@@ -299,8 +299,7 @@ const FFCodec ff_libxavs2_encoder = {
.close = xavs2_close,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_AUTO_THREADS,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &libxavs2,
.defaults = xavs2_defaults,
diff --git a/libavcodec/libxeve.c b/libavcodec/libxeve.c
index 61376f3e65..63c2e1981b 100644
--- a/libavcodec/libxeve.c
+++ b/libavcodec/libxeve.c
@@ -613,7 +613,7 @@ const FFCodec ff_libxeve_encoder = {
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS | AV_CODEC_CAP_DR1,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_evc_profiles),
.p.wrapper_name = "libxeve",
- .p.pix_fmts = supported_pixel_formats,
+ CODEC_PIXFMTS_ARRAY(supported_pixel_formats),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_NOT_INIT_THREADSAFE,
};
diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c
index 850e691403..b85bb425c1 100644
--- a/libavcodec/libxvid.c
+++ b/libavcodec/libxvid.c
@@ -911,7 +911,7 @@ const FFCodec ff_libxvid_encoder = {
.init = xvid_encode_init,
FF_CODEC_ENCODE_CB(xvid_encode_frame),
.close = xvid_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &xvid_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c
index 927420c2d4..8162b5b611 100644
--- a/libavcodec/ljpegenc.c
+++ b/libavcodec/ljpegenc.c
@@ -323,10 +323,8 @@ const FFCodec ff_ljpeg_encoder = {
.init = ljpeg_encode_init,
FF_CODEC_ENCODE_CB(ljpeg_encode_frame),
.close = ljpeg_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_BGR24 , AV_PIX_FMT_BGRA , AV_PIX_FMT_BGR0,
- AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P,
- AV_PIX_FMT_YUV420P , AV_PIX_FMT_YUV444P , AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24, AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR0,
+ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P,
+ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
};
diff --git a/libavcodec/mace.c b/libavcodec/mace.c
index a35291330e..2aa54fb548 100644
--- a/libavcodec/mace.c
+++ b/libavcodec/mace.c
@@ -293,8 +293,7 @@ const FFCodec ff_mace3_decoder = {
.init = mace_decode_init,
FF_CODEC_DECODE_CB(mace_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
const FFCodec ff_mace6_decoder = {
@@ -306,6 +305,5 @@ const FFCodec ff_mace6_decoder = {
.init = mace_decode_init,
FF_CODEC_DECODE_CB(mace_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c
index 3364207f81..bf0e7d99bb 100644
--- a/libavcodec/magicyuvenc.c
+++ b/libavcodec/magicyuvenc.c
@@ -691,11 +691,9 @@ const FFCodec ff_magicyuv_encoder = {
.init = magy_encode_init,
.close = magy_encode_close,
FF_CODEC_ENCODE_CB(magy_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV422P,
+ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P,
+ AV_PIX_FMT_GRAY8),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c
index 3f6f20fe11..c201fc3365 100644
--- a/libavcodec/mediacodecenc.c
+++ b/libavcodec/mediacodecenc.c
@@ -1094,7 +1094,7 @@ const FFCodec ff_ ## short_name ## _mediacodec_encoder = { \
AV_CODEC_CAP_HARDWARE | \
AV_CODEC_CAP_ENCODER_FLUSH, \
.priv_data_size = sizeof(MediaCodecEncContext), \
- .p.pix_fmts = avc_pix_fmts, \
+ CODEC_PIXFMTS_ARRAY(avc_pix_fmts), \
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG, \
.defaults = mediacodec_defaults, \
.init = mediacodec_init, \
diff --git a/libavcodec/metasound.c b/libavcodec/metasound.c
index f332316831..0ea9088e8d 100644
--- a/libavcodec/metasound.c
+++ b/libavcodec/metasound.c
@@ -374,7 +374,6 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c
index c062d87f11..2bf3fa976e 100644
--- a/libavcodec/mfenc.c
+++ b/libavcodec/mfenc.c
@@ -1263,8 +1263,7 @@ static int mf_init(AVCodecContext *avctx)
};
#define AFMTS \
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, \
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
#define ACAPS \
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID | \
AV_CODEC_CAP_DR1 | AV_CODEC_CAP_VARIABLE_FRAME_SIZE,
@@ -1306,9 +1305,7 @@ static const FFCodecDefault defaults[] = {
};
#define VFMTS \
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12, \
- AV_PIX_FMT_YUV420P, \
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_YUV420P),
#define VCAPS \
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID | \
AV_CODEC_CAP_DR1,
diff --git a/libavcodec/misc4.c b/libavcodec/misc4.c
index 72ac944e54..184f711290 100644
--- a/libavcodec/misc4.c
+++ b/libavcodec/misc4.c
@@ -184,6 +184,5 @@ const FFCodec ff_misc4_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_CHANNEL_CONF,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
};
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index c2e8b93a34..f89c2d6278 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -673,11 +673,8 @@ FFCodec ff_mjpeg_encoder = {
AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_ICC_PROFILES,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P,
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P,
+ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P),
.p.priv_class = &mjpeg_class,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_mjpeg_profiles),
.get_supported_config = mjpeg_get_supported_config,
@@ -703,9 +700,7 @@ const FFCodec ff_amv_encoder = {
FF_CODEC_ENCODE_CB(amv_encode_picture),
.close = mjpeg_encode_close,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUVJ420P),
.color_ranges = AVCOL_RANGE_JPEG,
.p.priv_class = &amv_class,
};
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index 06670de456..475a70c225 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -2308,9 +2308,9 @@ const FFCodec ff_mlp_encoder = {
FF_CODEC_ENCODE_CB(mlp_encode_frame),
.close = mlp_encode_close,
.p.priv_class = &mlp_class,
- .p.sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE},
- .p.supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0},
- .p.ch_layouts = ff_mlp_ch_layouts,
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
+ CODEC_SAMPLERATES(44100, 48000, 88200, 96000, 176400, 192000),
+ CODEC_CH_LAYOUTS_ARRAY(ff_mlp_ch_layouts),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -2328,20 +2328,13 @@ const FFCodec ff_truehd_encoder = {
FF_CODEC_ENCODE_CB(mlp_encode_frame),
.close = mlp_encode_close,
.p.priv_class = &mlp_class,
- .p.sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE},
- .p.supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0},
- .p.ch_layouts = (const AVChannelLayout[]) {
- AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- AV_CHANNEL_LAYOUT_2POINT1,
- AV_CHANNEL_LAYOUT_SURROUND,
- AV_CHANNEL_LAYOUT_3POINT1,
- AV_CHANNEL_LAYOUT_4POINT0,
- AV_CHANNEL_LAYOUT_4POINT1,
- AV_CHANNEL_LAYOUT_5POINT0,
- AV_CHANNEL_LAYOUT_5POINT1,
- { 0 }
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
+ CODEC_SAMPLERATES(44100, 48000, 88200, 96000, 176400, 192000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO,
+ AV_CHANNEL_LAYOUT_2POINT1, AV_CHANNEL_LAYOUT_SURROUND,
+ AV_CHANNEL_LAYOUT_3POINT1, AV_CHANNEL_LAYOUT_4POINT0,
+ AV_CHANNEL_LAYOUT_4POINT1, AV_CHANNEL_LAYOUT_5POINT0,
+ AV_CHANNEL_LAYOUT_5POINT1),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index f1ce4075cd..83cef60914 100644
--- a/libavcodec/mpc7.c
+++ b/libavcodec/mpc7.c
@@ -323,6 +323,5 @@ const FFCodec ff_mpc7_decoder = {
FF_CODEC_DECODE_CB(mpc7_decode_frame),
.flush = mpc7_decode_flush,
.p.capabilities = AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index 2785259119..c72b2e3686 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -393,6 +393,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 52264ac6a0..040aa1df00 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -1240,9 +1240,8 @@ const FFCodec ff_mpeg1video_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
- .p.supported_framerates = ff_mpeg12_frame_rate_tab + 1,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_FRAMERATES_ARRAY(ff_mpeg12_frame_rate_tab + 1),
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_SLICE_THREADS |
@@ -1260,10 +1259,8 @@ const FFCodec ff_mpeg2video_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
- .p.supported_framerates = ff_mpeg2_frame_rate_tab,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_NONE },
+ CODEC_FRAMERATES_ARRAY(ff_mpeg2_frame_rate_tab),
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_SLICE_THREADS |
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 0b31576dc5..a7026bafba 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -1382,7 +1382,7 @@ const FFCodec ff_mpeg4_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_SLICE_THREADS |
diff --git a/libavcodec/mpegaudiodec_fixed.c b/libavcodec/mpegaudiodec_fixed.c
index b5b6822a19..055e3c64e0 100644
--- a/libavcodec/mpegaudiodec_fixed.c
+++ b/libavcodec/mpegaudiodec_fixed.c
@@ -72,9 +72,7 @@ const FFCodec ff_mp1_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16),
};
#endif
#if CONFIG_MP2_DECODER
@@ -89,9 +87,7 @@ const FFCodec ff_mp2_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16),
};
#endif
#if CONFIG_MP3_DECODER
@@ -106,9 +102,7 @@ const FFCodec ff_mp3_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16),
};
#endif
#if CONFIG_MP3ADU_DECODER
@@ -123,9 +117,7 @@ const FFCodec ff_mp3adu_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16),
};
#endif
#if CONFIG_MP3ON4_DECODER
@@ -141,8 +133,7 @@ const FFCodec ff_mp3on4_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush_mp3on4,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index ba8c49a3b4..05e2e399e4 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -85,9 +85,7 @@ const FFCodec ff_mp1float_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT),
};
#endif
#if CONFIG_MP2FLOAT_DECODER
@@ -102,9 +100,7 @@ const FFCodec ff_mp2float_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT),
};
#endif
#if CONFIG_MP3FLOAT_DECODER
@@ -119,9 +115,7 @@ const FFCodec ff_mp3float_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT),
};
#endif
#if CONFIG_MP3ADUFLOAT_DECODER
@@ -136,9 +130,7 @@ const FFCodec ff_mp3adufloat_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT),
};
#endif
#if CONFIG_MP3ON4FLOAT_DECODER
@@ -154,8 +146,7 @@ const FFCodec ff_mp3on4float_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.flush = flush_mp3on4,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/mpegaudioenc_fixed.c b/libavcodec/mpegaudioenc_fixed.c
index cdfc0b9958..a9faa7e059 100644
--- a/libavcodec/mpegaudioenc_fixed.c
+++ b/libavcodec/mpegaudioenc_fixed.c
@@ -32,13 +32,8 @@ const FFCodec ff_mp2fixed_encoder = {
.priv_data_size = sizeof(MpegAudioContext),
.init = MPA_encode_init,
FF_CODEC_ENCODE_CB(MPA_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]){
- 44100, 48000, 32000, 22050, 24000, 16000, 0
- },
- .p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 } },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_SAMPLERATES(44100, 48000, 32000, 22050, 24000, 16000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
.defaults = mp2_defaults,
};
diff --git a/libavcodec/mpegaudioenc_float.c b/libavcodec/mpegaudioenc_float.c
index f94ab54e89..5ff67960b5 100644
--- a/libavcodec/mpegaudioenc_float.c
+++ b/libavcodec/mpegaudioenc_float.c
@@ -33,13 +33,8 @@ const FFCodec ff_mp2_encoder = {
.priv_data_size = sizeof(MpegAudioContext),
.init = MPA_encode_init,
FF_CODEC_ENCODE_CB(MPA_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]){
- 44100, 48000, 32000, 22050, 24000, 16000, 0
- },
- .p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 } },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_SAMPLERATES(44100, 48000, 32000, 22050, 24000, 16000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
.defaults = mp2_defaults,
};
diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c
index 26b896bee3..c357d33177 100644
--- a/libavcodec/msmpeg4enc.c
+++ b/libavcodec/msmpeg4enc.c
@@ -680,7 +680,7 @@ const FFCodec ff_msmpeg4v2_encoder = {
CODEC_LONG_NAME("MPEG-4 part 2 Microsoft variant version 2"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_MSMPEG4V2,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
@@ -696,7 +696,7 @@ const FFCodec ff_msmpeg4v3_encoder = {
CODEC_LONG_NAME("MPEG-4 part 2 Microsoft variant version 3"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_MSMPEG4V3,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
@@ -712,7 +712,7 @@ const FFCodec ff_wmv1_encoder = {
CODEC_LONG_NAME("Windows Media Video 7"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_WMV1,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
diff --git a/libavcodec/msrleenc.c b/libavcodec/msrleenc.c
index cc39aa308f..654da42c0a 100644
--- a/libavcodec/msrleenc.c
+++ b/libavcodec/msrleenc.c
@@ -293,8 +293,6 @@ const FFCodec ff_msrle_encoder = {
.init = msrle_encode_init,
FF_CODEC_ENCODE_CB(msrle_encode_frame),
.close = msrle_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_PAL8),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/msvideo1enc.c b/libavcodec/msvideo1enc.c
index b8704367c7..b1cae72081 100644
--- a/libavcodec/msvideo1enc.c
+++ b/libavcodec/msvideo1enc.c
@@ -315,5 +315,5 @@ const FFCodec ff_msvideo1_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){AV_PIX_FMT_RGB555, AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB555),
};
diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c
index e9b124399a..6442fac7a8 100644
--- a/libavcodec/nellymoserdec.c
+++ b/libavcodec/nellymoserdec.c
@@ -202,6 +202,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT),
};
diff --git a/libavcodec/nellymoserenc.c b/libavcodec/nellymoserenc.c
index 32ae5f7828..6f002eb891 100644
--- a/libavcodec/nellymoserenc.c
+++ b/libavcodec/nellymoserenc.c
@@ -427,8 +427,7 @@ const FFCodec ff_nellymoser_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
- AV_SAMPLE_FMT_NONE },
- .p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLT),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/null.c b/libavcodec/null.c
index d8e334437c..e443ddf4f9 100644
--- a/libavcodec/null.c
+++ b/libavcodec/null.c
@@ -81,15 +81,12 @@ const FFCodec ff_anull_encoder = {
.p.type = AVMEDIA_TYPE_AUDIO,
.p.id = AV_CODEC_ID_ANULL,
.p.capabilities = AV_CODEC_CAP_VARIABLE_FRAME_SIZE,
- .p.sample_fmts = (const enum AVSampleFormat[]){
- AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64P,
- AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP,
- AV_SAMPLE_FMT_NONE,
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_U8P,
+ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P,
+ AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P,
+ AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64P,
+ AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
+ AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP),
FF_CODEC_ENCODE_CB(null_encode),
};
#endif
diff --git a/libavcodec/nvenc_av1.c b/libavcodec/nvenc_av1.c
index ceb046e4be..01626113ab 100644
--- a/libavcodec/nvenc_av1.c
+++ b/libavcodec/nvenc_av1.c
@@ -214,7 +214,7 @@ const FFCodec ff_av1_nvenc_encoder = {
.priv_data_size = sizeof(NvencContext),
.p.priv_class = &av1_nvenc_class,
.defaults = defaults,
- .p.pix_fmts = ff_nvenc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_nvenc_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE |
AV_CODEC_CAP_ENCODER_FLUSH | AV_CODEC_CAP_DR1 |
diff --git a/libavcodec/nvenc_h264.c b/libavcodec/nvenc_h264.c
index c3396bde91..21d25d643a 100644
--- a/libavcodec/nvenc_h264.c
+++ b/libavcodec/nvenc_h264.c
@@ -286,7 +286,7 @@ const FFCodec ff_h264_nvenc_encoder = {
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = ff_nvenc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_nvenc_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.wrapper_name = "nvenc",
.hw_configs = ff_nvenc_hw_configs,
diff --git a/libavcodec/nvenc_hevc.c b/libavcodec/nvenc_hevc.c
index d92b4272b1..c74eca9bb3 100644
--- a/libavcodec/nvenc_hevc.c
+++ b/libavcodec/nvenc_hevc.c
@@ -267,7 +267,7 @@ const FFCodec ff_hevc_nvenc_encoder = {
.priv_data_size = sizeof(NvencContext),
.p.priv_class = &hevc_nvenc_class,
.defaults = defaults,
- .p.pix_fmts = ff_nvenc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(ff_nvenc_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE |
AV_CODEC_CAP_ENCODER_FLUSH | AV_CODEC_CAP_DR1 |
diff --git a/libavcodec/omx.c b/libavcodec/omx.c
index 2855aff8f2..6b900d741d 100644
--- a/libavcodec/omx.c
+++ b/libavcodec/omx.c
@@ -951,7 +951,7 @@ const FFCodec ff_mpeg4_omx_encoder = {
.init = omx_encode_init,
FF_CODEC_ENCODE_CB(omx_encode_frame),
.close = omx_encode_end,
- .p.pix_fmts = omx_encoder_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(omx_encoder_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG,
.p.capabilities = AV_CODEC_CAP_DELAY,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
@@ -973,7 +973,7 @@ const FFCodec ff_h264_omx_encoder = {
.init = omx_encode_init,
FF_CODEC_ENCODE_CB(omx_encode_frame),
.close = omx_encode_end,
- .p.pix_fmts = omx_encoder_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(omx_encoder_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.p.capabilities = AV_CODEC_CAP_DELAY,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index 3badfae891..57bd5fd6d6 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@ -1023,6 +1023,5 @@ const FFCodec ff_on2avc_decoder = {
.close = on2avc_decode_close,
.p.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/opus/enc.c b/libavcodec/opus/enc.c
index 5398263119..f603b422a0 100644
--- a/libavcodec/opus/enc.c
+++ b/libavcodec/opus/enc.c
@@ -746,9 +746,7 @@ const FFCodec ff_opus_encoder = {
FF_CODEC_ENCODE_CB(opus_encode_frame),
.close = opus_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.supported_samplerates = (const int []){ 48000, 0 },
- .p.ch_layouts = (const AVChannelLayout []){ AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO, { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLERATES(48000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/osq.c b/libavcodec/osq.c
index 83b4a9d618..4cd9984ee0 100644
--- a/libavcodec/osq.c
+++ b/libavcodec/osq.c
@@ -489,9 +489,6 @@ const FFCodec ff_osq_decoder = {
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
.flush = osq_flush,
};
diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c
index 45ec29ccb3..e0c6eda235 100644
--- a/libavcodec/pamenc.c
+++ b/libavcodec/pamenc.c
@@ -135,11 +135,9 @@ const FFCodec ff_pam_encoder = {
.p.id = AV_CODEC_ID_PAM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pam_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
- AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
- AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
- AV_PIX_FMT_MONOBLACK, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
+ AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
+ AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
+ AV_PIX_FMT_MONOBLACK),
};
diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c
index 235020d78f..e3f83e0b0f 100644
--- a/libavcodec/pcm-bluray.c
+++ b/libavcodec/pcm-bluray.c
@@ -307,7 +307,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]){
- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
};
diff --git a/libavcodec/pcm-blurayenc.c b/libavcodec/pcm-blurayenc.c
index 7147c804ad..006c16d2d1 100644
--- a/libavcodec/pcm-blurayenc.c
+++ b/libavcodec/pcm-blurayenc.c
@@ -278,20 +278,12 @@ const FFCodec ff_pcm_bluray_encoder = {
.priv_data_size = sizeof(BlurayPCMEncContext),
.init = pcm_bluray_encode_init,
FF_CODEC_ENCODE_CB(pcm_bluray_encode_frame),
- .p.supported_samplerates = (const int[]) { 48000, 96000, 192000, 0 },
- .p.ch_layouts = (const AVChannelLayout[]) {
- AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- AV_CHANNEL_LAYOUT_SURROUND,
- AV_CHANNEL_LAYOUT_2_1,
- AV_CHANNEL_LAYOUT_4POINT0,
- AV_CHANNEL_LAYOUT_2_2,
- AV_CHANNEL_LAYOUT_5POINT0,
- AV_CHANNEL_LAYOUT_5POINT1,
- AV_CHANNEL_LAYOUT_7POINT0,
- AV_CHANNEL_LAYOUT_7POINT1,
- { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLERATES(48000, 96000, 192000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO,
+ AV_CHANNEL_LAYOUT_SURROUND, AV_CHANNEL_LAYOUT_2_1,
+ AV_CHANNEL_LAYOUT_4POINT0, AV_CHANNEL_LAYOUT_2_2,
+ AV_CHANNEL_LAYOUT_5POINT0, AV_CHANNEL_LAYOUT_5POINT1,
+ AV_CHANNEL_LAYOUT_7POINT0, AV_CHANNEL_LAYOUT_7POINT1),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
};
diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c
index 319746c62e..06389a21af 100644
--- a/libavcodec/pcm-dvd.c
+++ b/libavcodec/pcm-dvd.c
@@ -305,7 +305,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) {
- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE
- },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
};
diff --git a/libavcodec/pcm-dvdenc.c b/libavcodec/pcm-dvdenc.c
index 71e9b6915a..b1f01ee323 100644
--- a/libavcodec/pcm-dvdenc.c
+++ b/libavcodec/pcm-dvdenc.c
@@ -181,13 +181,8 @@ const FFCodec ff_pcm_dvd_encoder = {
.priv_data_size = sizeof(PCMDVDContext),
.init = pcm_dvd_encode_init,
FF_CODEC_ENCODE_CB(pcm_dvd_encode_frame),
- .p.supported_samplerates = (const int[]) { 48000, 96000, 0},
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- AV_CHANNEL_LAYOUT_5POINT1,
- AV_CHANNEL_LAYOUT_7POINT1,
- { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLERATES(48000, 96000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO,
+ AV_CHANNEL_LAYOUT_5POINT1, AV_CHANNEL_LAYOUT_7POINT1),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
};
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index a51086a92d..a23293dca2 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -557,8 +557,7 @@ const FFCodec ff_ ## name_ ## _encoder = { \
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, \
.init = pcm_encode_init, \
FF_CODEC_ENCODE_CB(pcm_encode_frame), \
- .p.sample_fmts = (const enum AVSampleFormat[]){ sample_fmt_, \
- AV_SAMPLE_FMT_NONE }, \
+ CODEC_SAMPLEFMTS(sample_fmt_), \
}
#define PCM_ENCODER_2(cf, id, sample_fmt, name, long_name) \
@@ -579,8 +578,7 @@ const FFCodec ff_ ## name_ ## _decoder = { \
.init = pcm_decode_init, \
FF_CODEC_DECODE_CB(pcm_decode_frame), \
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_PARAM_CHANGE, \
- .p.sample_fmts = (const enum AVSampleFormat[]){ sample_fmt_, \
- AV_SAMPLE_FMT_NONE }, \
+ CODEC_SAMPLEFMTS(sample_fmt_), \
}
#define PCM_DECODER_2(cf, id, sample_fmt, name, long_name) \
diff --git a/libavcodec/pcxenc.c b/libavcodec/pcxenc.c
index b763c7df47..f450d7bca1 100644
--- a/libavcodec/pcxenc.c
+++ b/libavcodec/pcxenc.c
@@ -199,11 +199,9 @@ const FFCodec ff_pcx_encoder = {
.p.id = AV_CODEC_ID_PCX,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pcx_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGB24,
- AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8,
- AV_PIX_FMT_MONOBLACK,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24,
+ AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8,
+ AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_MONOBLACK),
};
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index 37e8d5bfcf..a5ca10223a 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -1233,14 +1233,12 @@ const FFCodec ff_png_encoder = {
.init = png_enc_init,
.close = png_enc_close,
FF_CODEC_ENCODE_CB(encode_png),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
- AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
- AV_PIX_FMT_PAL8,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
- AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
- AV_PIX_FMT_MONOBLACK, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
+ AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
+ AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
+ AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
+ AV_PIX_FMT_MONOBLACK),
.p.priv_class = &pngenc_class,
.caps_internal = FF_CODEC_CAP_ICC_PROFILES,
};
@@ -1256,14 +1254,11 @@ const FFCodec ff_apng_encoder = {
.init = png_enc_init,
.close = png_enc_close,
FF_CODEC_ENCODE_CB(encode_apng),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
- AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
- AV_PIX_FMT_PAL8,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
- AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
+ AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE,
+ AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
+ AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE),
.p.priv_class = &pngenc_class,
.caps_internal = FF_CODEC_CAP_ICC_PROFILES,
};
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 9e1b11382b..91ed5e2b19 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -231,9 +231,7 @@ const FFCodec ff_pgm_encoder = {
.p.id = AV_CODEC_ID_PGM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16BE),
};
#endif
@@ -245,9 +243,7 @@ const FFCodec ff_pgmyuv_encoder = {
.p.id = AV_CODEC_ID_PGMYUV,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P16BE, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P16BE),
};
#endif
@@ -259,9 +255,7 @@ const FFCodec ff_ppm_encoder = {
.p.id = AV_CODEC_ID_PPM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48BE),
};
#endif
@@ -273,8 +267,7 @@ const FFCodec ff_pbm_encoder = {
.p.id = AV_CODEC_ID_PBM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_MONOWHITE,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_MONOWHITE),
};
#endif
@@ -286,11 +279,8 @@ const FFCodec ff_pfm_encoder = {
.p.id = AV_CODEC_ID_PFM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_GBRPF32LE,
- AV_PIX_FMT_GRAYF32LE,
- AV_PIX_FMT_GBRPF32BE,
- AV_PIX_FMT_GRAYF32BE,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRPF32LE, AV_PIX_FMT_GRAYF32LE,
+ AV_PIX_FMT_GBRPF32BE, AV_PIX_FMT_GRAYF32BE),
};
#endif
@@ -313,8 +303,6 @@ const FFCodec ff_phm_encoder = {
.priv_data_size = sizeof(PHMEncContext),
.init = phm_enc_init,
FF_CODEC_ENCODE_CB(pnm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_GBRPF32,
- AV_PIX_FMT_GRAYF32,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GRAYF32),
};
#endif
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 4493ed03ba..0a1488dd69 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoliy.c
@@ -955,7 +955,7 @@ const FFCodec ff_prores_aw_encoder = {
.p.id = AV_CODEC_ID_PRORES,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = pix_fmts,
+ CODEC_PIXFMTS_ARRAY(pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG,
.priv_data_size = sizeof(ProresContext),
.init = prores_encode_init,
@@ -973,7 +973,7 @@ const FFCodec ff_prores_encoder = {
.p.id = AV_CODEC_ID_PRORES,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = pix_fmts,
+ CODEC_PIXFMTS_ARRAY(pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG,
.priv_data_size = sizeof(ProresContext),
.init = prores_encode_init,
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 226f95f8c6..ca26c59a4a 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -1381,10 +1381,7 @@ const FFCodec ff_prores_ks_encoder = {
FF_CODEC_ENCODE_CB(encode_frame),
.p.capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10,
- AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P10),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &proresenc_class,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_prores_profiles),
diff --git a/libavcodec/qoadec.c b/libavcodec/qoadec.c
index c5cf351f9c..770bbe4706 100644
--- a/libavcodec/qoadec.c
+++ b/libavcodec/qoadec.c
@@ -165,6 +165,5 @@ const FFCodec ff_qoa_decoder = {
FF_CODEC_DECODE_CB(qoa_decode_frame),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
};
diff --git a/libavcodec/qoienc.c b/libavcodec/qoienc.c
index b9efdc2fa5..3149f162d6 100644
--- a/libavcodec/qoienc.c
+++ b/libavcodec/qoienc.c
@@ -134,8 +134,5 @@ const FFCodec ff_qoi_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(qoi_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB24,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB24),
};
diff --git a/libavcodec/qsvenc_av1.c b/libavcodec/qsvenc_av1.c
index a86b409bed..c7aa6e58d5 100644
--- a/libavcodec/qsvenc_av1.c
+++ b/libavcodec/qsvenc_av1.c
@@ -217,10 +217,7 @@ FFCodec ff_av1_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_P010,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_P010, AV_PIX_FMT_QSV),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index 304d1e7dcb..7d39338d6a 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -199,9 +199,7 @@ const FFCodec ff_h264_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_QSV),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c
index 80fdf782a7..ae3981fb72 100644
--- a/libavcodec/qsvenc_hevc.c
+++ b/libavcodec/qsvenc_hevc.c
@@ -396,17 +396,10 @@ const FFCodec ff_hevc_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_P010,
- AV_PIX_FMT_P012,
- AV_PIX_FMT_YUYV422,
- AV_PIX_FMT_Y210,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_BGRA,
- AV_PIX_FMT_X2RGB10,
- AV_PIX_FMT_VUYX,
- AV_PIX_FMT_XV30,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_P010, AV_PIX_FMT_P012,
+ AV_PIX_FMT_YUYV422, AV_PIX_FMT_Y210, AV_PIX_FMT_QSV,
+ AV_PIX_FMT_BGRA, AV_PIX_FMT_X2RGB10, AV_PIX_FMT_VUYX,
+ AV_PIX_FMT_XV30),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qsvenc_jpeg.c b/libavcodec/qsvenc_jpeg.c
index b2458eee06..0e04c2025d 100644
--- a/libavcodec/qsvenc_jpeg.c
+++ b/libavcodec/qsvenc_jpeg.c
@@ -88,11 +88,8 @@ const FFCodec ff_mjpeg_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_YUYV422,
- AV_PIX_FMT_BGRA,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_YUYV422, AV_PIX_FMT_BGRA,
+ AV_PIX_FMT_QSV),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qsvenc_mpeg2.c b/libavcodec/qsvenc_mpeg2.c
index ad3da6d672..c52a2c1f90 100644
--- a/libavcodec/qsvenc_mpeg2.c
+++ b/libavcodec/qsvenc_mpeg2.c
@@ -102,9 +102,7 @@ const FFCodec ff_mpeg2_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_QSV),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c
index b247c39c86..db93cca15e 100644
--- a/libavcodec/qsvenc_vp9.c
+++ b/libavcodec/qsvenc_vp9.c
@@ -111,12 +111,8 @@ const FFCodec ff_vp9_qsv_encoder = {
FF_CODEC_ENCODE_CB(qsv_enc_frame),
.close = qsv_enc_close,
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
- AV_PIX_FMT_P010,
- AV_PIX_FMT_VUYX,
- AV_PIX_FMT_QSV,
- AV_PIX_FMT_XV30,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_P010, AV_PIX_FMT_VUYX,
+ AV_PIX_FMT_QSV, AV_PIX_FMT_XV30),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.p.priv_class = &class,
.defaults = qsv_enc_defaults,
diff --git a/libavcodec/qtrleenc.c b/libavcodec/qtrleenc.c
index 71d57d7eb8..ae341c60b6 100644
--- a/libavcodec/qtrleenc.c
+++ b/libavcodec/qtrleenc.c
@@ -409,8 +409,7 @@ const FFCodec ff_qtrle_encoder = {
.init = qtrle_encode_init,
FF_CODEC_ENCODE_CB(qtrle_encode_frame),
.close = qtrle_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB555BE, AV_PIX_FMT_ARGB, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB555BE, AV_PIX_FMT_ARGB,
+ AV_PIX_FMT_GRAY8),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/r210enc.c b/libavcodec/r210enc.c
index ec1ebc8d60..b1ade5cde6 100644
--- a/libavcodec/r210enc.c
+++ b/libavcodec/r210enc.c
@@ -99,7 +99,7 @@ const FFCodec ff_r210_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = pix_fmt,
+ CODEC_PIXFMTS_ARRAY(pix_fmt),
};
#endif
#if CONFIG_R10K_ENCODER
@@ -111,7 +111,7 @@ const FFCodec ff_r10k_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = pix_fmt,
+ CODEC_PIXFMTS_ARRAY(pix_fmt),
};
#endif
#if CONFIG_AVRP_ENCODER
@@ -123,6 +123,6 @@ const FFCodec ff_avrp_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = pix_fmt,
+ CODEC_PIXFMTS_ARRAY(pix_fmt),
};
#endif
diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c
index 92c35ac12c..d38c39ce14 100644
--- a/libavcodec/ra144enc.c
+++ b/libavcodec/ra144enc.c
@@ -546,8 +546,7 @@ const FFCodec ff_ra_144_encoder = {
.init = ra144_encode_init,
FF_CODEC_ENCODE_CB(ra144_encode_frame),
.close = ra144_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]){ 8000, 0 },
- .p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_SAMPLERATES(8000),
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO),
};
diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c
index 8f7fac7935..036c3a931c 100644
--- a/libavcodec/ralf.c
+++ b/libavcodec/ralf.c
@@ -523,7 +523,6 @@ const FFCodec ff_ralf_decoder = {
.flush = decode_flush,
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/roqaudioenc.c b/libavcodec/roqaudioenc.c
index 8d08a13654..8a626c0d29 100644
--- a/libavcodec/roqaudioenc.c
+++ b/libavcodec/roqaudioenc.c
@@ -198,6 +198,5 @@ const FFCodec ff_roq_dpcm_encoder = {
.init = roq_dpcm_encode_init,
FF_CODEC_ENCODE_CB(roq_dpcm_encode_frame),
.close = roq_dpcm_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
};
diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c
index 7cbe820f9a..03a1651c7f 100644
--- a/libavcodec/roqvideoenc.c
+++ b/libavcodec/roqvideoenc.c
@@ -1126,8 +1126,7 @@ const FFCodec ff_roq_encoder = {
.init = roq_encode_init,
FF_CODEC_ENCODE_CB(roq_encode_frame),
.close = roq_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVJ444P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUVJ444P),
.color_ranges = AVCOL_RANGE_JPEG,
.p.priv_class = &roq_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/rpzaenc.c b/libavcodec/rpzaenc.c
index 3a1924d385..d9887f587a 100644
--- a/libavcodec/rpzaenc.c
+++ b/libavcodec/rpzaenc.c
@@ -884,6 +884,5 @@ const FFCodec ff_rpza_encoder = {
.init = rpza_encode_init,
FF_CODEC_ENCODE_CB(rpza_encode_frame),
.close = rpza_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB555,
- AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB555),
};
diff --git a/libavcodec/rv10enc.c b/libavcodec/rv10enc.c
index 73327a6e35..53463dd068 100644
--- a/libavcodec/rv10enc.c
+++ b/libavcodec/rv10enc.c
@@ -77,6 +77,6 @@ const FFCodec ff_rv10_encoder = {
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
diff --git a/libavcodec/rv20enc.c b/libavcodec/rv20enc.c
index 7d7cbeaf93..cf27ff04ea 100644
--- a/libavcodec/rv20enc.c
+++ b/libavcodec/rv20enc.c
@@ -74,6 +74,6 @@ const FFCodec ff_rv20_encoder = {
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
.color_ranges = AVCOL_RANGE_MPEG,
};
diff --git a/libavcodec/s302menc.c b/libavcodec/s302menc.c
index 4b8996f9ac..ba84ab73b6 100644
--- a/libavcodec/s302menc.c
+++ b/libavcodec/s302menc.c
@@ -181,8 +181,6 @@ const FFCodec ff_s302m_encoder = {
.priv_data_size = sizeof(S302MEncContext),
.init = s302m_encode_init,
FF_CODEC_ENCODE_CB(s302m_encode2_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]) { 48000, 0 },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S16),
+ CODEC_SAMPLERATES(48000),
};
diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c
index 033a8380d6..7e16a998ba 100644
--- a/libavcodec/sbcdec.c
+++ b/libavcodec/sbcdec.c
@@ -371,10 +371,7 @@ 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,
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = (const int[]) { 16000, 32000, 44100, 48000, 0 },
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P),
+ CODEC_SAMPLERATES(16000, 32000, 44100, 48000),
};
diff --git a/libavcodec/sbcenc.c b/libavcodec/sbcenc.c
index 6d23f19f62..fb810c4c52 100644
--- a/libavcodec/sbcenc.c
+++ b/libavcodec/sbcenc.c
@@ -356,12 +356,9 @@ const FFCodec ff_sbc_encoder = {
.priv_data_size = sizeof(SBCEncContext),
.init = sbc_encode_init,
FF_CODEC_ENCODE_CB(sbc_encode_frame),
- .p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
- AV_CHANNEL_LAYOUT_STEREO,
- { 0 } },
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_NONE },
- .p.supported_samplerates = sbc_samplerates,
+ CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
+ CODEC_SAMPLERATES_ARRAY(sbc_samplerates),
.p.priv_class = &sbc_class,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_sbc_profiles),
};
diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c
index 0901cf58b3..93ec9ff6cf 100644
--- a/libavcodec/sgienc.c
+++ b/libavcodec/sgienc.c
@@ -281,11 +281,8 @@ const FFCodec ff_sgi_encoder = {
.p.priv_class = &sgi_class,
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
- AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
- AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
- AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
+ AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
+ AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
+ AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY8),
};
diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
index 46d3b7a615..b837c2a9b7 100644
--- a/libavcodec/shorten.c
+++ b/libavcodec/shorten.c
@@ -821,7 +821,5 @@ const FFCodec ff_shorten_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DR1,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_U8P),
};
diff --git a/libavcodec/smcenc.c b/libavcodec/smcenc.c
index f8a3322bb1..58314317fd 100644
--- a/libavcodec/smcenc.c
+++ b/libavcodec/smcenc.c
@@ -599,6 +599,5 @@ const FFCodec ff_smc_encoder = {
.init = smc_encode_init,
FF_CODEC_ENCODE_CB(smc_encode_frame),
.close = smc_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_PAL8,
- AV_PIX_FMT_NONE},
+ CODEC_PIXFMTS(AV_PIX_FMT_PAL8),
};
diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
index 0623c9d196..f9c13e345e 100644
--- a/libavcodec/snowenc.c
+++ b/libavcodec/snowenc.c
@@ -2141,11 +2141,8 @@ const FFCodec ff_snow_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV444P,
- AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV444P,
+ AV_PIX_FMT_GRAY8),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &snowenc_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c
index 46c15b5fb1..60b077de47 100644
--- a/libavcodec/sonic.c
+++ b/libavcodec/sonic.c
@@ -1102,7 +1102,7 @@ const FFCodec ff_sonic_encoder = {
.priv_data_size = sizeof(SonicContext),
.init = sonic_encode_init,
FF_CODEC_ENCODE_CB(sonic_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.close = sonic_encode_close,
};
@@ -1119,7 +1119,7 @@ const FFCodec ff_sonic_ls_encoder = {
.priv_data_size = sizeof(SonicContext),
.init = sonic_encode_init,
FF_CODEC_ENCODE_CB(sonic_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.close = sonic_encode_close,
};
diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c
index ac40fd6e75..f34b08ecc1 100644
--- a/libavcodec/speedhqenc.c
+++ b/libavcodec/speedhqenc.c
@@ -301,8 +301,5 @@ const FFCodec ff_speedhq_encoder = {
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.color_ranges = AVCOL_RANGE_MPEG,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P),
};
diff --git a/libavcodec/sunrastenc.c b/libavcodec/sunrastenc.c
index b2d57f7235..9922dbd061 100644
--- a/libavcodec/sunrastenc.c
+++ b/libavcodec/sunrastenc.c
@@ -218,9 +218,8 @@ const FFCodec ff_sunrast_encoder = {
.init = sunrast_encode_init,
FF_CODEC_ENCODE_CB(sunrast_encode_frame),
.p.priv_class = &sunrast_class,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24,
- AV_PIX_FMT_PAL8,
- AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_MONOWHITE,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24,
+ AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_GRAY8,
+ AV_PIX_FMT_MONOWHITE),
};
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index d969be25c1..3daf6a7b05 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -745,8 +745,7 @@ const FFCodec ff_svq1_encoder = {
.init = svq1_encode_init,
FF_CODEC_ENCODE_CB(svq1_encode_frame),
.close = svq1_encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV410P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV410P),
.color_ranges = AVCOL_RANGE_MPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c
index cfa69f4217..74c8d7c7a8 100644
--- a/libavcodec/takdec.c
+++ b/libavcodec/takdec.c
@@ -950,8 +950,5 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
};
diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c
index 8f496c62bd..04422013e5 100644
--- a/libavcodec/targaenc.c
+++ b/libavcodec/targaenc.c
@@ -215,8 +215,6 @@ const FFCodec ff_targa_encoder = {
.p.priv_class = &targa_class,
.init = targa_encode_init,
FF_CODEC_ENCODE_CB(targa_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_BGR24, AV_PIX_FMT_BGRA, AV_PIX_FMT_RGB555LE, AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGR24, AV_PIX_FMT_BGRA, AV_PIX_FMT_RGB555LE,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_PAL8),
};
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c
index 5e65979c79..66facb4174 100644
--- a/libavcodec/tiffenc.c
+++ b/libavcodec/tiffenc.c
@@ -580,15 +580,13 @@ const FFCodec ff_tiff_encoder = {
.init = encode_init,
.close = encode_close,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
+ CODEC_PIXFMTS(
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48LE, AV_PIX_FMT_PAL8,
AV_PIX_FMT_RGBA, AV_PIX_FMT_RGBA64LE,
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A, AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_YA16LE,
AV_PIX_FMT_MONOBLACK, AV_PIX_FMT_MONOWHITE,
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P,
- AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P,
- AV_PIX_FMT_NONE
- },
+ AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P),
.color_ranges = AVCOL_RANGE_MPEG,
.p.priv_class = &tiffenc_class,
};
diff --git a/libavcodec/ttaenc.c b/libavcodec/ttaenc.c
index 1b9aeec8ff..16fa377536 100644
--- a/libavcodec/ttaenc.c
+++ b/libavcodec/ttaenc.c
@@ -211,8 +211,5 @@ const FFCodec ff_tta_encoder = {
.init = tta_encode_init,
.close = tta_encode_close,
FF_CODEC_ENCODE_CB(tta_encode_frame),
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_U8,
- AV_SAMPLE_FMT_S16,
- AV_SAMPLE_FMT_S32,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
};
diff --git a/libavcodec/twinvqdec.c b/libavcodec/twinvqdec.c
index 8b6b2196e7..983a47a65b 100644
--- a/libavcodec/twinvqdec.c
+++ b/libavcodec/twinvqdec.c
@@ -423,7 +423,6 @@ 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,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/utvideoenc.c b/libavcodec/utvideoenc.c
index 54b1caa9e3..be503d78c6 100644
--- a/libavcodec/utvideoenc.c
+++ b/libavcodec/utvideoenc.c
@@ -671,10 +671,8 @@ const FFCodec ff_utvideo_encoder = {
.init = utvideo_encode_init,
FF_CODEC_ENCODE_CB(utvideo_encode_frame),
.close = utvideo_encode_close,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV422P,
- AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP,
+ AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P),
.color_ranges = AVCOL_RANGE_MPEG,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/v210enc.c b/libavcodec/v210enc.c
index 2a30ed77da..2194e2128c 100644
--- a/libavcodec/v210enc.c
+++ b/libavcodec/v210enc.c
@@ -117,5 +117,5 @@ const FFCodec ff_v210_encoder = {
.priv_data_size = sizeof(V210EncContext),
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P),
};
diff --git a/libavcodec/v308enc.c b/libavcodec/v308enc.c
index 2941ba3f03..884932da44 100644
--- a/libavcodec/v308enc.c
+++ b/libavcodec/v308enc.c
@@ -80,5 +80,5 @@ const FFCodec ff_v308_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = v308_encode_init,
FF_CODEC_ENCODE_CB(v308_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV444P),
};
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
index bf264de463..4b6717a1fb 100644
--- a/libavcodec/v408enc.c
+++ b/libavcodec/v408enc.c
@@ -79,5 +79,5 @@ const FFCodec ff_v408_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = v408_encode_init,
FF_CODEC_ENCODE_CB(v408_encode_frame),
- .p.pix_fmts = pix_fmt,
+ CODEC_PIXFMTS_ARRAY(pix_fmt),
};
diff --git a/libavcodec/v410enc.c b/libavcodec/v410enc.c
index 78362ce453..1350acebba 100644
--- a/libavcodec/v410enc.c
+++ b/libavcodec/v410enc.c
@@ -84,5 +84,5 @@ const FFCodec ff_v410_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = v410_encode_init,
FF_CODEC_ENCODE_CB(v410_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV444P10, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV444P10),
};
diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c
index 1b350cd936..f3df5baddc 100644
--- a/libavcodec/vaapi_encode_av1.c
+++ b/libavcodec/vaapi_encode_av1.c
@@ -1049,10 +1049,7 @@ const FFCodec ff_av1_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_av1_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
index ed20b9cd24..0cd5b0ac50 100644
--- a/libavcodec/vaapi_encode_h264.c
+++ b/libavcodec/vaapi_encode_h264.c
@@ -1178,10 +1178,7 @@ const FFCodec ff_h264_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_h264_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
index 44d9fdbbd5..2acde2296b 100644
--- a/libavcodec/vaapi_encode_h265.c
+++ b/libavcodec/vaapi_encode_h265.c
@@ -1209,10 +1209,7 @@ const FFCodec ff_hevc_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_h265_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c
index 5f8266e98a..2eef5bf090 100644
--- a/libavcodec/vaapi_encode_mjpeg.c
+++ b/libavcodec/vaapi_encode_mjpeg.c
@@ -582,10 +582,7 @@ const FFCodec ff_mjpeg_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_mjpeg_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_mpeg2.c b/libavcodec/vaapi_encode_mpeg2.c
index 5701e2e803..94cb3d4fb6 100644
--- a/libavcodec/vaapi_encode_mpeg2.c
+++ b/libavcodec/vaapi_encode_mpeg2.c
@@ -705,10 +705,7 @@ const FFCodec ff_mpeg2_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_mpeg2_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG,
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_vp8.c b/libavcodec/vaapi_encode_vp8.c
index ad88af63eb..125d760b9b 100644
--- a/libavcodec/vaapi_encode_vp8.c
+++ b/libavcodec/vaapi_encode_vp8.c
@@ -260,10 +260,7 @@ const FFCodec ff_vp8_vaapi_encoder = {
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_vp8_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
diff --git a/libavcodec/vaapi_encode_vp9.c b/libavcodec/vaapi_encode_vp9.c
index ab925e24b5..e88967a053 100644
--- a/libavcodec/vaapi_encode_vp9.c
+++ b/libavcodec/vaapi_encode_vp9.c
@@ -318,10 +318,7 @@ const FFCodec ff_vp9_vaapi_encoder = {
FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_vp9_defaults,
.color_ranges = AVCOL_RANGE_MPEG, /* FIXME: implement tagging */
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VAAPI,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VAAPI),
.hw_configs = ff_vaapi_encode_hw_configs,
.p.wrapper_name = "vaapi",
};
diff --git a/libavcodec/vbnenc.c b/libavcodec/vbnenc.c
index 55e436b5e5..c653574980 100644
--- a/libavcodec/vbnenc.c
+++ b/libavcodec/vbnenc.c
@@ -161,8 +161,6 @@ const FFCodec ff_vbn_encoder = {
.init = vbn_init,
FF_CODEC_ENCODE_CB(vbn_encode),
.priv_data_size = sizeof(VBNContext),
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB24),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c
index b82370a753..aa1ec40f3d 100644
--- a/libavcodec/vc2enc.c
+++ b/libavcodec/vc2enc.c
@@ -1244,6 +1244,6 @@ const FFCodec ff_vc2_encoder = {
FF_CODEC_ENCODE_CB(vc2_encode_frame),
.p.priv_class = &vc2enc_class,
.defaults = vc2enc_defaults,
- .p.pix_fmts = allowed_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(allowed_pix_fmts),
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
};
diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index 950a29d9fa..55a440c7b4 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -2974,7 +2974,7 @@ const FFCodec ff_h264_videotoolbox_encoder = {
.p.id = AV_CODEC_ID_H264,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.priv_data_size = sizeof(VTEncContext),
- .p.pix_fmts = avc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(avc_pix_fmts),
.defaults = vt_defaults,
.init = vtenc_init,
FF_CODEC_ENCODE_CB(vtenc_frame),
@@ -3012,7 +3012,7 @@ const FFCodec ff_hevc_videotoolbox_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_HARDWARE,
.priv_data_size = sizeof(VTEncContext),
- .p.pix_fmts = hevc_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(hevc_pix_fmts),
.defaults = vt_defaults,
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.init = vtenc_init,
@@ -3053,7 +3053,7 @@ const FFCodec ff_prores_videotoolbox_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_HARDWARE,
.priv_data_size = sizeof(VTEncContext),
- .p.pix_fmts = prores_pix_fmts,
+ CODEC_PIXFMTS_ARRAY(prores_pix_fmts),
.defaults = vt_defaults,
.color_ranges = AVCOL_RANGE_MPEG | AVCOL_RANGE_JPEG,
.init = vtenc_init,
diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c
index 218e855f7a..11111e7eb3 100644
--- a/libavcodec/vorbisdec.c
+++ b/libavcodec/vorbisdec.c
@@ -1894,7 +1894,6 @@ 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,
- .p.ch_layouts = ff_vorbis_ch_layouts,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_CH_LAYOUTS_ARRAY(ff_vorbis_ch_layouts),
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c
index 62684a7d8c..99ac72c910 100644
--- a/libavcodec/vorbisenc.c
+++ b/libavcodec/vorbisenc.c
@@ -1312,7 +1312,6 @@ const FFCodec ff_vorbis_encoder = {
.init = vorbis_encode_init,
FF_CODEC_ENCODE_CB(vorbis_encode_frame),
.close = vorbis_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/vulkan_encode_h264.c b/libavcodec/vulkan_encode_h264.c
index cdc87fb4ca..edfe680500 100644
--- a/libavcodec/vulkan_encode_h264.c
+++ b/libavcodec/vulkan_encode_h264.c
@@ -1658,10 +1658,7 @@ const FFCodec ff_h264_vulkan_encoder = {
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vulkan_encode_h264_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VULKAN,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VULKAN),
.hw_configs = ff_vulkan_encode_hw_configs,
.p.wrapper_name = "vulkan",
};
diff --git a/libavcodec/vulkan_encode_h265.c b/libavcodec/vulkan_encode_h265.c
index cd50f2f756..018aaee9af 100644
--- a/libavcodec/vulkan_encode_h265.c
+++ b/libavcodec/vulkan_encode_h265.c
@@ -1785,10 +1785,7 @@ const FFCodec ff_hevc_vulkan_encoder = {
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vulkan_encode_h265_defaults,
- .p.pix_fmts = (const enum AVPixelFormat[]) {
- AV_PIX_FMT_VULKAN,
- AV_PIX_FMT_NONE,
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_VULKAN),
.hw_configs = ff_vulkan_encode_hw_configs,
.p.wrapper_name = "vulkan",
};
diff --git a/libavcodec/wavarc.c b/libavcodec/wavarc.c
index 93b76c43e8..7c0a0eb05c 100644
--- a/libavcodec/wavarc.c
+++ b/libavcodec/wavarc.c
@@ -885,7 +885,5 @@ const FFCodec ff_wavarc_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DELAY,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P),
};
diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c
index e99ab951d4..a89f3d1670 100644
--- a/libavcodec/wavpackenc.c
+++ b/libavcodec/wavpackenc.c
@@ -2980,9 +2980,6 @@ const FFCodec ff_wavpack_encoder = {
.init = wavpack_encode_init,
FF_CODEC_ENCODE_CB(wavpack_encode_frame),
.close = wavpack_encode_close,
- .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_U8P,
- AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P,
+ AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_FLTP),
};
diff --git a/libavcodec/wbmpenc.c b/libavcodec/wbmpenc.c
index abb66b4ca9..3b624da08f 100644
--- a/libavcodec/wbmpenc.c
+++ b/libavcodec/wbmpenc.c
@@ -83,8 +83,5 @@ const FFCodec ff_wbmp_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(wbmp_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]){
- AV_PIX_FMT_MONOBLACK,
- AV_PIX_FMT_NONE
- },
+ CODEC_PIXFMTS(AV_PIX_FMT_MONOBLACK),
};
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index c24fff5522..78ea25e109 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -1023,8 +1023,7 @@ const FFCodec ff_wmav1_decoder = {
FF_CODEC_DECODE_CB(wma_decode_superframe),
.flush = flush,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -1040,8 +1039,7 @@ const FFCodec ff_wmav2_decoder = {
FF_CODEC_DECODE_CB(wma_decode_superframe),
.flush = flush,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 6949f08fb6..dba90f993c 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -446,8 +446,7 @@ const FFCodec ff_wmav1_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_superframe),
.close = ff_wma_end,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
#endif
@@ -462,8 +461,7 @@ const FFCodec ff_wmav2_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_superframe),
.close = ff_wma_end,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ 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 9559fe1faf..1d5849b6da 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -1341,7 +1341,5 @@ const FFCodec ff_wmalossless_decoder = {
#endif
AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
- AV_SAMPLE_FMT_S32P,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P),
};
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
index a6c4a75632..3bc344780d 100644
--- a/libavcodec/wmaprodec.c
+++ b/libavcodec/wmaprodec.c
@@ -2106,8 +2106,7 @@ const FFCodec ff_wmapro_decoder = {
#endif
AV_CODEC_CAP_DR1,
.flush = wmapro_flush,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -2126,8 +2125,7 @@ const FFCodec ff_xma1_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -2146,7 +2144,6 @@ const FFCodec ff_xma2_decoder = {
AV_CODEC_CAP_SUBFRAMES |
#endif
AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
- .p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
- AV_SAMPLE_FMT_NONE },
+ CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/wmv2enc.c b/libavcodec/wmv2enc.c
index 13bd2d48b9..825ab91a05 100644
--- a/libavcodec/wmv2enc.c
+++ b/libavcodec/wmv2enc.c
@@ -250,6 +250,5 @@ const FFCodec ff_wmv2_encoder = {
.close = ff_mpv_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.color_ranges = AVCOL_RANGE_MPEG,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
};
diff --git a/libavcodec/xbmenc.c b/libavcodec/xbmenc.c
index 5231d4691d..8454fefe5d 100644
--- a/libavcodec/xbmenc.c
+++ b/libavcodec/xbmenc.c
@@ -93,6 +93,5 @@ const FFCodec ff_xbm_encoder = {
.p.id = AV_CODEC_ID_XBM,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(xbm_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_MONOWHITE,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_MONOWHITE),
};
diff --git a/libavcodec/xfaceenc.c b/libavcodec/xfaceenc.c
index 4998d42ea5..640ef02df5 100644
--- a/libavcodec/xfaceenc.c
+++ b/libavcodec/xfaceenc.c
@@ -217,7 +217,7 @@ const FFCodec ff_xface_encoder = {
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_XFACE,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_MONOWHITE, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_MONOWHITE),
.priv_data_size = sizeof(XFaceContext),
FF_CODEC_ENCODE_CB(xface_encode_frame),
};
diff --git a/libavcodec/xwdenc.c b/libavcodec/xwdenc.c
index 40bee20109..1d8b7d9002 100644
--- a/libavcodec/xwdenc.c
+++ b/libavcodec/xwdenc.c
@@ -219,26 +219,12 @@ const FFCodec ff_xwd_encoder = {
.p.id = AV_CODEC_ID_XWD,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
FF_CODEC_ENCODE_CB(xwd_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_BGRA,
- AV_PIX_FMT_RGBA,
- AV_PIX_FMT_ARGB,
- AV_PIX_FMT_ABGR,
- AV_PIX_FMT_RGB24,
- AV_PIX_FMT_BGR24,
- AV_PIX_FMT_RGB565BE,
- AV_PIX_FMT_RGB565LE,
- AV_PIX_FMT_BGR565BE,
- AV_PIX_FMT_BGR565LE,
- AV_PIX_FMT_RGB555BE,
- AV_PIX_FMT_RGB555LE,
- AV_PIX_FMT_BGR555BE,
- AV_PIX_FMT_BGR555LE,
- AV_PIX_FMT_RGB8,
- AV_PIX_FMT_BGR8,
- AV_PIX_FMT_RGB4_BYTE,
- AV_PIX_FMT_BGR4_BYTE,
- AV_PIX_FMT_PAL8,
- AV_PIX_FMT_GRAY8,
- AV_PIX_FMT_MONOWHITE,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_BGRA, AV_PIX_FMT_RGBA, AV_PIX_FMT_ARGB,
+ AV_PIX_FMT_ABGR, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24,
+ AV_PIX_FMT_RGB565BE, AV_PIX_FMT_RGB565LE, AV_PIX_FMT_BGR565BE,
+ AV_PIX_FMT_BGR565LE, AV_PIX_FMT_RGB555BE, AV_PIX_FMT_RGB555LE,
+ AV_PIX_FMT_BGR555BE, AV_PIX_FMT_BGR555LE,
+ AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8,
+ AV_PIX_FMT_RGB4_BYTE, AV_PIX_FMT_BGR4_BYTE,
+ AV_PIX_FMT_PAL8, AV_PIX_FMT_GRAY8, AV_PIX_FMT_MONOWHITE),
};
diff --git a/libavcodec/y41penc.c b/libavcodec/y41penc.c
index e86769da66..b0044b35ef 100644
--- a/libavcodec/y41penc.c
+++ b/libavcodec/y41penc.c
@@ -85,6 +85,5 @@ const FFCodec ff_y41p_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.init = y41p_encode_init,
FF_CODEC_ENCODE_CB(y41p_encode_frame),
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV411P,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV411P),
};
diff --git a/libavcodec/yuv4enc.c b/libavcodec/yuv4enc.c
index 2a9d3442ca..093038142f 100644
--- a/libavcodec/yuv4enc.c
+++ b/libavcodec/yuv4enc.c
@@ -76,6 +76,6 @@ const FFCodec ff_yuv4_encoder = {
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_YUV4,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS(AV_PIX_FMT_YUV420P),
FF_CODEC_ENCODE_CB(yuv4_encode_frame),
};
diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c
index 04889b97d2..17eb3caa2b 100644
--- a/libavcodec/zmbvenc.c
+++ b/libavcodec/zmbvenc.c
@@ -410,6 +410,17 @@ static av_cold int encode_init(AVCodecContext *avctx)
return ff_deflate_init(&c->zstream, lvl, avctx);
}
+static const enum AVPixelFormat zmbv_pixfmts_list[] = {
+ AV_PIX_FMT_PAL8,
+ AV_PIX_FMT_RGB555LE,
+ AV_PIX_FMT_RGB565LE,
+#ifdef ZMBV_ENABLE_24BPP
+ AV_PIX_FMT_BGR24,
+#endif
+ AV_PIX_FMT_BGR0,
+ AV_PIX_FMT_NONE
+};
+
const FFCodec ff_zmbv_encoder = {
.p.name = "zmbv",
CODEC_LONG_NAME("Zip Motion Blocks Video"),
@@ -420,13 +431,6 @@ const FFCodec ff_zmbv_encoder = {
.init = encode_init,
FF_CODEC_ENCODE_CB(encode_frame),
.close = encode_end,
- .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_PAL8,
- AV_PIX_FMT_RGB555LE,
- AV_PIX_FMT_RGB565LE,
-#ifdef ZMBV_ENABLE_24BPP
- AV_PIX_FMT_BGR24,
-#endif //ZMBV_ENABLE_24BPP
- AV_PIX_FMT_BGR0,
- AV_PIX_FMT_NONE },
+ CODEC_PIXFMTS_ARRAY(zmbv_pixfmts_list),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
--
2.45.2
[-- Attachment #3: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread