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
6369ba3c
Commit
6369ba3c
authored
Aug 20, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: avcodec: Use convenience macros to check for CPU flags
parent
79aec43c
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
54 additions
and
48 deletions
+54
-48
cavsdsp.c
libavcodec/x86/cavsdsp.c
+3
-3
dnxhdenc.c
libavcodec/x86/dnxhdenc.c
+2
-1
dsputil_init.c
libavcodec/x86/dsputil_init.c
+7
-6
dsputilenc_mmx.c
libavcodec/x86/dsputilenc_mmx.c
+5
-5
hpeldsp_init.c
libavcodec/x86/hpeldsp_init.c
+5
-4
lpc.c
libavcodec/x86/lpc.c
+3
-2
motion_est.c
libavcodec/x86/motion_est.c
+4
-3
mpegvideo.c
libavcodec/x86/mpegvideo.c
+3
-3
vc1dsp_init.c
libavcodec/x86/vc1dsp_init.c
+6
-8
videodsp_init.c
libavcodec/x86/videodsp_init.c
+5
-4
vorbisdsp_init.c
libavcodec/x86/vorbisdsp_init.c
+3
-2
vp8dsp_init.c
libavcodec/x86/vp8dsp_init.c
+8
-7
No files found.
libavcodec/x86/cavsdsp.c
View file @
6369ba3c
...
@@ -544,15 +544,15 @@ av_cold void ff_cavsdsp_init_x86(CAVSDSPContext *c, AVCodecContext *avctx)
...
@@ -544,15 +544,15 @@ av_cold void ff_cavsdsp_init_x86(CAVSDSPContext *c, AVCodecContext *avctx)
#if HAVE_MMX_INLINE
#if HAVE_MMX_INLINE
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
if
(
INLINE_MMX
(
cpu_flags
)
)
cavsdsp_init_mmx
(
c
,
avctx
);
cavsdsp_init_mmx
(
c
,
avctx
);
#endif
/* HAVE_MMX_INLINE */
#endif
/* HAVE_MMX_INLINE */
#if HAVE_MMXEXT_INLINE
#if HAVE_MMXEXT_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
if
(
INLINE_MMXEXT
(
cpu_flags
)
)
cavsdsp_init_mmxext
(
c
,
avctx
);
cavsdsp_init_mmxext
(
c
,
avctx
);
#endif
/* HAVE_MMXEXT_INLINE */
#endif
/* HAVE_MMXEXT_INLINE */
#if HAVE_AMD3DNOW_INLINE
#if HAVE_AMD3DNOW_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
if
(
INLINE_AMD3DNOW
(
cpu_flags
)
)
cavsdsp_init_3dnow
(
c
,
avctx
);
cavsdsp_init_3dnow
(
c
,
avctx
);
#endif
/* HAVE_AMD3DNOW_INLINE */
#endif
/* HAVE_AMD3DNOW_INLINE */
}
}
libavcodec/x86/dnxhdenc.c
View file @
6369ba3c
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "libavutil/attributes.h"
#include "libavutil/attributes.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/dnxhdenc.h"
#include "libavcodec/dnxhdenc.h"
#if HAVE_SSE2_INLINE
#if HAVE_SSE2_INLINE
...
@@ -58,7 +59,7 @@ static void get_pixels_8x4_sym_sse2(int16_t *block, const uint8_t *pixels, int l
...
@@ -58,7 +59,7 @@ static void get_pixels_8x4_sym_sse2(int16_t *block, const uint8_t *pixels, int l
av_cold
void
ff_dnxhdenc_init_x86
(
DNXHDEncContext
*
ctx
)
av_cold
void
ff_dnxhdenc_init_x86
(
DNXHDEncContext
*
ctx
)
{
{
#if HAVE_SSE2_INLINE
#if HAVE_SSE2_INLINE
if
(
av_get_cpu_flags
()
&
AV_CPU_FLAG_SSE2
)
{
if
(
INLINE_SSE2
(
av_get_cpu_flags
())
)
{
if
(
ctx
->
cid_table
->
bit_depth
==
8
)
if
(
ctx
->
cid_table
->
bit_depth
==
8
)
ctx
->
get_pixels_8x4_sym
=
get_pixels_8x4_sym_sse2
;
ctx
->
get_pixels_8x4_sym
=
get_pixels_8x4_sym_sse2
;
}
}
...
...
libavcodec/x86/dsputil_init.c
View file @
6369ba3c
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "libavutil/attributes.h"
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/simple_idct.h"
#include "libavcodec/simple_idct.h"
#include "dsputil_x86.h"
#include "dsputil_x86.h"
...
@@ -695,22 +696,22 @@ av_cold void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx)
...
@@ -695,22 +696,22 @@ av_cold void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx)
c
->
add_hfyu_median_prediction
=
ff_add_hfyu_median_prediction_cmov
;
c
->
add_hfyu_median_prediction
=
ff_add_hfyu_median_prediction_cmov
;
#endif
#endif
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
if
(
X86_MMX
(
cpu_flags
)
)
dsputil_init_mmx
(
c
,
avctx
,
cpu_flags
);
dsputil_init_mmx
(
c
,
avctx
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
if
(
X86_MMXEXT
(
cpu_flags
)
)
dsputil_init_mmxext
(
c
,
avctx
,
cpu_flags
);
dsputil_init_mmxext
(
c
,
avctx
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_SSE
)
if
(
X86_SSE
(
cpu_flags
)
)
dsputil_init_sse
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse
(
c
,
avctx
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
if
(
X86_SSE2
(
cpu_flags
)
)
dsputil_init_sse2
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse2
(
c
,
avctx
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
if
(
EXTERNAL_SSSE3
(
cpu_flags
)
)
dsputil_init_ssse3
(
c
,
avctx
,
cpu_flags
);
dsputil_init_ssse3
(
c
,
avctx
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_SSE4
)
if
(
EXTERNAL_SSE4
(
cpu_flags
)
)
dsputil_init_sse4
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse4
(
c
,
avctx
,
cpu_flags
);
if
(
CONFIG_ENCODERS
)
if
(
CONFIG_ENCODERS
)
...
...
libavcodec/x86/dsputilenc_mmx.c
View file @
6369ba3c
...
@@ -964,7 +964,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -964,7 +964,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
#endif
/* HAVE_YASM */
#endif
/* HAVE_YASM */
#if HAVE_INLINE_ASM
#if HAVE_INLINE_ASM
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
INLINE_MMX
(
cpu_flags
)
)
{
const
int
dct_algo
=
avctx
->
dct_algo
;
const
int
dct_algo
=
avctx
->
dct_algo
;
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
))
{
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
))
{
...
@@ -998,7 +998,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -998,7 +998,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
c
->
ssd_int8_vs_int16
=
ssd_int8_vs_int16_mmx
;
c
->
ssd_int8_vs_int16
=
ssd_int8_vs_int16_mmx
;
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
if
(
INLINE_MMXEXT
(
cpu_flags
)
)
{
c
->
sum_abs_dctelem
=
sum_abs_dctelem_mmxext
;
c
->
sum_abs_dctelem
=
sum_abs_dctelem_mmxext
;
c
->
vsad
[
4
]
=
vsad_intra16_mmxext
;
c
->
vsad
[
4
]
=
vsad_intra16_mmxext
;
...
@@ -1009,12 +1009,12 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -1009,12 +1009,12 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
c
->
sub_hfyu_median_prediction
=
sub_hfyu_median_prediction_mmxext
;
c
->
sub_hfyu_median_prediction
=
sub_hfyu_median_prediction_mmxext
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
{
if
(
INLINE_SSE2
(
cpu_flags
)
)
{
c
->
sum_abs_dctelem
=
sum_abs_dctelem_sse2
;
c
->
sum_abs_dctelem
=
sum_abs_dctelem_sse2
;
}
}
#if HAVE_SSSE3_INLINE
#if HAVE_SSSE3_INLINE
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
{
if
(
INLINE_SSSE3
(
cpu_flags
)
)
{
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
c
->
try_8x8basis
=
try_8x8basis_ssse3
;
c
->
try_8x8basis
=
try_8x8basis_ssse3
;
}
}
...
@@ -1023,7 +1023,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -1023,7 +1023,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
}
}
#endif
#endif
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
{
if
(
INLINE_AMD3DNOW
(
cpu_flags
)
)
{
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
c
->
try_8x8basis
=
try_8x8basis_3dnow
;
c
->
try_8x8basis
=
try_8x8basis_3dnow
;
}
}
...
...
libavcodec/x86/hpeldsp_init.c
View file @
6369ba3c
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/hpeldsp.h"
#include "libavcodec/hpeldsp.h"
#include "dsputil_x86.h"
#include "dsputil_x86.h"
...
@@ -254,15 +255,15 @@ void ff_hpeldsp_init_x86(HpelDSPContext *c, int flags)
...
@@ -254,15 +255,15 @@ void ff_hpeldsp_init_x86(HpelDSPContext *c, int flags)
{
{
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
if
(
INLINE_MMX
(
cpu_flags
)
)
hpeldsp_init_mmx
(
c
,
flags
,
cpu_flags
);
hpeldsp_init_mmx
(
c
,
flags
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
if
(
EXTERNAL_MMXEXT
(
cpu_flags
)
)
hpeldsp_init_mmxext
(
c
,
flags
,
cpu_flags
);
hpeldsp_init_mmxext
(
c
,
flags
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
if
(
EXTERNAL_AMD3DNOW
(
cpu_flags
)
)
hpeldsp_init_3dnow
(
c
,
flags
,
cpu_flags
);
hpeldsp_init_3dnow
(
c
,
flags
,
cpu_flags
);
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
if
(
EXTERNAL_SSE2
(
cpu_flags
)
)
hpeldsp_init_sse2
(
c
,
flags
,
cpu_flags
);
hpeldsp_init_sse2
(
c
,
flags
,
cpu_flags
);
}
}
libavcodec/x86/lpc.c
View file @
6369ba3c
...
@@ -19,11 +19,12 @@
...
@@ -19,11 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
*/
#include "libavutil/x86/asm.h"
#include "libavutil/attributes.h"
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/internal.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "libavutil/mem.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/lpc.h"
#include "libavcodec/lpc.h"
DECLARE_ASM_CONST
(
16
,
double
,
pd_1
)[
2
]
=
{
1
.
0
,
1
.
0
};
DECLARE_ASM_CONST
(
16
,
double
,
pd_1
)[
2
]
=
{
1
.
0
,
1
.
0
};
...
@@ -151,7 +152,7 @@ av_cold void ff_lpc_init_x86(LPCContext *c)
...
@@ -151,7 +152,7 @@ av_cold void ff_lpc_init_x86(LPCContext *c)
#if HAVE_SSE2_INLINE
#if HAVE_SSE2_INLINE
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
(
AV_CPU_FLAG_SSE2
|
AV_CPU_FLAG_SSE2SLOW
))
{
if
(
INLINE_SSE2
(
cpu_flags
)
&&
(
cpu_flags
&
AV_CPU_FLAG_SSE2SLOW
))
{
c
->
lpc_apply_welch_window
=
lpc_apply_welch_window_sse2
;
c
->
lpc_apply_welch_window
=
lpc_apply_welch_window_sse2
;
c
->
lpc_compute_autocorr
=
lpc_compute_autocorr_sse2
;
c
->
lpc_compute_autocorr
=
lpc_compute_autocorr_sse2
;
}
}
...
...
libavcodec/x86/motion_est.c
View file @
6369ba3c
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include "libavutil/internal.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "libavutil/mem.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "dsputil_x86.h"
#include "dsputil_x86.h"
#if HAVE_INLINE_ASM
#if HAVE_INLINE_ASM
...
@@ -437,7 +438,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -437,7 +438,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
#if HAVE_INLINE_ASM
#if HAVE_INLINE_ASM
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
INLINE_MMX
(
cpu_flags
)
)
{
c
->
pix_abs
[
0
][
0
]
=
sad16_mmx
;
c
->
pix_abs
[
0
][
0
]
=
sad16_mmx
;
c
->
pix_abs
[
0
][
1
]
=
sad16_x2_mmx
;
c
->
pix_abs
[
0
][
1
]
=
sad16_x2_mmx
;
c
->
pix_abs
[
0
][
2
]
=
sad16_y2_mmx
;
c
->
pix_abs
[
0
][
2
]
=
sad16_y2_mmx
;
...
@@ -450,7 +451,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -450,7 +451,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
c
->
sad
[
0
]
=
sad16_mmx
;
c
->
sad
[
0
]
=
sad16_mmx
;
c
->
sad
[
1
]
=
sad8_mmx
;
c
->
sad
[
1
]
=
sad8_mmx
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
if
(
INLINE_MMXEXT
(
cpu_flags
)
)
{
c
->
pix_abs
[
0
][
0
]
=
sad16_mmxext
;
c
->
pix_abs
[
0
][
0
]
=
sad16_mmxext
;
c
->
pix_abs
[
1
][
0
]
=
sad8_mmxext
;
c
->
pix_abs
[
1
][
0
]
=
sad8_mmxext
;
...
@@ -466,7 +467,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
...
@@ -466,7 +467,7 @@ av_cold void ff_dsputil_init_pix_mmx(DSPContext *c, AVCodecContext *avctx)
c
->
pix_abs
[
1
][
3
]
=
sad8_xy2_mmxext
;
c
->
pix_abs
[
1
][
3
]
=
sad8_xy2_mmxext
;
}
}
}
}
if
(
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
&&
!
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
))
{
if
(
INLINE_SSE2
(
cpu_flags
)
&&
!
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
))
{
c
->
sad
[
0
]
=
sad16_sse2
;
c
->
sad
[
0
]
=
sad16_sse2
;
}
}
#endif
/* HAVE_INLINE_ASM */
#endif
/* HAVE_INLINE_ASM */
...
...
libavcodec/x86/mpegvideo.c
View file @
6369ba3c
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include "libavutil/attributes.h"
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/mpegvideo.h"
#include "libavcodec/mpegvideo.h"
#include "dsputil_x86.h"
#include "dsputil_x86.h"
...
@@ -559,7 +560,7 @@ av_cold void ff_MPV_common_init_x86(MpegEncContext *s)
...
@@ -559,7 +560,7 @@ av_cold void ff_MPV_common_init_x86(MpegEncContext *s)
#if HAVE_INLINE_ASM
#if HAVE_INLINE_ASM
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
INLINE_MMX
(
cpu_flags
)
)
{
s
->
dct_unquantize_h263_intra
=
dct_unquantize_h263_intra_mmx
;
s
->
dct_unquantize_h263_intra
=
dct_unquantize_h263_intra_mmx
;
s
->
dct_unquantize_h263_inter
=
dct_unquantize_h263_inter_mmx
;
s
->
dct_unquantize_h263_inter
=
dct_unquantize_h263_inter_mmx
;
s
->
dct_unquantize_mpeg1_intra
=
dct_unquantize_mpeg1_intra_mmx
;
s
->
dct_unquantize_mpeg1_intra
=
dct_unquantize_mpeg1_intra_mmx
;
...
@@ -567,8 +568,7 @@ av_cold void ff_MPV_common_init_x86(MpegEncContext *s)
...
@@ -567,8 +568,7 @@ av_cold void ff_MPV_common_init_x86(MpegEncContext *s)
if
(
!
(
s
->
flags
&
CODEC_FLAG_BITEXACT
))
if
(
!
(
s
->
flags
&
CODEC_FLAG_BITEXACT
))
s
->
dct_unquantize_mpeg2_intra
=
dct_unquantize_mpeg2_intra_mmx
;
s
->
dct_unquantize_mpeg2_intra
=
dct_unquantize_mpeg2_intra_mmx
;
s
->
dct_unquantize_mpeg2_inter
=
dct_unquantize_mpeg2_inter_mmx
;
s
->
dct_unquantize_mpeg2_inter
=
dct_unquantize_mpeg2_inter_mmx
;
if
(
INLINE_SSE2
(
cpu_flags
))
{
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
{
s
->
denoise_dct
=
denoise_dct_sse2
;
s
->
denoise_dct
=
denoise_dct_sse2
;
}
else
{
}
else
{
s
->
denoise_dct
=
denoise_dct_mmx
;
s
->
denoise_dct
=
denoise_dct_mmx
;
...
...
libavcodec/x86/vc1dsp_init.c
View file @
6369ba3c
...
@@ -100,31 +100,29 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp)
...
@@ -100,31 +100,29 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp)
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_ ## EXT
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_ ## EXT
#if HAVE_YASM
#if HAVE_YASM
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
EXTERNAL_MMX
(
cpu_flags
)
)
{
dsp
->
put_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_put_vc1_chroma_mc8_nornd_mmx
;
dsp
->
put_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_put_vc1_chroma_mc8_nornd_mmx
;
}
}
if
(
EXTERNAL_MMXEXT
(
cpu_flags
))
{
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
ASSIGN_LF
(
mmxext
);
ASSIGN_LF
(
mmxext
);
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_mmxext
;
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_mmxext
;
dsp
->
avg_vc1_mspel_pixels_tab
[
0
]
=
avg_vc1_mspel_mc00_mmxext
;
dsp
->
avg_vc1_mspel_pixels_tab
[
0
]
=
avg_vc1_mspel_mc00_mmxext
;
}
else
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
{
}
else
if
(
EXTERNAL_AMD3DNOW
(
cpu_flags
)
)
{
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_3dnow
;
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_3dnow
;
}
}
if
(
EXTERNAL_SSE2
(
cpu_flags
))
{
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
{
dsp
->
vc1_v_loop_filter8
=
ff_vc1_v_loop_filter8_sse2
;
dsp
->
vc1_v_loop_filter8
=
ff_vc1_v_loop_filter8_sse2
;
dsp
->
vc1_h_loop_filter8
=
ff_vc1_h_loop_filter8_sse2
;
dsp
->
vc1_h_loop_filter8
=
ff_vc1_h_loop_filter8_sse2
;
dsp
->
vc1_v_loop_filter16
=
vc1_v_loop_filter16_sse2
;
dsp
->
vc1_v_loop_filter16
=
vc1_v_loop_filter16_sse2
;
dsp
->
vc1_h_loop_filter16
=
vc1_h_loop_filter16_sse2
;
dsp
->
vc1_h_loop_filter16
=
vc1_h_loop_filter16_sse2
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
{
if
(
EXTERNAL_SSSE3
(
cpu_flags
)
)
{
ASSIGN_LF
(
ssse3
);
ASSIGN_LF
(
ssse3
);
dsp
->
put_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_put_vc1_chroma_mc8_nornd_ssse3
;
dsp
->
put_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_put_vc1_chroma_mc8_nornd_ssse3
;
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_ssse3
;
dsp
->
avg_no_rnd_vc1_chroma_pixels_tab
[
0
]
=
ff_avg_vc1_chroma_mc8_nornd_ssse3
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSE4
)
{
if
(
EXTERNAL_SSE4
(
cpu_flags
)
)
{
dsp
->
vc1_h_loop_filter8
=
ff_vc1_h_loop_filter8_sse4
;
dsp
->
vc1_h_loop_filter8
=
ff_vc1_h_loop_filter8_sse4
;
dsp
->
vc1_h_loop_filter16
=
vc1_h_loop_filter16_sse4
;
dsp
->
vc1_h_loop_filter16
=
vc1_h_loop_filter16_sse4
;
}
}
...
...
libavcodec/x86/videodsp_init.c
View file @
6369ba3c
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/mem.h"
#include "libavutil/mem.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/videodsp.h"
#include "libavcodec/videodsp.h"
#if HAVE_YASM
#if HAVE_YASM
...
@@ -103,17 +104,17 @@ av_cold void ff_videodsp_init_x86(VideoDSPContext *ctx, int bpc)
...
@@ -103,17 +104,17 @@ av_cold void ff_videodsp_init_x86(VideoDSPContext *ctx, int bpc)
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
#if ARCH_X86_32
#if ARCH_X86_32
if
(
bpc
<=
8
&&
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
EXTERNAL_MMX
(
cpu_flags
)
&&
bpc
<=
8
)
{
ctx
->
emulated_edge_mc
=
emulated_edge_mc_mmx
;
ctx
->
emulated_edge_mc
=
emulated_edge_mc_mmx
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
{
if
(
EXTERNAL_AMD3DNOW
(
cpu_flags
)
)
{
ctx
->
prefetch
=
ff_prefetch_3dnow
;
ctx
->
prefetch
=
ff_prefetch_3dnow
;
}
}
#endif
/* ARCH_X86_32 */
#endif
/* ARCH_X86_32 */
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
if
(
EXTERNAL_MMXEXT
(
cpu_flags
)
)
{
ctx
->
prefetch
=
ff_prefetch_mmxext
;
ctx
->
prefetch
=
ff_prefetch_mmxext
;
}
}
if
(
bpc
<=
8
&&
cpu_flags
&
AV_CPU_FLAG_SSE
)
{
if
(
EXTERNAL_SSE
(
cpu_flags
)
&&
bpc
<=
8
)
{
ctx
->
emulated_edge_mc
=
emulated_edge_mc_sse
;
ctx
->
emulated_edge_mc
=
emulated_edge_mc_sse
;
}
}
#endif
/* HAVE_YASM */
#endif
/* HAVE_YASM */
...
...
libavcodec/x86/vorbisdsp_init.c
View file @
6369ba3c
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include "config.h"
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/vorbisdsp.h"
#include "libavcodec/vorbisdsp.h"
void
ff_vorbis_inverse_coupling_3dnow
(
float
*
mag
,
float
*
ang
,
void
ff_vorbis_inverse_coupling_3dnow
(
float
*
mag
,
float
*
ang
,
...
@@ -34,10 +35,10 @@ av_cold void ff_vorbisdsp_init_x86(VorbisDSPContext *dsp)
...
@@ -34,10 +35,10 @@ av_cold void ff_vorbisdsp_init_x86(VorbisDSPContext *dsp)
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
#if ARCH_X86_32
#if ARCH_X86_32
if
(
cpu_flags
&
AV_CPU_FLAG_3DNOW
)
if
(
EXTERNAL_AMD3DNOW
(
cpu_flags
)
)
dsp
->
vorbis_inverse_coupling
=
ff_vorbis_inverse_coupling_3dnow
;
dsp
->
vorbis_inverse_coupling
=
ff_vorbis_inverse_coupling_3dnow
;
#endif
/* ARCH_X86_32 */
#endif
/* ARCH_X86_32 */
if
(
cpu_flags
&
AV_CPU_FLAG_SSE
)
if
(
EXTERNAL_SSE
(
cpu_flags
)
)
dsp
->
vorbis_inverse_coupling
=
ff_vorbis_inverse_coupling_sse
;
dsp
->
vorbis_inverse_coupling
=
ff_vorbis_inverse_coupling_sse
;
#endif
/* HAVE_YASM */
#endif
/* HAVE_YASM */
}
}
libavcodec/x86/vp8dsp_init.c
View file @
6369ba3c
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "libavutil/cpu.h"
#include "libavutil/cpu.h"
#include "libavutil/mem.h"
#include "libavutil/mem.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/vp8dsp.h"
#include "libavcodec/vp8dsp.h"
#if HAVE_YASM
#if HAVE_YASM
...
@@ -318,7 +319,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -318,7 +319,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
#if HAVE_YASM
#if HAVE_YASM
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
if
(
cpu_flags
&
AV_CPU_FLAG_MMX
)
{
if
(
EXTERNAL_MMX
(
cpu_flags
)
)
{
c
->
vp8_idct_dc_add
=
ff_vp8_idct_dc_add_mmx
;
c
->
vp8_idct_dc_add
=
ff_vp8_idct_dc_add_mmx
;
c
->
vp8_idct_dc_add4uv
=
ff_vp8_idct_dc_add4uv_mmx
;
c
->
vp8_idct_dc_add4uv
=
ff_vp8_idct_dc_add4uv_mmx
;
#if ARCH_X86_32
#if ARCH_X86_32
...
@@ -349,7 +350,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -349,7 +350,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
/* note that 4-tap width=16 functions are missing because w=16
/* note that 4-tap width=16 functions are missing because w=16
* is only used for luma, and luma is always a copy or sixtap. */
* is only used for luma, and luma is always a copy or sixtap. */
if
(
cpu_flags
&
AV_CPU_FLAG_MMXEXT
)
{
if
(
EXTERNAL_MMXEXT
(
cpu_flags
)
)
{
VP8_MC_FUNC
(
2
,
4
,
mmxext
);
VP8_MC_FUNC
(
2
,
4
,
mmxext
);
VP8_BILINEAR_MC_FUNC
(
2
,
4
,
mmxext
);
VP8_BILINEAR_MC_FUNC
(
2
,
4
,
mmxext
);
#if ARCH_X86_32
#if ARCH_X86_32
...
@@ -373,14 +374,14 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -373,14 +374,14 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
#endif
#endif
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSE
)
{
if
(
EXTERNAL_SSE
(
cpu_flags
)
)
{
c
->
vp8_idct_add
=
ff_vp8_idct_add_sse
;
c
->
vp8_idct_add
=
ff_vp8_idct_add_sse
;
c
->
vp8_luma_dc_wht
=
ff_vp8_luma_dc_wht_sse
;
c
->
vp8_luma_dc_wht
=
ff_vp8_luma_dc_wht_sse
;
c
->
put_vp8_epel_pixels_tab
[
0
][
0
][
0
]
=
c
->
put_vp8_epel_pixels_tab
[
0
][
0
][
0
]
=
c
->
put_vp8_bilinear_pixels_tab
[
0
][
0
][
0
]
=
ff_put_vp8_pixels16_sse
;
c
->
put_vp8_bilinear_pixels_tab
[
0
][
0
][
0
]
=
ff_put_vp8_pixels16_sse
;
}
}
if
(
cpu_flags
&
(
AV_CPU_FLAG_SSE2
|
AV_CPU_FLAG_SSE2SLOW
))
{
if
(
EXTERNAL_SSE2
(
cpu_flags
)
&&
(
cpu_flags
&
AV_CPU_FLAG_SSE2SLOW
))
{
VP8_LUMA_MC_FUNC
(
0
,
16
,
sse2
);
VP8_LUMA_MC_FUNC
(
0
,
16
,
sse2
);
VP8_MC_FUNC
(
1
,
8
,
sse2
);
VP8_MC_FUNC
(
1
,
8
,
sse2
);
VP8_BILINEAR_MC_FUNC
(
0
,
16
,
sse2
);
VP8_BILINEAR_MC_FUNC
(
0
,
16
,
sse2
);
...
@@ -395,7 +396,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -395,7 +396,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c
->
vp8_v_loop_filter8uv
=
ff_vp8_v_loop_filter8uv_mbedge_sse2
;
c
->
vp8_v_loop_filter8uv
=
ff_vp8_v_loop_filter8uv_mbedge_sse2
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSE2
)
{
if
(
EXTERNAL_SSE2
(
cpu_flags
)
)
{
c
->
vp8_idct_dc_add4y
=
ff_vp8_idct_dc_add4y_sse2
;
c
->
vp8_idct_dc_add4y
=
ff_vp8_idct_dc_add4y_sse2
;
c
->
vp8_h_loop_filter_simple
=
ff_vp8_h_loop_filter_simple_sse2
;
c
->
vp8_h_loop_filter_simple
=
ff_vp8_h_loop_filter_simple_sse2
;
...
@@ -407,7 +408,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -407,7 +408,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c
->
vp8_h_loop_filter8uv
=
ff_vp8_h_loop_filter8uv_mbedge_sse2
;
c
->
vp8_h_loop_filter8uv
=
ff_vp8_h_loop_filter8uv_mbedge_sse2
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSSE3
)
{
if
(
EXTERNAL_SSSE3
(
cpu_flags
)
)
{
VP8_LUMA_MC_FUNC
(
0
,
16
,
ssse3
);
VP8_LUMA_MC_FUNC
(
0
,
16
,
ssse3
);
VP8_MC_FUNC
(
1
,
8
,
ssse3
);
VP8_MC_FUNC
(
1
,
8
,
ssse3
);
VP8_MC_FUNC
(
2
,
4
,
ssse3
);
VP8_MC_FUNC
(
2
,
4
,
ssse3
);
...
@@ -429,7 +430,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
...
@@ -429,7 +430,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c
->
vp8_h_loop_filter8uv
=
ff_vp8_h_loop_filter8uv_mbedge_ssse3
;
c
->
vp8_h_loop_filter8uv
=
ff_vp8_h_loop_filter8uv_mbedge_ssse3
;
}
}
if
(
cpu_flags
&
AV_CPU_FLAG_SSE4
)
{
if
(
EXTERNAL_SSE4
(
cpu_flags
)
)
{
c
->
vp8_idct_dc_add
=
ff_vp8_idct_dc_add_sse4
;
c
->
vp8_idct_dc_add
=
ff_vp8_idct_dc_add_sse4
;
c
->
vp8_h_loop_filter_simple
=
ff_vp8_h_loop_filter_simple_sse4
;
c
->
vp8_h_loop_filter_simple
=
ff_vp8_h_loop_filter_simple_sse4
;
...
...
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