From 494f868e93d1d671497d0d0884368f015eb7d31e Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sat, 5 Dec 2020 11:41:23 +0100 Subject: avcodec: set AV_CODEC_CAP_CHANNEL_CONF on decoders which set their own channels The decoders in this set either have a fixed channel count, or read it from the bitstream, and thus do not require the channel count as external information. Fixes various regressions since 81503ac58a763a36b1f57264013b1e76acb62b68, which requires a valid channel count for decoders which do not set this capability. Signed-off-by: Hendrik Leppkes --- libavcodec/alac.c | 2 +- libavcodec/alsdec.c | 2 +- libavcodec/amrnbdec.c | 2 +- libavcodec/amrwbdec.c | 2 +- libavcodec/atrac9dec.c | 2 +- libavcodec/audiotoolboxdec.c | 2 +- libavcodec/bmvaudio.c | 2 +- libavcodec/cngdec.c | 2 +- libavcodec/dsicinaudio.c | 2 +- libavcodec/dss_sp.c | 2 +- libavcodec/evrcdec.c | 2 +- libavcodec/g722dec.c | 2 +- libavcodec/g726.c | 4 ++-- libavcodec/gsmdec.c | 4 ++-- libavcodec/ilbcdec.c | 2 +- libavcodec/imc.c | 2 +- libavcodec/libcodec2.c | 2 +- libavcodec/libgsmdec.c | 4 ++-- libavcodec/libilbc.c | 2 +- libavcodec/libopencore-amr.c | 4 ++-- libavcodec/libopusdec.c | 2 +- libavcodec/libspeexdec.c | 2 +- libavcodec/libvorbisdec.c | 2 +- libavcodec/metasound.c | 2 +- libavcodec/mlpdec.c | 4 ++-- libavcodec/mpc8.c | 2 +- libavcodec/nellymoserdec.c | 2 +- libavcodec/opusdec.c | 2 +- libavcodec/pcm-bluray.c | 2 +- libavcodec/qcelpdec.c | 2 +- libavcodec/qdm2.c | 2 +- libavcodec/qdmc.c | 2 +- libavcodec/ra144dec.c | 2 +- libavcodec/ra288.c | 2 +- libavcodec/sbcdec.c | 2 +- libavcodec/sipr.c | 2 +- libavcodec/sonic.c | 2 +- libavcodec/takdec.c | 2 +- libavcodec/tta.c | 2 +- libavcodec/twinvqdec.c | 2 +- libavcodec/vima.c | 2 +- libavcodec/vorbisdec.c | 2 +- libavcodec/wavpack.c | 2 +- libavcodec/ws-snd1.c | 2 +- 44 files changed, 49 insertions(+), 49 deletions(-) diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 9040673528..7edbb06a3e 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -625,7 +625,7 @@ AVCodec ff_alac_decoder = { .init = alac_decode_init, .close = alac_decode_close, .decode = alac_decode_frame, - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .priv_class = &alac_class }; diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c index c2c460a29c..c318ad088e 100644 --- a/libavcodec/alsdec.c +++ b/libavcodec/alsdec.c @@ -2179,6 +2179,6 @@ AVCodec ff_als_decoder = { .close = decode_end, .decode = decode_frame, .flush = flush, - .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c index ea299acd4e..8e02d4cb20 100644 --- a/libavcodec/amrnbdec.c +++ b/libavcodec/amrnbdec.c @@ -1088,7 +1088,7 @@ AVCodec ff_amrnb_decoder = { .priv_data_size = sizeof(AMRContext), .init = amrnb_decode_init, .decode = amrnb_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c index 555c4bc45d..070f276904 100644 --- a/libavcodec/amrwbdec.c +++ b/libavcodec/amrwbdec.c @@ -1283,7 +1283,7 @@ AVCodec ff_amrwb_decoder = { .priv_data_size = sizeof(AMRWBContext), .init = amrwb_decode_init, .decode = amrwb_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/atrac9dec.c b/libavcodec/atrac9dec.c index f0fcd0cb13..f2413ef68a 100644 --- a/libavcodec/atrac9dec.c +++ b/libavcodec/atrac9dec.c @@ -996,5 +996,5 @@ AVCodec ff_atrac9_decoder = { .decode = atrac9_decode_frame, .flush = atrac9_decode_flush, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, - .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c index 66055b79aa..19003f929e 100644 --- a/libavcodec/audiotoolboxdec.c +++ b/libavcodec/audiotoolboxdec.c @@ -595,7 +595,7 @@ static av_cold int ffat_close_decoder(AVCodecContext *avctx) .flush = ffat_decode_flush, \ .priv_class = &ffat_##NAME##_dec_class, \ .bsfs = bsf_name, \ - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, \ + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_CHANNEL_CONF, \ .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, \ .wrapper_name = "at", \ }; diff --git a/libavcodec/bmvaudio.c b/libavcodec/bmvaudio.c index b1587ab366..7c4dad7f8d 100644 --- a/libavcodec/bmvaudio.c +++ b/libavcodec/bmvaudio.c @@ -85,5 +85,5 @@ AVCodec ff_bmv_audio_decoder = { .id = AV_CODEC_ID_BMV_AUDIO, .init = bmv_aud_decode_init, .decode = bmv_aud_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/cngdec.c b/libavcodec/cngdec.c index 747ab49cd0..ceee087c57 100644 --- a/libavcodec/cngdec.c +++ b/libavcodec/cngdec.c @@ -173,7 +173,7 @@ AVCodec ff_comfortnoise_decoder = { .close = cng_decode_close, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, }; diff --git a/libavcodec/dsicinaudio.c b/libavcodec/dsicinaudio.c index 290dab41a5..3ee6c196d2 100644 --- a/libavcodec/dsicinaudio.c +++ b/libavcodec/dsicinaudio.c @@ -129,5 +129,5 @@ AVCodec ff_dsicinaudio_decoder = { .priv_data_size = sizeof(CinAudioContext), .init = cinaudio_decode_init, .decode = cinaudio_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/dss_sp.c b/libavcodec/dss_sp.c index 14025fcdde..71da65cecd 100644 --- a/libavcodec/dss_sp.c +++ b/libavcodec/dss_sp.c @@ -781,5 +781,5 @@ AVCodec ff_dss_sp_decoder = { .priv_data_size = sizeof(DssSpContext), .init = dss_sp_decode_init, .decode = dss_sp_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/evrcdec.c b/libavcodec/evrcdec.c index 8728c02a3b..00e342a1f6 100644 --- a/libavcodec/evrcdec.c +++ b/libavcodec/evrcdec.c @@ -935,7 +935,7 @@ AVCodec ff_evrc_decoder = { .id = AV_CODEC_ID_EVRC, .init = evrc_decode_init, .decode = evrc_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_data_size = sizeof(EVRCContext), .priv_class = &evrcdec_class, }; diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c index 7c270bc33a..8444d9a4bc 100644 --- a/libavcodec/g722dec.c +++ b/libavcodec/g722dec.c @@ -147,6 +147,6 @@ AVCodec ff_adpcm_g722_decoder = { .priv_data_size = sizeof(G722Context), .init = g722_decode_init, .decode = g722_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_class = &g722_decoder_class, }; diff --git a/libavcodec/g726.c b/libavcodec/g726.c index 80cb064912..71f5791416 100644 --- a/libavcodec/g726.c +++ b/libavcodec/g726.c @@ -513,7 +513,7 @@ AVCodec ff_adpcm_g726_decoder = { .init = g726_decode_init, .decode = g726_decode_frame, .flush = g726_decode_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; #endif @@ -526,7 +526,7 @@ AVCodec ff_adpcm_g726le_decoder = { .init = g726_decode_init, .decode = g726_decode_frame, .flush = g726_decode_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM little-endian"), }; #endif diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c index cd56995183..bf3740aa5d 100644 --- a/libavcodec/gsmdec.c +++ b/libavcodec/gsmdec.c @@ -120,7 +120,7 @@ AVCodec ff_gsm_decoder = { .init = gsm_init, .decode = gsm_decode_frame, .flush = gsm_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; #endif #if CONFIG_GSM_MS_DECODER @@ -133,6 +133,6 @@ AVCodec ff_gsm_ms_decoder = { .init = gsm_init, .decode = gsm_decode_frame, .flush = gsm_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; #endif diff --git a/libavcodec/ilbcdec.c b/libavcodec/ilbcdec.c index a82a27525c..33f4e2c1eb 100644 --- a/libavcodec/ilbcdec.c +++ b/libavcodec/ilbcdec.c @@ -1484,6 +1484,6 @@ AVCodec ff_ilbc_decoder = { .id = AV_CODEC_ID_ILBC, .init = ilbc_decode_init, .decode = ilbc_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_data_size = sizeof(ILBCContext), }; diff --git a/libavcodec/imc.c b/libavcodec/imc.c index c26d8b0149..dbcb98a966 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -1092,7 +1092,7 @@ AVCodec ff_imc_decoder = { .close = imc_decode_close, .decode = imc_decode_frame, .flush = flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c index 8421f5b261..2164f36051 100644 --- a/libavcodec/libcodec2.c +++ b/libavcodec/libcodec2.c @@ -189,7 +189,7 @@ AVCodec ff_libcodec2_decoder = { .init = libcodec2_init_decoder, .close = libcodec2_close, .decode = libcodec2_decode, - .capabilities = 0, + .capabilities = AV_CODEC_CAP_CHANNEL_CONF, .supported_samplerates = (const int[]){ 8000, 0 }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, 0 }, diff --git a/libavcodec/libgsmdec.c b/libavcodec/libgsmdec.c index 89e1de0fed..1182afae6b 100644 --- a/libavcodec/libgsmdec.c +++ b/libavcodec/libgsmdec.c @@ -134,7 +134,7 @@ AVCodec ff_libgsm_decoder = { .close = libgsm_decode_close, .decode = libgsm_decode_frame, .flush = libgsm_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .wrapper_name = "libgsm", }; #endif @@ -149,7 +149,7 @@ AVCodec ff_libgsm_ms_decoder = { .close = libgsm_decode_close, .decode = libgsm_decode_frame, .flush = libgsm_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .wrapper_name = "libgsm", }; #endif diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c index 9a56cc8785..08f951ac2d 100644 --- a/libavcodec/libilbc.c +++ b/libavcodec/libilbc.c @@ -111,7 +111,7 @@ AVCodec ff_libilbc_decoder = { .priv_data_size = sizeof(ILBCDecContext), .init = ilbc_decode_init, .decode = ilbc_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_class = &ilbc_dec_class, }; diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c index 614b3a2218..f23bb48d5b 100644 --- a/libavcodec/libopencore-amr.c +++ b/libavcodec/libopencore-amr.c @@ -139,7 +139,7 @@ AVCodec ff_libopencore_amrnb_decoder = { .init = amr_nb_decode_init, .close = amr_nb_decode_close, .decode = amr_nb_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; #endif /* CONFIG_LIBOPENCORE_AMRNB_DECODER */ @@ -379,7 +379,7 @@ AVCodec ff_libopencore_amrwb_decoder = { .init = amr_wb_decode_init, .close = amr_wb_decode_close, .decode = amr_wb_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .wrapper_name = "libopencore_amrwb", }; diff --git a/libavcodec/libopusdec.c b/libavcodec/libopusdec.c index 1724a49906..082a431c6c 100644 --- a/libavcodec/libopusdec.c +++ b/libavcodec/libopusdec.c @@ -235,7 +235,7 @@ AVCodec ff_libopus_decoder = { .close = libopus_decode_close, .decode = libopus_decode, .flush = libopus_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c index d67c68c7f9..b02582b380 100644 --- a/libavcodec/libspeexdec.c +++ b/libavcodec/libspeexdec.c @@ -199,6 +199,6 @@ AVCodec ff_libspeex_decoder = { .close = libspeex_decode_close, .decode = libspeex_decode_frame, .flush = libspeex_decode_flush, - .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .wrapper_name = "libspeex", }; diff --git a/libavcodec/libvorbisdec.c b/libavcodec/libvorbisdec.c index 3c53b8fdaf..ebb0fcdd86 100644 --- a/libavcodec/libvorbisdec.c +++ b/libavcodec/libvorbisdec.c @@ -217,5 +217,5 @@ AVCodec ff_libvorbis_decoder = { .init = oggvorbis_decode_init, .decode = oggvorbis_decode_frame, .close = oggvorbis_decode_close, - .capabilities = AV_CODEC_CAP_DELAY, + .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/metasound.c b/libavcodec/metasound.c index 87cd7cb211..396310ba1e 100644 --- a/libavcodec/metasound.c +++ b/libavcodec/metasound.c @@ -385,7 +385,7 @@ AVCodec ff_metasound_decoder = { .init = metasound_decode_init, .close = ff_twinvq_decode_close, .decode = ff_twinvq_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c index ed25b71d2d..3b1608b29b 100644 --- a/libavcodec/mlpdec.c +++ b/libavcodec/mlpdec.c @@ -1338,7 +1338,7 @@ AVCodec ff_mlp_decoder = { .priv_data_size = sizeof(MLPDecodeContext), .init = mlp_decode_init, .decode = read_access_unit, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; #endif @@ -1351,7 +1351,7 @@ AVCodec ff_truehd_decoder = { .priv_data_size = sizeof(MLPDecodeContext), .init = mlp_decode_init, .decode = read_access_unit, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; #endif /* CONFIG_TRUEHD_DECODER */ diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index 6939716176..e9919aea62 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -392,7 +392,7 @@ AVCodec ff_mpc8_decoder = { .init = mpc8_decode_init, .decode = mpc8_decode_frame, .flush = mpc8_decode_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index 49a21b43ce..9ea679d89f 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -194,7 +194,7 @@ AVCodec ff_nellymoser_decoder = { .init = decode_init, .close = decode_end, .decode = decode_tag, - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_PARAM_CHANGE, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_PARAM_CHANGE | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, diff --git a/libavcodec/opusdec.c b/libavcodec/opusdec.c index 03086dea99..a08758d25d 100644 --- a/libavcodec/opusdec.c +++ b/libavcodec/opusdec.c @@ -737,5 +737,5 @@ AVCodec ff_opus_decoder = { .close = opus_decode_close, .decode = opus_decode_packet, .flush = opus_decode_flush, - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c index 517d7b518c..8e6f562b52 100644 --- a/libavcodec/pcm-bluray.c +++ b/libavcodec/pcm-bluray.c @@ -307,7 +307,7 @@ AVCodec ff_pcm_bluray_decoder = { .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_PCM_BLURAY, .decode = pcm_bluray_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c index b4afda2fb1..4878af5a2c 100644 --- a/libavcodec/qcelpdec.c +++ b/libavcodec/qcelpdec.c @@ -797,6 +797,6 @@ AVCodec ff_qcelp_decoder = { .id = AV_CODEC_ID_QCELP, .init = qcelp_decode_init, .decode = qcelp_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .priv_data_size = sizeof(QCELPContext), }; diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index fbc4c0cfdd..1eb6ce38bc 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -1877,6 +1877,6 @@ AVCodec ff_qdm2_decoder = { .init = qdm2_decode_init, .close = qdm2_decode_close, .decode = qdm2_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/qdmc.c b/libavcodec/qdmc.c index eca64b056e..94681a0b6b 100644 --- a/libavcodec/qdmc.c +++ b/libavcodec/qdmc.c @@ -735,5 +735,5 @@ AVCodec ff_qdmc_decoder = { .close = qdmc_decode_close, .decode = qdmc_decode_frame, .flush = qdmc_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/ra144dec.c b/libavcodec/ra144dec.c index c716c32e67..40b278895f 100644 --- a/libavcodec/ra144dec.c +++ b/libavcodec/ra144dec.c @@ -134,5 +134,5 @@ AVCodec ff_ra_144_decoder = { .priv_data_size = sizeof(RA144Context), .init = ra144_decode_init, .decode = ra144_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 8df17891b1..6495026874 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -244,5 +244,5 @@ AVCodec ff_ra_288_decoder = { .priv_data_size = sizeof(RA288Context), .init = ra288_decode_init, .decode = ra288_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c index 5361ee2c89..b8f01d5ff0 100644 --- a/libavcodec/sbcdec.c +++ b/libavcodec/sbcdec.c @@ -370,7 +370,7 @@ AVCodec ff_sbc_decoder = { .priv_data_size = sizeof(SBCDecContext), .init = sbc_decode_init, .decode = sbc_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, 0}, diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c index ad045a543f..7ba9fd4a07 100644 --- a/libavcodec/sipr.c +++ b/libavcodec/sipr.c @@ -570,6 +570,6 @@ AVCodec ff_sipr_decoder = { .priv_data_size = sizeof(SiprContext), .init = sipr_decoder_init, .decode = sipr_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c index a285228bbc..32e94d24f6 100644 --- a/libavcodec/sonic.c +++ b/libavcodec/sonic.c @@ -1081,7 +1081,7 @@ AVCodec ff_sonic_decoder = { .init = sonic_decode_init, .close = sonic_decode_close, .decode = sonic_decode_frame, - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_EXPERIMENTAL, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_EXPERIMENTAL | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; #endif /* CONFIG_SONIC_DECODER */ diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c index 9fa1cb1f7f..6bf5dcc2d3 100644 --- a/libavcodec/takdec.c +++ b/libavcodec/takdec.c @@ -947,7 +947,7 @@ AVCodec ff_tak_decoder = { .close = tak_decode_close, .decode = tak_decode_frame, .update_thread_context = ONLY_IF_THREADS_ENABLED(update_thread_context), - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, diff --git a/libavcodec/tta.c b/libavcodec/tta.c index e68e4fbb36..f1e159b03d 100644 --- a/libavcodec/tta.c +++ b/libavcodec/tta.c @@ -423,6 +423,6 @@ AVCodec ff_tta_decoder = { .init = tta_decode_init, .close = tta_decode_close, .decode = tta_decode_frame, - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_CHANNEL_CONF, .priv_class = &tta_decoder_class, }; diff --git a/libavcodec/twinvqdec.c b/libavcodec/twinvqdec.c index c00ebb2ad5..b13f8a04cc 100644 --- a/libavcodec/twinvqdec.c +++ b/libavcodec/twinvqdec.c @@ -422,7 +422,7 @@ AVCodec ff_twinvq_decoder = { .init = twinvq_decode_init, .close = ff_twinvq_decode_close, .decode = ff_twinvq_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, }; diff --git a/libavcodec/vima.c b/libavcodec/vima.c index b4620acf6b..2dfc2cc5c8 100644 --- a/libavcodec/vima.c +++ b/libavcodec/vima.c @@ -214,5 +214,5 @@ AVCodec ff_adpcm_vima_decoder = { .id = AV_CODEC_ID_ADPCM_VIMA, .init = decode_init, .decode = decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, }; diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index be6d1b2d21..169df591b3 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1890,7 +1890,7 @@ AVCodec ff_vorbis_decoder = { .close = vorbis_decode_close, .decode = vorbis_decode_frame, .flush = vorbis_decode_flush, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .channel_layouts = ff_vorbis_channel_layouts, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index 9a7e634d7d..2d49172eaf 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -1711,7 +1711,7 @@ AVCodec ff_wavpack_decoder = { .flush = wavpack_decode_flush, .update_thread_context = ONLY_IF_THREADS_ENABLED(update_thread_context), .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | - AV_CODEC_CAP_SLICE_THREADS, + AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_ALLOCATE_PROGRESS, }; diff --git a/libavcodec/ws-snd1.c b/libavcodec/ws-snd1.c index bc9ed00938..958c067736 100644 --- a/libavcodec/ws-snd1.c +++ b/libavcodec/ws-snd1.c @@ -177,6 +177,6 @@ AVCodec ff_ws_snd1_decoder = { .id = AV_CODEC_ID_WESTWOOD_SND1, .init = ws_snd_decode_init, .decode = ws_snd_decode_frame, - .capabilities = AV_CODEC_CAP_DR1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; -- cgit v1.2.3