Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
7fb993d3
Commit
7fb993d3
authored
Jul 24, 2014
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
qpeldsp: Mark source pointer in qpel_mc_func function pointer const
parent
060e4a9e
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
451 additions
and
392 deletions
+451
-392
h264qpel_init_arm.c
libavcodec/arm/h264qpel_init_arm.c
+64
-64
rv40dsp_init_arm.c
libavcodec/arm/rv40dsp_init_arm.c
+4
-2
cavsdsp.c
libavcodec/cavsdsp.c
+21
-21
h264qpel_template.c
libavcodec/h264qpel_template.c
+37
-37
h264qpel.c
libavcodec/ppc/h264qpel.c
+16
-16
h264qpel_template.c
libavcodec/ppc/h264qpel_template.c
+14
-4
qpeldsp.c
libavcodec/qpeldsp.c
+52
-50
qpeldsp.h
libavcodec/qpeldsp.h
+16
-12
rv30dsp.c
libavcodec/rv30dsp.c
+20
-20
rv40dsp.c
libavcodec/rv40dsp.c
+20
-20
wmv2dsp.c
libavcodec/wmv2dsp.c
+9
-9
cavsdsp.c
libavcodec/x86/cavsdsp.c
+19
-19
h264_qpel.c
libavcodec/x86/h264_qpel.c
+61
-61
qpeldsp_init.c
libavcodec/x86/qpeldsp_init.c
+93
-52
rv40dsp_init.c
libavcodec/x86/rv40dsp_init.c
+5
-5
No files found.
libavcodec/arm/h264qpel_init_arm.c
View file @
7fb993d3
...
@@ -26,73 +26,73 @@
...
@@ -26,73 +26,73 @@
#include "libavutil/arm/cpu.h"
#include "libavutil/arm/cpu.h"
#include "libavcodec/h264qpel.h"
#include "libavcodec/h264qpel.h"
void
ff_put_h264_qpel16_mc00_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc00_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc10_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc10_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc20_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc20_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc30_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc30_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc01_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc01_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc11_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc11_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc21_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc21_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc31_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc31_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc02_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc02_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc12_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc12_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc22_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc22_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc32_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc32_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc03_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc03_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc13_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc13_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc23_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc23_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel16_mc33_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel16_mc33_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc00_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc00_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc10_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc10_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc20_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc20_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc30_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc30_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc01_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc01_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc11_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc11_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc21_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc21_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc31_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc31_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc02_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc02_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc12_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc12_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc22_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc22_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc32_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc32_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc03_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc03_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc13_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc13_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc23_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc23_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_h264_qpel8_mc33_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_put_h264_qpel8_mc33_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc00_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc00_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc10_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc10_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc20_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc20_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc30_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc30_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc01_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc01_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc11_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc11_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc21_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc21_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc31_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc31_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc02_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc02_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc12_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc12_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc22_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc22_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc32_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc32_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc03_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc03_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc13_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc13_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc23_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc23_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel16_mc33_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel16_mc33_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc00_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc00_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc10_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc10_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc20_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc20_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc30_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc30_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc01_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc01_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc11_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc11_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc21_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc21_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc31_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc31_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc02_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc02_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc12_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc12_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc22_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc22_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc32_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc32_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc03_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc03_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc13_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc13_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc23_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc23_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_h264_qpel8_mc33_neon
(
uint8_t
*
,
uint8_t
*
,
ptrdiff_t
);
void
ff_avg_h264_qpel8_mc33_neon
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
av_cold
void
ff_h264qpel_init_arm
(
H264QpelContext
*
c
,
int
bit_depth
)
av_cold
void
ff_h264qpel_init_arm
(
H264QpelContext
*
c
,
int
bit_depth
)
{
{
...
...
libavcodec/arm/rv40dsp_init_arm.c
View file @
7fb993d3
...
@@ -26,8 +26,10 @@
...
@@ -26,8 +26,10 @@
#include "libavutil/arm/cpu.h"
#include "libavutil/arm/cpu.h"
#define DECL_QPEL3(type, w, pos) \
#define DECL_QPEL3(type, w, pos) \
void ff_##type##_rv40_qpel##w##_mc##pos##_neon(uint8_t *dst, uint8_t *src,\
void ff_ ## type ## _rv40_qpel ## w ## _mc ## pos ## _neon(uint8_t *dst, \
ptrdiff_t stride)
const uint8_t *src, \
ptrdiff_t stride)
#define DECL_QPEL2(w, pos) \
#define DECL_QPEL2(w, pos) \
DECL_QPEL3(put, w, pos); \
DECL_QPEL3(put, w, pos); \
DECL_QPEL3(avg, w, pos)
DECL_QPEL3(avg, w, pos)
...
...
libavcodec/cavsdsp.c
View file @
7fb993d3
...
@@ -261,7 +261,7 @@ static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, int stride) {
...
@@ -261,7 +261,7 @@ static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, int stride) {
****************************************************************************/
****************************************************************************/
#define CAVS_SUBPIX(OPNAME, OP, NAME, A, B, C, D, E, F) \
#define CAVS_SUBPIX(OPNAME, OP, NAME, A, B, C, D, E, F) \
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int h=8;\
const int h=8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -280,7 +280,7 @@ static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, uint8_t *src, int dstS
...
@@ -280,7 +280,7 @@ static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, uint8_t *src, int dstS
}\
}\
}\
}\
\
\
static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int w=8;\
const int w=8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -312,7 +312,7 @@ static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, uint8_t *src, int dst
...
@@ -312,7 +312,7 @@ static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, uint8_t *src, int dst
}\
}\
}\
}\
\
\
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_filt8_v_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_v_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -321,7 +321,7 @@ static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, uint8_t *src, int dst
...
@@ -321,7 +321,7 @@ static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, uint8_t *src, int dst
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
}\
}\
\
\
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_filt8_h_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_h_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -331,7 +331,7 @@ static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, uint8_t *src, int dst
...
@@ -331,7 +331,7 @@ static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, uint8_t *src, int dst
}\
}\
#define CAVS_SUBPIX_HV(OPNAME, OP, NAME, AH, BH, CH, DH, EH, FH, AV, BV, CV, DV, EV, FV, FULL) \
#define CAVS_SUBPIX_HV(OPNAME, OP, NAME, AH, BH, CH, DH, EH, FH, AV, BV, CV, DV, EV, FV, FULL) \
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst,
uint8_t *src1,
uint8_t *src2, int dstStride, int srcStride){\
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst,
const uint8_t *src1, const
uint8_t *src2, int dstStride, int srcStride){\
int16_t temp[8*(8+5)];\
int16_t temp[8*(8+5)];\
int16_t *tmp = temp;\
int16_t *tmp = temp;\
const int h=8;\
const int h=8;\
...
@@ -412,7 +412,7 @@ static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, uint8_t *src1, uint8_
...
@@ -412,7 +412,7 @@ static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, uint8_t *src1, uint8_
}\
}\
}\
}\
\
\
static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst,
uint8_t *src1,
uint8_t *src2, int dstStride, int srcStride){ \
static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst,
const uint8_t *src1, const
uint8_t *src2, int dstStride, int srcStride){ \
OPNAME ## cavs_filt8_hv_ ## NAME(dst , src1, src2 , dstStride, srcStride); \
OPNAME ## cavs_filt8_hv_ ## NAME(dst , src1, src2 , dstStride, srcStride); \
OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, src2+8, dstStride, srcStride); \
OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, src2+8, dstStride, srcStride); \
src1 += 8*srcStride;\
src1 += 8*srcStride;\
...
@@ -423,77 +423,77 @@ static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst, uint8_t *src1, uint8
...
@@ -423,77 +423,77 @@ static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst, uint8_t *src1, uint8
}\
}\
#define CAVS_MC(OPNAME, SIZE) \
#define CAVS_MC(OPNAME, SIZE) \
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc22_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_jj(dst, src, NULL, stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_jj(dst, src, NULL, stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc21_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_ff(dst, src, src+stride+1,stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_ff(dst, src, src+stride+1,stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc12_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_ii(dst, src, src+stride+1,stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_ii(dst, src, src+stride+1,stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc32_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc32_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_kk(dst, src, src+stride+1,stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_kk(dst, src, src+stride+1,stride, stride); \
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc23_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc23_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_filt ## SIZE ## _hv_qq(dst, src, src+stride+1,stride, stride); \
OPNAME ## cavs_filt ## SIZE ## _hv_qq(dst, src, src+stride+1,stride, stride); \
}\
}\
...
...
libavcodec/h264qpel_template.c
View file @
7fb993d3
...
@@ -75,12 +75,12 @@ static inline void FUNC(copy_block16)(uint8_t *dst, const uint8_t *src, int dstS
...
@@ -75,12 +75,12 @@ static inline void FUNC(copy_block16)(uint8_t *dst, const uint8_t *src, int dstS
}
}
#define H264_LOWPASS(OPNAME, OP, OP2) \
#define H264_LOWPASS(OPNAME, OP, OP2) \
static av_unused void FUNC(OPNAME ## h264_qpel2_h_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static av_unused void FUNC(OPNAME ## h264_qpel2_h_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int h=2;\
const int h=2;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<h; i++)\
for(i=0; i<h; i++)\
...
@@ -92,12 +92,12 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_h_lowpass)(uint8_t *_dst, uint8_
...
@@ -92,12 +92,12 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_h_lowpass)(uint8_t *_dst, uint8_
}\
}\
}\
}\
\
\
static av_unused void FUNC(OPNAME ## h264_qpel2_v_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static av_unused void FUNC(OPNAME ## h264_qpel2_v_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int w=2;\
const int w=2;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<w; i++)\
for(i=0; i<w; i++)\
...
@@ -116,14 +116,14 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_v_lowpass)(uint8_t *_dst, uint8_
...
@@ -116,14 +116,14 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_v_lowpass)(uint8_t *_dst, uint8_
}\
}\
}\
}\
\
\
static av_unused void FUNC(OPNAME ## h264_qpel2_hv_lowpass)(uint8_t *_dst, int16_t *tmp, uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
static av_unused void FUNC(OPNAME ## h264_qpel2_hv_lowpass)(uint8_t *_dst, int16_t *tmp,
const
uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
const int h=2;\
const int h=2;\
const int w=2;\
const int w=2;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
src -= 2*srcStride;\
src -= 2*srcStride;\
...
@@ -150,12 +150,12 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_hv_lowpass)(uint8_t *_dst, int16
...
@@ -150,12 +150,12 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_hv_lowpass)(uint8_t *_dst, int16
tmp++;\
tmp++;\
}\
}\
}\
}\
static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int h=4;\
const int h=4;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<h; i++)\
for(i=0; i<h; i++)\
...
@@ -169,12 +169,12 @@ static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst, uint8_t *_src, i
...
@@ -169,12 +169,12 @@ static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst, uint8_t *_src, i
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel4_v_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel4_v_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int w=4;\
const int w=4;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<w; i++)\
for(i=0; i<w; i++)\
...
@@ -197,14 +197,14 @@ static void FUNC(OPNAME ## h264_qpel4_v_lowpass)(uint8_t *_dst, uint8_t *_src, i
...
@@ -197,14 +197,14 @@ static void FUNC(OPNAME ## h264_qpel4_v_lowpass)(uint8_t *_dst, uint8_t *_src, i
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel4_hv_lowpass)(uint8_t *_dst, int16_t *tmp, uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel4_hv_lowpass)(uint8_t *_dst, int16_t *tmp,
const
uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
const int h=4;\
const int h=4;\
const int w=4;\
const int w=4;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
src -= 2*srcStride;\
src -= 2*srcStride;\
...
@@ -238,12 +238,12 @@ static void FUNC(OPNAME ## h264_qpel4_hv_lowpass)(uint8_t *_dst, int16_t *tmp, u
...
@@ -238,12 +238,12 @@ static void FUNC(OPNAME ## h264_qpel4_hv_lowpass)(uint8_t *_dst, int16_t *tmp, u
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int h=8;\
const int h=8;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<h; i++)\
for(i=0; i<h; i++)\
...
@@ -261,12 +261,12 @@ static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst, uint8_t *_src, i
...
@@ -261,12 +261,12 @@ static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst, uint8_t *_src, i
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel8_v_lowpass)(uint8_t *_dst, uint8_t *_src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel8_v_lowpass)(uint8_t *_dst,
const
uint8_t *_src, int dstStride, int srcStride){\
const int w=8;\
const int w=8;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
for(i=0; i<w; i++)\
for(i=0; i<w; i++)\
...
@@ -297,14 +297,14 @@ static void FUNC(OPNAME ## h264_qpel8_v_lowpass)(uint8_t *_dst, uint8_t *_src, i
...
@@ -297,14 +297,14 @@ static void FUNC(OPNAME ## h264_qpel8_v_lowpass)(uint8_t *_dst, uint8_t *_src, i
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel8_hv_lowpass)(uint8_t *_dst, int16_t *tmp, uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel8_hv_lowpass)(uint8_t *_dst, int16_t *tmp,
const
uint8_t *_src, int dstStride, int tmpStride, int srcStride){\
const int h=8;\
const int h=8;\
const int w=8;\
const int w=8;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
const int pad = (BIT_DEPTH > 9) ? (-10 * ((1<<BIT_DEPTH)-1)) : 0;\
INIT_CLIP\
INIT_CLIP\
int i;\
int i;\
pixel *dst = (pixel*)_dst;\
pixel *dst = (pixel*)_dst;\
pixel *src = (
pixel*)_src;\
const pixel *src = (const
pixel*)_src;\
dstStride /= sizeof(pixel);\
dstStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
srcStride /= sizeof(pixel);\
src -= 2*srcStride;\
src -= 2*srcStride;\
...
@@ -350,7 +350,7 @@ static void FUNC(OPNAME ## h264_qpel8_hv_lowpass)(uint8_t *_dst, int16_t *tmp, u
...
@@ -350,7 +350,7 @@ static void FUNC(OPNAME ## h264_qpel8_hv_lowpass)(uint8_t *_dst, int16_t *tmp, u
}\
}\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst , src , dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst , src , dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -359,7 +359,7 @@ static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, uint8_t *src, in
...
@@ -359,7 +359,7 @@ static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, uint8_t *src, in
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst , src , dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst , src , dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -368,7 +368,7 @@ static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, uint8_t *src, in
...
@@ -368,7 +368,7 @@ static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, uint8_t *src, in
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\
}\
}\
\
\
static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst , tmp , src , dstStride, tmpStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst , tmp , src , dstStride, tmpStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst+8*sizeof(pixel), tmp+8, src+8*sizeof(pixel), dstStride, tmpStride, srcStride);\
FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst+8*sizeof(pixel), tmp+8, src+8*sizeof(pixel), dstStride, tmpStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -378,31 +378,31 @@ static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, int16_t *tmp, u
...
@@ -378,31 +378,31 @@ static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, int16_t *tmp, u
}\
}\
#define H264_MC(OPNAME, SIZE) \
#define H264_MC(OPNAME, SIZE) \
static av_unused void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc00)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static av_unused void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc00)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
FUNCC(OPNAME ## pixels ## SIZE)(dst, src, stride, SIZE);\
FUNCC(OPNAME ## pixels ## SIZE)(dst, src, stride, SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc10)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc10)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t half[SIZE*SIZE*sizeof(pixel)];\
uint8_t half[SIZE*SIZE*sizeof(pixel)];\
FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\
FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src, half, stride, stride, SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src, half, stride, stride, SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc20)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc20)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
FUNC(OPNAME ## h264_qpel ## SIZE ## _h_lowpass)(dst, src, stride, stride);\
FUNC(OPNAME ## h264_qpel ## SIZE ## _h_lowpass)(dst, src, stride, stride);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc30)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc30)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t half[SIZE*SIZE*sizeof(pixel)];\
uint8_t half[SIZE*SIZE*sizeof(pixel)];\
FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\
FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src+sizeof(pixel), half, stride, stride, SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src+sizeof(pixel), half, stride, stride, SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -412,7 +412,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, uint8_t *s
...
@@ -412,7 +412,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid, half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid, half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -420,7 +420,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, uint8_t *s
...
@@ -420,7 +420,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## h264_qpel ## SIZE ## _v_lowpass)(dst, full_mid, stride, SIZE*sizeof(pixel));\
FUNC(OPNAME ## h264_qpel ## SIZE ## _v_lowpass)(dst, full_mid, stride, SIZE*sizeof(pixel));\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -430,7 +430,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, uint8_t *s
...
@@ -430,7 +430,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid+SIZE*sizeof(pixel), half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid+SIZE*sizeof(pixel), half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -442,7 +442,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, uint8_t *s
...
@@ -442,7 +442,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -454,7 +454,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, uint8_t *s
...
@@ -454,7 +454,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -466,7 +466,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, uint8_t *s
...
@@ -466,7 +466,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -478,13 +478,13 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, uint8_t *s
...
@@ -478,13 +478,13 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc22)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc22)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
FUNC(OPNAME ## h264_qpel ## SIZE ## _hv_lowpass)(dst, tmp, src, stride, SIZE*sizeof(pixel), stride);\
FUNC(OPNAME ## h264_qpel ## SIZE ## _hv_lowpass)(dst, tmp, src, stride, SIZE*sizeof(pixel), stride);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\
uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\
...
@@ -494,7 +494,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, uint8_t *s
...
@@ -494,7 +494,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
int16_t tmp[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\
uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\
...
@@ -504,7 +504,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, uint8_t *s
...
@@ -504,7 +504,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
@@ -517,7 +517,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, uint8_t *s
...
@@ -517,7 +517,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, uint8_t *s
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfV, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfV, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\
}\
}\
\
\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc32)(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc32)(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\
...
...
libavcodec/ppc/h264qpel.c
View file @
7fb993d3
...
@@ -66,50 +66,50 @@
...
@@ -66,50 +66,50 @@
#undef PREFIX_h264_qpel16_hv_lowpass_num
#undef PREFIX_h264_qpel16_hv_lowpass_num
#define H264_MC(OPNAME, SIZE, CODETYPE) \
#define H264_MC(OPNAME, SIZE, CODETYPE) \
static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## CODETYPE (uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## CODETYPE (uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## pixels ## SIZE ## _ ## CODETYPE(dst, src, stride, SIZE);\
ff_ ## OPNAME ## pixels ## SIZE ## _ ## CODETYPE(dst, src, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{ \
{ \
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
put_h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
put_h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src, half, stride, stride, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src, half, stride, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(dst, src, stride, stride);\
OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
put_h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
put_h264_qpel ## SIZE ## _h_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src+1, half, stride, stride, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src+1, half, stride, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
put_h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src, half, stride, stride, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src, half, stride, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(dst, src, stride, stride);\
OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, half)[SIZE*SIZE];\
put_h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
put_h264_qpel ## SIZE ## _v_lowpass_ ## CODETYPE(half, src, SIZE, stride);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src+stride, half, stride, stride, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, src+stride, half, stride, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
...
@@ -118,7 +118,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## CODETYPE(uint8_t *dst, uint
...
@@ -118,7 +118,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
...
@@ -127,7 +127,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## CODETYPE(uint8_t *dst, uint
...
@@ -127,7 +127,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
...
@@ -136,7 +136,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## CODETYPE(uint8_t *dst, uint
...
@@ -136,7 +136,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
...
@@ -145,13 +145,13 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## CODETYPE(uint8_t *dst, uint
...
@@ -145,13 +145,13 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, int16_t, tmp)[SIZE*(SIZE+8)];\
DECLARE_ALIGNED(16, int16_t, tmp)[SIZE*(SIZE+8)];\
OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## CODETYPE(dst, tmp, src, stride, SIZE, stride);\
OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## CODETYPE(dst, tmp, src, stride, SIZE, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
...
@@ -161,7 +161,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## CODETYPE(uint8_t *dst, uint
...
@@ -161,7 +161,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfHV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfHV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfH)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
...
@@ -171,7 +171,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## CODETYPE(uint8_t *dst, uint
...
@@ -171,7 +171,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfHV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfH, halfHV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
...
@@ -181,7 +181,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## CODETYPE(uint8_t *dst, uint
...
@@ -181,7 +181,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## CODETYPE(uint8_t *dst, uint
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfV, halfHV, stride, SIZE, SIZE);\
OPNAME ## pixels ## SIZE ## _l2_ ## CODETYPE(dst, halfV, halfHV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## CODETYPE(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## CODETYPE(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
DECLARE_ALIGNED(16, uint8_t, halfHV)[SIZE*SIZE];\
...
...
libavcodec/ppc/h264qpel_template.c
View file @
7fb993d3
...
@@ -28,7 +28,10 @@
...
@@ -28,7 +28,10 @@
/* this code assume stride % 16 == 0 */
/* this code assume stride % 16 == 0 */
#ifdef PREFIX_h264_qpel16_h_lowpass_altivec
#ifdef PREFIX_h264_qpel16_h_lowpass_altivec
static
void
PREFIX_h264_qpel16_h_lowpass_altivec
(
uint8_t
*
dst
,
uint8_t
*
src
,
int
dstStride
,
int
srcStride
)
{
static
void
PREFIX_h264_qpel16_h_lowpass_altivec
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
)
{
register
int
i
;
register
int
i
;
LOAD_ZERO
;
LOAD_ZERO
;
...
@@ -168,7 +171,10 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
...
@@ -168,7 +171,10 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
/* this code assume stride % 16 == 0 */
/* this code assume stride % 16 == 0 */
#ifdef PREFIX_h264_qpel16_v_lowpass_altivec
#ifdef PREFIX_h264_qpel16_v_lowpass_altivec
static
void
PREFIX_h264_qpel16_v_lowpass_altivec
(
uint8_t
*
dst
,
uint8_t
*
src
,
int
dstStride
,
int
srcStride
)
{
static
void
PREFIX_h264_qpel16_v_lowpass_altivec
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
)
{
register
int
i
;
register
int
i
;
LOAD_ZERO
;
LOAD_ZERO
;
...
@@ -178,7 +184,7 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
...
@@ -178,7 +184,7 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
const
vec_s16
v5ss
=
vec_splat_s16
(
5
);
const
vec_s16
v5ss
=
vec_splat_s16
(
5
);
const
vec_s16
v16ss
=
vec_sl
(
vec_splat_s16
(
1
),
vec_splat_u16
(
4
));
const
vec_s16
v16ss
=
vec_sl
(
vec_splat_s16
(
1
),
vec_splat_u16
(
4
));
uint8_t
*
srcbis
=
src
-
(
srcStride
*
2
);
const
uint8_t
*
srcbis
=
src
-
(
srcStride
*
2
);
const
vec_u8
srcM2a
=
vec_ld
(
0
,
srcbis
);
const
vec_u8
srcM2a
=
vec_ld
(
0
,
srcbis
);
const
vec_u8
srcM2b
=
vec_ld
(
16
,
srcbis
);
const
vec_u8
srcM2b
=
vec_ld
(
16
,
srcbis
);
...
@@ -275,7 +281,11 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
...
@@ -275,7 +281,11 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
/* this code assume stride % 16 == 0 *and* tmp is properly aligned */
/* this code assume stride % 16 == 0 *and* tmp is properly aligned */
#ifdef PREFIX_h264_qpel16_hv_lowpass_altivec
#ifdef PREFIX_h264_qpel16_hv_lowpass_altivec
static
void
PREFIX_h264_qpel16_hv_lowpass_altivec
(
uint8_t
*
dst
,
int16_t
*
tmp
,
uint8_t
*
src
,
int
dstStride
,
int
tmpStride
,
int
srcStride
)
{
static
void
PREFIX_h264_qpel16_hv_lowpass_altivec
(
uint8_t
*
dst
,
int16_t
*
tmp
,
const
uint8_t
*
src
,
int
dstStride
,
int
tmpStride
,
int
srcStride
)
{
register
int
i
;
register
int
i
;
LOAD_ZERO
;
LOAD_ZERO
;
const
vec_u8
permM2
=
vec_lvsl
(
-
2
,
src
);
const
vec_u8
permM2
=
vec_lvsl
(
-
2
,
src
);
...
...
libavcodec/qpeldsp.c
View file @
7fb993d3
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
#include "qpel_template.c"
#include "qpel_template.c"
#define QPEL_MC(r, OPNAME, RND, OP) \
#define QPEL_MC(r, OPNAME, RND, OP) \
static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst,
const uint8_t *src,
\
int dstStride, int srcStride, \
int dstStride, int srcStride, \
int h) \
int h) \
{ \
{ \
...
@@ -58,7 +58,7 @@ static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, \
...
@@ -58,7 +58,7 @@ static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, \
} \
} \
} \
} \
\
\
static void OPNAME ## mpeg4_qpel8_v_lowpass(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## mpeg4_qpel8_v_lowpass(uint8_t *dst,
const uint8_t *src,
\
int dstStride, int srcStride) \
int dstStride, int srcStride) \
{ \
{ \
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP; \
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP; \
...
@@ -88,7 +88,8 @@ static void OPNAME ## mpeg4_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, \
...
@@ -88,7 +88,8 @@ static void OPNAME ## mpeg4_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, \
} \
} \
} \
} \
\
\
static void OPNAME ## mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, \
static void OPNAME ## mpeg4_qpel16_h_lowpass(uint8_t *dst, \
const uint8_t *src, \
int dstStride, int srcStride, \
int dstStride, int srcStride, \
int h) \
int h) \
{ \
{ \
...
@@ -117,7 +118,8 @@ static void OPNAME ## mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, \
...
@@ -117,7 +118,8 @@ static void OPNAME ## mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, \
} \
} \
} \
} \
\
\
static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, \
static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, \
const uint8_t *src, \
int dstStride, int srcStride) \
int dstStride, int srcStride) \
{ \
{ \
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP; \
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP; \
...
@@ -163,7 +165,7 @@ static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, \
...
@@ -163,7 +165,7 @@ static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, \
} \
} \
} \
} \
\
\
static void OPNAME ## qpel8_mc10_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc10_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t half[64]; \
uint8_t half[64]; \
...
@@ -172,13 +174,13 @@ static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, \
...
@@ -172,13 +174,13 @@ static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, src, half, stride, stride, 8, 8); \
OPNAME ## pixels8_l2_8(dst, src, half, stride, stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc20_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc20_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
OPNAME ## mpeg4_qpel8_h_lowpass(dst, src, stride, stride, 8); \
OPNAME ## mpeg4_qpel8_h_lowpass(dst, src, stride, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc30_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc30_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t half[64]; \
uint8_t half[64]; \
...
@@ -187,7 +189,7 @@ static void OPNAME ## qpel8_mc30_c(uint8_t *dst, uint8_t *src, \
...
@@ -187,7 +189,7 @@ static void OPNAME ## qpel8_mc30_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, src + 1, half, stride, stride, 8, 8); \
OPNAME ## pixels8_l2_8(dst, src + 1, half, stride, stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc01_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc01_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -198,7 +200,7 @@ static void OPNAME ## qpel8_mc01_c(uint8_t *dst, uint8_t *src, \
...
@@ -198,7 +200,7 @@ static void OPNAME ## qpel8_mc01_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, full, half, stride, 16, 8, 8); \
OPNAME ## pixels8_l2_8(dst, full, half, stride, 16, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc02_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc02_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -207,7 +209,7 @@ static void OPNAME ## qpel8_mc02_c(uint8_t *dst, uint8_t *src, \
...
@@ -207,7 +209,7 @@ static void OPNAME ## qpel8_mc02_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, full, stride, 16); \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, full, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel8_mc03_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc03_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -218,7 +220,7 @@ static void OPNAME ## qpel8_mc03_c(uint8_t *dst, uint8_t *src, \
...
@@ -218,7 +220,7 @@ static void OPNAME ## qpel8_mc03_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, full + 16, half, stride, 16, 8, 8); \
OPNAME ## pixels8_l2_8(dst, full + 16, half, stride, 16, 8, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc11_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc11_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -234,7 +236,7 @@ void ff_ ## OPNAME ## qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -234,7 +236,7 @@ void ff_ ## OPNAME ## qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, \
stride, 16, 8, 8, 8, 8); \
stride, 16, 8, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc11_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc11_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -248,7 +250,7 @@ static void OPNAME ## qpel8_mc11_c(uint8_t *dst, uint8_t *src, \
...
@@ -248,7 +250,7 @@ static void OPNAME ## qpel8_mc11_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc31_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc31_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -264,7 +266,7 @@ void ff_ ## OPNAME ## qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -264,7 +266,7 @@ void ff_ ## OPNAME ## qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, \
stride, 16, 8, 8, 8, 8); \
stride, 16, 8, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc31_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc31_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -278,7 +280,7 @@ static void OPNAME ## qpel8_mc31_c(uint8_t *dst, uint8_t *src, \
...
@@ -278,7 +280,7 @@ static void OPNAME ## qpel8_mc31_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc13_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc13_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -294,7 +296,7 @@ void ff_ ## OPNAME ## qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -294,7 +296,7 @@ void ff_ ## OPNAME ## qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, \
stride, 16, 8, 8, 8, 8); \
stride, 16, 8, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc13_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc13_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -308,7 +310,7 @@ static void OPNAME ## qpel8_mc13_c(uint8_t *dst, uint8_t *src, \
...
@@ -308,7 +310,7 @@ static void OPNAME ## qpel8_mc13_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc33_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc33_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -324,7 +326,7 @@ void ff_ ## OPNAME ## qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -324,7 +326,7 @@ void ff_ ## OPNAME ## qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, \
stride, 16, 8, 8, 8, 8); \
stride, 16, 8, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc33_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc33_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -338,7 +340,7 @@ static void OPNAME ## qpel8_mc33_c(uint8_t *dst, uint8_t *src, \
...
@@ -338,7 +340,7 @@ static void OPNAME ## qpel8_mc33_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc21_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc21_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[72]; \
uint8_t halfH[72]; \
...
@@ -349,7 +351,7 @@ static void OPNAME ## qpel8_mc21_c(uint8_t *dst, uint8_t *src, \
...
@@ -349,7 +351,7 @@ static void OPNAME ## qpel8_mc21_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc23_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc23_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[72]; \
uint8_t halfH[72]; \
...
@@ -360,7 +362,7 @@ static void OPNAME ## qpel8_mc23_c(uint8_t *dst, uint8_t *src, \
...
@@ -360,7 +362,7 @@ static void OPNAME ## qpel8_mc23_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfH + 8, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc12_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc12_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -375,7 +377,7 @@ void ff_ ## OPNAME ## qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -375,7 +377,7 @@ void ff_ ## OPNAME ## qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc12_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc12_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -387,7 +389,7 @@ static void OPNAME ## qpel8_mc12_c(uint8_t *dst, uint8_t *src, \
...
@@ -387,7 +389,7 @@ static void OPNAME ## qpel8_mc12_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel8_mc32_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel8_mc32_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -402,7 +404,7 @@ void ff_ ## OPNAME ## qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -402,7 +404,7 @@ void ff_ ## OPNAME ## qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8); \
OPNAME ## pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc32_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc32_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[16 * 9]; \
uint8_t full[16 * 9]; \
...
@@ -414,7 +416,7 @@ static void OPNAME ## qpel8_mc32_c(uint8_t *dst, uint8_t *src, \
...
@@ -414,7 +416,7 @@ static void OPNAME ## qpel8_mc32_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc22_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel8_mc22_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[72]; \
uint8_t halfH[72]; \
...
@@ -423,7 +425,7 @@ static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, \
...
@@ -423,7 +425,7 @@ static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel16_mc10_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc10_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t half[256]; \
uint8_t half[256]; \
...
@@ -432,13 +434,13 @@ static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, \
...
@@ -432,13 +434,13 @@ static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, src, half, stride, stride, 16, 16); \
OPNAME ## pixels16_l2_8(dst, src, half, stride, stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc20_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc20_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
OPNAME ## mpeg4_qpel16_h_lowpass(dst, src, stride, stride, 16); \
OPNAME ## mpeg4_qpel16_h_lowpass(dst, src, stride, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc30_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc30_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t half[256]; \
uint8_t half[256]; \
...
@@ -447,7 +449,7 @@ static void OPNAME ## qpel16_mc30_c(uint8_t *dst, uint8_t *src, \
...
@@ -447,7 +449,7 @@ static void OPNAME ## qpel16_mc30_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, src + 1, half, stride, stride, 16, 16); \
OPNAME ## pixels16_l2_8(dst, src + 1, half, stride, stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc01_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc01_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -458,7 +460,7 @@ static void OPNAME ## qpel16_mc01_c(uint8_t *dst, uint8_t *src, \
...
@@ -458,7 +460,7 @@ static void OPNAME ## qpel16_mc01_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, full, half, stride, 24, 16, 16); \
OPNAME ## pixels16_l2_8(dst, full, half, stride, 24, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc02_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc02_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -467,7 +469,7 @@ static void OPNAME ## qpel16_mc02_c(uint8_t *dst, uint8_t *src, \
...
@@ -467,7 +469,7 @@ static void OPNAME ## qpel16_mc02_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, full, stride, 24); \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, full, stride, 24); \
} \
} \
\
\
static void OPNAME ## qpel16_mc03_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc03_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -478,7 +480,7 @@ static void OPNAME ## qpel16_mc03_c(uint8_t *dst, uint8_t *src, \
...
@@ -478,7 +480,7 @@ static void OPNAME ## qpel16_mc03_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, full + 24, half, stride, 24, 16, 16); \
OPNAME ## pixels16_l2_8(dst, full + 24, half, stride, 24, 16, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc11_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc11_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -494,7 +496,7 @@ void ff_ ## OPNAME ## qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -494,7 +496,7 @@ void ff_ ## OPNAME ## qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, \
stride, 24, 16, 16, 16, 16); \
stride, 24, 16, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc11_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc11_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -508,7 +510,7 @@ static void OPNAME ## qpel16_mc11_c(uint8_t *dst, uint8_t *src, \
...
@@ -508,7 +510,7 @@ static void OPNAME ## qpel16_mc11_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc31_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc31_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -524,7 +526,7 @@ void ff_ ## OPNAME ## qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -524,7 +526,7 @@ void ff_ ## OPNAME ## qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, \
stride, 24, 16, 16, 16, 16); \
stride, 24, 16, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc31_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc31_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -538,7 +540,7 @@ static void OPNAME ## qpel16_mc31_c(uint8_t *dst, uint8_t *src, \
...
@@ -538,7 +540,7 @@ static void OPNAME ## qpel16_mc31_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc13_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc13_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -554,7 +556,7 @@ void ff_ ## OPNAME ## qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -554,7 +556,7 @@ void ff_ ## OPNAME ## qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, \
stride, 24, 16, 16, 16, 16); \
stride, 24, 16, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc13_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc13_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -568,7 +570,7 @@ static void OPNAME ## qpel16_mc13_c(uint8_t *dst, uint8_t *src, \
...
@@ -568,7 +570,7 @@ static void OPNAME ## qpel16_mc13_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc33_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc33_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -584,7 +586,7 @@ void ff_ ## OPNAME ## qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -584,7 +586,7 @@ void ff_ ## OPNAME ## qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, \
stride, 24, 16, 16, 16, 16); \
stride, 24, 16, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc33_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc33_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -598,7 +600,7 @@ static void OPNAME ## qpel16_mc33_c(uint8_t *dst, uint8_t *src, \
...
@@ -598,7 +600,7 @@ static void OPNAME ## qpel16_mc33_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc21_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc21_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[272]; \
uint8_t halfH[272]; \
...
@@ -609,7 +611,7 @@ static void OPNAME ## qpel16_mc21_c(uint8_t *dst, uint8_t *src, \
...
@@ -609,7 +611,7 @@ static void OPNAME ## qpel16_mc21_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc23_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc23_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[272]; \
uint8_t halfH[272]; \
...
@@ -620,7 +622,7 @@ static void OPNAME ## qpel16_mc23_c(uint8_t *dst, uint8_t *src, \
...
@@ -620,7 +622,7 @@ static void OPNAME ## qpel16_mc23_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfH + 16, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc12_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc12_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -635,7 +637,7 @@ void ff_ ## OPNAME ## qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -635,7 +637,7 @@ void ff_ ## OPNAME ## qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfV, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfV, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc12_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc12_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -647,7 +649,7 @@ static void OPNAME ## qpel16_mc12_c(uint8_t *dst, uint8_t *src, \
...
@@ -647,7 +649,7 @@ static void OPNAME ## qpel16_mc12_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16); \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16); \
} \
} \
\
\
void ff_ ## OPNAME ## qpel16_mc32_old_c(uint8_t *dst,
uint8_t *src,
\
void ff_ ## OPNAME ## qpel16_mc32_old_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -662,7 +664,7 @@ void ff_ ## OPNAME ## qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, \
...
@@ -662,7 +664,7 @@ void ff_ ## OPNAME ## qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, \
OPNAME ## pixels16_l2_8(dst, halfV, halfHV, stride, 16, 16, 16); \
OPNAME ## pixels16_l2_8(dst, halfV, halfHV, stride, 16, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc32_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc32_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t full[24 * 17]; \
uint8_t full[24 * 17]; \
...
@@ -674,7 +676,7 @@ static void OPNAME ## qpel16_mc32_c(uint8_t *dst, uint8_t *src, \
...
@@ -674,7 +676,7 @@ static void OPNAME ## qpel16_mc32_c(uint8_t *dst, uint8_t *src, \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16); \
OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc22_c(uint8_t *dst,
uint8_t *src,
\
static void OPNAME ## qpel16_mc22_c(uint8_t *dst,
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint8_t halfH[272]; \
uint8_t halfH[272]; \
...
@@ -695,22 +697,22 @@ QPEL_MC(0, avg_, _, op_avg)
...
@@ -695,22 +697,22 @@ QPEL_MC(0, avg_, _, op_avg)
#undef op_put
#undef op_put
#undef op_put_no_rnd
#undef op_put_no_rnd
void
ff_put_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
void
ff_put_pixels8x8_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
put_pixels8_8_c
(
dst
,
src
,
stride
,
8
);
put_pixels8_8_c
(
dst
,
src
,
stride
,
8
);
}
}
void
ff_avg_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
void
ff_avg_pixels8x8_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
avg_pixels8_8_c
(
dst
,
src
,
stride
,
8
);
avg_pixels8_8_c
(
dst
,
src
,
stride
,
8
);
}
}
void
ff_put_pixels16x16_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
void
ff_put_pixels16x16_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
put_pixels16_8_c
(
dst
,
src
,
stride
,
16
);
put_pixels16_8_c
(
dst
,
src
,
stride
,
16
);
}
}
void
ff_avg_pixels16x16_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
void
ff_avg_pixels16x16_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
avg_pixels16_8_c
(
dst
,
src
,
stride
,
16
);
avg_pixels16_8_c
(
dst
,
src
,
stride
,
16
);
}
}
...
...
libavcodec/qpeldsp.h
View file @
7fb993d3
...
@@ -29,22 +29,25 @@
...
@@ -29,22 +29,25 @@
#include <stddef.h>
#include <stddef.h>
#include <stdint.h>
#include <stdint.h>
void
ff_put_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_pixels8x8_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_pixels8x8_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_pixels16x16_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_pixels16x16_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_pixels16x16_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_pixels16x16_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_pixels8_l2_8
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
void
ff_put_pixels8_l2_8
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dst_stride
,
int
src_stride1
,
int
src_stride2
,
int
dst_stride
,
int
src_stride1
,
int
src_stride2
,
int
h
);
int
h
);
#define DEF_OLD_QPEL(name) \
#define DEF_OLD_QPEL(name) \
void ff_put_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
void ff_put_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
uint8_t *src
/* align 1 */
, ptrdiff_t stride); \
const uint8_t *src
/* align 1 */
, \
void ff_put_no_rnd_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
ptrdiff_t stride); \
uint8_t *src
/* align 1 */
, ptrdiff_t stride); \
void ff_put_no_rnd_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
void ff_avg_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
const uint8_t *src
/* align 1 */
, \
uint8_t *src
/* align 1 */
, ptrdiff_t stride);
ptrdiff_t stride); \
void ff_avg_ ## name(uint8_t *dst
/* align width (8 or 16) */
, \
const uint8_t *src
/* align 1 */
, \
ptrdiff_t stride);
DEF_OLD_QPEL
(
qpel16_mc11_old_c
)
DEF_OLD_QPEL
(
qpel16_mc11_old_c
)
DEF_OLD_QPEL
(
qpel16_mc31_old_c
)
DEF_OLD_QPEL
(
qpel16_mc31_old_c
)
...
@@ -60,7 +63,8 @@ DEF_OLD_QPEL(qpel8_mc13_old_c)
...
@@ -60,7 +63,8 @@ DEF_OLD_QPEL(qpel8_mc13_old_c)
DEF_OLD_QPEL
(
qpel8_mc33_old_c
)
DEF_OLD_QPEL
(
qpel8_mc33_old_c
)
typedef
void
(
*
qpel_mc_func
)(
uint8_t
*
dst
/* align width (8 or 16) */
,
typedef
void
(
*
qpel_mc_func
)(
uint8_t
*
dst
/* align width (8 or 16) */
,
uint8_t
*
src
/* align 1 */
,
ptrdiff_t
stride
);
const
uint8_t
*
src
/* align 1 */
,
ptrdiff_t
stride
);
/**
/**
* quarterpel DSP context
* quarterpel DSP context
...
...
libavcodec/rv30dsp.c
View file @
7fb993d3
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
#include "rv34dsp.h"
#include "rv34dsp.h"
#define RV30_LOWPASS(OPNAME, OP) \
#define RV30_LOWPASS(OPNAME, OP) \
static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
const int h = 8;\
const int h = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -50,7 +50,7 @@ static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src,
...
@@ -50,7 +50,7 @@ static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src,
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
const int w = 8;\
const int w = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -80,7 +80,7 @@ static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstSt
...
@@ -80,7 +80,7 @@ static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstSt
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel8_hv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel8_hv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int w = 8;\
const int w = 8;\
const int h = 8;\
const int h = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
...
@@ -99,7 +99,7 @@ static void OPNAME ## rv30_tpel8_hv_lowpass(uint8_t *dst, uint8_t *src, int dstS
...
@@ -99,7 +99,7 @@ static void OPNAME ## rv30_tpel8_hv_lowpass(uint8_t *dst, uint8_t *src, int dstS
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel8_hhv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel8_hhv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int w = 8;\
const int w = 8;\
const int h = 8;\
const int h = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
...
@@ -118,7 +118,7 @@ static void OPNAME ## rv30_tpel8_hhv_lowpass(uint8_t *dst, uint8_t *src, int dst
...
@@ -118,7 +118,7 @@ static void OPNAME ## rv30_tpel8_hhv_lowpass(uint8_t *dst, uint8_t *src, int dst
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel8_hvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel8_hvv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int w = 8;\
const int w = 8;\
const int h = 8;\
const int h = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
...
@@ -137,7 +137,7 @@ static void OPNAME ## rv30_tpel8_hvv_lowpass(uint8_t *dst, uint8_t *src, int dst
...
@@ -137,7 +137,7 @@ static void OPNAME ## rv30_tpel8_hvv_lowpass(uint8_t *dst, uint8_t *src, int dst
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel8_hhvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel8_hhvv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
const int w = 8;\
const int w = 8;\
const int h = 8;\
const int h = 8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
...
@@ -155,7 +155,7 @@ static void OPNAME ## rv30_tpel8_hhvv_lowpass(uint8_t *dst, uint8_t *src, int ds
...
@@ -155,7 +155,7 @@ static void OPNAME ## rv30_tpel8_hhvv_lowpass(uint8_t *dst, uint8_t *src, int ds
}\
}\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
static void OPNAME ## rv30_tpel16_v_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
OPNAME ## rv30_tpel8_v_lowpass(dst , src , dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_v_lowpass(dst , src , dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -164,7 +164,7 @@ static void OPNAME ## rv30_tpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstS
...
@@ -164,7 +164,7 @@ static void OPNAME ## rv30_tpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstS
OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
static void OPNAME ## rv30_tpel16_h_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
OPNAME ## rv30_tpel8_h_lowpass(dst , src , dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_h_lowpass(dst , src , dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -173,7 +173,7 @@ static void OPNAME ## rv30_tpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstS
...
@@ -173,7 +173,7 @@ static void OPNAME ## rv30_tpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstS
OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
OPNAME ## rv30_tpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, C1, C2);\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_hv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel16_hv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## rv30_tpel8_hv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -182,7 +182,7 @@ static void OPNAME ## rv30_tpel16_hv_lowpass(uint8_t *dst, uint8_t *src, int dst
...
@@ -182,7 +182,7 @@ static void OPNAME ## rv30_tpel16_hv_lowpass(uint8_t *dst, uint8_t *src, int dst
OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hv_lowpass(dst+8, src+8, dstStride, srcStride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_hhv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel16_hhv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## rv30_tpel8_hhv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -191,7 +191,7 @@ static void OPNAME ## rv30_tpel16_hhv_lowpass(uint8_t *dst, uint8_t *src, int ds
...
@@ -191,7 +191,7 @@ static void OPNAME ## rv30_tpel16_hhv_lowpass(uint8_t *dst, uint8_t *src, int ds
OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhv_lowpass(dst+8, src+8, dstStride, srcStride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_hvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel16_hvv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## rv30_tpel8_hvv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hvv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -200,7 +200,7 @@ static void OPNAME ## rv30_tpel16_hvv_lowpass(uint8_t *dst, uint8_t *src, int ds
...
@@ -200,7 +200,7 @@ static void OPNAME ## rv30_tpel16_hvv_lowpass(uint8_t *dst, uint8_t *src, int ds
OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hvv_lowpass(dst+8, src+8, dstStride, srcStride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel16_hhvv_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## rv30_tpel16_hhvv_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## rv30_tpel8_hhvv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhvv_lowpass(dst , src , dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhvv_lowpass(dst+8, src+8, dstStride, srcStride);\
OPNAME ## rv30_tpel8_hhvv_lowpass(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -211,42 +211,42 @@ static void OPNAME ## rv30_tpel16_hhvv_lowpass(uint8_t *dst, uint8_t *src, int d
...
@@ -211,42 +211,42 @@ static void OPNAME ## rv30_tpel16_hhvv_lowpass(uint8_t *dst, uint8_t *src, int d
\
\
#define RV30_MC(OPNAME, SIZE) \
#define RV30_MC(OPNAME, SIZE) \
static void OPNAME ## rv30_tpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc10_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 12, 6);\
OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 12, 6);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc20_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 6, 12);\
OPNAME ## rv30_tpel ## SIZE ## _h_lowpass(dst, src, stride, stride, 6, 12);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc01_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc01_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 12, 6);\
OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 12, 6);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc02_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc02_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 6, 12);\
OPNAME ## rv30_tpel ## SIZE ## _v_lowpass(dst, src, stride, stride, 6, 12);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc11_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _hv_lowpass(dst, src, stride, stride);\
OPNAME ## rv30_tpel ## SIZE ## _hv_lowpass(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc12_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _hvv_lowpass(dst, src, stride, stride);\
OPNAME ## rv30_tpel ## SIZE ## _hvv_lowpass(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc21_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _hhv_lowpass(dst, src, stride, stride);\
OPNAME ## rv30_tpel ## SIZE ## _hhv_lowpass(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## rv30_tpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv30_tpel ## SIZE ## _mc22_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv30_tpel ## SIZE ## _hhvv_lowpass(dst, src, stride, stride);\
OPNAME ## rv30_tpel ## SIZE ## _hhvv_lowpass(dst, src, stride, stride);\
}\
}\
...
...
libavcodec/rv40dsp.c
View file @
7fb993d3
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
#include "rv34dsp.h"
#include "rv34dsp.h"
#define RV40_LOWPASS(OPNAME, OP) \
#define RV40_LOWPASS(OPNAME, OP) \
static av_unused void OPNAME ## rv40_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,\
static av_unused void OPNAME ## rv40_qpel8_h_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride,\
const int h, const int C1, const int C2, const int SHIFT){\
const int h, const int C1, const int C2, const int SHIFT){\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -53,7 +53,7 @@ static av_unused void OPNAME ## rv40_qpel8_h_lowpass(uint8_t *dst, uint8_t *src,
...
@@ -53,7 +53,7 @@ static av_unused void OPNAME ## rv40_qpel8_h_lowpass(uint8_t *dst, uint8_t *src,
}\
}\
}\
}\
\
\
static void OPNAME ## rv40_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,\
static void OPNAME ## rv40_qpel8_v_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride,\
const int w, const int C1, const int C2, const int SHIFT){\
const int w, const int C1, const int C2, const int SHIFT){\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\
int i;\
...
@@ -85,7 +85,7 @@ static void OPNAME ## rv40_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstSt
...
@@ -85,7 +85,7 @@ static void OPNAME ## rv40_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstSt
}\
}\
}\
}\
\
\
static void OPNAME ## rv40_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,\
static void OPNAME ## rv40_qpel16_v_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride,\
const int w, const int C1, const int C2, const int SHIFT){\
const int w, const int C1, const int C2, const int SHIFT){\
OPNAME ## rv40_qpel8_v_lowpass(dst , src , dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_v_lowpass(dst , src , dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, 8, C1, C2, SHIFT);\
...
@@ -95,7 +95,7 @@ static void OPNAME ## rv40_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstS
...
@@ -95,7 +95,7 @@ static void OPNAME ## rv40_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstS
OPNAME ## rv40_qpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, w-8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_v_lowpass(dst+8, src+8, dstStride, srcStride, w-8, C1, C2, SHIFT);\
}\
}\
\
\
static void OPNAME ## rv40_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,\
static void OPNAME ## rv40_qpel16_h_lowpass(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride,\
const int h, const int C1, const int C2, const int SHIFT){\
const int h, const int C1, const int C2, const int SHIFT){\
OPNAME ## rv40_qpel8_h_lowpass(dst , src , dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_h_lowpass(dst , src , dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, 8, C1, C2, SHIFT);\
OPNAME ## rv40_qpel8_h_lowpass(dst+8, src+8, dstStride, srcStride, 8, C1, C2, SHIFT);\
...
@@ -107,22 +107,22 @@ static void OPNAME ## rv40_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstS
...
@@ -107,22 +107,22 @@ static void OPNAME ## rv40_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstS
\
\
#define RV40_MC(OPNAME, SIZE) \
#define RV40_MC(OPNAME, SIZE) \
static void OPNAME ## rv40_qpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc10_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv40_qpel ## SIZE ## _h_lowpass(dst, src, stride, stride, SIZE, 52, 20, 6);\
OPNAME ## rv40_qpel ## SIZE ## _h_lowpass(dst, src, stride, stride, SIZE, 52, 20, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc30_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc30_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv40_qpel ## SIZE ## _h_lowpass(dst, src, stride, stride, SIZE, 20, 52, 6);\
OPNAME ## rv40_qpel ## SIZE ## _h_lowpass(dst, src, stride, stride, SIZE, 20, 52, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc01_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc01_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, src, stride, stride, SIZE, 52, 20, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, src, stride, stride, SIZE, 52, 20, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc11_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -130,7 +130,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, p
...
@@ -130,7 +130,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc21_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -138,7 +138,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, p
...
@@ -138,7 +138,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc31_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc31_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -146,7 +146,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc31_c(uint8_t *dst, uint8_t *src, p
...
@@ -146,7 +146,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc31_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 52, 20, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc12_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -154,7 +154,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, p
...
@@ -154,7 +154,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc22_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -162,7 +162,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, p
...
@@ -162,7 +162,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc32_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc32_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -170,12 +170,12 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc32_c(uint8_t *dst, uint8_t *src, p
...
@@ -170,12 +170,12 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc32_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 20, 5);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc03_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc03_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, src, stride, stride, SIZE, 20, 52, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, src, stride, stride, SIZE, 20, 52, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc13_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc13_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -183,7 +183,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc13_c(uint8_t *dst, uint8_t *src, p
...
@@ -183,7 +183,7 @@ static void OPNAME ## rv40_qpel ## SIZE ## _mc13_c(uint8_t *dst, uint8_t *src, p
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 52, 6);\
OPNAME ## rv40_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE, SIZE, 20, 52, 6);\
}\
}\
\
\
static void OPNAME ## rv40_qpel ## SIZE ## _mc23_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## rv40_qpel ## SIZE ## _mc23_c(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t full[SIZE*(SIZE+5)];\
uint8_t * const full_mid = full + SIZE*2;\
uint8_t * const full_mid = full + SIZE*2;\
...
@@ -266,19 +266,19 @@ PIXOP2(put, op_put)
...
@@ -266,19 +266,19 @@ PIXOP2(put, op_put)
#undef op_avg
#undef op_avg
#undef op_put
#undef op_put
static
void
put_rv40_qpel16_mc33_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_rv40_qpel16_mc33_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
put_pixels16_xy2_8_c
(
dst
,
src
,
stride
,
16
);
put_pixels16_xy2_8_c
(
dst
,
src
,
stride
,
16
);
}
}
static
void
avg_rv40_qpel16_mc33_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
avg_rv40_qpel16_mc33_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
avg_pixels16_xy2_8_c
(
dst
,
src
,
stride
,
16
);
avg_pixels16_xy2_8_c
(
dst
,
src
,
stride
,
16
);
}
}
static
void
put_rv40_qpel8_mc33_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_rv40_qpel8_mc33_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
put_pixels8_xy2_8_c
(
dst
,
src
,
stride
,
8
);
put_pixels8_xy2_8_c
(
dst
,
src
,
stride
,
8
);
}
}
static
void
avg_rv40_qpel8_mc33_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
avg_rv40_qpel8_mc33_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
avg_pixels8_xy2_8_c
(
dst
,
src
,
stride
,
8
);
avg_pixels8_xy2_8_c
(
dst
,
src
,
stride
,
8
);
}
}
...
...
libavcodec/wmv2dsp.c
View file @
7fb993d3
...
@@ -139,7 +139,7 @@ static void wmv2_idct_put_c(uint8_t *dest, int line_size, int16_t *block)
...
@@ -139,7 +139,7 @@ static void wmv2_idct_put_c(uint8_t *dest, int line_size, int16_t *block)
}
}
}
}
static
void
wmv2_mspel8_h_lowpass
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
wmv2_mspel8_h_lowpass
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
h
)
int
dstStride
,
int
srcStride
,
int
h
)
{
{
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
;
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
;
...
@@ -159,7 +159,7 @@ static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src,
...
@@ -159,7 +159,7 @@ static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src,
}
}
}
}
static
void
wmv2_mspel8_v_lowpass
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
wmv2_mspel8_v_lowpass
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
w
)
int
dstStride
,
int
srcStride
,
int
w
)
{
{
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
;
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
;
...
@@ -190,7 +190,7 @@ static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src,
...
@@ -190,7 +190,7 @@ static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src,
}
}
}
}
static
void
put_mspel8_mc10_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc10_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
uint8_t
half
[
64
];
uint8_t
half
[
64
];
...
@@ -198,12 +198,12 @@ static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
...
@@ -198,12 +198,12 @@ static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
ff_put_pixels8_l2_8
(
dst
,
src
,
half
,
stride
,
stride
,
8
,
8
);
ff_put_pixels8_l2_8
(
dst
,
src
,
half
,
stride
,
stride
,
8
,
8
);
}
}
static
void
put_mspel8_mc20_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc20_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
wmv2_mspel8_h_lowpass
(
dst
,
src
,
stride
,
stride
,
8
);
wmv2_mspel8_h_lowpass
(
dst
,
src
,
stride
,
stride
,
8
);
}
}
static
void
put_mspel8_mc30_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc30_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
uint8_t
half
[
64
];
uint8_t
half
[
64
];
...
@@ -211,12 +211,12 @@ static void put_mspel8_mc30_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
...
@@ -211,12 +211,12 @@ static void put_mspel8_mc30_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
ff_put_pixels8_l2_8
(
dst
,
src
+
1
,
half
,
stride
,
stride
,
8
,
8
);
ff_put_pixels8_l2_8
(
dst
,
src
+
1
,
half
,
stride
,
stride
,
8
,
8
);
}
}
static
void
put_mspel8_mc02_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc02_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
wmv2_mspel8_v_lowpass
(
dst
,
src
,
stride
,
stride
,
8
);
wmv2_mspel8_v_lowpass
(
dst
,
src
,
stride
,
stride
,
8
);
}
}
static
void
put_mspel8_mc12_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc12_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
uint8_t
halfH
[
88
];
uint8_t
halfH
[
88
];
uint8_t
halfV
[
64
];
uint8_t
halfV
[
64
];
...
@@ -228,7 +228,7 @@ static void put_mspel8_mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
...
@@ -228,7 +228,7 @@ static void put_mspel8_mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
ff_put_pixels8_l2_8
(
dst
,
halfV
,
halfHV
,
stride
,
8
,
8
,
8
);
ff_put_pixels8_l2_8
(
dst
,
halfV
,
halfHV
,
stride
,
8
,
8
,
8
);
}
}
static
void
put_mspel8_mc32_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc32_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
uint8_t
halfH
[
88
];
uint8_t
halfH
[
88
];
uint8_t
halfV
[
64
];
uint8_t
halfV
[
64
];
...
@@ -240,7 +240,7 @@ static void put_mspel8_mc32_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
...
@@ -240,7 +240,7 @@ static void put_mspel8_mc32_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
ff_put_pixels8_l2_8
(
dst
,
halfV
,
halfHV
,
stride
,
8
,
8
,
8
);
ff_put_pixels8_l2_8
(
dst
,
halfV
,
halfHV
,
stride
,
8
,
8
,
8
);
}
}
static
void
put_mspel8_mc22_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
static
void
put_mspel8_mc22_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
{
{
uint8_t
halfH
[
88
];
uint8_t
halfH
[
88
];
...
...
libavcodec/x86/cavsdsp.c
View file @
7fb993d3
...
@@ -334,7 +334,7 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
...
@@ -334,7 +334,7 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
}
}
#define QPEL_CAVS(OPNAME, OP, MMX)\
#define QPEL_CAVS(OPNAME, OP, MMX)\
static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
int h=8;\
int h=8;\
__asm__ volatile(\
__asm__ volatile(\
"pxor %%mm7, %%mm7 \n\t"\
"pxor %%mm7, %%mm7 \n\t"\
...
@@ -381,43 +381,43 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstSt
...
@@ -381,43 +381,43 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstSt
);\
);\
}\
}\
\
\
static inline void OPNAME ## cavs_qpel8or16_v1_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
static inline void OPNAME ## cavs_qpel8or16_v1_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h){\
QPEL_CAVSVNUM(QPEL_CAVSV1,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
QPEL_CAVSVNUM(QPEL_CAVSV1,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
}\
}\
\
\
static inline void OPNAME ## cavs_qpel8or16_v2_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
static inline void OPNAME ## cavs_qpel8or16_v2_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h){\
QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_5) \
QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_5) \
}\
}\
\
\
static inline void OPNAME ## cavs_qpel8or16_v3_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
static inline void OPNAME ## cavs_qpel8or16_v3_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h){\
QPEL_CAVSVNUM(QPEL_CAVSV3,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
QPEL_CAVSVNUM(QPEL_CAVSV3,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
}\
}\
\
\
static void OPNAME ## cavs_qpel8_v1_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel8_v1_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 8);\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\
}\
static void OPNAME ## cavs_qpel16_v1_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel16_v1_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\
}\
\
\
static void OPNAME ## cavs_qpel8_v2_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel8_v2_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 8);\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\
}\
static void OPNAME ## cavs_qpel16_v2_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel16_v2_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\
}\
\
\
static void OPNAME ## cavs_qpel8_v3_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel8_v3_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 8);\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\
}\
static void OPNAME ## cavs_qpel16_v3_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel16_v3_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\
}\
\
\
static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
OPNAME ## cavs_qpel8_h_ ## MMX(dst , src , dstStride, srcStride);\
OPNAME ## cavs_qpel8_h_ ## MMX(dst , src , dstStride, srcStride);\
OPNAME ## cavs_qpel8_h_ ## MMX(dst+8, src+8, dstStride, srcStride);\
OPNAME ## cavs_qpel8_h_ ## MMX(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -427,22 +427,22 @@ static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstS
...
@@ -427,22 +427,22 @@ static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst, uint8_t *src, int dstS
}\
}\
#define CAVS_MC(OPNAME, SIZE, MMX) \
#define CAVS_MC(OPNAME, SIZE, MMX) \
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_qpel ## SIZE ## _h_ ## MMX(dst, src, stride, stride);\
OPNAME ## cavs_qpel ## SIZE ## _h_ ## MMX(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_qpel ## SIZE ## _v1_ ## MMX(dst, src, stride, stride);\
OPNAME ## cavs_qpel ## SIZE ## _v1_ ## MMX(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_qpel ## SIZE ## _v2_ ## MMX(dst, src, stride, stride);\
OPNAME ## cavs_qpel ## SIZE ## _v2_ ## MMX(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
OPNAME ## cavs_qpel ## SIZE ## _v3_ ## MMX(dst, src, stride, stride);\
OPNAME ## cavs_qpel ## SIZE ## _v3_ ## MMX(dst, src, stride, stride);\
}\
}\
...
@@ -460,25 +460,25 @@ static void OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
...
@@ -460,25 +460,25 @@ static void OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
#endif
/* (HAVE_MMXEXT_INLINE || HAVE_AMD3DNOW_INLINE) */
#endif
/* (HAVE_MMXEXT_INLINE || HAVE_AMD3DNOW_INLINE) */
#if HAVE_MMX_INLINE
#if HAVE_MMX_INLINE
static
void
put_cavs_qpel8_mc00_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
put_cavs_qpel8_mc00_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_put_pixels8_mmx
(
dst
,
src
,
stride
,
8
);
ff_put_pixels8_mmx
(
dst
,
src
,
stride
,
8
);
}
}
static
void
avg_cavs_qpel8_mc00_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
avg_cavs_qpel8_mc00_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_avg_pixels8_mmx
(
dst
,
src
,
stride
,
8
);
ff_avg_pixels8_mmx
(
dst
,
src
,
stride
,
8
);
}
}
static
void
put_cavs_qpel16_mc00_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
put_cavs_qpel16_mc00_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_put_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
ff_put_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
}
}
static
void
avg_cavs_qpel16_mc00_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
avg_cavs_qpel16_mc00_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_avg_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
ff_avg_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
...
...
libavcodec/x86/h264_qpel.c
View file @
7fb993d3
...
@@ -33,17 +33,17 @@ void ff_put_pixels4_mmxext(uint8_t *block, const uint8_t *pixels,
...
@@ -33,17 +33,17 @@ void ff_put_pixels4_mmxext(uint8_t *block, const uint8_t *pixels,
ptrdiff_t
line_size
,
int
h
);
ptrdiff_t
line_size
,
int
h
);
void
ff_avg_pixels4_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
void
ff_avg_pixels4_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
ptrdiff_t
line_size
,
int
h
);
void
ff_put_pixels4_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_put_pixels4_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_avg_pixels4_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_avg_pixels4_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_put_pixels8_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_avg_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_avg_pixels8_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_pixels16_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_put_pixels16_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_avg_pixels16_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_avg_pixels16_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
#define ff_put_pixels8_l2_sse2 ff_put_pixels8_l2_mmxext
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
...
@@ -54,29 +54,29 @@ CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
...
@@ -54,29 +54,29 @@ CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
#define DEF_QPEL(OPNAME)\
#define DEF_QPEL(OPNAME)\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_mmxext(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_mmxext(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_ssse3(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_ssse3(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_l2_mmxext(uint8_t *dst,
uint8_t *src,
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_l2_mmxext(uint8_t *dst,
const uint8_t *src, const
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_l2_mmxext(uint8_t *dst,
uint8_t *src,
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_l2_mmxext(uint8_t *dst,
const uint8_t *src, const
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_l2_ssse3(uint8_t *dst,
uint8_t *src,
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel8_h_lowpass_l2_ssse3(uint8_t *dst,
const uint8_t *src, const
uint8_t *src2, int dstStride, int src2Stride);\
void ff_ ## OPNAME ## _h264_qpel4_v_lowpass_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel4_v_lowpass_mmxext(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel8or16_v_lowpass_op_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h);\
void ff_ ## OPNAME ## _h264_qpel8or16_v_lowpass_op_mmxext(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h);\
void ff_ ## OPNAME ## _h264_qpel8or16_v_lowpass_sse2(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h);\
void ff_ ## OPNAME ## _h264_qpel8or16_v_lowpass_sse2(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h);\
void ff_ ## OPNAME ## _h264_qpel4_hv_lowpass_v_mmxext(uint8_t *src, int16_t *tmp, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel4_hv_lowpass_v_mmxext(
const
uint8_t *src, int16_t *tmp, int srcStride);\
void ff_ ## OPNAME ## _h264_qpel4_hv_lowpass_h_mmxext(int16_t *tmp, uint8_t *dst, int dstStride);\
void ff_ ## OPNAME ## _h264_qpel4_hv_lowpass_h_mmxext(int16_t *tmp, uint8_t *dst, int dstStride);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv1_lowpass_op_mmxext(uint8_t *src, int16_t *tmp, int srcStride, int size);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv1_lowpass_op_mmxext(
const
uint8_t *src, int16_t *tmp, int srcStride, int size);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv1_lowpass_op_sse2(uint8_t *src, int16_t *tmp, int srcStride, int size);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv1_lowpass_op_sse2(
const
uint8_t *src, int16_t *tmp, int srcStride, int size);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_op_mmxext(uint8_t *dst, int16_t *tmp, int dstStride, int unused, int h);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_op_mmxext(uint8_t *dst, int16_t *tmp, int dstStride, int unused, int h);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_ssse3(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size);\
void ff_ ## OPNAME ## _h264_qpel8or16_hv2_lowpass_ssse3(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size);\
void ff_ ## OPNAME ## _pixels4_l2_shift5_mmxext(uint8_t *dst,
int16_t *src16,
uint8_t *src8, int dstStride, int src8Stride, int h);\
void ff_ ## OPNAME ## _pixels4_l2_shift5_mmxext(uint8_t *dst,
const int16_t *src16, const
uint8_t *src8, int dstStride, int src8Stride, int h);\
void ff_ ## OPNAME ## _pixels8_l2_shift5_mmxext(uint8_t *dst,
int16_t *src16,
uint8_t *src8, int dstStride, int src8Stride, int h);
void ff_ ## OPNAME ## _pixels8_l2_shift5_mmxext(uint8_t *dst,
const int16_t *src16, const
uint8_t *src8, int dstStride, int src8Stride, int h);
DEF_QPEL
(
avg
)
DEF_QPEL
(
avg
)
DEF_QPEL
(
put
)
DEF_QPEL
(
put
)
#define QPEL_H264(OPNAME, OP, MMX)\
#define QPEL_H264(OPNAME, OP, MMX)\
static av_always_inline void ff_ ## OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
int w=3;\
int w=3;\
src -= 2*srcStride+2;\
src -= 2*srcStride+2;\
while(w--){\
while(w--){\
...
@@ -88,14 +88,14 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint
...
@@ -88,14 +88,14 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint
ff_ ## OPNAME ## h264_qpel4_hv_lowpass_h_mmxext(tmp, dst, dstStride);\
ff_ ## OPNAME ## h264_qpel4_hv_lowpass_h_mmxext(tmp, dst, dstStride);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride, int h){\
src -= 2*srcStride;\
src -= 2*srcStride;\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_op_mmxext(dst, src, dstStride, srcStride, h);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_op_mmxext(dst, src, dstStride, srcStride, h);\
src += 4;\
src += 4;\
dst += 4;\
dst += 4;\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_op_mmxext(dst, src, dstStride, srcStride, h);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_op_mmxext(dst, src, dstStride, srcStride, h);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_t *tmp,
const
uint8_t *src, int tmpStride, int srcStride, int size){\
int w = (size+8)>>2;\
int w = (size+8)>>2;\
src -= 2*srcStride+2;\
src -= 2*srcStride+2;\
while(w--){\
while(w--){\
...
@@ -113,15 +113,15 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX
...
@@ -113,15 +113,15 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX
}while(w--);\
}while(w--);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -130,7 +130,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
...
@@ -130,7 +130,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst,
uint8_t *src,
uint8_t *src2, int dstStride, int src2Stride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst,
const uint8_t *src, const
uint8_t *src2, int dstStride, int src2Stride){\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
src += 8*dstStride;\
src += 8*dstStride;\
...
@@ -140,19 +140,19 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
...
@@ -140,19 +140,19 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
ff_put_h264_qpel8or16_hv1_lowpass_ ## MMX(tmp, src, tmpStride, srcStride, size);\
ff_put_h264_qpel8or16_hv1_lowpass_ ## MMX(tmp, src, tmpStride, srcStride, size);\
ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 8);\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 8);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 16);\
}\
}\
\
\
static av_always_inline void ff_ ## OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t *dst,
int16_t *src16,
uint8_t *src8, int dstStride, int src8Stride, int h)\
static av_always_inline void ff_ ## OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t *dst,
const int16_t *src16, const
uint8_t *src8, int dstStride, int src8Stride, int h)\
{\
{\
ff_ ## OPNAME ## pixels8_l2_shift5_ ## MMX(dst , src16 , src8 , dstStride, src8Stride, h);\
ff_ ## OPNAME ## pixels8_l2_shift5_ ## MMX(dst , src16 , src8 , dstStride, src8Stride, h);\
ff_ ## OPNAME ## pixels8_l2_shift5_ ## MMX(dst+8, src16+8, src8+8, dstStride, src8Stride, h);\
ff_ ## OPNAME ## pixels8_l2_shift5_ ## MMX(dst+8, src16+8, src8+8, dstStride, src8Stride, h);\
...
@@ -162,12 +162,12 @@ static av_always_inline void ff_ ## OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t
...
@@ -162,12 +162,12 @@ static av_always_inline void ff_ ## OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t
#if ARCH_X86_64
#if ARCH_X86_64
#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
void
ff_avg_h264_qpel16_h_lowpass_l2_ssse3
(
uint8_t
*
dst
,
uint8_t
*
src
,
uint8_t
*
src2
,
int
dstStride
,
int
src2Stride
);
void
ff_avg_h264_qpel16_h_lowpass_l2_ssse3
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src2Stride
);
void
ff_put_h264_qpel16_h_lowpass_l2_ssse3
(
uint8_t
*
dst
,
uint8_t
*
src
,
uint8_t
*
src2
,
int
dstStride
,
int
src2Stride
);
void
ff_put_h264_qpel16_h_lowpass_l2_ssse3
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src2Stride
);
#else // ARCH_X86_64
#else // ARCH_X86_64
#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst,
uint8_t *src,
uint8_t *src2, int dstStride, int src2Stride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst,
const uint8_t *src, const
uint8_t *src2, int dstStride, int src2Stride){\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
src += 8*dstStride;\
src += 8*dstStride;\
...
@@ -180,7 +180,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
...
@@ -180,7 +180,7 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(u
#define QPEL_H264_H_XMM(OPNAME, OP, MMX)\
#define QPEL_H264_H_XMM(OPNAME, OP, MMX)\
QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
ff_ ## OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\
src += 8*srcStride;\
...
@@ -190,16 +190,16 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
...
@@ -190,16 +190,16 @@ static av_always_inline void ff_ ## OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint
}\
}\
#define QPEL_H264_V_XMM(OPNAME, OP, MMX)\
#define QPEL_H264_V_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst,
const
uint8_t *src, int dstStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}
}
static
av_always_inline
void
put_h264_qpel8or16_hv1_lowpass_sse2
(
int16_t
*
tmp
,
static
av_always_inline
void
put_h264_qpel8or16_hv1_lowpass_sse2
(
int16_t
*
tmp
,
uint8_t
*
src
,
const
uint8_t
*
src
,
int
tmpStride
,
int
tmpStride
,
int
srcStride
,
int
srcStride
,
int
size
)
int
size
)
...
@@ -214,14 +214,14 @@ static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp,
...
@@ -214,14 +214,14 @@ static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp,
}
}
#define QPEL_H264_HV_XMM(OPNAME, OP, MMX)\
#define QPEL_H264_HV_XMM(OPNAME, OP, MMX)\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
put_h264_qpel8or16_hv1_lowpass_sse2(tmp, src, tmpStride, srcStride, size);\
put_h264_qpel8or16_hv1_lowpass_sse2(tmp, src, tmpStride, srcStride, size);\
ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
ff_ ## OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 8);\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 8);\
}\
}\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
static av_always_inline void ff_ ## OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp,
const
uint8_t *src, int dstStride, int tmpStride, int srcStride){\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 16);\
ff_ ## OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 16);\
}\
}\
...
@@ -244,12 +244,12 @@ H264_MC_V(OPNAME, SIZE, MMX, ALIGN)\
...
@@ -244,12 +244,12 @@ H264_MC_V(OPNAME, SIZE, MMX, ALIGN)\
H264_MC_H(OPNAME, SIZE, MMX, ALIGN)\
H264_MC_H(OPNAME, SIZE, MMX, ALIGN)\
H264_MC_HV(OPNAME, SIZE, MMX, ALIGN)\
H264_MC_HV(OPNAME, SIZE, MMX, ALIGN)\
static
void
put_h264_qpel16_mc00_sse2
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
put_h264_qpel16_mc00_sse2
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_put_pixels16_sse2
(
dst
,
src
,
stride
,
16
);
ff_put_pixels16_sse2
(
dst
,
src
,
stride
,
16
);
}
}
static
void
avg_h264_qpel16_mc00_sse2
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
avg_h264_qpel16_mc00_sse2
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_avg_pixels16_sse2
(
dst
,
src
,
stride
,
16
);
ff_avg_pixels16_sse2
(
dst
,
src
,
stride
,
16
);
...
@@ -258,41 +258,41 @@ static void avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src,
...
@@ -258,41 +258,41 @@ static void avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src,
#define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmxext
#define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmxext
#define H264_MC_C(OPNAME, SIZE, MMX, ALIGN) \
#define H264_MC_C(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## MMX (uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## MMX (uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## pixels ## SIZE ## _ ## MMX(dst, src, stride, SIZE);\
ff_ ## OPNAME ## pixels ## SIZE ## _ ## MMX(dst, src, stride, SIZE);\
}\
}\
#define H264_MC_H(OPNAME, SIZE, MMX, ALIGN) \
#define H264_MC_H(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src, stride, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## MMX(dst, src, stride, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## MMX(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src+1, stride, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src+1, stride, stride);\
}\
}\
#define H264_MC_V(OPNAME, SIZE, MMX, ALIGN) \
#define H264_MC_V(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_ ## OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\
ff_ ## OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## MMX(dst, src, stride, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## MMX(dst, src, stride, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
...
@@ -300,41 +300,41 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
...
@@ -300,41 +300,41 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
}\
}\
#define H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) \
#define H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) \
static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
ff_put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint16_t, temp)[SIZE*(SIZE<8?12:24)];\
DECLARE_ALIGNED(ALIGN, uint16_t, temp)[SIZE*(SIZE<8?12:24)];\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, temp, src, stride, SIZE, stride);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, temp, src, stride, SIZE, stride);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
uint8_t * const halfHV= temp;\
uint8_t * const halfHV= temp;\
...
@@ -344,7 +344,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *
...
@@ -344,7 +344,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfHV, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfHV, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
uint8_t * const halfHV= temp;\
uint8_t * const halfHV= temp;\
...
@@ -354,7 +354,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *
...
@@ -354,7 +354,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfHV, stride, SIZE);\
ff_ ## OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfHV, stride, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
uint8_t * const halfHV= temp;\
uint8_t * const halfHV= temp;\
...
@@ -364,7 +364,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *
...
@@ -364,7 +364,7 @@ static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *
ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+2, halfHV, stride, SIZE, SIZE);\
ff_ ## OPNAME ## pixels ## SIZE ## _l2_shift5_mmxext(dst, halfV+2, halfHV, stride, SIZE, SIZE);\
}\
}\
\
\
static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride)\
static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride)\
{\
{\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
uint8_t * const halfHV= temp;\
uint8_t * const halfHV= temp;\
...
@@ -409,7 +409,7 @@ H264_MC_816(H264_MC_HV, ssse3)
...
@@ -409,7 +409,7 @@ H264_MC_816(H264_MC_HV, ssse3)
//10bit
//10bit
#define LUMA_MC_OP(OP, NUM, DEPTH, TYPE, OPT) \
#define LUMA_MC_OP(OP, NUM, DEPTH, TYPE, OPT) \
void ff_ ## OP ## _h264_qpel ## NUM ## _ ## TYPE ## _ ## DEPTH ## _ ## OPT \
void ff_ ## OP ## _h264_qpel ## NUM ## _ ## TYPE ## _ ## DEPTH ## _ ## OPT \
(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride);
#define LUMA_MC_ALL(DEPTH, TYPE, OPT) \
#define LUMA_MC_ALL(DEPTH, TYPE, OPT) \
LUMA_MC_OP(put, 4, DEPTH, TYPE, OPT) \
LUMA_MC_OP(put, 4, DEPTH, TYPE, OPT) \
...
@@ -466,7 +466,7 @@ LUMA_MC_816(10, mc23, sse2)
...
@@ -466,7 +466,7 @@ LUMA_MC_816(10, mc23, sse2)
LUMA_MC_816
(
10
,
mc33
,
sse2
)
LUMA_MC_816
(
10
,
mc33
,
sse2
)
#define QPEL16_OPMC(OP, MC, MMX)\
#define QPEL16_OPMC(OP, MC, MMX)\
void ff_ ## OP ## _h264_qpel16_ ## MC ## _10_ ## MMX(uint8_t *dst, uint8_t *src, ptrdiff_t stride){\
void ff_ ## OP ## _h264_qpel16_ ## MC ## _10_ ## MMX(uint8_t *dst,
const
uint8_t *src, ptrdiff_t stride){\
ff_ ## OP ## _h264_qpel8_ ## MC ## _10_ ## MMX(dst , src , stride);\
ff_ ## OP ## _h264_qpel8_ ## MC ## _10_ ## MMX(dst , src , stride);\
ff_ ## OP ## _h264_qpel8_ ## MC ## _10_ ## MMX(dst+16, src+16, stride);\
ff_ ## OP ## _h264_qpel8_ ## MC ## _10_ ## MMX(dst+16, src+16, stride);\
src += 8*stride;\
src += 8*stride;\
...
...
libavcodec/x86/qpeldsp_init.c
View file @
7fb993d3
...
@@ -29,44 +29,53 @@
...
@@ -29,44 +29,53 @@
#include "libavcodec/qpeldsp.h"
#include "libavcodec/qpeldsp.h"
#include "fpel.h"
#include "fpel.h"
void
ff_put_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_put_pixels8_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_no_rnd_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
void
ff_put_no_rnd_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src2
,
int
dstStride
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_avg_pixels8_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_avg_pixels8_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_pixels16_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_put_pixels16_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_avg_pixels16_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
void
ff_avg_pixels16_l2_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
dstStride
,
int
src1Stride
,
int
h
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_no_rnd_pixels16_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
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
);
int
dstStride
,
int
src1Stride
,
int
h
);
void
ff_put_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
h
);
int
dstStride
,
int
srcStride
,
int
h
);
void
ff_avg_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_avg_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
h
);
int
dstStride
,
int
srcStride
,
int
h
);
void
ff_put_no_rnd_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_no_rnd_mpeg4_qpel16_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
dstStride
,
int
srcStride
,
int
h
);
int
h
);
void
ff_put_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
h
);
int
dstStride
,
int
srcStride
,
int
h
);
void
ff_avg_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_avg_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
h
);
int
dstStride
,
int
srcStride
,
int
h
);
void
ff_put_no_rnd_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_no_rnd_mpeg4_qpel8_h_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
,
int
dstStride
,
int
srcStride
,
int
h
);
int
h
);
void
ff_put_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
void
ff_avg_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_avg_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
void
ff_put_no_rnd_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_no_rnd_mpeg4_qpel16_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
void
ff_put_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
void
ff_avg_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_avg_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
void
ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
void
ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
int
dstStride
,
int
srcStride
);
#define ff_put_no_rnd_pixels16_mmxext ff_put_pixels16_mmxext
#define ff_put_no_rnd_pixels16_mmxext ff_put_pixels16_mmxext
#define ff_put_no_rnd_pixels8_mmxext ff_put_pixels8_mmxext
#define ff_put_no_rnd_pixels8_mmxext ff_put_pixels8_mmxext
...
@@ -77,13 +86,15 @@ CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
...
@@ -77,13 +86,15 @@ CALL_2X_PIXELS(ff_avg_pixels16_mmxext, ff_avg_pixels8_mmxext, 8)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
#define QPEL_OP(OPNAME, RND, MMX) \
#define QPEL_OP(OPNAME, RND, MMX) \
static void OPNAME ## qpel8_mc00_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc00_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## pixels8_ ## MMX(dst, src, stride, 8); \
ff_ ## OPNAME ## pixels8_ ## MMX(dst, src, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[8]; \
uint64_t temp[8]; \
...
@@ -94,14 +105,16 @@ static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -94,14 +105,16 @@ static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, stride, 8); \
stride, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## mpeg4_qpel8_h_lowpass_ ## MMX(dst, src, stride, \
ff_ ## OPNAME ## mpeg4_qpel8_h_lowpass_ ## MMX(dst, src, stride, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[8]; \
uint64_t temp[8]; \
...
@@ -112,7 +125,8 @@ static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -112,7 +125,8 @@ static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[8]; \
uint64_t temp[8]; \
...
@@ -123,14 +137,16 @@ static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -123,14 +137,16 @@ static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, stride, 8); \
stride, stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, src, \
ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, src, \
stride, stride); \
stride, stride); \
} \
} \
\
\
static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[8]; \
uint64_t temp[8]; \
...
@@ -141,7 +157,8 @@ static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -141,7 +157,8 @@ static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -156,7 +173,8 @@ static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -156,7 +173,8 @@ static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -171,7 +189,8 @@ static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -171,7 +189,8 @@ static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -186,7 +205,8 @@ static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -186,7 +205,8 @@ static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -201,7 +221,8 @@ static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -201,7 +221,8 @@ static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -214,7 +235,8 @@ static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -214,7 +235,8 @@ static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -227,7 +249,8 @@ static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -227,7 +249,8 @@ static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8, 8); \
stride, 8, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -240,7 +263,8 @@ static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -240,7 +263,8 @@ static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc32_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[8 + 9]; \
uint64_t half[8 + 9]; \
...
@@ -253,7 +277,8 @@ static void OPNAME ## qpel8_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -253,7 +277,8 @@ static void OPNAME ## qpel8_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel8_mc22_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel8_mc22_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[9]; \
uint64_t half[9]; \
...
@@ -264,13 +289,15 @@ static void OPNAME ## qpel8_mc22_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -264,13 +289,15 @@ static void OPNAME ## qpel8_mc22_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 8); \
stride, 8); \
} \
} \
\
\
static void OPNAME ## qpel16_mc00_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc00_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## pixels16_ ## MMX(dst, src, stride, 16); \
ff_ ## OPNAME ## pixels16_ ## MMX(dst, src, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[32]; \
uint64_t temp[32]; \
...
@@ -281,14 +308,16 @@ static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -281,14 +308,16 @@ static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16); \
stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## mpeg4_qpel16_h_lowpass_ ## MMX(dst, src, \
ff_ ## OPNAME ## mpeg4_qpel16_h_lowpass_ ## MMX(dst, src, \
stride, stride, 16);\
stride, stride, 16);\
} \
} \
\
\
static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[32]; \
uint64_t temp[32]; \
...
@@ -299,7 +328,8 @@ static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -299,7 +328,8 @@ static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, stride, 16); \
stride, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[32]; \
uint64_t temp[32]; \
...
@@ -310,14 +340,16 @@ static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -310,14 +340,16 @@ static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16); \
stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, src, \
ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, src, \
stride, stride); \
stride, stride); \
} \
} \
\
\
static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t temp[32]; \
uint64_t temp[32]; \
...
@@ -328,7 +360,8 @@ static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -328,7 +360,8 @@ static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, stride, 16); \
stride, stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -344,7 +377,8 @@ static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -344,7 +377,8 @@ static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -360,7 +394,8 @@ static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -360,7 +394,8 @@ static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -376,7 +411,8 @@ static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -376,7 +411,8 @@ static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -392,7 +428,8 @@ static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -392,7 +428,8 @@ static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -406,7 +443,8 @@ static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -406,7 +443,8 @@ static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[16 * 2 + 17 * 2]; \
uint64_t half[16 * 2 + 17 * 2]; \
...
@@ -420,7 +458,8 @@ static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -420,7 +458,8 @@ static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16, 16); \
stride, 16, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[17 * 2]; \
uint64_t half[17 * 2]; \
...
@@ -433,7 +472,8 @@ static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -433,7 +472,8 @@ static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16); \
stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc32_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[17 * 2]; \
uint64_t half[17 * 2]; \
...
@@ -446,7 +486,8 @@ static void OPNAME ## qpel16_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
...
@@ -446,7 +486,8 @@ static void OPNAME ## qpel16_mc32_ ## MMX(uint8_t *dst, uint8_t *src, \
stride, 16); \
stride, 16); \
} \
} \
\
\
static void OPNAME ## qpel16_mc22_ ## MMX(uint8_t *dst, uint8_t *src, \
static void OPNAME ## qpel16_mc22_ ## MMX(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
uint64_t half[17 * 2]; \
uint64_t half[17 * 2]; \
...
...
libavcodec/x86/rv40dsp_init.c
View file @
7fb993d3
...
@@ -70,7 +70,7 @@ DECLARE_WEIGHT(ssse3)
...
@@ -70,7 +70,7 @@ DECLARE_WEIGHT(ssse3)
*/
*/
#define QPEL_FUNC_DECL(OP, SIZE, PH, PV, OPT) \
#define QPEL_FUNC_DECL(OP, SIZE, PH, PV, OPT) \
static void OP ## rv40_qpel ##SIZE ##_mc ##PH ##PV ##OPT(uint8_t *dst, \
static void OP ## rv40_qpel ##SIZE ##_mc ##PH ##PV ##OPT(uint8_t *dst, \
uint8_t *src,
\
const uint8_t *src,
\
ptrdiff_t stride) \
ptrdiff_t stride) \
{ \
{ \
int i; \
int i; \
...
@@ -189,22 +189,22 @@ QPEL_FUNCS_SET (OP, 3, 2, OPT)
...
@@ -189,22 +189,22 @@ QPEL_FUNCS_SET (OP, 3, 2, OPT)
#endif
/* HAVE_YASM */
#endif
/* HAVE_YASM */
#if HAVE_MMX_INLINE
#if HAVE_MMX_INLINE
static
void
put_rv40_qpel8_mc33_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
put_rv40_qpel8_mc33_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_put_pixels8_xy2_mmx
(
dst
,
src
,
stride
,
8
);
ff_put_pixels8_xy2_mmx
(
dst
,
src
,
stride
,
8
);
}
}
static
void
put_rv40_qpel16_mc33_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
put_rv40_qpel16_mc33_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_put_pixels16_xy2_mmx
(
dst
,
src
,
stride
,
16
);
ff_put_pixels16_xy2_mmx
(
dst
,
src
,
stride
,
16
);
}
}
static
void
avg_rv40_qpel8_mc33_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
avg_rv40_qpel8_mc33_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_avg_pixels8_xy2_mmx
(
dst
,
src
,
stride
,
8
);
ff_avg_pixels8_xy2_mmx
(
dst
,
src
,
stride
,
8
);
}
}
static
void
avg_rv40_qpel16_mc33_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
avg_rv40_qpel16_mc33_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
)
ptrdiff_t
stride
)
{
{
ff_avg_pixels16_xy2_mmx
(
dst
,
src
,
stride
,
16
);
ff_avg_pixels16_xy2_mmx
(
dst
,
src
,
stride
,
16
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment