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

Alex Converse alex.converse
Sat Feb 5 10:23:36 CET 2011


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

>> > ? ? ?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



More information about the ffmpeg-devel mailing list