You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-10-06 05:47:18 +02:00
avcodec/x86/qpel{dsp,dsp_init}: Use ptrdiff_t for stride
This is more correct given that qpel_mc_func already uses ptrdiff_t; it also allows to avoid movsxdifnidn. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -31,17 +31,17 @@
|
||||
|
||||
#if HAVE_X86ASM
|
||||
void ff_put_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_avg_pixels4_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_avg_pixels8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_avg_pixels16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
|
||||
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
|
||||
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
|
||||
|
@@ -45,12 +45,10 @@ SECTION .text
|
||||
%endmacro
|
||||
|
||||
; void ff_put/avg_pixels4_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||
; int dstStride, int src1Stride, int h)
|
||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||
%macro PIXELS4_L2 1
|
||||
%define OP op_%1h
|
||||
cglobal %1_pixels4_l2, 6,6
|
||||
movsxdifnidn r3, r3d
|
||||
movsxdifnidn r4, r4d
|
||||
mova m0, [r1]
|
||||
mova m1, [r1+r4]
|
||||
lea r1, [r1+2*r4]
|
||||
@@ -73,12 +71,10 @@ PIXELS4_L2 put
|
||||
PIXELS4_L2 avg
|
||||
|
||||
; void ff_put/avg_pixels8_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||
; int dstStride, int src1Stride, int h)
|
||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||
%macro PIXELS8_L2 1
|
||||
%define OP op_%1
|
||||
cglobal %1_pixels8_l2, 6,6
|
||||
movsxdifnidn r3, r3d
|
||||
movsxdifnidn r4, r4d
|
||||
%ifidn %1, put
|
||||
test r5d, 1
|
||||
je .loop
|
||||
@@ -119,12 +115,10 @@ PIXELS8_L2 put
|
||||
PIXELS8_L2 avg
|
||||
|
||||
; void ff_put/avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||
; int dstStride, int src1Stride, int h)
|
||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||
%macro PIXELS16_L2 1
|
||||
%define OP op_%1
|
||||
cglobal %1_pixels16_l2, 6,6
|
||||
movsxdifnidn r3, r3d
|
||||
movsxdifnidn r4, r4d
|
||||
%ifidn %1, put
|
||||
test r5d, 1
|
||||
je .loop
|
||||
|
@@ -23,7 +23,6 @@
|
||||
|
||||
%include "libavutil/x86/x86util.asm"
|
||||
|
||||
SECTION_RODATA
|
||||
cextern pb_1
|
||||
cextern pw_3
|
||||
cextern pw_15
|
||||
@@ -33,11 +32,10 @@ cextern pw_20
|
||||
|
||||
SECTION .text
|
||||
|
||||
; void ff_put_no_rnd_pixels8_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
|
||||
; void ff_put_no_rnd_pixels8_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||
%macro PUT_NO_RND_PIXELS8_L2 0
|
||||
cglobal put_no_rnd_pixels8_l2, 6,6
|
||||
movsxdifnidn r4, r4d
|
||||
movsxdifnidn r3, r3d
|
||||
pcmpeqb m6, m6
|
||||
test r5d, 1
|
||||
je .loop
|
||||
@@ -99,11 +97,10 @@ INIT_MMX mmxext
|
||||
PUT_NO_RND_PIXELS8_L2
|
||||
|
||||
|
||||
; void ff_put_no_rnd_pixels16_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
|
||||
; void ff_put_no_rnd_pixels16_l2(uint8_t *dst, uint8_t *src1, uint8_t *src2,
|
||||
; ptrdiff_t dstStride, ptrdiff_t src1Stride, int h)
|
||||
%macro PUT_NO_RND_PIXELS16_l2 0
|
||||
cglobal put_no_rnd_pixels16_l2, 6,6
|
||||
movsxdifnidn r3, r3d
|
||||
movsxdifnidn r4, r4d
|
||||
pcmpeqb m6, m6
|
||||
test r5d, 1
|
||||
je .loop
|
||||
@@ -169,8 +166,6 @@ PUT_NO_RND_PIXELS16_l2
|
||||
|
||||
%macro MPEG4_QPEL16_H_LOWPASS 1
|
||||
cglobal %1_mpeg4_qpel16_h_lowpass, 5, 5, 0, 16
|
||||
movsxdifnidn r2, r2d
|
||||
movsxdifnidn r3, r3d
|
||||
pxor m7, m7
|
||||
.loop:
|
||||
mova m0, [r1]
|
||||
@@ -302,8 +297,6 @@ MPEG4_QPEL16_H_LOWPASS put_no_rnd
|
||||
|
||||
%macro MPEG4_QPEL8_H_LOWPASS 1
|
||||
cglobal %1_mpeg4_qpel8_h_lowpass, 5, 5, 0, 8
|
||||
movsxdifnidn r2, r2d
|
||||
movsxdifnidn r3, r3d
|
||||
pxor m7, m7
|
||||
.loop:
|
||||
mova m0, [r1]
|
||||
@@ -398,9 +391,6 @@ MPEG4_QPEL8_H_LOWPASS put_no_rnd
|
||||
|
||||
%macro MPEG4_QPEL16_V_LOWPASS 1
|
||||
cglobal %1_mpeg4_qpel16_v_lowpass, 4, 6, 0, 544
|
||||
movsxdifnidn r2, r2d
|
||||
movsxdifnidn r3, r3d
|
||||
|
||||
mov r4d, 17
|
||||
mov r5, rsp
|
||||
pxor m7, m7
|
||||
@@ -494,9 +484,6 @@ MPEG4_QPEL16_V_LOWPASS put_no_rnd
|
||||
|
||||
%macro MPEG4_QPEL8_V_LOWPASS 1
|
||||
cglobal %1_mpeg4_qpel8_v_lowpass, 4, 6, 0, 288
|
||||
movsxdifnidn r2, r2d
|
||||
movsxdifnidn r3, r3d
|
||||
|
||||
mov r4d, 9
|
||||
mov r5, rsp
|
||||
pxor m7, m7
|
||||
|
@@ -33,52 +33,52 @@
|
||||
|
||||
void ff_put_pixels8_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_no_rnd_pixels8_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_avg_pixels8_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_pixels16_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_avg_pixels16_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_no_rnd_pixels16_l2_mmxext(uint8_t *dst,
|
||||
const uint8_t *src1, const uint8_t *src2,
|
||||
int dstStride, int src1Stride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t src1Stride, int h);
|
||||
void ff_put_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
|
||||
void ff_avg_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
|
||||
void ff_put_no_rnd_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst,
|
||||
const uint8_t *src,
|
||||
int dstStride, int srcStride,
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride,
|
||||
int h);
|
||||
void ff_put_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
|
||||
void ff_avg_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride, int h);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride, int h);
|
||||
void ff_put_no_rnd_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst,
|
||||
const uint8_t *src,
|
||||
int dstStride, int srcStride,
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride,
|
||||
int h);
|
||||
void ff_put_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
void ff_avg_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
void ff_put_no_rnd_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst,
|
||||
const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
void ff_put_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
void ff_avg_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
void ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst,
|
||||
const uint8_t *src,
|
||||
int dstStride, int srcStride);
|
||||
ptrdiff_t dstStride, ptrdiff_t srcStride);
|
||||
|
||||
#if HAVE_X86ASM
|
||||
|
||||
|
Reference in New Issue
Block a user