[FFmpeg-devel] [PATCH 1/1] avcodec/pcm: fix build warning by replacing deprecated method with avcodec_get_supported_config.

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Mar 13 07:50:02 EET 2025


Zhao Zhili:
> 
> 
>> On Mar 11, 2025, at 17:25, joneyao6 at gmail.com wrote:
>>
>> From: Jingwei Yao <joneyao6 at gmail.com>
>>
>> Signed-off-by: Jingwei Yao <joneyao6 at gmail.com>
>> ---
>> libavcodec/pcm.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
>> index a23293dca2..e04ca78101 100644
>> --- a/libavcodec/pcm.c
>> +++ b/libavcodec/pcm.c
>> @@ -252,8 +252,10 @@ typedef struct PCMDecode {
>> static av_cold int pcm_decode_init(AVCodecContext *avctx)
>> {
>>     PCMDecode *s = avctx->priv_data;
>> +    const enum AVSampleFormat *sample_fmts;
>>     AVFloatDSPContext *fdsp;
>> -    int i;
>> +    int num_sample_fmts;
>> +    int i, ret;
>>
>>     switch (avctx->codec_id) {
>>     case AV_CODEC_ID_PCM_ALAW:
>> @@ -284,7 +286,13 @@ static av_cold int pcm_decode_init(AVCodecContext *avctx)
>>         break;
>>     }
>>
>> -    avctx->sample_fmt = avctx->codec->sample_fmts[0];
>> +    ret = avcodec_get_supported_config(avctx, NULL, AV_CODEC_CONFIG_SAMPLE_FORMAT,
>> +                                       0, (const void**)&sample_fmts, &num_sample_fmts);
>> +    if (ret < 0)
>> +        return ret;
>> +
>> +    if (sample_fmts)
>> +        avctx->sample_fmt = sample_fmts[0];
> 
> How about just disable the warning with FF_DISABLE_DEPRECATION_WARNINGS?
> 
> sample_fmts should be moved to FFCodec finally. So we can fix it finally by
> 
>     avctx->sample_fmt = ffcodec(avctx->codec)->sample_fmts[0];

Actually, sample_fmts and the other stuff should be encoder-only. I
therefore just sent a patchset that avoids using it here (by the decoders).

> 
> It doesn’t worth the trouble and complexity to get some information which is only an array
> in current translation unit.
> 


More information about the ffmpeg-devel mailing list