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

Rob robert.swain
Thu Feb 10 09:46:27 CET 2011


On 10 February 2011 06:23, Alex Converse <alex.converse at gmail.com> wrote:
> 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?

I'll have a look over it shortly.

Regards,
Rob



More information about the ffmpeg-devel mailing list