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