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
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