On Mon, 6 Aug 2012, Justin Ruggles wrote:

> ---
>  libavresample/x86/audio_convert.asm    |   39 
> ++++++++++++++++++++++++++++++++
>  libavresample/x86/audio_convert_init.c |   13 ++++++++++
>  2 files changed, 52 insertions(+), 0 deletions(-)
>
> diff --git a/libavresample/x86/audio_convert.asm 
> b/libavresample/x86/audio_convert.asm
> index 09c4e7f..ea0debf 100644
> --- a/libavresample/x86/audio_convert.asm
> +++ b/libavresample/x86/audio_convert.asm
> @@ -923,3 +923,42 @@ CONV_S16_TO_S16P_6CH
>  INIT_XMM avx
>  CONV_S16_TO_S16P_6CH
>  %endif
> +
> +;------------------------------------------------------------------------------
> +; void ff_conv_s16_to_fltp_2ch(float *const *dst, int16_t *src, int len,
> +;                              int channels);
> +;------------------------------------------------------------------------------
> +
> +%macro CONV_S16_TO_FLTP_2CH 0
> +cglobal conv_s16_to_fltp_2ch, 3,4,4, dst0, src, len, dst1
> +    lea       lenq, [4*lend]
> +    mov      dst1q, [dst0q+gprsize]
> +    mov      dst0q, [dst0q        ]
> +    add       srcq, lenq
> +    add      dst0q, lenq
> +    add      dst1q, lenq
> +    neg       lenq
> +    mova        m3, [pf_s16_inv_scale]
> +.loop:
> +    mova       m0, [srcq+lenq]
> +    S16_TO_S32_SX 0, 1
> +    cvtdq2ps   m0, m0
> +    cvtdq2ps   m1, m1
> +    mulps      m0, m0, m3
> +    mulps      m1, m1, m3
> +    DEINT2_PS   0, 1, 2

pslld      m1, m0, 16
psrad      m0, m0, 16
psrad      m1, m1, 16
cvtdq2ps   m0, m0
cvtdq2ps   m1, m1
mulps      m0, m0, m3
mulps      m1, m1, m3

> +    mova  [dst0q+lenq], m0
> +    mova  [dst1q+lenq], m1
> +    add      lenq, mmsize
> +    jl .loop
> +    REP_RET
> +%endmacro

--Loren Merritt
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to