[FFmpeg-devel] [PATCH] Implement AAC Long Term Prediction (LTP) decoding module

Alex Converse alex.converse
Thu Feb 10 06:23:34 CET 2011


On Sat, Feb 5, 2011 at 2:04 AM, Young Han Lee <cpumaker at gmail.com> wrote:
> On Sat, Feb 5, 2011 at 6:23 PM, Alex Converse <alex.converse at gmail.com>wrote:
>
>> On Fri, Feb 4, 2011 at 2:54 AM, Young Han Lee <cpumaker at gmail.com> wrote:
>> > On Fri, Feb 4, 2011 at 2:09 PM, Alex Converse <alex.converse at gmail.com
>> >wrote:
>> >
>> >> On Thu, Feb 3, 2011 at 3:37 AM, Young Han Lee <cpumaker at gmail.com>
>> wrote:
>> >> > On Thu, Feb 3, 2011 at 2:18 PM, Alex Converse <
>> alex.converse at gmail.com
>> >> >wrote:
>> >>
>> >> [...]
>> >>
>> >> >
>> >> > please check again.
>> >> >
>> >>
>> >> > diff --git a/libavcodec/aac.h b/libavcodec/aac.h
>> >> > index cff476a..1e300fb 100644
>> >> > --- a/libavcodec/aac.h
>> >> > +++ b/libavcodec/aac.h
>> >> [...]
>> >> > @@ -206,14 +220,16 @@ typedef struct {
>> >> > ? ? ?IndividualChannelStream ics;
>> >> > ? ? ?TemporalNoiseShaping tns;
>> >> > ? ? ?Pulse pulse;
>> >> > - ? ?enum BandType band_type[128]; ? ? ? ? ? ? ///< band types
>> >> > - ? ?int band_type_run_end[120]; ? ? ? ? ? ? ? ///< band type run end
>> >> points
>> >> > - ? ?float sf[120]; ? ? ? ? ? ? ? ? ? ? ? ? ? ?///< scalefactors
>> >> > - ? ?int sf_idx[128]; ? ? ? ? ? ? ? ? ? ? ? ? ?///< scalefactor
>> indices
>> >> (used by encoder)
>> >> > - ? ?uint8_t zeroes[128]; ? ? ? ? ? ? ? ? ? ? ?///< band is not coded
>> >> (used by encoder)
>> >> > - ? ?DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for
>> >> IMDCT
>> >> > - ? ?DECLARE_ALIGNED(16, float, saved)[1024]; ?///< overlap
>> >> > - ? ?DECLARE_ALIGNED(16, float, ret)[2048]; ? ?///< PCM output
>> >> > + ? ?enum BandType band_type[128]; ? ? ? ? ? ? ? ? ///< band types
>> >> > + ? ?int band_type_run_end[120]; ? ? ? ? ? ? ? ? ? ///< band type run
>> end
>> >> points
>> >> > + ? ?float sf[120]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?///< scalefactors
>> >> > + ? ?int sf_idx[128]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?///< scalefactor
>> >> indices (used by encoder)
>> >> > + ? ?uint8_t zeroes[128]; ? ? ? ? ? ? ? ? ? ? ? ? ?///< band is not
>> coded
>> >> (used by encoder)
>> >> > + ? ?DECLARE_ALIGNED(16, float, coeffs)[1024]; ? ? ///< coefficients
>> for
>> >> IMDCT
>> >> > + ? ?DECLARE_ALIGNED(16, float, saved)[1024]; ? ? ?///< overlap
>> >> > + ? ?DECLARE_ALIGNED(16, float, saved_ltp)[1024]; ?///< overlap for
>> LTP
>> >> > + ? ?DECLARE_ALIGNED(16, float, ret)[2048]; ? ? ? ?///< PCM output
>> >> > + ? ?int16_t ltp_state[3072];
>> >>
>> >> I meant DECLARE_ALIGNED here
>> >>
>>
>> You forgot declare ltp_state with DECLARE_ALIGNED
>>
>>
> I did it this time :)
>
>
>> >> > ? ? ?PredictorState predictor_state[MAX_PREDICTORS];
>> >> > ?} SingleChannelElement;
>> >> >
>> >> > @@ -259,7 +275,7 @@ typedef struct {
>> >> > ? ? ? * @defgroup temporary aligned temporary buffers (We do not want
>> to
>> >> have these on the stack.)
>> >> > ? ? ? * @{
>> >> > ? ? ? */
>> >> > - ? ?DECLARE_ALIGNED(16, float, buf_mdct)[1024];
>> >> > + ? ?DECLARE_ALIGNED(16, float, buf_mdct)[2048];
>> >> > ? ? ?/** @} */
>> >> >
>> >> > ? ? ?/**
>> >> > @@ -268,6 +284,7 @@ typedef struct {
>> >> > ? ? ? */
>> >> > ? ? ?FFTContext mdct;
>> >> > ? ? ?FFTContext mdct_small;
>> >> > + ? ?FFTContext mdct_ltp;
>> >> > ? ? ?DSPContext dsp;
>> >> > ? ? ?FmtConvertContext fmt_conv;
>> >> > ? ? ?int random_state;
>>
>> [..]
>>
>> >
>> > Thank you, Alex :)
>> >
>> > Young Han
>> >
>>
>> Thanks,
>>
>> Alex
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at mplayerhq.hu
>> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>>
>
> Thanks,
>
> Young Han
>

This version looks good.

Does anyone else have comments?



More information about the ffmpeg-devel mailing list