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
17337f54
Commit
17337f54
authored
Aug 28, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: Split inline and external assembly #ifdefs
parent
43b73d59
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
130 additions
and
141 deletions
+130
-141
dct-test.c
libavcodec/dct-test.c
+2
-2
imgconvert.c
libavcodec/imgconvert.c
+4
-4
ac3dsp.asm
libavcodec/x86/ac3dsp.asm
+4
-4
dct32.asm
libavcodec/x86/dct32.asm
+1
-1
dsputil.asm
libavcodec/x86/dsputil.asm
+3
-3
dsputil_mmx.c
libavcodec/x86/dsputil_mmx.c
+10
-11
dsputilenc_mmx.c
libavcodec/x86/dsputilenc_mmx.c
+4
-4
fft.asm
libavcodec/x86/fft.asm
+4
-4
h264_chromamc_10bit.asm
libavcodec/x86/h264_chromamc_10bit.asm
+2
-2
h264_idct_10bit.asm
libavcodec/x86/h264_idct_10bit.asm
+8
-8
h264_intrapred_10bit.asm
libavcodec/x86/h264_intrapred_10bit.asm
+13
-13
h264_qpel.c
libavcodec/x86/h264_qpel.c
+2
-2
h264dsp_init.c
libavcodec/x86/h264dsp_init.c
+5
-5
mpegvideoenc.c
libavcodec/x86/mpegvideoenc.c
+12
-18
gradfun.c
libavfilter/x86/gradfun.c
+8
-10
yadif.c
libavfilter/x86/yadif.c
+6
-8
audio_convert.asm
libavresample/x86/audio_convert.asm
+17
-17
audio_mix.asm
libavresample/x86/audio_mix.asm
+5
-5
internal.h
libavutil/internal.h
+3
-3
float_dsp.asm
libavutil/x86/float_dsp.asm
+2
-2
swscale.c
libswscale/swscale.c
+1
-1
utils.c
libswscale/utils.c
+6
-6
swscale.c
libswscale/x86/swscale.c
+3
-3
yuv2rgb.c
libswscale/x86/yuv2rgb.c
+5
-5
No files found.
libavcodec/dct-test.c
View file @
17337f54
...
...
@@ -85,7 +85,7 @@ static const struct algo fdct_tab[] = {
{
"IJG-AAN-INT"
,
ff_fdct_ifast
,
SCALE_PERM
},
{
"IJG-LLM-INT"
,
ff_jpeg_fdct_islow_8
,
NO_PERM
},
#if HAVE_MMX
&& HAVE_INLINE_ASM
#if HAVE_MMX
_INLINE
{
"MMX"
,
ff_fdct_mmx
,
NO_PERM
,
AV_CPU_FLAG_MMX
},
{
"MMXEXT"
,
ff_fdct_mmx2
,
NO_PERM
,
AV_CPU_FLAG_MMXEXT
},
{
"SSE2"
,
ff_fdct_sse2
,
NO_PERM
,
AV_CPU_FLAG_SSE2
},
...
...
@@ -108,7 +108,7 @@ static const struct algo idct_tab[] = {
{
"INT"
,
ff_j_rev_dct
,
MMX_PERM
},
{
"SIMPLE-C"
,
ff_simple_idct_8
,
NO_PERM
},
#if HAVE_MMX
&& HAVE_INLINE_ASM
#if HAVE_MMX
_INLINE
{
"SIMPLE-MMX"
,
ff_simple_idct_mmx
,
MMX_SIMPLE_PERM
,
AV_CPU_FLAG_MMX
},
{
"XVID-MMX"
,
ff_idct_xvid_mmx
,
NO_PERM
,
AV_CPU_FLAG_MMX
,
1
},
{
"XVID-MMXEXT"
,
ff_idct_xvid_mmx2
,
NO_PERM
,
AV_CPU_FLAG_MMXEXT
,
1
},
...
...
libavcodec/imgconvert.c
View file @
17337f54
...
...
@@ -39,7 +39,7 @@
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#if HAVE_MMX
&& HAVE_YASM
#if HAVE_MMX
_EXTERNAL
#include "x86/dsputil_mmx.h"
#endif
...
...
@@ -52,7 +52,7 @@
#define FF_PIXEL_PACKED 1
/**< only one components containing all the channels */
#define FF_PIXEL_PALETTE 2
/**< one components containing indexes for a palette */
#if HAVE_MMX
&& HAVE_YASM
#if HAVE_MMX
_EXTERNAL
#define deinterlace_line_inplace ff_deinterlace_line_inplace_mmx
#define deinterlace_line ff_deinterlace_line_mmx
#else
...
...
@@ -877,7 +877,7 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
return
0
;
}
#if !
(HAVE_MMX && HAVE_YASM)
#if !
HAVE_MMX_EXTERNAL
/* filter parameters: [-1 4 2 4 -1] // 8 */
static
void
deinterlace_line_c
(
uint8_t
*
dst
,
const
uint8_t
*
lum_m4
,
const
uint8_t
*
lum_m3
,
...
...
@@ -926,7 +926,7 @@ static void deinterlace_line_inplace_c(uint8_t *lum_m4, uint8_t *lum_m3,
lum
++
;
}
}
#endif
#endif
/* !HAVE_MMX_EXTERNAL */
/* deinterlacing : 2 temporal taps, 3 spatial taps linear filter. The
top field is copied as is, but the bottom field is deinterlaced
...
...
libavcodec/x86/ac3dsp.asm
View file @
17337f54
...
...
@@ -73,7 +73,7 @@ AC3_EXPONENT_MIN mmx
%define
LOOP_ALIGN
ALIGN
16
AC3_EXPONENT_MIN
mmxext
%endif
%if
HAVE_SSE
%if
HAVE_SSE
2_EXTERNAL
INIT_XMM
AC3_EXPONENT_MIN
sse2
%endif
...
...
@@ -385,7 +385,7 @@ cglobal ac3_compute_mantissa_size_sse2, 1,2,4, mant_cnt, sum
pabsd
%1
,
%1
%endmacro
%if
HAVE_AMD3DNOW
%if
HAVE_AMD3DNOW
_EXTERNAL
INIT_MMX
cglobal
ac3_extract_exponents_3dnow
,
3
,
3
,
0
,
exp
,
coef
,
len
add
expq
,
lenq
...
...
@@ -453,11 +453,11 @@ cglobal ac3_extract_exponents_%1, 3,3,4, exp, coef, len
REP_RET
%endmacro
%if
HAVE_SSE
%if
HAVE_SSE
2_EXTERNAL
INIT_XMM
%define
PABSD
PABSD_MMX
AC3_EXTRACT_EXPONENTS
sse2
%if
HAVE_SSSE3
%if
HAVE_SSSE3
_EXTERNAL
%define
PABSD
PABSD_SSSE3
AC3_EXTRACT_EXPONENTS
ssse3
%endif
...
...
libavcodec/x86/dct32.asm
View file @
17337f54
...
...
@@ -193,7 +193,7 @@ ps_p1p1m1m1: dd 0, 0, 0x80000000, 0x80000000, 0, 0, 0x80000000, 0x80000000
INIT_YMM
avx
SECTION_TEXT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
; void ff_dct32_float_avx(FFTSample *out, const FFTSample *in)
cglobal
dct32_float
,
2
,
3
,
8
,
out
,
in
,
tmp
; pass 1
...
...
libavcodec/x86/dsputil.asm
View file @
17337f54
...
...
@@ -1169,7 +1169,7 @@ ALIGN 16
INIT_XMM
sse
VECTOR_FMUL_REVERSE
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
VECTOR_FMUL_REVERSE
%endif
...
...
@@ -1199,7 +1199,7 @@ ALIGN 16
INIT_XMM
sse
VECTOR_FMUL_ADD
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
VECTOR_FMUL_ADD
%endif
...
...
@@ -1245,7 +1245,7 @@ cglobal butterflies_float_interleave, 4,4,3, dst, src0, src1, len
INIT_XMM
sse
BUTTERFLIES_FLOAT_INTERLEAVE
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
BUTTERFLIES_FLOAT_INTERLEAVE
%endif
...
...
libavcodec/x86/dsputil_mmx.c
View file @
17337f54
...
...
@@ -2812,7 +2812,7 @@ static void dsputil_init_3dnow(DSPContext *c, AVCodecContext *avctx,
static
void
dsputil_init_3dnowext
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
mm_flags
)
{
#if HAVE_
6REGS && HAVE_INLINE_ASM
#if HAVE_
AMD3DNOWEXT_INLINE && HAVE_6REGS
c
->
vector_fmul_window
=
vector_fmul_window_3dnowext
;
#endif
}
...
...
@@ -2926,11 +2926,10 @@ static void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx,
static
void
dsputil_init_ssse3
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
mm_flags
)
{
#if HAVE_SSSE3
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
const
int
bit_depth
=
avctx
->
bits_per_raw_sample
;
#if HAVE_
INLINE_ASM
#if HAVE_
SSSE3_INLINE
if
(
!
high_bit_depth
&&
CONFIG_H264QPEL
)
{
H264_QPEL_FUNCS
(
1
,
0
,
ssse3
);
H264_QPEL_FUNCS
(
1
,
1
,
ssse3
);
...
...
@@ -2945,8 +2944,9 @@ static void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
H264_QPEL_FUNCS
(
3
,
2
,
ssse3
);
H264_QPEL_FUNCS
(
3
,
3
,
ssse3
);
}
#endif
/* HAVE_INLINE_ASM */
#if HAVE_YASM
#endif
/* HAVE_SSSE3_INLINE */
#if HAVE_SSSE3_EXTERNAL
if
(
bit_depth
==
10
&&
CONFIG_H264QPEL
)
{
H264_QPEL_FUNCS_10
(
1
,
0
,
ssse3_cache64
);
H264_QPEL_FUNCS_10
(
2
,
0
,
ssse3_cache64
);
...
...
@@ -2969,21 +2969,20 @@ static void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
if
(
!
(
mm_flags
&
(
AV_CPU_FLAG_SSE42
|
AV_CPU_FLAG_3DNOW
)))
// cachesplit
c
->
scalarproduct_and_madd_int16
=
ff_scalarproduct_and_madd_int16_ssse3
;
c
->
bswap_buf
=
ff_bswap32_buf_ssse3
;
#endif
#endif
#endif
/* HAVE_SSSE3_EXTERNAL */
}
static
void
dsputil_init_sse4
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
mm_flags
)
{
#if HAVE_
YASM
#if HAVE_
SSE4_EXTERNAL
c
->
vector_clip_int32
=
ff_vector_clip_int32_sse4
;
#endif
#endif
/* HAVE_SSE4_EXTERNAL */
}
static
void
dsputil_init_avx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
mm_flags
)
{
#if HAVE_AVX
&& HAVE_YASM
#if HAVE_AVX
_EXTERNAL
const
int
bit_depth
=
avctx
->
bits_per_raw_sample
;
if
(
bit_depth
==
10
)
{
...
...
@@ -3003,7 +3002,7 @@ static void dsputil_init_avx(DSPContext *c, AVCodecContext *avctx, int mm_flags)
c
->
butterflies_float_interleave
=
ff_butterflies_float_interleave_avx
;
c
->
vector_fmul_reverse
=
ff_vector_fmul_reverse_avx
;
c
->
vector_fmul_add
=
ff_vector_fmul_add_avx
;
#endif
#endif
/* HAVE_AVX_EXTERNAL */
}
void
ff_dsputil_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
...
...
libavcodec/x86/dsputilenc_mmx.c
View file @
17337f54
...
...
@@ -982,7 +982,7 @@ DCT_SAD_FUNC(mmx2)
DCT_SAD_FUNC
(
sse2
)
#undef MMABS
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
#define MMABS(a,z) MMABS_SSSE3(a,z)
DCT_SAD_FUNC
(
ssse3
)
#undef MMABS
...
...
@@ -1062,7 +1062,7 @@ static int ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2, int si
#undef SCALE_OFFSET
#undef PMULHRW
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
#undef PHADDD
#define DEF(x) x ## _ssse3
#define SET_RND(x)
...
...
@@ -1081,7 +1081,7 @@ static int ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2, int si
#undef SCALE_OFFSET
#undef PMULHRW
#undef PHADDD
#endif /
/HAVE_SSSE3
#endif
/
* HAVE_SSSE3_INLINE */
#endif
/* HAVE_INLINE_ASM */
...
...
@@ -1161,7 +1161,7 @@ void ff_dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx)
c
->
sum_abs_dctelem
=
sum_abs_dctelem_sse2
;
}
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
if
(
mm_flags
&
AV_CPU_FLAG_SSSE3
){
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
c
->
try_8x8basis
=
try_8x8basis_ssse3
;
...
...
libavcodec/x86/fft.asm
View file @
17337f54
...
...
@@ -305,7 +305,7 @@ IF%1 mova Z(1), m5
INIT_YMM
avx
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
align
16
fft8_avx
:
mova
m0
,
Z
(
0
)
...
...
@@ -552,7 +552,7 @@ DEFINE_ARGS zc, w, n, o1, o3
INIT_YMM
avx
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
%macro
INTERL_AVX
5
vunpckhps
%3
,
%2
,
%1
vunpcklps
%2
,
%2
,
%1
...
...
@@ -793,7 +793,7 @@ align 8
dispatch_tab
%
+
fullsuffix
:
pointer
list_of_fft
%endmacro
; DECL_FFT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
DECL_FFT
6
DECL_FFT
6
,
_interleave
...
...
@@ -1100,6 +1100,6 @@ DECL_IMDCT POSROTATESHUF_3DNOW
INIT_YMM
avx
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
DECL_IMDCT
POSROTATESHUF_AVX
%endif
libavcodec/x86/h264_chromamc_10bit.asm
View file @
17337f54
...
...
@@ -252,7 +252,7 @@ cglobal %1_h264_chroma_mc2_10, 6,7
%define
CHROMAMC_AVG
NOTHING
INIT_XMM
sse2
CHROMA_MC8
put
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CHROMA_MC8
put
%endif
...
...
@@ -264,7 +264,7 @@ CHROMA_MC2 put
%define
PAVG
pavgw
INIT_XMM
sse2
CHROMA_MC8
avg
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CHROMA_MC8
avg
%endif
...
...
libavcodec/x86/h264_idct_10bit.asm
View file @
17337f54
...
...
@@ -80,7 +80,7 @@ cglobal h264_idct_add_10, 3,3
INIT_XMM
sse2
IDCT_ADD_10
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT_ADD_10
%endif
...
...
@@ -110,7 +110,7 @@ add4x4_idct %+ SUFFIX:
INIT_XMM
sse2
ALIGN
16
ADD4x4IDCT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
ALIGN
16
ADD4x4IDCT
...
...
@@ -150,7 +150,7 @@ cglobal h264_idct_add16_10, 5,6
INIT_XMM
sse2
IDCT_ADD16_10
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT_ADD16_10
%endif
...
...
@@ -216,7 +216,7 @@ cglobal h264_idct8_dc_add_10,3,3,7
INIT_XMM
sse2
IDCT8_DC_ADD
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT8_DC_ADD
%endif
...
...
@@ -287,7 +287,7 @@ cglobal h264_idct_add16intra_10,5,7,8
INIT_XMM
sse2
IDCT_ADD16INTRA_10
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT_ADD16INTRA_10
%endif
...
...
@@ -324,7 +324,7 @@ cglobal h264_idct_add8_10,5,8,7
INIT_XMM
sse2
IDCT_ADD8
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT_ADD8
%endif
...
...
@@ -501,7 +501,7 @@ h264_idct8_add1_10 %+ SUFFIX:
INIT_XMM
sse2
IDCT8_ADD
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT8_ADD
%endif
...
...
@@ -541,7 +541,7 @@ cglobal h264_idct8_add4_10, 0,7,16
INIT_XMM
sse2
IDCT8_ADD4
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
IDCT8_ADD4
%endif
libavcodec/x86/h264_intrapred_10bit.asm
View file @
17337f54
...
...
@@ -84,7 +84,7 @@ INIT_XMM
PRED4x4_DR
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED4x4_DR
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED4x4_DR
avx
%endif
...
...
@@ -124,7 +124,7 @@ INIT_XMM
PRED4x4_VR
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED4x4_VR
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED4x4_VR
avx
%endif
...
...
@@ -167,7 +167,7 @@ INIT_XMM
PRED4x4_HD
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED4x4_HD
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED4x4_HD
avx
%endif
...
...
@@ -238,7 +238,7 @@ cglobal pred4x4_down_left_10_%1, 3,3
INIT_XMM
PRED4x4_DL
sse2
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED4x4_DL
avx
%endif
...
...
@@ -267,7 +267,7 @@ cglobal pred4x4_vertical_left_10_%1, 3,3
INIT_XMM
PRED4x4_VL
sse2
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED4x4_VL
avx
%endif
...
...
@@ -577,7 +577,7 @@ cglobal pred8x8l_top_dc_10_%1, 4,4,6
INIT_XMM
PRED8x8L_TOP_DC
sse2
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_TOP_DC
avx
%endif
...
...
@@ -636,7 +636,7 @@ cglobal pred8x8l_dc_10_%1, 4,6,6
INIT_XMM
PRED8x8L_DC
sse2
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_DC
avx
%endif
...
...
@@ -671,7 +671,7 @@ cglobal pred8x8l_vertical_10_%1, 4,4,6
INIT_XMM
PRED8x8L_VERTICAL
sse2
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_VERTICAL
avx
%endif
...
...
@@ -728,7 +728,7 @@ INIT_XMM
PRED8x8L_HORIZONTAL
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_HORIZONTAL
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_HORIZONTAL
avx
%endif
...
...
@@ -797,7 +797,7 @@ INIT_XMM
PRED8x8L_DOWN_LEFT
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_DOWN_LEFT
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_DOWN_LEFT
avx
%endif
...
...
@@ -872,7 +872,7 @@ INIT_XMM
PRED8x8L_DOWN_RIGHT
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_DOWN_RIGHT
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_DOWN_RIGHT
avx
%endif
...
...
@@ -943,7 +943,7 @@ INIT_XMM
PRED8x8L_VERTICAL_RIGHT
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_VERTICAL_RIGHT
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_VERTICAL_RIGHT
avx
%endif
...
...
@@ -1005,7 +1005,7 @@ INIT_XMM
PRED8x8L_HORIZONTAL_UP
sse2
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_UP
ssse3
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_AVX
PRED8x8L_HORIZONTAL_UP
avx
%endif
...
...
libavcodec/x86/h264_qpel.c
View file @
17337f54
...
...
@@ -1174,7 +1174,7 @@ QPEL_H264_V_XMM(put_, PUT_OP, sse2)
QPEL_H264_V_XMM
(
avg_
,
AVG_MMX2_OP
,
sse2
)
QPEL_H264_HV_XMM
(
put_
,
PUT_OP
,
sse2
)
QPEL_H264_HV_XMM
(
avg_
,
AVG_MMX2_OP
,
sse2
)
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
QPEL_H264_H_XMM
(
put_
,
PUT_OP
,
ssse3
)
QPEL_H264_H_XMM
(
avg_
,
AVG_MMX2_OP
,
ssse3
)
QPEL_H264_HV2_XMM
(
put_
,
PUT_OP
,
ssse3
)
...
...
@@ -1188,7 +1188,7 @@ H264_MC_4816(3dnow)
H264_MC_4816
(
mmx2
)
H264_MC_816
(
H264_MC_V
,
sse2
)
H264_MC_816
(
H264_MC_HV
,
sse2
)
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
H264_MC_816
(
H264_MC_H
,
ssse3
)
H264_MC_816
(
H264_MC_HV
,
ssse3
)
#endif
...
...
libavcodec/x86/h264dsp_init.c
View file @
17337f54
...
...
@@ -39,7 +39,7 @@ IDCT_ADD_FUNC(8_dc, 10, sse2)
IDCT_ADD_FUNC
(
8
,
8
,
mmx
)
IDCT_ADD_FUNC
(
8
,
8
,
sse2
)
IDCT_ADD_FUNC
(
8
,
10
,
sse2
)
#if HAVE_AVX
#if HAVE_AVX
_EXTERNAL
IDCT_ADD_FUNC
(,
10
,
avx
)
IDCT_ADD_FUNC
(
8
_dc
,
10
,
avx
)
IDCT_ADD_FUNC
(
8
,
10
,
avx
)
...
...
@@ -64,7 +64,7 @@ IDCT_ADD_REP_FUNC(, 16intra, 8, mmx)
IDCT_ADD_REP_FUNC
(,
16
intra
,
8
,
mmx2
)
IDCT_ADD_REP_FUNC
(,
16
intra
,
8
,
sse2
)
IDCT_ADD_REP_FUNC
(,
16
intra
,
10
,
sse2
)
#if HAVE_AVX
#if HAVE_AVX
_EXTERNAL
IDCT_ADD_REP_FUNC
(,
16
,
10
,
avx
)
IDCT_ADD_REP_FUNC
(,
16
intra
,
10
,
avx
)
#endif
...
...
@@ -79,7 +79,7 @@ IDCT_ADD_REP_FUNC2(, 8, 8, mmx)
IDCT_ADD_REP_FUNC2
(,
8
,
8
,
mmx2
)
IDCT_ADD_REP_FUNC2
(,
8
,
8
,
sse2
)
IDCT_ADD_REP_FUNC2
(,
8
,
10
,
sse2
)
#if HAVE_AVX
#if HAVE_AVX
_EXTERNAL
IDCT_ADD_REP_FUNC2
(,
8
,
10
,
avx
)
#endif
...
...
@@ -353,7 +353,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
c
->
biweight_h264_pixels_tab
[
1
]
=
ff_h264_biweight_8_10_sse4
;
c
->
biweight_h264_pixels_tab
[
2
]
=
ff_h264_biweight_4_10_sse4
;
}
#if HAVE_AVX
#if HAVE_AVX
_EXTERNAL
if
(
mm_flags
&
AV_CPU_FLAG_AVX
)
{
c
->
h264_idct_dc_add
=
c
->
h264_idct_add
=
ff_h264_idct_add_10_avx
;
...
...
@@ -377,7 +377,7 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
c
->
h264_h_loop_filter_luma_intra
=
ff_deblock_h_luma_intra_10_avx
;
#endif
/* HAVE_ALIGNED_STACK */
}
#endif
/* HAVE_AVX */
#endif
/* HAVE_AVX
_EXTERNAL
*/
}
}
}
...
...
libavcodec/x86/mpegvideoenc.c
View file @
17337f54
...
...
@@ -26,20 +26,18 @@
#include "libavcodec/mpegvideo.h"
#include "dsputil_mmx.h"
#if HAVE_INLINE_ASM
extern
uint16_t
ff_inv_zigzag_direct16
[
64
];
#if HAVE_MMX
#if HAVE_MMX
_INLINE
#define COMPILE_TEMPLATE_MMXEXT 0
#define COMPILE_TEMPLATE_SSE2 0
#define COMPILE_TEMPLATE_SSSE3 0
#define RENAME(a) a ## _MMX
#define RENAMEl(a) a ## _mmx
#include "mpegvideoenc_template.c"
#endif
/* HAVE_MMX */
#endif
/* HAVE_MMX
_INLINE
*/
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
#undef COMPILE_TEMPLATE_SSSE3
#undef COMPILE_TEMPLATE_SSE2
#undef COMPILE_TEMPLATE_MMXEXT
...
...
@@ -51,9 +49,9 @@ extern uint16_t ff_inv_zigzag_direct16[64];
#define RENAME(a) a ## _MMX2
#define RENAMEl(a) a ## _mmx2
#include "mpegvideoenc_template.c"
#endif
/* HAVE_MMXEXT */
#endif
/* HAVE_MMXEXT
_INLINE
*/
#if HAVE_SSE2
#if HAVE_SSE2
_INLINE
#undef COMPILE_TEMPLATE_MMXEXT
#undef COMPILE_TEMPLATE_SSE2
#undef COMPILE_TEMPLATE_SSSE3
...
...
@@ -65,9 +63,9 @@ extern uint16_t ff_inv_zigzag_direct16[64];
#define RENAME(a) a ## _SSE2
#define RENAMEl(a) a ## _sse2
#include "mpegvideoenc_template.c"
#endif
/* HAVE_SSE2 */
#endif
/* HAVE_SSE2
_INLINE
*/
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
#undef COMPILE_TEMPLATE_MMXEXT
#undef COMPILE_TEMPLATE_SSE2
#undef COMPILE_TEMPLATE_SSSE3
...
...
@@ -79,33 +77,29 @@ extern uint16_t ff_inv_zigzag_direct16[64];
#define RENAME(a) a ## _SSSE3
#define RENAMEl(a) a ## _sse2
#include "mpegvideoenc_template.c"
#endif
/* HAVE_SSSE3 */
#endif
/* HAVE_INLINE_ASM */
#endif
/* HAVE_SSSE3_INLINE */
void
ff_MPV_encode_init_x86
(
MpegEncContext
*
s
)
{
#if HAVE_INLINE_ASM
int
mm_flags
=
av_get_cpu_flags
();
const
int
dct_algo
=
s
->
avctx
->
dct_algo
;
if
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
)
{
#if HAVE_MMX
#if HAVE_MMX
_INLINE
if
(
mm_flags
&
AV_CPU_FLAG_MMX
&&
HAVE_MMX
)
s
->
dct_quantize
=
dct_quantize_MMX
;
#endif
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
if
(
mm_flags
&
AV_CPU_FLAG_MMXEXT
&&
HAVE_MMXEXT
)
s
->
dct_quantize
=
dct_quantize_MMX2
;
#endif
#if HAVE_SSE2
#if HAVE_SSE2
_INLINE
if
(
mm_flags
&
AV_CPU_FLAG_SSE2
&&
HAVE_SSE2
)
s
->
dct_quantize
=
dct_quantize_SSE2
;
#endif
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
if
(
mm_flags
&
AV_CPU_FLAG_SSSE3
)
s
->
dct_quantize
=
dct_quantize_SSSE3
;
#endif
}
#endif
/* HAVE_INLINE_ASM */
}
libavfilter/x86/gradfun.c
View file @
17337f54
...
...
@@ -29,7 +29,7 @@
DECLARE_ALIGNED
(
16
,
static
const
uint16_t
,
pw_7f
)[
8
]
=
{
0x7F
,
0x7F
,
0x7F
,
0x7F
,
0x7F
,
0x7F
,
0x7F
,
0x7F
};
DECLARE_ALIGNED
(
16
,
static
const
uint16_t
,
pw_ff
)[
8
]
=
{
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
};
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
static
void
gradfun_filter_line_mmx2
(
uint8_t
*
dst
,
uint8_t
*
src
,
uint16_t
*
dc
,
int
width
,
int
thresh
,
const
uint16_t
*
dithers
)
{
intptr_t
x
;
...
...
@@ -77,7 +77,7 @@ static void gradfun_filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc, i
}
#endif
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
static
void
gradfun_filter_line_ssse3
(
uint8_t
*
dst
,
uint8_t
*
src
,
uint16_t
*
dc
,
int
width
,
int
thresh
,
const
uint16_t
*
dithers
)
{
intptr_t
x
;
...
...
@@ -122,9 +122,9 @@ static void gradfun_filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc,
:
"memory"
);
}
#endif /
/ HAVE_SSSE3
#endif
/
* HAVE_SSSE3_INLINE */
#if HAVE_SSE
#if HAVE_SSE
2_INLINE
static
void
gradfun_blur_line_sse2
(
uint16_t
*
dc
,
uint16_t
*
buf
,
uint16_t
*
buf1
,
uint8_t
*
src
,
int
src_linesize
,
int
width
)
{
#define BLURV(load)\
...
...
@@ -165,7 +165,7 @@ static void gradfun_blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1,
BLURV
(
"movdqa"
);
}
}
#endif /
/ HAVE_SSE
#endif
/
* HAVE_SSE2_INLINE */
#endif
/* HAVE_INLINE_ASM */
...
...
@@ -173,18 +173,16 @@ av_cold void ff_gradfun_init_x86(GradFunContext *gf)
{
int
cpu_flags
=
av_get_cpu_flags
();
#if HAVE_INLINE_ASM
#if HAVE_MMXEXT
#if HAVE_MMXEXT_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
gf
->
filter_line
=
gradfun_filter_line_mmx2
;
#endif
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
gf
->
filter_line
=
gradfun_filter_line_ssse3
;
#endif
#if HAVE_SSE
#if HAVE_SSE
2_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
gf
->
blur_line
=
gradfun_blur_line_sse2
;
#endif
#endif
/* HAVE_INLINE_ASM */
}
libavfilter/x86/yadif.c
View file @
17337f54
...
...
@@ -31,7 +31,7 @@
DECLARE_ASM_CONST
(
16
,
const
xmm_reg
,
pb_1
)
=
{
0x0101010101010101ULL
,
0x0101010101010101ULL
};
DECLARE_ASM_CONST
(
16
,
const
xmm_reg
,
pw_1
)
=
{
0x0001000100010001ULL
,
0x0001000100010001ULL
};
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
#define COMPILE_TEMPLATE_SSE2 1
#define COMPILE_TEMPLATE_SSSE3 1
#undef RENAME
...
...
@@ -40,14 +40,14 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x0001000100010001ULL, 0x000100010
#undef COMPILE_TEMPLATE_SSSE3
#endif
#if HAVE_SSE
#if HAVE_SSE
2_INLINE
#undef RENAME
#define RENAME(a) a ## _sse2
#include "yadif_template.c"
#undef COMPILE_TEMPLATE_SSE2
#endif
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
#undef RENAME
#define RENAME(a) a ## _mmx2
#include "yadif_template.c"
...
...
@@ -59,18 +59,16 @@ av_cold void ff_yadif_init_x86(YADIFContext *yadif)
{
int
cpu_flags
=
av_get_cpu_flags
();
#if HAVE_INLINE_ASM
#if HAVE_MMXEXT
#if HAVE_MMXEXT_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
yadif
->
filter_line
=
yadif_filter_line_mmx2
;
#endif
#if HAVE_SSE
#if HAVE_SSE
2_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
yadif
->
filter_line
=
yadif_filter_line_sse2
;
#endif
#if HAVE_SSSE3
#if HAVE_SSSE3
_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
yadif
->
filter_line
=
yadif_filter_line_ssse3
;
#endif
#endif
/* HAVE_INLINE_ASM */
}
libavresample/x86/audio_convert.asm
View file @
17337f54
...
...
@@ -155,7 +155,7 @@ cglobal conv_s32_to_flt, 3,3,3, dst, src, len
INIT_XMM
sse2
CONV_S32_TO_FLT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
CONV_S32_TO_FLT
%endif
...
...
@@ -223,7 +223,7 @@ cglobal conv_flt_to_s32, 3,3,5, dst, src, len
INIT_XMM
sse2
CONV_FLT_TO_S32
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
CONV_FLT_TO_S32
%endif
...
...
@@ -260,7 +260,7 @@ cglobal conv_s16p_to_s16_2ch, 3,4,5, dst, src0, len, src1
INIT_XMM
sse2
CONV_S16P_TO_S16_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16P_TO_S16_2CH
%endif
...
...
@@ -383,7 +383,7 @@ INIT_XMM sse2
CONV_S16P_TO_S16_6CH
INIT_XMM
sse2slow
CONV_S16P_TO_S16_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16P_TO_S16_6CH
%endif
...
...
@@ -432,7 +432,7 @@ cglobal conv_s16p_to_flt_2ch, 3,4,6, dst, src0, len, src1
INIT_XMM
sse2
CONV_S16P_TO_FLT_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16P_TO_FLT_2CH
%endif
...
...
@@ -536,7 +536,7 @@ INIT_XMM sse2
CONV_S16P_TO_FLT_6CH
INIT_XMM
ssse3
CONV_S16P_TO_FLT_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16P_TO_FLT_6CH
%endif
...
...
@@ -692,7 +692,7 @@ INIT_MMX sse
CONV_FLTP_TO_S16_6CH
INIT_XMM
sse2
CONV_FLTP_TO_S16_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLTP_TO_S16_6CH
%endif
...
...
@@ -729,7 +729,7 @@ cglobal conv_fltp_to_flt_2ch, 3,4,5, dst, src0, len, src1
INIT_XMM
sse
CONV_FLTP_TO_FLT_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLTP_TO_FLT_2CH
%endif
...
...
@@ -810,7 +810,7 @@ INIT_MMX mmx
CONV_FLTP_TO_FLT_6CH
INIT_XMM
sse4
CONV_FLTP_TO_FLT_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLTP_TO_FLT_6CH
%endif
...
...
@@ -859,7 +859,7 @@ INIT_XMM sse2
CONV_S16_TO_S16P_2CH
INIT_XMM
ssse3
CONV_S16_TO_S16P_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16_TO_S16P_2CH
%endif
...
...
@@ -920,7 +920,7 @@ CONV_S16_TO_S16P_6CH
%define
PALIGNR
PALIGNR_SSSE3
INIT_XMM
ssse3
CONV_S16_TO_S16P_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16_TO_S16P_6CH
%endif
...
...
@@ -958,7 +958,7 @@ cglobal conv_s16_to_fltp_2ch, 3,4,5, dst0, src, len, dst1
INIT_XMM
sse2
CONV_S16_TO_FLTP_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16_TO_FLTP_2CH
%endif
...
...
@@ -1041,7 +1041,7 @@ INIT_XMM ssse3
CONV_S16_TO_FLTP_6CH
INIT_XMM
sse4
CONV_S16_TO_FLTP_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_S16_TO_FLTP_6CH
%endif
...
...
@@ -1087,7 +1087,7 @@ cglobal conv_flt_to_s16p_2ch, 3,4,6, dst0, src, len, dst1
INIT_XMM
sse2
CONV_FLT_TO_S16P_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLT_TO_S16P_2CH
%endif
...
...
@@ -1161,7 +1161,7 @@ CONV_FLT_TO_S16P_6CH
%define
PALIGNR
PALIGNR_SSSE3
INIT_XMM
ssse3
CONV_FLT_TO_S16P_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLT_TO_S16P_6CH
%endif
...
...
@@ -1193,7 +1193,7 @@ cglobal conv_flt_to_fltp_2ch, 3,4,3, dst0, src, len, dst1
INIT_XMM
sse
CONV_FLT_TO_FLTP_2CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLT_TO_FLTP_2CH
%endif
...
...
@@ -1256,7 +1256,7 @@ cglobal conv_flt_to_fltp_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5
INIT_XMM
sse2
CONV_FLT_TO_FLTP_6CH
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
CONV_FLT_TO_FLTP_6CH
%endif
libavresample/x86/audio_mix.asm
View file @
17337f54
...
...
@@ -56,7 +56,7 @@ cglobal mix_2_to_1_fltp_flt, 3,4,6, src, matrix, len, src1
INIT_XMM
sse
MIX_2_TO_1_FLTP_FLT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
MIX_2_TO_1_FLTP_FLT
%endif
...
...
@@ -175,7 +175,7 @@ cglobal mix_1_to_2_fltp_flt, 3,5,4, src0, matrix0, len, src1, matrix1
INIT_XMM
sse
MIX_1_TO_2_FLTP_FLT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
MIX_1_TO_2_FLTP_FLT
%endif
...
...
@@ -222,7 +222,7 @@ INIT_XMM sse2
MIX_1_TO_2_S16P_FLT
INIT_XMM
sse4
MIX_1_TO_2_S16P_FLT
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_XMM
avx
MIX_1_TO_2_S16P_FLT
%endif
...
...
@@ -490,7 +490,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, s
MIX_3_8_TO_1_2_FLT
%%
i
,
1
,
s16p
MIX_3_8_TO_1_2_FLT
%%
i
,
2
,
s16p
; do not use ymm AVX or FMA4 in x86-32 for 6 or more channels due to stack alignment issues
%
if
HAVE_AVX
%
if
HAVE_AVX
_EXTERNAL
%
if
ARCH_X86_64
||
%%
i
<
6
INIT_YMM
avx
%
else
...
...
@@ -502,7 +502,7 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, s
MIX_3_8_TO_1_2_FLT
%%
i
,
1
,
s16p
MIX_3_8_TO_1_2_FLT
%%
i
,
2
,
s16p
%
endif
%
if
HAVE_FMA4
%
if
HAVE_FMA4
_EXTERNAL
%
if
ARCH_X86_64
||
%%
i
<
6
INIT_YMM
fma4
%
else
...
...
libavutil/internal.h
View file @
17337f54
...
...
@@ -158,7 +158,7 @@
# define ONLY_IF_THREADS_ENABLED(x) NULL
#endif
#if HAVE_MMX
&& HAVE_INLINE_ASM
#if HAVE_MMX
_INLINE
/**
* Empty mmx state.
* this must be called between any dsp function and float/double code.
...
...
@@ -171,8 +171,8 @@ static av_always_inline void emms_c(void)
#elif HAVE_MMX && HAVE_MM_EMPTY
# include <mmintrin.h>
# define emms_c _mm_empty
#else
/* HAVE_MMX */
#else
# define emms_c()
#endif
/* HAVE_MMX */
#endif
/* HAVE_MMX
_INLINE
*/
#endif
/* AVUTIL_INTERNAL_H */
libavutil/x86/float_dsp.asm
View file @
17337f54
...
...
@@ -45,7 +45,7 @@ ALIGN 16
INIT_XMM
sse
VECTOR_FMUL
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
VECTOR_FMUL
%endif
...
...
@@ -86,7 +86,7 @@ cglobal vector_fmac_scalar, 4,4,3, dst, src, mul, len
INIT_XMM
sse
VECTOR_FMAC_SCALAR
%if
HAVE_AVX
%if
HAVE_AVX
_EXTERNAL
INIT_YMM
avx
VECTOR_FMAC_SCALAR
%endif
libswscale/swscale.c
View file @
17337f54
...
...
@@ -518,7 +518,7 @@ static int swScale(SwsContext *c, const uint8_t *src[],
if
(
!
enough_lines
)
break
;
// we can't output a dstY line so let's try with the next slice
#if HAVE_MMX
&& HAVE_INLINE_ASM
#if HAVE_MMX
_INLINE
updateMMXDitherTables
(
c
,
dstY
,
lumBufIndex
,
chrBufIndex
,
lastInLumBuf
,
lastInChrBuf
);
#endif
...
...
libswscale/utils.c
View file @
17337f54
...
...
@@ -577,7 +577,7 @@ fail:
return
ret
;
}
#if HAVE_MMXEXT
&& HAVE_INLINE_ASM
#if HAVE_MMXEXT
_INLINE
static
int
initMMX2HScaler
(
int
dstW
,
int
xInc
,
uint8_t
*
filterCode
,
int16_t
*
filter
,
int32_t
*
filterPos
,
int
numSplits
)
{
...
...
@@ -740,7 +740,7 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
return
fragmentPos
+
1
;
}
#endif
/* HAVE_MMXEXT
&& HAVE_INLINE_ASM
*/
#endif
/* HAVE_MMXEXT
_INLINE
*/
static
void
getSubSampleFactors
(
int
*
h
,
int
*
v
,
enum
PixelFormat
format
)
{
...
...
@@ -1012,7 +1012,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
/* precalculate horizontal scaler filter coefficients */
{
#if HAVE_MMXEXT
&& HAVE_INLINE_ASM
#if HAVE_MMXEXT
_INLINE
// can't downscale !!!
if
(
c
->
canMMX2BeUsed
&&
(
flags
&
SWS_FAST_BILINEAR
))
{
c
->
lumMmx2FilterCodeSize
=
initMMX2HScaler
(
dstW
,
c
->
lumXInc
,
NULL
,
...
...
@@ -1048,7 +1048,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
mprotect
(
c
->
chrMmx2FilterCode
,
c
->
chrMmx2FilterCodeSize
,
PROT_EXEC
|
PROT_READ
);
#endif
}
else
#endif
/* HAVE_MMXEXT
&& HAVE_INLINE_ASM
*/
#endif
/* HAVE_MMXEXT
_INLINE
*/
{
const
int
filterAlign
=
(
HAVE_MMX
&&
cpu_flags
&
AV_CPU_FLAG_MMX
)
?
4
:
...
...
@@ -1621,7 +1621,7 @@ void sws_freeContext(SwsContext *c)
av_freep
(
&
c
->
hLumFilterPos
);
av_freep
(
&
c
->
hChrFilterPos
);
#if HAVE_MMX
#if HAVE_MMX
_INLINE
#ifdef MAP_ANONYMOUS
if
(
c
->
lumMmx2FilterCode
)
munmap
(
c
->
lumMmx2FilterCode
,
c
->
lumMmx2FilterCodeSize
);
...
...
@@ -1638,7 +1638,7 @@ void sws_freeContext(SwsContext *c)
#endif
c
->
lumMmx2FilterCode
=
NULL
;
c
->
chrMmx2FilterCode
=
NULL
;
#endif
/* HAVE_MMX */
#endif
/* HAVE_MMX
_INLINE
*/
av_freep
(
&
c
->
yuvTable
);
av_free
(
c
->
formatConvBuffer
);
...
...
libswscale/x86/swscale.c
View file @
17337f54
...
...
@@ -70,7 +70,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_bgr2UVOffset) = 0x8080808080808080ULL;
DECLARE_ALIGNED
(
8
,
const
uint64_t
,
ff_w1111
)
=
0x0001000100010001ULL
;
//MMX versions
#if HAVE_MMX
#if HAVE_MMX
_INLINE
#undef RENAME
#define COMPILE_TEMPLATE_MMXEXT 0
#define RENAME(a) a ## _MMX
...
...
@@ -78,7 +78,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL;
#endif
//MMX2 versions
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#define COMPILE_TEMPLATE_MMXEXT 1
...
...
@@ -308,7 +308,7 @@ av_cold void ff_sws_init_swScale_mmx(SwsContext *c)
#if HAVE_INLINE_ASM
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
sws_init_swScale_MMX
(
c
);
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
sws_init_swScale_MMX2
(
c
);
#endif
...
...
libswscale/x86/yuv2rgb.c
View file @
17337f54
...
...
@@ -50,22 +50,22 @@ DECLARE_ASM_CONST(8, uint64_t, pb_03) = 0x0303030303030303ULL;
DECLARE_ASM_CONST
(
8
,
uint64_t
,
pb_07
)
=
0x0707070707070707ULL
;
//MMX versions
#if HAVE_MMX
#if HAVE_MMX
_INLINE
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#define COMPILE_TEMPLATE_MMXEXT 0
#define RENAME(a) a ## _MMX
#include "yuv2rgb_template.c"
#endif
/* HAVE_MMX */
#endif
/* HAVE_MMX
_INLINE
*/
//MMX2 versions
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#define COMPILE_TEMPLATE_MMXEXT 1
#define RENAME(a) a ## _MMX2
#include "yuv2rgb_template.c"
#endif
/* HAVE_MMXEXT */
#endif
/* HAVE_MMXEXT
_INLINE
*/
#endif
/* HAVE_INLINE_ASM */
...
...
@@ -78,7 +78,7 @@ av_cold SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c)
c
->
srcFormat
!=
PIX_FMT_YUVA420P
)
return
NULL
;
#if HAVE_MMXEXT
#if HAVE_MMXEXT
_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
switch
(
c
->
dstFormat
)
{
case
PIX_FMT_RGB24
:
return
yuv420_rgb24_MMX2
;
...
...
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