Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
322a1dda
Commit
322a1dda
authored
Dec 21, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macros
parent
f9279ee7
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
68 additions
and
43 deletions
+68
-43
hpeldsp_init_arm.c
libavcodec/arm/hpeldsp_init_arm.c
+1
-1
dsputil.h
libavcodec/dsputil.h
+0
-2
dsputil_template.c
libavcodec/dsputil_template.c
+2
-0
hpel_template.c
libavcodec/hpel_template.c
+2
-0
hpeldsp_template.c
libavcodec/hpeldsp_template.c
+2
-0
pixels.h
libavcodec/pixels.h
+37
-0
rnd_avg.h
libavcodec/rnd_avg.h
+0
-8
dsputil_init.c
libavcodec/x86/dsputil_init.c
+3
-2
dsputil_x86.h
libavcodec/x86/dsputil_x86.h
+0
-12
h264_qpel.c
libavcodec/x86/h264_qpel.c
+3
-2
hpeldsp_init.c
libavcodec/x86/hpeldsp_init.c
+15
-14
rnd_mmx.c
libavcodec/x86/rnd_mmx.c
+3
-2
No files found.
libavcodec/arm/hpeldsp_init_arm.c
View file @
322a1dda
...
...
@@ -21,7 +21,7 @@
#include "libavutil/arm/cpu.h"
#include "libavutil/attributes.h"
#include "libavcodec/
rnd_avg
.h"
#include "libavcodec/
pixels
.h"
#include "hpeldsp_arm.h"
void
ff_put_pixels8_arm
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
...
...
libavcodec/dsputil.h
View file @
322a1dda
...
...
@@ -31,7 +31,6 @@
#define AVCODEC_DSPUTIL_H
#include "avcodec.h"
#include "rnd_avg.h"
/* encoding scans */
extern
const
uint8_t
ff_alternate_horizontal_scan
[
64
];
...
...
@@ -40,7 +39,6 @@ extern const uint8_t ff_zigzag248_direct[64];
extern
uint32_t
ff_square_tab
[
512
];
/* pixel operations */
void
ff_put_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_avg_pixels8x8_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
void
ff_put_pixels16x16_c
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
);
...
...
libavcodec/dsputil_template.c
View file @
322a1dda
...
...
@@ -27,6 +27,8 @@
* DSP utils
*/
#include "pixels.h"
#include "bit_depth_template.c"
#if BIT_DEPTH == 8
...
...
libavcodec/hpel_template.c
View file @
322a1dda
...
...
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "pixels.h"
#define DEF_HPEL(OPNAME, OP) \
static inline void FUNCC(OPNAME ## _pixels2)(uint8_t *block, \
const uint8_t *pixels, \
...
...
libavcodec/hpeldsp_template.c
View file @
322a1dda
...
...
@@ -28,6 +28,8 @@
* Half-pel DSP functions
*/
#include "pixels.h"
#include "bit_depth_template.c"
#include "hpel_template.c"
...
...
libavcodec/pixels.h
0 → 100644
View file @
322a1dda
/*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_PIXELS_H
#define AVCODEC_PIXELS_H
#include <stddef.h>
#include <stdint.h>
/* pixel operations */
#define CALL_2X_PIXELS_MACRO(STATIC, a, b, n) \
STATIC void a(uint8_t *block, const uint8_t *pixels, \
ptrdiff_t line_size, int h) \
{ \
b(block, pixels, line_size, h); \
b(block + n, pixels + n, line_size, h); \
}
#define CALL_2X_PIXELS(a, b, n) CALL_2X_PIXELS_MACRO(static, a, b, n)
#define CALL_2X_PIXELS_EXPORT(a, b, n) CALL_2X_PIXELS_MACRO(, a, b, n)
#endif
/* AVCODEC_PIXELS_H */
libavcodec/rnd_avg.h
View file @
322a1dda
...
...
@@ -22,14 +22,6 @@
#include <stddef.h>
#include <stdint.h>
#define CALL_2X_PIXELS(a, b, n) \
static void a(uint8_t *block, const uint8_t *pixels, \
ptrdiff_t line_size, int h) \
{ \
b(block, pixels, line_size, h); \
b(block + n, pixels + n, line_size, h); \
}
#define BYTE_VEC32(c) ((c) * 0x01010101UL)
#define BYTE_VEC64(c) ((c) * 0x0001000100010001UL)
...
...
libavcodec/x86/dsputil_init.c
View file @
322a1dda
...
...
@@ -24,6 +24,7 @@
#include "libavutil/x86/cpu.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/pixels.h"
#include "libavcodec/simple_idct.h"
#include "libavcodec/version.h"
#include "dsputil_x86.h"
...
...
@@ -107,8 +108,8 @@ void ff_vector_clip_int32_sse4(int32_t *dst, const int32_t *src,
#if HAVE_YASM
PIXELS16
(
static
,
ff_avg
,
,
,
_mmxext
)
PIXELS16
(
static
,
ff_put
,
,
,
_mmxext
)
CALL_2X_PIXELS
(
ff_avg_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
#define QPEL_OP(OPNAME, RND, MMX) \
static void OPNAME ## qpel8_mc00_ ## MMX(uint8_t *dst, uint8_t *src, \
...
...
libavcodec/x86/dsputil_x86.h
View file @
322a1dda
...
...
@@ -91,16 +91,4 @@ void ff_put_pixels8_xy2_mmx(uint8_t *block, const uint8_t *pixels,
void
ff_put_pixels16_xy2_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
#define PIXELS16(STATIC, PFX1, PFX2, TYPE, CPUEXT) \
STATIC void PFX1 ## _pixels16 ## TYPE ## CPUEXT(uint8_t *block, \
const uint8_t *pixels, \
ptrdiff_t line_size, \
int h) \
{ \
PFX2 ## PFX1 ## _pixels8 ## TYPE ## CPUEXT(block, pixels, \
line_size, h); \
PFX2 ## PFX1 ## _pixels8 ## TYPE ## CPUEXT(block + 8, pixels + 8, \
line_size, h); \
}
#endif
/* AVCODEC_X86_DSPUTIL_X86_H */
libavcodec/x86/h264_qpel.c
View file @
322a1dda
...
...
@@ -25,6 +25,7 @@
#include "libavutil/x86/cpu.h"
#include "libavcodec/h264qpel.h"
#include "libavcodec/mpegvideo.h"
#include "libavcodec/pixels.h"
#include "dsputil_x86.h"
#if HAVE_YASM
...
...
@@ -49,8 +50,8 @@ void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
#define ff_avg_pixels16_l2_sse2 ff_avg_pixels16_l2_mmxext
PIXELS16
(
static
,
ff_avg
,
,
,
_mmxext
)
PIXELS16
(
static
,
ff_put
,
,
,
_mmxext
)
CALL_2X_PIXELS
(
ff_avg_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
#define DEF_QPEL(OPNAME)\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
...
...
libavcodec/x86/hpeldsp_init.c
View file @
322a1dda
...
...
@@ -28,6 +28,7 @@
#include "libavutil/x86/cpu.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/hpeldsp.h"
#include "libavcodec/pixels.h"
#include "dsputil_x86.h"
void
ff_put_pixels8_x2_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
...
...
@@ -109,11 +110,11 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels,
#undef PAVGB
#undef STATIC
PIXELS16
(
static
,
avg_no_rnd
,
,
_y2
,
_mmx
)
PIXELS16
(
static
,
put_no_rnd
,
,
_y2
,
_mmx
)
CALL_2X_PIXELS
(
avg_no_rnd_pixels16_y2_mmx
,
avg_no_rnd_pixels8_y2_mmx
,
8
)
CALL_2X_PIXELS
(
put_no_rnd_pixels16_y2_mmx
,
put_no_rnd_pixels8_y2_mmx
,
8
)
PIXELS16
(
static
,
avg_no_rnd
,
,
_xy2
,
_mmx
)
PIXELS16
(
static
,
put_no_rnd
,
,
_xy2
,
_mmx
)
CALL_2X_PIXELS
(
avg_no_rnd_pixels16_xy2_mmx
,
avg_no_rnd_pixels8_xy2_mmx
,
8
)
CALL_2X_PIXELS
(
put_no_rnd_pixels16_xy2_mmx
,
put_no_rnd_pixels8_xy2_mmx
,
8
)
/***********************************/
/* MMX rounding */
...
...
@@ -130,22 +131,22 @@ PIXELS16(static, put_no_rnd, , _xy2, _mmx)
#undef PAVGBP
#undef PAVGB
PIXELS16
(
static
,
avg
,
,
_y2
,
_mmx
)
PIXELS16
(
static
,
put
,
,
_y2
,
_mmx
)
CALL_2X_PIXELS
(
avg_pixels16_y2_mmx
,
avg_pixels8_y2_mmx
,
8
)
CALL_2X_PIXELS
(
put_pixels16_y2_mmx
,
put_pixels8_y2_mmx
,
8
)
#endif
/* HAVE_INLINE_ASM */
#if HAVE_YASM
#define HPELDSP_AVG_PIXELS16(CPUEXT) \
PIXELS16(static, put_no_rnd, ff_, _x2, CPUEXT
) \
PIXELS16(static, put, ff_, _y2, CPUEXT
) \
PIXELS16(static, put_no_rnd, ff_, _y2, CPUEXT
) \
PIXELS16(static, avg, ff_, , CPUEXT
) \
PIXELS16(static, avg, ff_, _x2, CPUEXT
) \
PIXELS16(static, avg, ff_, _y2, CPUEXT
) \
PIXELS16(static, avg, ff_, _xy2, CPUEXT
)
#define HPELDSP_AVG_PIXELS16(CPUEXT)
\
CALL_2X_PIXELS(put_no_rnd_pixels16_x2 ## CPUEXT, ff_put_no_rnd_pixels8_x2 ## CPUEXT, 8
) \
CALL_2X_PIXELS(put_pixels16_y2 ## CPUEXT, ff_put_pixels8_y2 ## CPUEXT, 8
) \
CALL_2X_PIXELS(put_no_rnd_pixels16_y2 ## CPUEXT, ff_put_no_rnd_pixels8_y2 ## CPUEXT, 8
) \
CALL_2X_PIXELS(avg_pixels16 ## CPUEXT, ff_avg_pixels8 ## CPUEXT, 8
) \
CALL_2X_PIXELS(avg_pixels16_x2 ## CPUEXT, ff_avg_pixels8_x2 ## CPUEXT, 8
) \
CALL_2X_PIXELS(avg_pixels16_y2 ## CPUEXT, ff_avg_pixels8_y2 ## CPUEXT, 8
) \
CALL_2X_PIXELS(avg_pixels16_xy2 ## CPUEXT, ff_avg_pixels8_xy2 ## CPUEXT, 8
)
HPELDSP_AVG_PIXELS16
(
_3dnow
)
HPELDSP_AVG_PIXELS16
(
_mmxext
)
...
...
libavcodec/x86/rnd_mmx.c
View file @
322a1dda
...
...
@@ -17,6 +17,7 @@
*/
#include "config.h"
#include "libavcodec/pixels.h"
#include "dsputil_x86.h"
#include "inline_asm.h"
...
...
@@ -30,7 +31,7 @@
#include "rnd_template.c"
PIXELS16
(,
ff_avg
,
,
_xy2
,
_mmx
)
PIXELS16
(,
ff_put
,
,
_xy2
,
_mmx
)
CALL_2X_PIXELS_EXPORT
(
ff_avg_pixels16_xy2_mmx
,
ff_avg_pixels8_xy2_mmx
,
8
)
CALL_2X_PIXELS_EXPORT
(
ff_put_pixels16_xy2_mmx
,
ff_put_pixels8_xy2_mmx
,
8
)
#endif
/* HAVE_INLINE_ASM */
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