Justin Ruggles <[email protected]> writes:

> ---
> This fixes fate-aac-ap05_48 on PPC. Might fix it on ARM too.
>
>  libavcodec/aac.h    |    2 +-
>  libavcodec/aacdec.c |    6 +++---
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
>
> diff --git a/libavcodec/aac.h b/libavcodec/aac.h
> index ecb8191..76b6a78 100644
> --- a/libavcodec/aac.h
> +++ b/libavcodec/aac.h
> @@ -227,7 +227,7 @@ typedef struct {
>      DECLARE_ALIGNED(32, float,   coeffs)[1024];     ///< coefficients for 
> IMDCT
>      DECLARE_ALIGNED(32, float,   saved)[1024];      ///< overlap
>      DECLARE_ALIGNED(32, float,   ret)[2048];        ///< PCM output
> -    DECLARE_ALIGNED(16, int16_t, ltp_state)[3072];  ///< time signal for LTP
> +    DECLARE_ALIGNED(16, float,   ltp_state)[3072];  ///< time signal for LTP
>      PredictorState predictor_state[MAX_PREDICTORS];
>  } SingleChannelElement;
>  
> diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
> index d26cce9..5f9dd83 100644
> --- a/libavcodec/aacdec.c
> +++ b/libavcodec/aacdec.c
> @@ -1820,9 +1820,9 @@ static void update_ltp(AACContext *ac, 
> SingleChannelElement *sce)
>              saved_ltp[i + 512] = ac->buf_mdct[1023 - i] * lwindow[511 - i];
>      }
>  
> -    memcpy(sce->ltp_state, &sce->ltp_state[1024], 1024 * sizeof(int16_t));
> -    ac->fmt_conv.float_to_int16(&(sce->ltp_state[1024]), sce->ret,  1024);
> -    ac->fmt_conv.float_to_int16(&(sce->ltp_state[2048]), saved_ltp, 1024);
> +    memcpy(sce->ltp_state,      sce->ltp_state+1024, 1024 * 
> sizeof(*sce->ltp_state));
> +    memcpy(sce->ltp_state+1024, sce->ret,            1024 * 
> sizeof(*sce->ltp_state));
> +    memcpy(sce->ltp_state+2048, saved_ltp,           1024 * 
> sizeof(*sce->ltp_state));
>  }

The change makes sense as such, but I wonder if those memcpies couldn't
be replaced with some pointer swizzling instead. That can be a separate
patch of course.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to