[FFmpeg-devel] [PATCH] avcodec/aacenc_tns: remove unreachable code branch

Yotam Ofek yotam.ofek at gmail.com
Sun May 12 15:24:04 EEST 2024


Nope :)
Last commit that touched this was 9 years ago, seems like it's an oversight
that was never noticed/fixed.
The native AAC encoder is stable, even if this code was supposed to behave
differently, it's probably good enough as is, and I think that having this
redundant conditional is bad for readability and maintenance (definitely
confused me...)


On Sun, May 12, 2024 at 2:19 PM Timo Rothenpieler <timo at rothenpieler.org>
wrote:

> On 12.05.2024 10:53, Yotam Ofek wrote:
> > the condition being tested was the same as the stop condition for the
> containing loop,
> > so inside the loop it would always test positive
> > ---
> >   libavcodec/aacenc_tns.c | 7 +++----
> >   1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/libavcodec/aacenc_tns.c b/libavcodec/aacenc_tns.c
> > index 60888fece7..fa3cd2af39 100644
> > --- a/libavcodec/aacenc_tns.c
> > +++ b/libavcodec/aacenc_tns.c
> > @@ -181,7 +181,7 @@ void ff_aac_search_for_tns(AACEncContext *s,
> SingleChannelElement *sce)
> >
> >       for (w = 0; w < sce->ics.num_windows; w++) {
> >           float en[2] = {0.0f, 0.0f};
> > -        int oc_start = 0, os_start = 0;
> > +        int oc_start = 0;
> >           int coef_start = sce->ics.swb_offset[sfb_start];
> >
> >           for (g = sfb_start; g < sce->ics.num_swb && g <= sfb_end; g++)
> {
> > @@ -202,12 +202,11 @@ void ff_aac_search_for_tns(AACEncContext *s,
> SingleChannelElement *sce)
> >           tns->n_filt[w] = is8 ? 1 : order != TNS_MAX_ORDER ? 2 : 3;
> >           for (g = 0; g < tns->n_filt[w]; g++) {
> >               tns->direction[w][g] = slant != 2 ? slant : en[g] < en[!g];
> > -            tns->order[w][g] = g < tns->n_filt[w] ?
> order/tns->n_filt[w] : order - oc_start;
> > -            tns->length[w][g] = g < tns->n_filt[w] ?
> sfb_len/tns->n_filt[w] : sfb_len - os_start;
> > +            tns->order[w][g] = order/tns->n_filt[w];
> > +            tns->length[w][g] = sfb_len/tns->n_filt[w];
>
> Are you sure this isn't an indication that this code was meant to do
> something else, and there is actually a different issue than just dead
> code here?
>
> >               quantize_coefs(&coefs[oc_start], tns->coef_idx[w][g],
> tns->coef[w][g],
> >                               tns->order[w][g], c_bits);
> >               oc_start += tns->order[w][g];
> > -            os_start += tns->length[w][g];
> >           }
> >           count++;
> >       }
> _______________________________________________
> 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