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
5169e688
Commit
5169e688
authored
Dec 30, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dsputil: Propagate bit depth information to all (sub)init functions
This avoids recalculating the value over and over again.
parent
cf7a2167
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
83 additions
and
85 deletions
+83
-85
dsputil_arm.h
libavcodec/arm/dsputil_arm.h
+6
-3
dsputil_init_arm.c
libavcodec/arm/dsputil_init_arm.c
+6
-5
dsputil_init_armv5te.c
libavcodec/arm/dsputil_init_armv5te.c
+3
-2
dsputil_init_armv6.c
libavcodec/arm/dsputil_init_armv6.c
+10
-10
dsputil_init_neon.c
libavcodec/arm/dsputil_init_neon.c
+3
-4
dsputil_init.c
libavcodec/bfin/dsputil_init.c
+5
-7
dsputil.c
libavcodec/dsputil.c
+6
-4
dsputil.h
libavcodec/dsputil.h
+8
-4
dsputil_altivec.c
libavcodec/ppc/dsputil_altivec.c
+2
-3
dsputil_altivec.h
libavcodec/ppc/dsputil_altivec.h
+2
-1
dsputil_ppc.c
libavcodec/ppc/dsputil_ppc.c
+8
-11
dsputil_init.c
libavcodec/x86/dsputil_init.c
+15
-22
dsputil_x86.h
libavcodec/x86/dsputil_x86.h
+2
-1
dsputilenc_mmx.c
libavcodec/x86/dsputilenc_mmx.c
+7
-8
No files found.
libavcodec/arm/dsputil_arm.h
View file @
5169e688
...
...
@@ -24,8 +24,11 @@
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
void
ff_dsputil_init_armv5te
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_armv6
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_neon
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_armv5te
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_armv6
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_neon
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
#endif
/* AVCODEC_ARM_DSPUTIL_ARM_H */
libavcodec/arm/dsputil_init_arm.c
View file @
5169e688
...
...
@@ -64,14 +64,15 @@ static void simple_idct_arm_add(uint8_t *dest, int line_size, int16_t *block)
ff_add_pixels_clamped
(
block
,
dest
,
line_size
);
}
av_cold
void
ff_dsputil_init_arm
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_arm
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
int
cpu_flags
=
av_get_cpu_flags
();
ff_put_pixels_clamped
=
c
->
put_pixels_clamped
;
ff_add_pixels_clamped
=
c
->
add_pixels_clamped
;
if
(
avctx
->
bits_per_raw_sample
<=
8
)
{
if
(
!
high_bit_depth
)
{
if
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
||
avctx
->
idct_algo
==
FF_IDCT_ARM
)
{
c
->
idct_put
=
j_rev_dct_arm_put
;
...
...
@@ -89,9 +90,9 @@ av_cold void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx)
c
->
add_pixels_clamped
=
ff_add_pixels_clamped_arm
;
if
(
have_armv5te
(
cpu_flags
))
ff_dsputil_init_armv5te
(
c
,
avctx
);
ff_dsputil_init_armv5te
(
c
,
avctx
,
high_bit_depth
);
if
(
have_armv6
(
cpu_flags
))
ff_dsputil_init_armv6
(
c
,
avctx
);
ff_dsputil_init_armv6
(
c
,
avctx
,
high_bit_depth
);
if
(
have_neon
(
cpu_flags
))
ff_dsputil_init_neon
(
c
,
avctx
);
ff_dsputil_init_neon
(
c
,
avctx
,
high_bit_depth
);
}
libavcodec/arm/dsputil_init_armv5te.c
View file @
5169e688
...
...
@@ -29,9 +29,10 @@ void ff_simple_idct_armv5te(int16_t *data);
void
ff_simple_idct_put_armv5te
(
uint8_t
*
dest
,
int
line_size
,
int16_t
*
data
);
void
ff_simple_idct_add_armv5te
(
uint8_t
*
dest
,
int
line_size
,
int16_t
*
data
);
av_cold
void
ff_dsputil_init_armv5te
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_armv5te
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
if
(
!
high_bit_depth
&&
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
||
avctx
->
idct_algo
==
FF_IDCT_SIMPLEARMV5TE
))
{
c
->
idct_put
=
ff_simple_idct_put_armv5te
;
...
...
libavcodec/arm/dsputil_init_armv6.c
View file @
5169e688
...
...
@@ -52,17 +52,17 @@ int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2,
int
ff_pix_norm1_armv6
(
uint8_t
*
pix
,
int
line_size
);
int
ff_pix_sum_armv6
(
uint8_t
*
pix
,
int
line_size
);
av_cold
void
ff_dsputil_init_armv6
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_armv6
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
||
avctx
->
idct_algo
==
FF_IDCT_SIMPLEARMV6
))
{
c
->
idct_put
=
ff_simple_idct_put_armv6
;
c
->
idct_add
=
ff_simple_idct_add_armv6
;
c
->
idct
=
ff_simple_idct_armv6
;
c
->
idct_permutation_type
=
FF_LIBMPEG2_IDCT_PERM
;
if
(
!
high_bit_depth
)
{
if
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
||
avctx
->
idct_algo
==
FF_IDCT_SIMPLEARMV6
)
{
c
->
idct_put
=
ff_simple_idct_put_armv6
;
c
->
idct_add
=
ff_simple_idct_add_armv6
;
c
->
idct
=
ff_simple_idct_armv6
;
c
->
idct_permutation_type
=
FF_LIBMPEG2_IDCT_PERM
;
}
}
c
->
add_pixels_clamped
=
ff_add_pixels_clamped_armv6
;
...
...
libavcodec/arm/dsputil_init_neon.c
View file @
5169e688
...
...
@@ -47,11 +47,10 @@ int32_t ff_scalarproduct_int16_neon(const int16_t *v1, const int16_t *v2, int le
int32_t
ff_scalarproduct_and_madd_int16_neon
(
int16_t
*
v1
,
const
int16_t
*
v2
,
const
int16_t
*
v3
,
int
len
,
int
mul
);
av_cold
void
ff_dsputil_init_neon
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_neon
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
if
(
avctx
->
bits_per_raw_sample
<=
8
)
{
if
(
!
high_bit_depth
)
{
if
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
||
avctx
->
idct_algo
==
FF_IDCT_SIMPLENEON
)
{
c
->
idct_put
=
ff_simple_idct_put_neon
;
...
...
libavcodec/bfin/dsputil_init.c
View file @
5169e688
...
...
@@ -147,18 +147,14 @@ static int bfin_pix_abs8_xy2(void *c, uint8_t *blk1, uint8_t *blk2,
* 2.64s 2/20 same sman.mp4 decode only
*/
av_cold
void
ff_dsputil_init_bfin
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_bfin
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
c
->
diff_pixels
=
ff_bfin_diff_pixels
;
c
->
put_pixels_clamped
=
ff_bfin_put_pixels_clamped
;
c
->
add_pixels_clamped
=
ff_bfin_add_pixels_clamped
;
if
(
!
high_bit_depth
)
c
->
get_pixels
=
ff_bfin_get_pixels
;
c
->
clear_blocks
=
bfin_clear_blocks
;
c
->
pix_sum
=
ff_bfin_pix_sum
;
...
...
@@ -182,7 +178,9 @@ av_cold void ff_dsputil_init_bfin(DSPContext *c, AVCodecContext *avctx)
c
->
sse
[
1
]
=
ff_bfin_sse8
;
c
->
sse
[
2
]
=
ff_bfin_sse4
;
if
(
avctx
->
bits_per_raw_sample
<=
8
)
{
if
(
!
high_bit_depth
)
{
c
->
get_pixels
=
ff_bfin_get_pixels
;
if
(
avctx
->
dct_algo
==
FF_DCT_AUTO
)
c
->
fdct
=
ff_bfin_fdct
;
...
...
libavcodec/dsputil.c
View file @
5169e688
...
...
@@ -2715,6 +2715,8 @@ av_cold void ff_dsputil_static_init(void)
av_cold
void
ff_dsputil_init
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
{
const
unsigned
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
#if CONFIG_ENCODERS
if
(
avctx
->
bits_per_raw_sample
==
10
)
{
c
->
fdct
=
ff_jpeg_fdct_islow_10
;
...
...
@@ -2924,13 +2926,13 @@ av_cold void ff_dsputil_init(DSPContext *c, AVCodecContext *avctx)
}
if
(
ARCH_ARM
)
ff_dsputil_init_arm
(
c
,
avctx
);
ff_dsputil_init_arm
(
c
,
avctx
,
high_bit_depth
);
if
(
ARCH_BFIN
)
ff_dsputil_init_bfin
(
c
,
avctx
);
ff_dsputil_init_bfin
(
c
,
avctx
,
high_bit_depth
);
if
(
ARCH_PPC
)
ff_dsputil_init_ppc
(
c
,
avctx
);
ff_dsputil_init_ppc
(
c
,
avctx
,
high_bit_depth
);
if
(
ARCH_X86
)
ff_dsputil_init_x86
(
c
,
avctx
);
ff_dsputil_init_x86
(
c
,
avctx
,
high_bit_depth
);
ff_init_scantable_permutation
(
c
->
idct_permutation
,
c
->
idct_permutation_type
);
...
...
libavcodec/dsputil.h
View file @
5169e688
...
...
@@ -347,9 +347,13 @@ void ff_dsputil_init(DSPContext *p, AVCodecContext *avctx);
void
ff_set_cmp
(
DSPContext
*
c
,
me_cmp_func
*
cmp
,
int
type
);
void
ff_dsputil_init_arm
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_bfin
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_ppc
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_x86
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_arm
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_bfin
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_ppc
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_x86
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
#endif
/* AVCODEC_DSPUTIL_H */
libavcodec/ppc/dsputil_altivec.c
View file @
5169e688
...
...
@@ -926,10 +926,9 @@ static int hadamard8_diff16_altivec(/* MpegEncContext */ void *s, uint8_t *dst,
return
score
;
}
av_cold
void
ff_dsputil_init_altivec
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_altivec
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
c
->
pix_abs
[
0
][
1
]
=
sad16_x2_altivec
;
c
->
pix_abs
[
0
][
2
]
=
sad16_y2_altivec
;
c
->
pix_abs
[
0
][
3
]
=
sad16_xy2_altivec
;
...
...
libavcodec/ppc/dsputil_altivec.h
View file @
5169e688
...
...
@@ -38,7 +38,8 @@ void ff_gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h,
void
ff_idct_put_altivec
(
uint8_t
*
dest
,
int
line_size
,
int16_t
*
block
);
void
ff_idct_add_altivec
(
uint8_t
*
dest
,
int
line_size
,
int16_t
*
block
);
void
ff_dsputil_init_altivec
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputil_init_altivec
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_int_init_altivec
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
#endif
/* AVCODEC_PPC_DSPUTIL_ALTIVEC_H */
libavcodec/ppc/dsputil_ppc.c
View file @
5169e688
...
...
@@ -125,10 +125,9 @@ static long check_dcbzl_effect(void)
return
count
;
}
av_cold
void
ff_dsputil_init_ppc
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_ppc
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
// common optimizations whether AltiVec is available or not
if
(
!
high_bit_depth
)
{
switch
(
check_dcbzl_effect
())
{
...
...
@@ -144,19 +143,17 @@ av_cold void ff_dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx)
}
if
(
PPC_ALTIVEC
(
av_get_cpu_flags
()))
{
ff_dsputil_init_altivec
(
c
,
avctx
);
ff_dsputil_init_altivec
(
c
,
avctx
,
high_bit_depth
);
ff_int_init_altivec
(
c
,
avctx
);
c
->
gmc1
=
ff_gmc1_altivec
;
if
(
!
high_bit_depth
)
{
#if CONFIG_ENCODERS
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
(
avctx
->
dct_algo
==
FF_DCT_AUTO
||
avctx
->
dct_algo
==
FF_DCT_ALTIVEC
))
{
c
->
fdct
=
ff_fdct_altivec
;
}
if
(
avctx
->
dct_algo
==
FF_DCT_AUTO
||
avctx
->
dct_algo
==
FF_DCT_ALTIVEC
)
{
c
->
fdct
=
ff_fdct_altivec
;
}
#endif //CONFIG_ENCODERS
if
(
avctx
->
bits_per_raw_sample
<=
8
)
{
if
((
avctx
->
idct_algo
==
FF_IDCT_AUTO
)
||
(
avctx
->
idct_algo
==
FF_IDCT_ALTIVEC
))
{
c
->
idct_put
=
ff_idct_put_altivec
;
...
...
libavcodec/x86/dsputil_init.c
View file @
5169e688
...
...
@@ -518,11 +518,9 @@ do { \
} while (0)
static
av_cold
void
dsputil_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_MMX_INLINE
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
c
->
put_pixels_clamped
=
ff_put_pixels_clamped_mmx
;
c
->
put_signed_pixels_clamped
=
ff_put_signed_pixels_clamped_mmx
;
c
->
add_pixels_clamped
=
ff_add_pixels_clamped_mmx
;
...
...
@@ -559,11 +557,9 @@ static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx,
}
static
av_cold
void
dsputil_init_mmxext
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_MMXEXT_INLINE
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
if
(
!
high_bit_depth
&&
avctx
->
idct_algo
==
FF_IDCT_XVIDMMX
)
{
c
->
idct_put
=
ff_idct_xvid_mmxext_put
;
c
->
idct_add
=
ff_idct_xvid_mmxext_add
;
...
...
@@ -590,11 +586,9 @@ static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx,
}
static
av_cold
void
dsputil_init_sse
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_SSE_INLINE
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
c
->
vector_clipf
=
ff_vector_clipf_sse
;
#if FF_API_XVMC
...
...
@@ -613,11 +607,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
static
av_cold
void
dsputil_init_sse2
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_SSE2_INLINE
const
int
high_bit_depth
=
avctx
->
bits_per_raw_sample
>
8
;
if
(
!
high_bit_depth
&&
avctx
->
idct_algo
==
FF_IDCT_XVIDMMX
)
{
c
->
idct_put
=
ff_idct_xvid_sse2_put
;
c
->
idct_add
=
ff_idct_xvid_sse2_add
;
...
...
@@ -639,7 +631,7 @@ static av_cold void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx,
}
static
av_cold
void
dsputil_init_ssse3
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_SSSE3_EXTERNAL
c
->
add_hfyu_left_prediction
=
ff_add_hfyu_left_prediction_ssse3
;
...
...
@@ -653,14 +645,15 @@ static av_cold void dsputil_init_ssse3(DSPContext *c, AVCodecContext *avctx,
}
static
av_cold
void
dsputil_init_sse4
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
int
cpu_flags
)
int
cpu_flags
,
unsigned
high_bit_depth
)
{
#if HAVE_SSE4_EXTERNAL
c
->
vector_clip_int32
=
ff_vector_clip_int32_sse4
;
#endif
/* HAVE_SSE4_EXTERNAL */
}
av_cold
void
ff_dsputil_init_x86
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputil_init_x86
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
int
cpu_flags
=
av_get_cpu_flags
();
...
...
@@ -670,23 +663,23 @@ av_cold void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx)
#endif
if
(
X86_MMX
(
cpu_flags
))
dsputil_init_mmx
(
c
,
avctx
,
cpu_flags
);
dsputil_init_mmx
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
X86_MMXEXT
(
cpu_flags
))
dsputil_init_mmxext
(
c
,
avctx
,
cpu_flags
);
dsputil_init_mmxext
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
X86_SSE
(
cpu_flags
))
dsputil_init_sse
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
X86_SSE2
(
cpu_flags
))
dsputil_init_sse2
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse2
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
EXTERNAL_SSSE3
(
cpu_flags
))
dsputil_init_ssse3
(
c
,
avctx
,
cpu_flags
);
dsputil_init_ssse3
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
EXTERNAL_SSE4
(
cpu_flags
))
dsputil_init_sse4
(
c
,
avctx
,
cpu_flags
);
dsputil_init_sse4
(
c
,
avctx
,
cpu_flags
,
high_bit_depth
);
if
(
CONFIG_ENCODERS
)
ff_dsputilenc_init_mmx
(
c
,
avctx
);
ff_dsputilenc_init_mmx
(
c
,
avctx
,
high_bit_depth
);
}
libavcodec/x86/dsputil_x86.h
View file @
5169e688
...
...
@@ -104,7 +104,8 @@
"psubb "#regb", "#regr" \n\t" \
"psubb "#regd", "#regp" \n\t"
void
ff_dsputilenc_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_dsputilenc_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
);
void
ff_dsputil_init_pix_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
void
ff_add_pixels_clamped_mmx
(
const
int16_t
*
block
,
uint8_t
*
pixels
,
...
...
libavcodec/x86/dsputilenc_mmx.c
View file @
5169e688
...
...
@@ -986,16 +986,15 @@ hadamard_func(mmxext)
hadamard_func
(
sse2
)
hadamard_func
(
ssse3
)
av_cold
void
ff_dsputilenc_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
av_cold
void
ff_dsputilenc_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
,
unsigned
high_bit_depth
)
{
int
cpu_flags
=
av_get_cpu_flags
();
const
int
dct_algo
=
avctx
->
dct_algo
;
#if HAVE_YASM
int
bit_depth
=
avctx
->
bits_per_raw_sample
;
if
(
EXTERNAL_MMX
(
cpu_flags
))
{
if
(
bit_depth
<=
8
)
if
(
!
high_bit_depth
)
c
->
get_pixels
=
ff_get_pixels_mmx
;
c
->
diff_pixels
=
ff_diff_pixels_mmx
;
c
->
pix_sum
=
ff_pix_sum16_mmx
;
...
...
@@ -1003,13 +1002,13 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
}
if
(
EXTERNAL_SSE2
(
cpu_flags
))
if
(
bit_depth
<=
8
)
if
(
!
high_bit_depth
)
c
->
get_pixels
=
ff_get_pixels_sse2
;
#endif
/* HAVE_YASM */
#if HAVE_INLINE_ASM
if
(
INLINE_MMX
(
cpu_flags
))
{
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
if
(
!
high_bit_depth
&&
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
))
c
->
fdct
=
ff_fdct_mmx
;
...
...
@@ -1039,7 +1038,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
}
if
(
INLINE_MMXEXT
(
cpu_flags
))
{
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
if
(
!
high_bit_depth
&&
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
))
c
->
fdct
=
ff_fdct_mmxext
;
...
...
@@ -1054,7 +1053,7 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx)
}
if
(
INLINE_SSE2
(
cpu_flags
))
{
if
(
avctx
->
bits_per_raw_sample
<=
8
&&
if
(
!
high_bit_depth
&&
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
))
c
->
fdct
=
ff_fdct_sse2
;
...
...
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