Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
486497e0
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
486497e0
编写于
11月 14, 2006
作者:
M
Måns Rullgård
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
revert bad checkin
Originally committed as revision 7044 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
be6ed6ff
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
76 addition
and
67 deletion
+76
-67
configure
configure
+3
-3
libavcodec/ac3.h
libavcodec/ac3.h
+6
-0
libavcodec/ac3enc.c
libavcodec/ac3enc.c
+1
-2
libavcodec/armv4l/dsputil_iwmmxt.c
libavcodec/armv4l/dsputil_iwmmxt.c
+5
-5
libavcodec/armv4l/mpegvideo_iwmmxt.c
libavcodec/armv4l/mpegvideo_iwmmxt.c
+1
-1
libavcodec/dct-test.c
libavcodec/dct-test.c
+4
-4
libavcodec/dsputil.c
libavcodec/dsputil.c
+5
-5
libavcodec/dsputil.h
libavcodec/dsputil.h
+8
-4
libavcodec/h263dec.c
libavcodec/h263dec.c
+1
-1
libavcodec/i386/dsputil_mmx.c
libavcodec/i386/dsputil_mmx.c
+23
-23
libavcodec/i386/motion_est_mmx.c
libavcodec/i386/motion_est_mmx.c
+2
-2
libavcodec/i386/mpegvideo_mmx.c
libavcodec/i386/mpegvideo_mmx.c
+5
-5
libavcodec/i386/mpegvideo_mmx_template.c
libavcodec/i386/mpegvideo_mmx_template.c
+2
-2
libavcodec/imgresample.c
libavcodec/imgresample.c
+3
-3
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/dsputil_ppc.c
+2
-2
libavcodec/snow.c
libavcodec/snow.c
+2
-2
libavcodec/snow.h
libavcodec/snow.h
+2
-2
libavcodec/utils.c
libavcodec/utils.c
+1
-1
未找到文件。
configure
浏览文件 @
486497e0
...
...
@@ -1680,9 +1680,6 @@ if test "$gprof" = "yes" ; then
add_ldflags
"-p"
fi
VHOOKCFLAGS
=
"-fPIC
$CFLAGS
"
test
"
$needmdynamicnopic
"
=
yes
&&
add_cflags
-mdynamic-no-pic
# find if .align arg is power-of-two or not
if
test
$asmalign_pot
=
"unknown"
;
then
asmalign_pot
=
"no"
...
...
@@ -1820,6 +1817,9 @@ else
echo
"INSTALLSTRIP="
>>
config.mak
fi
VHOOKCFLAGS
=
"-fPIC
$CFLAGS
"
test
"
$needmdynamicnopic
"
=
yes
&&
add_cflags
-mdynamic-no-pic
echo
"OPTFLAGS=
$CFLAGS
"
>>
config.mak
echo
"VHOOKCFLAGS=
$VHOOKCFLAGS
"
>>
config.mak
echo
"LDFLAGS=
$LDFLAGS
"
>>
config.mak
...
...
libavcodec/ac3.h
浏览文件 @
486497e0
...
...
@@ -57,3 +57,9 @@ extern const uint16_t floortab[8];
extern const uint16_t fgaintab[8];
#endif
void
ac3_common_init
(
void
);
void
ac3_parametric_bit_allocation
(
AC3BitAllocParameters
*
s
,
uint8_t
*
bap
,
int8_t
*
exp
,
int
start
,
int
end
,
int
snroffset
,
int
fgain
,
int
is_lfe
,
int
deltbae
,
int
deltnseg
,
uint8_t
*
deltoffst
,
uint8_t
*
deltlen
,
uint8_t
*
deltba
);
libavcodec/ac3enc.c
浏览文件 @
486497e0
...
...
@@ -119,7 +119,6 @@ static inline int calc_lowcomp(int a, int b0, int b1, int bin)
/* AC3 bit allocation. The algorithm is the one described in the AC3
spec. */
static
void
ac3_parametric_bit_allocation
(
AC3BitAllocParameters
*
s
,
uint8_t
*
bap
,
int8_t
*
exp
,
int
start
,
int
end
,
int
snroffset
,
int
fgain
,
int
is_lfe
,
...
...
@@ -795,7 +794,7 @@ static int compute_bit_allocation(AC3EncodeContext *s,
return
0
;
}
static
void
ac3_common_init
(
void
)
void
ac3_common_init
(
void
)
{
int
i
,
j
,
k
,
l
,
v
;
/* compute bndtab and masktab from bandsz */
...
...
libavcodec/armv4l/dsputil_iwmmxt.c
浏览文件 @
486497e0
...
...
@@ -128,7 +128,7 @@ static void nop(uint8_t *block, const uint8_t *pixels, int line_size, int h)
return
;
}
int
ff_
mm_flags
;
/* multimedia extension flags */
int
mm_flags
;
/* multimedia extension flags */
int
mm_support
(
void
)
{
...
...
@@ -137,16 +137,16 @@ int mm_support(void)
void
dsputil_init_iwmmxt
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
{
ff_
mm_flags
=
mm_support
();
mm_flags
=
mm_support
();
if
(
avctx
->
dsp_mask
)
{
if
(
avctx
->
dsp_mask
&
FF_MM_FORCE
)
ff_
mm_flags
|=
(
avctx
->
dsp_mask
&
0xffff
);
mm_flags
|=
(
avctx
->
dsp_mask
&
0xffff
);
else
ff_
mm_flags
&=
~
(
avctx
->
dsp_mask
&
0xffff
);
mm_flags
&=
~
(
avctx
->
dsp_mask
&
0xffff
);
}
if
(
!
(
ff_
mm_flags
&
MM_IWMMXT
))
return
;
if
(
!
(
mm_flags
&
MM_IWMMXT
))
return
;
c
->
add_pixels_clamped
=
add_pixels_clamped_iwmmxt
;
...
...
libavcodec/armv4l/mpegvideo_iwmmxt.c
浏览文件 @
486497e0
...
...
@@ -110,7 +110,7 @@ static void dct_unquantize_h263_inter_iwmmxt(MpegEncContext *s,
void
MPV_common_init_iwmmxt
(
MpegEncContext
*
s
)
{
if
(
!
(
ff_
mm_flags
&
MM_IWMMXT
))
return
;
if
(
!
(
mm_flags
&
MM_IWMMXT
))
return
;
s
->
dct_unquantize_h263_intra
=
dct_unquantize_h263_intra_iwmmxt
;
#if 0
...
...
libavcodec/dct-test.c
浏览文件 @
486497e0
...
...
@@ -69,7 +69,7 @@ static const unsigned short aanscales[64] = {
4520
,
6270
,
5906
,
5315
,
4520
,
3552
,
2446
,
1247
};
uint8_t
ff_
cropTbl
[
256
+
2
*
MAX_NEG_CROP
];
uint8_t
cropTbl
[
256
+
2
*
MAX_NEG_CROP
];
int64_t
gettime
(
void
)
{
...
...
@@ -473,10 +473,10 @@ int main(int argc, char **argv)
init_fdct
();
idct_mmx_init
();
for
(
i
=
0
;
i
<
256
;
i
++
)
ff_
cropTbl
[
i
+
MAX_NEG_CROP
]
=
i
;
for
(
i
=
0
;
i
<
256
;
i
++
)
cropTbl
[
i
+
MAX_NEG_CROP
]
=
i
;
for
(
i
=
0
;
i
<
MAX_NEG_CROP
;
i
++
)
{
ff_
cropTbl
[
i
]
=
0
;
ff_
cropTbl
[
i
+
MAX_NEG_CROP
+
256
]
=
255
;
cropTbl
[
i
]
=
0
;
cropTbl
[
i
+
MAX_NEG_CROP
+
256
]
=
255
;
}
for
(;;)
{
...
...
libavcodec/dsputil.c
浏览文件 @
486497e0
...
...
@@ -68,7 +68,7 @@ const uint8_t ff_zigzag248_direct[64] = {
};
/* not permutated inverse zigzag_direct + 1 for MMX quantizer */
DECLARE_ALIGNED_8
(
uint16_t
,
ff_
inv_zigzag_direct16
[
64
])
=
{
0
,
};
DECLARE_ALIGNED_8
(
uint16_t
,
inv_zigzag_direct16
[
64
])
=
{
0
,
};
const
uint8_t
ff_alternate_horizontal_scan
[
64
]
=
{
0
,
1
,
2
,
3
,
8
,
9
,
16
,
17
,
...
...
@@ -383,11 +383,11 @@ static int w97_16_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int
return
w_c
(
v
,
pix1
,
pix2
,
line_size
,
16
,
h
,
0
);
}
int
ff_
w53_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
){
int
w53_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
){
return
w_c
(
v
,
pix1
,
pix2
,
line_size
,
32
,
h
,
1
);
}
int
ff_
w97_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
){
int
w97_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
){
return
w_c
(
v
,
pix1
,
pix2
,
line_size
,
32
,
h
,
0
);
}
#endif
...
...
@@ -3861,7 +3861,7 @@ static void ff_jref_idct1_add(uint8_t *dest, int line_size, DCTELEM *block)
static
void
just_return
()
{
return
;
}
/* init static data */
void
ff_
dsputil_static_init
(
void
)
void
dsputil_static_init
(
void
)
{
int
i
;
...
...
@@ -3875,7 +3875,7 @@ void ff_dsputil_static_init(void)
ff_squareTbl
[
i
]
=
(
i
-
256
)
*
(
i
-
256
);
}
for
(
i
=
0
;
i
<
64
;
i
++
)
ff_
inv_zigzag_direct16
[
ff_zigzag_direct
[
i
]]
=
i
+
1
;
for
(
i
=
0
;
i
<
64
;
i
++
)
inv_zigzag_direct16
[
ff_zigzag_direct
[
i
]]
=
i
+
1
;
}
...
...
libavcodec/dsputil.h
浏览文件 @
486497e0
...
...
@@ -405,7 +405,7 @@ typedef struct DSPContext {
op_pixels_func
put_vc1_mspel_pixels_tab
[
16
];
}
DSPContext
;
void
ff_
dsputil_static_init
(
void
);
void
dsputil_static_init
(
void
);
void
dsputil_init
(
DSPContext
*
p
,
AVCodecContext
*
avctx
);
/**
...
...
@@ -463,8 +463,6 @@ static inline int get_penalty_factor(int lambda, int lambda2, int type){
one or more MultiMedia extension */
int
mm_support
(
void
);
extern
int
ff_mm_flags
;
#ifdef __GNUC__
#define DECLARE_ALIGNED_16(t,v) t v __attribute__ ((aligned (16)))
#else
...
...
@@ -483,6 +481,8 @@ extern int ff_mm_flags;
#define MM_3DNOWEXT 0x0020
/* AMD 3DNowExt */
#define MM_SSE3 0x0040
/* Prescott SSE3 functions */
extern
int
mm_flags
;
void
add_pixels_clamped_mmx
(
const
DCTELEM
*
block
,
uint8_t
*
pixels
,
int
line_size
);
void
put_pixels_clamped_mmx
(
const
DCTELEM
*
block
,
uint8_t
*
pixels
,
int
line_size
);
void
put_signed_pixels_clamped_mmx
(
const
DCTELEM
*
block
,
uint8_t
*
pixels
,
int
line_size
);
...
...
@@ -495,7 +495,7 @@ static inline void emms(void)
#define emms_c() \
{\
if (
ff_
mm_flags & MM_MMX)\
if (mm_flags & MM_MMX)\
emms();\
}
...
...
@@ -519,6 +519,8 @@ void dsputil_init_pix_mmx(DSPContext* c, AVCodecContext *avctx);
#define MM_IWMMXT 0x0100
/* XScale IWMMXT */
extern
int
mm_flags
;
void
dsputil_init_armv4l
(
DSPContext
*
c
,
AVCodecContext
*
avctx
);
#elif defined(HAVE_MLIB)
...
...
@@ -547,6 +549,8 @@ void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
#define MM_ALTIVEC 0x0001
/* standard AltiVec */
extern
int
mm_flags
;
#if defined(HAVE_ALTIVEC) && !defined(CONFIG_DARWIN)
#define pixel altivec_pixel
#include <altivec.h>
...
...
libavcodec/h263dec.c
浏览文件 @
486497e0
...
...
@@ -643,7 +643,7 @@ retry:
#endif
#if defined(HAVE_MMX) && defined(CONFIG_GPL)
if
(
s
->
codec_id
==
CODEC_ID_MPEG4
&&
s
->
xvid_build
&&
avctx
->
idct_algo
==
FF_IDCT_AUTO
&&
(
ff_
mm_flags
&
MM_MMX
)){
if
(
s
->
codec_id
==
CODEC_ID_MPEG4
&&
s
->
xvid_build
&&
avctx
->
idct_algo
==
FF_IDCT_AUTO
&&
(
mm_flags
&
MM_MMX
)){
avctx
->
idct_algo
=
FF_IDCT_XVIDMMX
;
avctx
->
coded_width
=
0
;
// force reinit
// dsputil_init(&s->dsp, avctx);
...
...
libavcodec/i386/dsputil_mmx.c
浏览文件 @
486497e0
...
...
@@ -34,7 +34,7 @@
extern
void
ff_idct_xvid_mmx
(
short
*
block
);
extern
void
ff_idct_xvid_mmx2
(
short
*
block
);
int
ff_
mm_flags
;
/* multimedia extension flags */
int
mm_flags
;
/* multimedia extension flags */
/* pixel operations */
static
const
uint64_t
mm_bone
attribute_used
__attribute__
((
aligned
(
8
)))
=
0x0101010101010101ULL
;
...
...
@@ -3050,39 +3050,39 @@ extern void ff_snow_inner_add_yblock_mmx(uint8_t *obmc, const int obmc_stride, u
void
dsputil_init_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
{
ff_
mm_flags
=
mm_support
();
mm_flags
=
mm_support
();
if
(
avctx
->
dsp_mask
)
{
if
(
avctx
->
dsp_mask
&
FF_MM_FORCE
)
ff_
mm_flags
|=
(
avctx
->
dsp_mask
&
0xffff
);
mm_flags
|=
(
avctx
->
dsp_mask
&
0xffff
);
else
ff_
mm_flags
&=
~
(
avctx
->
dsp_mask
&
0xffff
);
mm_flags
&=
~
(
avctx
->
dsp_mask
&
0xffff
);
}
#if 0
av_log(avctx, AV_LOG_INFO, "libavcodec: CPU flags:");
if (
ff_
mm_flags & MM_MMX)
if (mm_flags & MM_MMX)
av_log(avctx, AV_LOG_INFO, " mmx");
if (
ff_
mm_flags & MM_MMXEXT)
if (mm_flags & MM_MMXEXT)
av_log(avctx, AV_LOG_INFO, " mmxext");
if (
ff_
mm_flags & MM_3DNOW)
if (mm_flags & MM_3DNOW)
av_log(avctx, AV_LOG_INFO, " 3dnow");
if (
ff_
mm_flags & MM_SSE)
if (mm_flags & MM_SSE)
av_log(avctx, AV_LOG_INFO, " sse");
if (
ff_
mm_flags & MM_SSE2)
if (mm_flags & MM_SSE2)
av_log(avctx, AV_LOG_INFO, " sse2");
av_log(avctx, AV_LOG_INFO, "\n");
#endif
if
(
ff_
mm_flags
&
MM_MMX
)
{
if
(
mm_flags
&
MM_MMX
)
{
const
int
idct_algo
=
avctx
->
idct_algo
;
#ifdef CONFIG_ENCODERS
const
int
dct_algo
=
avctx
->
dct_algo
;
if
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
){
if
(
ff_
mm_flags
&
MM_SSE2
){
if
(
mm_flags
&
MM_SSE2
){
c
->
fdct
=
ff_fdct_sse2
;
}
else
if
(
ff_
mm_flags
&
MM_MMXEXT
){
}
else
if
(
mm_flags
&
MM_MMXEXT
){
c
->
fdct
=
ff_fdct_mmx2
;
}
else
{
c
->
fdct
=
ff_fdct_mmx
;
...
...
@@ -3097,7 +3097,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c
->
idct_permutation_type
=
FF_SIMPLE_IDCT_PERM
;
#ifdef CONFIG_GPL
}
else
if
(
idct_algo
==
FF_IDCT_LIBMPEG2MMX
){
if
(
ff_
mm_flags
&
MM_MMXEXT
){
if
(
mm_flags
&
MM_MMXEXT
){
c
->
idct_put
=
ff_libmpeg2mmx2_idct_put
;
c
->
idct_add
=
ff_libmpeg2mmx2_idct_add
;
c
->
idct
=
ff_mmxext_idct
;
...
...
@@ -3111,7 +3111,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
else
if
(
idct_algo
==
FF_IDCT_VP3
&&
avctx
->
codec
->
id
!=
CODEC_ID_THEORA
&&
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
)){
if
(
ff_
mm_flags
&
MM_SSE2
){
if
(
mm_flags
&
MM_SSE2
){
c
->
idct_put
=
ff_vp3_idct_put_sse2
;
c
->
idct_add
=
ff_vp3_idct_add_sse2
;
c
->
idct
=
ff_vp3_idct_sse2
;
...
...
@@ -3126,7 +3126,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
else
if
(
idct_algo
==
FF_IDCT_CAVS
){
c
->
idct_permutation_type
=
FF_TRANSPOSE_IDCT_PERM
;
}
else
if
(
idct_algo
==
FF_IDCT_XVIDMMX
){
if
(
ff_
mm_flags
&
MM_MMXEXT
){
if
(
mm_flags
&
MM_MMXEXT
){
c
->
idct_put
=
ff_idct_xvid_mmx2_put
;
c
->
idct_add
=
ff_idct_xvid_mmx2_add
;
c
->
idct
=
ff_idct_xvid_mmx2
;
...
...
@@ -3200,7 +3200,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c
->
hadamard8_diff
[
1
]
=
hadamard8_diff_mmx
;
c
->
pix_norm1
=
pix_norm1_mmx
;
c
->
sse
[
0
]
=
(
ff_
mm_flags
&
MM_SSE2
)
?
sse16_sse2
:
sse16_mmx
;
c
->
sse
[
0
]
=
(
mm_flags
&
MM_SSE2
)
?
sse16_sse2
:
sse16_mmx
;
c
->
sse
[
1
]
=
sse8_mmx
;
c
->
vsad
[
4
]
=
vsad_intra16_mmx
;
...
...
@@ -3227,7 +3227,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c
->
h264_idct8_dc_add
=
c
->
h264_idct8_add
=
ff_h264_idct8_add_mmx
;
if
(
ff_
mm_flags
&
MM_MMXEXT
)
{
if
(
mm_flags
&
MM_MMXEXT
)
{
c
->
prefetch
=
prefetch_mmx2
;
c
->
put_pixels_tab
[
0
][
1
]
=
put_pixels16_x2_mmx2
;
...
...
@@ -3369,7 +3369,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
#ifdef CONFIG_ENCODERS
c
->
sub_hfyu_median_prediction
=
sub_hfyu_median_prediction_mmx2
;
#endif //CONFIG_ENCODERS
}
else
if
(
ff_
mm_flags
&
MM_3DNOW
)
{
}
else
if
(
mm_flags
&
MM_3DNOW
)
{
c
->
prefetch
=
prefetch_3dnow
;
c
->
put_pixels_tab
[
0
][
1
]
=
put_pixels16_x2_3dnow
;
...
...
@@ -3463,7 +3463,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
#ifdef CONFIG_SNOW_ENCODER
if
(
ff_
mm_flags
&
MM_SSE2
){
if
(
mm_flags
&
MM_SSE2
){
c
->
horizontal_compose97i
=
ff_snow_horizontal_compose97i_sse2
;
c
->
vertical_compose97i
=
ff_snow_vertical_compose97i_sse2
;
c
->
inner_add_yblock
=
ff_snow_inner_add_yblock_sse2
;
...
...
@@ -3475,22 +3475,22 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
#endif
if
(
ff_
mm_flags
&
MM_3DNOW
){
if
(
mm_flags
&
MM_3DNOW
){
c
->
vorbis_inverse_coupling
=
vorbis_inverse_coupling_3dnow
;
c
->
vector_fmul
=
vector_fmul_3dnow
;
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
))
c
->
float_to_int16
=
float_to_int16_3dnow
;
}
if
(
ff_
mm_flags
&
MM_3DNOWEXT
)
if
(
mm_flags
&
MM_3DNOWEXT
)
c
->
vector_fmul_reverse
=
vector_fmul_reverse_3dnow2
;
if
(
ff_
mm_flags
&
MM_SSE
){
if
(
mm_flags
&
MM_SSE
){
c
->
vorbis_inverse_coupling
=
vorbis_inverse_coupling_sse
;
c
->
vector_fmul
=
vector_fmul_sse
;
c
->
float_to_int16
=
float_to_int16_sse
;
c
->
vector_fmul_reverse
=
vector_fmul_reverse_sse
;
c
->
vector_fmul_add_add
=
vector_fmul_add_add_sse
;
}
if
(
ff_
mm_flags
&
MM_3DNOW
)
if
(
mm_flags
&
MM_3DNOW
)
c
->
vector_fmul_add_add
=
vector_fmul_add_add_3dnow
;
// faster than sse
}
...
...
libavcodec/i386/motion_est_mmx.c
浏览文件 @
486497e0
...
...
@@ -376,7 +376,7 @@ PIX_SAD(mmx2)
void
dsputil_init_pix_mmx
(
DSPContext
*
c
,
AVCodecContext
*
avctx
)
{
if
(
ff_
mm_flags
&
MM_MMX
)
{
if
(
mm_flags
&
MM_MMX
)
{
c
->
pix_abs
[
0
][
0
]
=
sad16_mmx
;
c
->
pix_abs
[
0
][
1
]
=
sad16_x2_mmx
;
c
->
pix_abs
[
0
][
2
]
=
sad16_y2_mmx
;
...
...
@@ -389,7 +389,7 @@ void dsputil_init_pix_mmx(DSPContext* c, AVCodecContext *avctx)
c
->
sad
[
0
]
=
sad16_mmx
;
c
->
sad
[
1
]
=
sad8_mmx
;
}
if
(
ff_
mm_flags
&
MM_MMXEXT
)
{
if
(
mm_flags
&
MM_MMXEXT
)
{
c
->
pix_abs
[
0
][
0
]
=
sad16_mmx2
;
c
->
pix_abs
[
1
][
0
]
=
sad8_mmx2
;
...
...
libavcodec/i386/mpegvideo_mmx.c
浏览文件 @
486497e0
...
...
@@ -27,7 +27,7 @@
#include "../avcodec.h"
#include "x86_cpu.h"
extern
uint16_t
ff_
inv_zigzag_direct16
[
64
];
extern
uint16_t
inv_zigzag_direct16
[
64
];
static
const
unsigned
long
long
int
mm_wabs
__attribute__
((
aligned
(
8
)))
=
0xffffffffffffffffULL
;
static
const
unsigned
long
long
int
mm_wone
__attribute__
((
aligned
(
8
)))
=
0x0001000100010001ULL
;
...
...
@@ -693,7 +693,7 @@ static void denoise_dct_sse2(MpegEncContext *s, DCTELEM *block){
void
MPV_common_init_mmx
(
MpegEncContext
*
s
)
{
if
(
ff_
mm_flags
&
MM_MMX
)
{
if
(
mm_flags
&
MM_MMX
)
{
const
int
dct_algo
=
s
->
avctx
->
dct_algo
;
s
->
dct_unquantize_h263_intra
=
dct_unquantize_h263_intra_mmx
;
...
...
@@ -706,16 +706,16 @@ void MPV_common_init_mmx(MpegEncContext *s)
draw_edges
=
draw_edges_mmx
;
if
(
ff_
mm_flags
&
MM_SSE2
)
{
if
(
mm_flags
&
MM_SSE2
)
{
s
->
denoise_dct
=
denoise_dct_sse2
;
}
else
{
s
->
denoise_dct
=
denoise_dct_mmx
;
}
if
(
dct_algo
==
FF_DCT_AUTO
||
dct_algo
==
FF_DCT_MMX
){
if
(
ff_
mm_flags
&
MM_SSE2
){
if
(
mm_flags
&
MM_SSE2
){
s
->
dct_quantize
=
dct_quantize_SSE2
;
}
else
if
(
ff_
mm_flags
&
MM_MMXEXT
){
}
else
if
(
mm_flags
&
MM_MMXEXT
){
s
->
dct_quantize
=
dct_quantize_MMX2
;
}
else
{
s
->
dct_quantize
=
dct_quantize_MMX
;
...
...
libavcodec/i386/mpegvideo_mmx_template.c
浏览文件 @
486497e0
...
...
@@ -139,7 +139,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
"movzb %%al, %%"
REG_a
"
\n\t
"
// last_non_zero_p1
:
"+a"
(
last_non_zero_p1
)
:
"r"
(
block
+
64
),
"r"
(
qmat
),
"r"
(
bias
),
"r"
(
ff_
inv_zigzag_direct16
+
64
),
"r"
(
temp_block
+
64
)
"r"
(
inv_zigzag_direct16
+
64
),
"r"
(
temp_block
+
64
)
);
// note the asm is split cuz gcc doesnt like that many operands ...
asm
volatile
(
...
...
@@ -185,7 +185,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
"movzb %%al, %%"
REG_a
"
\n\t
"
// last_non_zero_p1
:
"+a"
(
last_non_zero_p1
)
:
"r"
(
block
+
64
),
"r"
(
qmat
+
64
),
"r"
(
bias
+
64
),
"r"
(
ff_
inv_zigzag_direct16
+
64
),
"r"
(
temp_block
+
64
)
"r"
(
inv_zigzag_direct16
+
64
),
"r"
(
temp_block
+
64
)
);
// note the asm is split cuz gcc doesnt like that many operands ...
asm
volatile
(
...
...
libavcodec/imgresample.c
浏览文件 @
486497e0
...
...
@@ -469,7 +469,7 @@ static void h_resample(uint8_t *dst, int dst_width, const uint8_t *src,
n
=
dst_width
;
}
#ifdef HAVE_MMX
if
((
ff_
mm_flags
&
MM_MMX
)
&&
NB_TAPS
==
4
)
if
((
mm_flags
&
MM_MMX
)
&&
NB_TAPS
==
4
)
h_resample_fast4_mmx
(
dst
,
n
,
src
,
src_width
,
src_start
,
src_incr
,
filters
);
else
...
...
@@ -527,14 +527,14 @@ static void component_resample(ImgReSampleContext *s,
phase_y
=
get_phase
(
src_y
);
#ifdef HAVE_MMX
/* desactivated MMX because loss of precision */
if
((
ff_
mm_flags
&
MM_MMX
)
&&
NB_TAPS
==
4
&&
0
)
if
((
mm_flags
&
MM_MMX
)
&&
NB_TAPS
==
4
&&
0
)
v_resample4_mmx
(
output
,
owidth
,
s
->
line_buf
+
(
ring_y
-
NB_TAPS
+
1
)
*
owidth
,
owidth
,
&
s
->
v_filters
[
phase_y
][
0
]);
else
#endif
#ifdef HAVE_ALTIVEC
if
((
ff_
mm_flags
&
MM_ALTIVEC
)
&&
NB_TAPS
==
4
&&
FILTER_BITS
<=
6
)
if
((
mm_flags
&
MM_ALTIVEC
)
&&
NB_TAPS
==
4
&&
FILTER_BITS
<=
6
)
v_resample16_altivec
(
output
,
owidth
,
s
->
line_buf
+
(
ring_y
-
NB_TAPS
+
1
)
*
owidth
,
owidth
,
&
s
->
v_filters
[
phase_y
][
0
]);
...
...
libavcodec/ppc/dsputil_ppc.c
浏览文件 @
486497e0
...
...
@@ -42,7 +42,7 @@ void float_init_altivec(DSPContext* c, AVCodecContext *avctx);
#endif
int
ff_
mm_flags
=
0
;
int
mm_flags
=
0
;
int
mm_support
(
void
)
{
...
...
@@ -277,7 +277,7 @@ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx)
dsputil_h264_init_ppc
(
c
,
avctx
);
if
(
has_altivec
())
{
ff_
mm_flags
|=
MM_ALTIVEC
;
mm_flags
|=
MM_ALTIVEC
;
dsputil_init_altivec
(
c
,
avctx
);
snow_init_altivec
(
c
,
avctx
);
...
...
libavcodec/snow.c
浏览文件 @
486497e0
...
...
@@ -3001,9 +3001,9 @@ static int get_block_rd(SnowContext *s, int mb_x, int mb_y, int plane_index, con
* improve the score of the whole frame, so iterative motion est
* doesn't always converge. */
if
(
s
->
avctx
->
me_cmp
==
FF_CMP_W97
)
distortion
=
ff_
w97_32_c
(
&
s
->
m
,
src
+
sx
+
sy
*
ref_stride
,
dst
+
sx
+
sy
*
ref_stride
,
ref_stride
,
32
);
distortion
=
w97_32_c
(
&
s
->
m
,
src
+
sx
+
sy
*
ref_stride
,
dst
+
sx
+
sy
*
ref_stride
,
ref_stride
,
32
);
else
if
(
s
->
avctx
->
me_cmp
==
FF_CMP_W53
)
distortion
=
ff_
w53_32_c
(
&
s
->
m
,
src
+
sx
+
sy
*
ref_stride
,
dst
+
sx
+
sy
*
ref_stride
,
ref_stride
,
32
);
distortion
=
w53_32_c
(
&
s
->
m
,
src
+
sx
+
sy
*
ref_stride
,
dst
+
sx
+
sy
*
ref_stride
,
ref_stride
,
32
);
else
{
distortion
=
0
;
for
(
i
=
0
;
i
<
4
;
i
++
){
...
...
libavcodec/snow.h
浏览文件 @
486497e0
...
...
@@ -128,8 +128,8 @@ extern void ff_snow_horizontal_compose97i(DWTELEM *b, int width);
extern
void
ff_snow_inner_add_yblock
(
uint8_t
*
obmc
,
const
int
obmc_stride
,
uint8_t
*
*
block
,
int
b_w
,
int
b_h
,
int
src_x
,
int
src_y
,
int
src_stride
,
slice_buffer
*
sb
,
int
add
,
uint8_t
*
dst8
);
#ifdef CONFIG_SNOW_ENCODER
int
ff_
w53_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
);
int
ff_
w97_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
);
int
w53_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
);
int
w97_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
);
#else
static
int
w53_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
)
{
assert
(
0
);}
static
int
w97_32_c
(
void
*
v
,
uint8_t
*
pix1
,
uint8_t
*
pix2
,
int
line_size
,
int
h
)
{
assert
(
0
);}
...
...
libavcodec/utils.c
浏览文件 @
486497e0
...
...
@@ -1197,7 +1197,7 @@ void avcodec_init(void)
return
;
inited
=
1
;
ff_
dsputil_static_init
();
dsputil_static_init
();
init_crcs
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录