On 08/06/2012 05:40 AM, Loren Merritt wrote:
> 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

Thanks. Also, we might be able to replace the 2 psrad with a pand with
0xFFFF0000FFFF0000FFFF0000FFFF0000
then use [pf_s32_inv_scale] instead of [pf_s16_inv_scale]. I'll try it out.

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

Reply via email to