This will make the x86 asm simpler. ARM conversion by Martin Storsjö <mar...@martin.st> and Janne Grunau <janne-li...@jannau.net> --- libavcodec/ac3enc_float.c | 2 +- libavcodec/arm/audiodsp_init_neon.c | 3 +-- libavcodec/arm/audiodsp_neon.S | 5 ++--- libavcodec/audiodsp.c | 4 ++-- libavcodec/audiodsp.h | 3 ++- libavcodec/cook.c | 2 +- libavcodec/x86/audiodsp.h | 2 +- libavcodec/x86/audiodsp_mmx.c | 2 +- tests/checkasm/audiodsp.c | 8 ++++---- 9 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 822f431..968cb2c 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -111,7 +111,7 @@ static void scale_coefficients(AC3EncodeContext *s) static void clip_coefficients(AudioDSPContext *adsp, float *coef, unsigned int len) { - adsp->vector_clipf(coef, coef, COEF_MIN, COEF_MAX, len); + adsp->vector_clipf(coef, coef, len, COEF_MIN, COEF_MAX); } diff --git a/libavcodec/arm/audiodsp_init_neon.c b/libavcodec/arm/audiodsp_init_neon.c index af53272..08405cb 100644 --- a/libavcodec/arm/audiodsp_init_neon.c +++ b/libavcodec/arm/audiodsp_init_neon.c @@ -25,8 +25,7 @@ #include "libavcodec/audiodsp.h" #include "audiodsp_arm.h" -void ff_vector_clipf_neon(float *dst, const float *src, float min, float max, - int len); +void ff_vector_clipf_neon(float *dst, const float *src, int len, float min, float max); void ff_vector_clip_int32_neon(int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len); diff --git a/libavcodec/arm/audiodsp_neon.S b/libavcodec/arm/audiodsp_neon.S index dfb998d..5871b82 100644 --- a/libavcodec/arm/audiodsp_neon.S +++ b/libavcodec/arm/audiodsp_neon.S @@ -24,9 +24,8 @@ function ff_vector_clipf_neon, export=1 VFP vdup.32 q1, d0[1] VFP vdup.32 q0, d0[0] -NOVFP vdup.32 q0, r2 -NOVFP vdup.32 q1, r3 -NOVFP ldr r2, [sp] +NOVFP vdup.32 q0, r3 +NOVFP vld1.32 {d2[],d3[]}, [sp] vld1.f32 {q2},[r1,:128]! vmin.f32 q10, q2, q1 vld1.f32 {q3},[r1,:128]! diff --git a/libavcodec/audiodsp.c b/libavcodec/audiodsp.c index f7e6167..776cd11 100644 --- a/libavcodec/audiodsp.c +++ b/libavcodec/audiodsp.c @@ -55,8 +55,8 @@ static void vector_clipf_c_opposite_sign(float *dst, const float *src, } } -static void vector_clipf_c(float *dst, const float *src, - float min, float max, int len) +static void vector_clipf_c(float *dst, const float *src, int len, + float min, float max) { int i; diff --git a/libavcodec/audiodsp.h b/libavcodec/audiodsp.h index e48cdb0..2b4f9d4 100644 --- a/libavcodec/audiodsp.h +++ b/libavcodec/audiodsp.h @@ -48,7 +48,8 @@ typedef struct AudioDSPContext { /* assume len is a multiple of 16, and arrays are 16-byte aligned */ void (*vector_clipf)(float *dst /* align 16 */, const float *src /* align 16 */, - float min, float max, int len /* align 16 */); + int len /* align 16 */, + float min, float max); } AudioDSPContext; void ff_audiodsp_init(AudioDSPContext *c); diff --git a/libavcodec/cook.c b/libavcodec/cook.c index 016b1d0..c990333 100644 --- a/libavcodec/cook.c +++ b/libavcodec/cook.c @@ -867,7 +867,7 @@ static inline void decode_bytes_and_gain(COOKContext *q, COOKSubpacket *p, static void saturate_output_float(COOKContext *q, float *out) { q->adsp.vector_clipf(out, q->mono_mdct_output + q->samples_per_channel, - -1.0f, 1.0f, FFALIGN(q->samples_per_channel, 8)); + FFALIGN(q->samples_per_channel, 8), -1.0f, 1.0f); } diff --git a/libavcodec/x86/audiodsp.h b/libavcodec/x86/audiodsp.h index 321056b..c87ee45 100644 --- a/libavcodec/x86/audiodsp.h +++ b/libavcodec/x86/audiodsp.h @@ -20,6 +20,6 @@ #define AVCODEC_X86_AUDIODSP_H void ff_vector_clipf_sse(float *dst, const float *src, - float min, float max, int len); + int len, float min, float max); #endif /* AVCODEC_X86_AUDIODSP_H */ diff --git a/libavcodec/x86/audiodsp_mmx.c b/libavcodec/x86/audiodsp_mmx.c index cb55059..04cbb90 100644 --- a/libavcodec/x86/audiodsp_mmx.c +++ b/libavcodec/x86/audiodsp_mmx.c @@ -23,7 +23,7 @@ #if HAVE_INLINE_ASM void ff_vector_clipf_sse(float *dst, const float *src, - float min, float max, int len) + int len, float min, float max) { x86_reg i = (len - 16) * 4; __asm__ volatile ( diff --git a/tests/checkasm/audiodsp.c b/tests/checkasm/audiodsp.c index 3f3ac00..7854aad 100644 --- a/tests/checkasm/audiodsp.c +++ b/tests/checkasm/audiodsp.c @@ -113,7 +113,7 @@ void checkasm_check_audiodsp(void) int i, len; declare_func_emms(AV_CPU_FLAG_MMX, void, float *dst, const float *src, - float min, float max, unsigned int len); + int len, float min, float max); val1 = (float)rnd() / (UINT_MAX >> 1) - 1.0f; val2 = (float)rnd() / (UINT_MAX >> 1) - 1.0f; @@ -126,13 +126,13 @@ void checkasm_check_audiodsp(void) randomize_float(src, len); - call_ref(dst0, src, min, max, len); - call_new(dst1, src, min, max, len); + call_ref(dst0, src, len, min, max); + call_new(dst1, src, len, min, max); for (i = 0; i < len; i++) { if (!float_near_ulp_array(dst0, dst1, 3, len)) fail(); } - bench_new(dst1, src, min, max, len); + bench_new(dst1, src, len, min, max); } report("audiodsp"); -- 2.0.0 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel