lavc/aacpsdsp: use ptrdiff_t for stride in hybrid_analysis
This commit is contained in:
parent
ff0ecef624
commit
b12a36170b
@ -21,6 +21,8 @@
|
|||||||
#ifndef AVCODEC_AACPSDSP_H
|
#ifndef AVCODEC_AACPSDSP_H
|
||||||
#define AVCODEC_AACPSDSP_H
|
#define AVCODEC_AACPSDSP_H
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "aac_defines.h"
|
#include "aac_defines.h"
|
||||||
|
|
||||||
#define PS_QMF_TIME_SLOTS 32
|
#define PS_QMF_TIME_SLOTS 32
|
||||||
@ -33,7 +35,7 @@ typedef struct PSDSPContext {
|
|||||||
int n);
|
int n);
|
||||||
void (*hybrid_analysis)(INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
void (*hybrid_analysis)(INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
||||||
const INTFLOAT (*filter)[8][2],
|
const INTFLOAT (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void (*hybrid_analysis_ileave)(INTFLOAT (*out)[32][2], INTFLOAT L[2][38][64],
|
void (*hybrid_analysis_ileave)(INTFLOAT (*out)[32][2], INTFLOAT L[2][38][64],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void (*hybrid_synthesis_deint)(INTFLOAT out[2][38][64], INTFLOAT (*in)[32][2],
|
void (*hybrid_synthesis_deint)(INTFLOAT out[2][38][64], INTFLOAT (*in)[32][2],
|
||||||
|
@ -45,7 +45,7 @@ static void ps_mul_pair_single_c(INTFLOAT (*dst)[2], INTFLOAT (*src0)[2], INTFLO
|
|||||||
|
|
||||||
static void ps_hybrid_analysis_c(INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
static void ps_hybrid_analysis_c(INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
||||||
const INTFLOAT (*filter)[8][2],
|
const INTFLOAT (*filter)[8][2],
|
||||||
int stride, int n)
|
ptrdiff_t stride, int n)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ void ff_ps_mul_pair_single_neon(float (*dst)[2], float (*src0)[2],
|
|||||||
float *src1, int n);
|
float *src1, int n);
|
||||||
void ff_ps_hybrid_analysis_neon(float (*out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_neon(float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_stereo_interpolate_neon(float (*l)[2], float (*r)[2],
|
void ff_ps_stereo_interpolate_neon(float (*l)[2], float (*r)[2],
|
||||||
float h[2][4], float h_step[2][4],
|
float h[2][4], float h_step[2][4],
|
||||||
int len);
|
int len);
|
||||||
|
@ -101,7 +101,6 @@ function ff_ps_stereo_interpolate_ipdopd_neon, export=1
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function ff_ps_hybrid_analysis_neon, export=1
|
function ff_ps_hybrid_analysis_neon, export=1
|
||||||
sxtw x3, w3
|
|
||||||
lsl x3, x3, #3
|
lsl x3, x3, #3
|
||||||
ld2 {v0.4S,v1.4S}, [x1], #32
|
ld2 {v0.4S,v1.4S}, [x1], #32
|
||||||
ld2 {v2.2S,v3.2S}, [x1], #16
|
ld2 {v2.2S,v3.2S}, [x1], #16
|
||||||
|
@ -29,7 +29,7 @@ void ff_ps_mul_pair_single_neon(float (*dst)[2], float (*src0)[2],
|
|||||||
float *src1, int n);
|
float *src1, int n);
|
||||||
void ff_ps_hybrid_analysis_neon(float (*out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_neon(float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_hybrid_analysis_ileave_neon(float (*out)[32][2], float L[2][38][64],
|
void ff_ps_hybrid_analysis_ileave_neon(float (*out)[32][2], float L[2][38][64],
|
||||||
int i, int len);
|
int i, int len);
|
||||||
void ff_ps_hybrid_synthesis_deint_neon(float out[2][38][64], float (*in)[32][2],
|
void ff_ps_hybrid_synthesis_deint_neon(float out[2][38][64], float (*in)[32][2],
|
||||||
|
@ -398,7 +398,7 @@ HYBRID_SYNTHESIS_DEINT
|
|||||||
;*******************************************************************
|
;*******************************************************************
|
||||||
;void ff_ps_hybrid_analysis_<opt>(float (*out)[2], float (*in)[2],
|
;void ff_ps_hybrid_analysis_<opt>(float (*out)[2], float (*in)[2],
|
||||||
; const float (*filter)[8][2],
|
; const float (*filter)[8][2],
|
||||||
; int stride, int n);
|
; ptrdiff_t stride, int n);
|
||||||
;*******************************************************************
|
;*******************************************************************
|
||||||
%macro PS_HYBRID_ANALYSIS_LOOP 3
|
%macro PS_HYBRID_ANALYSIS_LOOP 3
|
||||||
movu %1, [inq+mmsize*%3]
|
movu %1, [inq+mmsize*%3]
|
||||||
@ -438,7 +438,7 @@ cglobal ps_hybrid_analysis, 5, 5, 8, out, in, filter, stride, n
|
|||||||
%else
|
%else
|
||||||
%define MOVH movlps
|
%define MOVH movlps
|
||||||
%endif
|
%endif
|
||||||
shl strided, 3
|
shl strideq, 3
|
||||||
shl nd, 6
|
shl nd, 6
|
||||||
add filterq, nq
|
add filterq, nq
|
||||||
neg nq
|
neg nq
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "libavutil/x86/cpu.h"
|
#include "libavutil/x86/cpu.h"
|
||||||
@ -30,10 +32,10 @@ void ff_ps_mul_pair_single_sse (float (*dst)[2], float (*src0)[2],
|
|||||||
float *src1, int n);
|
float *src1, int n);
|
||||||
void ff_ps_hybrid_analysis_sse (float (*out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_sse (float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_hybrid_analysis_sse3(float (*out)[2], float (*in)[2],
|
void ff_ps_hybrid_analysis_sse3(float (*out)[2], float (*in)[2],
|
||||||
const float (*filter)[8][2],
|
const float (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
|
void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
|
||||||
float h[2][4], float h_step[2][4],
|
float h[2][4], float h_step[2][4],
|
||||||
int len);
|
int len);
|
||||||
|
@ -81,7 +81,7 @@ static void test_hybrid_analysis(void)
|
|||||||
|
|
||||||
declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],
|
||||||
const INTFLOAT (*filter)[8][2],
|
const INTFLOAT (*filter)[8][2],
|
||||||
int stride, int n);
|
ptrdiff_t stride, int n);
|
||||||
|
|
||||||
randomize((INTFLOAT *)in, 12 * 2);
|
randomize((INTFLOAT *)in, 12 * 2);
|
||||||
randomize((INTFLOAT *)filter, N * 8 * 2);
|
randomize((INTFLOAT *)filter, N * 8 * 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user