Jindřich Makovička <makov...@gmail.com> writes:

> On Mon, Dec 10, 2012 at 4:18 PM, Måns Rullgård <m...@mansr.com> wrote:
>> Jindřich Makovička <makov...@gmail.com> writes:
>>
>>> On Mon, Dec 10, 2012 at 3:00 PM, Måns Rullgård <m...@mansr.com> wrote:
>>>> Jindřich Makovička <makov...@gmail.com> writes:
>>>>
>>>>> diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c
>>>>> index add9f18..dac2372 100644
>>>>> --- a/libavcodec/aacsbr.c
>>>>> +++ b/libavcodec/aacsbr.c
>>>>> @@ -926,7 +926,9 @@ static void read_sbr_extension(AACContext *ac, 
>>>>> SpectralBandReplication *sbr,
>>>>>          }
>>>>>          break;
>>>>>      default:
>>>>> -        av_log_missing_feature(ac->avctx, "Reserved SBR extensions", 1);
>>>>> +        // some files contain 0-padding
>>>>> +        if (bs_extension_id || *num_bits_left > 16 || show_bits(gb, 
>>>>> *num_bits_left))
>>>>
>>>> show_bits() is undefined for lengths >25.  Does something guarantee that
>>>> this can't happen here?
>>>
>>> AFAICS, the *num_bits_left > 16 comparison just before show_bits() .
>>
>> I guess I'm blind.
>
> To be more precise, when *num_bits_left > 16, the whole expression
> evaluates as true and show_bits(gb, *num_bits_left) won't be called.
> So get_bits() will be used to get 16 bits at most.

I know how the || operator works, but only when I notice it's there :)

-- 
Måns Rullgård
m...@mansr.com
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to