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 1292b4227d..6acc4d7ece 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -1400,7 +1400,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, @@ -1421,10 +1421,7 @@ const FFCodec ff_ffv1_encoder = { 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_GBRPF16, - AV_PIX_FMT_NONE - - }, + AV_PIX_FMT_GBRPF16), .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 192c2a929f..b6f9d1c6db 100644 --- a/libavcodec/flvenc.c +++ b/libavcodec/flvenc.c @@ -94,7 +94,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 5253e82129..36436ee60f 100644 --- a/libavcodec/h261enc.c +++ b/libavcodec/h261enc.c @@ -395,7 +395,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 188996a4d1..a81bfb7c79 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -903,7 +903,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, @@ -935,7 +935,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 b7a213af34..449e8dead2 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 bcfc5523fb..3ac1010e4f 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -688,11 +688,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, @@ -718,9 +715,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 0586b8cfe2..1563cefd23 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -1249,9 +1249,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 | @@ -1269,10 +1268,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 6ce5bc4462..3b312915b4 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1399,7 +1399,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 89f4533d05..2a9e16975f 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 fe8ffdcdcd..c368459b93 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 87497f5f85..536ddc0bf1 100644 --- a/libavcodec/speedhqenc.c +++ b/libavcodec/speedhqenc.c @@ -285,8 +285,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 0d27a73500..40e3fd0045 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, };