[FFmpeg-devel] [PATCH] HE-AAC v1 decoder try 4

Alex Converse alex.converse
Wed Feb 17 21:41:34 CET 2010


On Wed, Feb 17, 2010 at 1:42 AM, Alexander Strange
<astrange at ithinksw.com> wrote:
> On Feb 16, 2010, at 6:19 PM, Alex Converse wrote:
> > On Tue, Feb 16, 2010 at 6:01 PM, Alex Converse <alex.converse at gmail.com>wrote:
> >
> >> Notes:
> >> *All the computation time is spent in ff_sbr_apply() and it's
> >> children. If it isn't called from ff_sbr_apply() making it 100% faster
> >> isn't going to buy us anything.
> >> *Right now the synthesis filterbank is written on top on an MDCT. With
> >> appropriate SIMD functions it may make sense to move it to an FFT.
> >> Right now the MDCT version is much faster.
> >> *SIMD placeholder patch not included
> >>
> >
> > Wrong patch.
> > try 4.1 :)
> > <sbr.diff>
>
> I tried it with ffplay and it plays 2x too slow. If ffplay needs to be fixed, I wonder if other players will too? Well, it's unavoidable anyway.
> ffmpeg to wav sounds fine.
>
> > + ? ? ? ?while (k <= sbr->n_lim) {
> > + ? ? ? ? ? ?// if ( nOctaves * limBands >= 0.49) ...
> > + ? ? ? ? ? ?if (log2(sbr->f_tablelim[k] / (float)sbr->f_tablelim[k-1]) *
> > + ? ? ? ? ? ? ? ?lim_bands_per_octave[sbr->bs_limiter_bands - 1] >= 0.49) {
> > + ? ? ? ? ? ? ? ?k++;
> > + ? ? ? ? ? ? ? ?continue;
> > + ? ? ? ? ? ?}
> > + ? ? ? ? ? ?if (sbr->f_tablelim[k] == sbr->f_tablelim[k-1] ||
> > + ? ? ? ? ? ? ? ?!in_table_int16(patch_borders, sbr->num_patches, sbr->f_tablelim[k]))
> > + ? ? ? ? ? ? ? ?remove_table_element_int16(sbr->f_tablelim, &sbr->n_lim, k);
> > + ? ? ? ? ? ?else if (!in_table_int16(patch_borders, sbr->num_patches, sbr->f_tablelim[k-1]))
> > + ? ? ? ? ? ? ? ?remove_table_element_int16(sbr->f_tablelim, &sbr->n_lim, k-1);
> > + ? ? ? ? ? ?else
> > + ? ? ? ? ? ? ? ?k++;
> > + ? ? ? ?};
>
> Stray ';' at the end.

Fixed. As well as another stray ';' on one of the macros

>
> > +/// Chirp Factors (14496-3 sp04 p214)
> > +static void sbr_chirp(SpectralBandReplication *sbr, SBRData *ch_data)
> > +{
> > + ? ?int i;
> > + ? ?float new_bw;
> > + ? ?float temp_bw;
> > +
>
>
> I got an uninitialized warning on new_bw. av_uninit or a default case in the switch fixed it.

Fixed

>
> Didn't see anything else.



More information about the ffmpeg-devel mailing list