[FFmpeg-devel] [PATCH v3] avformat/riffdec: warn on invalid sample rate

Marton Balint cus at passwd.hu
Fri Jan 31 12:04:12 EET 2025



On Fri, 31 Jan 2025, Viraaj Raulgaonkar wrote:

> On Fri, Jan 31, 2025 at 4:49 AM Marton Balint <cus at passwd.hu> wrote:
>>
>>
>>
>> On Thu, 30 Jan 2025, Viraaj Raulgaonkar wrote:
>>
>> > If std_strict_compliance < FF_COMPLIANCE_STRICT, then warn the user of
>> > the invalid sample rate instead of returning an error. This allows the
>> > sample rate to be decoded in certain cases.
>> >
>> > Fixes Trac Ticket #11361.
>> > ---
>> > libavformat/riffdec.c | 7 +++++--
>> > 1 file changed, 5 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
>> > index b7a85a6ab2..1f4cacf1d5 100644
>> > --- a/libavformat/riffdec.c
>> > +++ b/libavformat/riffdec.c
>> > @@ -180,9 +180,12 @@ int ff_get_wav_header(void *logctx, AVIOContext *pb,
>> >     par->bit_rate = bitrate;
>> >
>> >     if (par->sample_rate <= 0) {
>> > -        av_log(logctx, AV_LOG_ERROR,
>> > +        int strict = ((AVFormatContext*)logctx)->strict_std_compliance >= FF_COMPLIANCE_STRICT;
>>
>> You should change the type in the function declaration, not cast it here.
>
> Should I change the function declaration in a separate patch?

The most clean way would be to change the type of logctx and also rename 
"logctx" it to "s" (a common variable name for an AVFormatContext) in the 
first patch, then do the sample rate change in the second patch.

Regards,
Marton


>
> Thanks,
> Viraaj
>
>>
>> Thanks,
>> Marton
>>
>> > +        av_log(logctx, strict ? AV_LOG_ERROR : AV_LOG_WARNING,
>> >                "Invalid sample rate: %d\n", par->sample_rate);
>> > -        return AVERROR_INVALIDDATA;
>> > +        if (strict)
>> > +            return AVERROR_INVALIDDATA;
>> > +        par->sample_rate = 0;
>> >     }
>> >     if (par->codec_id == AV_CODEC_ID_AAC_LATM) {
>> >         /* Channels and sample_rate values are those prior to applying SBR
>> > --
>> > 2.39.5
>> >
>> > _______________________________________________
>> > ffmpeg-devel mailing list
>> > ffmpeg-devel at ffmpeg.org
>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> >
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list