Merge commit '9e5e76ef9ea803432ef2782a3f528c3f5bab621e'
* commit '9e5e76ef9ea803432ef2782a3f528c3f5bab621e': x86: More specific ifdefs for dsputil/hpeldsp init functions Conflicts: libavcodec/x86/dsputil_mmx.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
32cc7dacde
@ -1255,7 +1255,7 @@ void ff_vector_clip_int32_sse4 (int32_t *dst, const int32_t *src,
|
||||
static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx,
|
||||
int mm_flags)
|
||||
{
|
||||
#if HAVE_INLINE_ASM
|
||||
#if HAVE_MMX_INLINE
|
||||
const int high_bit_depth = avctx->bits_per_raw_sample > 8;
|
||||
|
||||
c->put_pixels_clamped = ff_put_pixels_clamped_mmx;
|
||||
@ -1273,16 +1273,16 @@ static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx,
|
||||
#endif
|
||||
|
||||
c->add_bytes = add_bytes_mmx;
|
||||
#endif /* HAVE_INLINE_ASM */
|
||||
#endif /* HAVE_MMX_INLINE */
|
||||
|
||||
#if HAVE_YASM
|
||||
#if HAVE_MMX_EXTERNAL
|
||||
if (CONFIG_H263_DECODER || CONFIG_H263_ENCODER) {
|
||||
c->h263_v_loop_filter = ff_h263_v_loop_filter_mmx;
|
||||
c->h263_h_loop_filter = ff_h263_h_loop_filter_mmx;
|
||||
}
|
||||
|
||||
c->vector_clip_int32 = ff_vector_clip_int32_mmx;
|
||||
#endif /* HAVE_YASM */
|
||||
#endif /* HAVE_MMX_EXTERNAL */
|
||||
}
|
||||
|
||||
static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx,
|
||||
@ -1315,7 +1315,7 @@ static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx,
|
||||
static av_cold void dsputil_init_sse(DSPContext *c, AVCodecContext *avctx,
|
||||
int mm_flags)
|
||||
{
|
||||
#if HAVE_INLINE_ASM
|
||||
#if HAVE_SSE_INLINE
|
||||
const int high_bit_depth = avctx->bits_per_raw_sample > 8;
|
||||
|
||||
if (!high_bit_depth) {
|
||||
@ -1327,7 +1327,7 @@ static av_cold void dsputil_init_sse(DSPContext *c, AVCodecContext *avctx,
|
||||
}
|
||||
|
||||
c->vector_clipf = vector_clipf_sse;
|
||||
#endif /* HAVE_INLINE_ASM */
|
||||
#endif /* HAVE_SSE_INLINE */
|
||||
|
||||
#if HAVE_YASM
|
||||
#if HAVE_INLINE_ASM && CONFIG_VIDEODSP
|
||||
|
@ -150,7 +150,7 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels,
|
||||
|
||||
static void hpeldsp_init_mmx(HpelDSPContext *c, int flags, int mm_flags)
|
||||
{
|
||||
#if HAVE_INLINE_ASM
|
||||
#if HAVE_MMX_INLINE
|
||||
SET_HPEL_FUNCS(put, [0], 16, mmx);
|
||||
SET_HPEL_FUNCS(put_no_rnd, [0], 16, mmx);
|
||||
SET_HPEL_FUNCS(avg, [0], 16, mmx);
|
||||
@ -158,12 +158,12 @@ static void hpeldsp_init_mmx(HpelDSPContext *c, int flags, int mm_flags)
|
||||
SET_HPEL_FUNCS(put, [1], 8, mmx);
|
||||
SET_HPEL_FUNCS(put_no_rnd, [1], 8, mmx);
|
||||
SET_HPEL_FUNCS(avg, [1], 8, mmx);
|
||||
#endif /* HAVE_INLINE_ASM */
|
||||
#endif /* HAVE_MMX_INLINE */
|
||||
}
|
||||
|
||||
static void hpeldsp_init_mmxext(HpelDSPContext *c, int flags, int mm_flags)
|
||||
{
|
||||
#if HAVE_YASM
|
||||
#if HAVE_MMXEXT_EXTERNAL
|
||||
c->put_pixels_tab[0][1] = ff_put_pixels16_x2_mmxext;
|
||||
c->put_pixels_tab[0][2] = put_pixels16_y2_mmxext;
|
||||
|
||||
@ -192,12 +192,12 @@ static void hpeldsp_init_mmxext(HpelDSPContext *c, int flags, int mm_flags)
|
||||
c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_mmxext;
|
||||
c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_mmxext;
|
||||
}
|
||||
#endif /* HAVE_YASM */
|
||||
#endif /* HAVE_MMXEXT_EXTERNAL */
|
||||
}
|
||||
|
||||
static void hpeldsp_init_3dnow(HpelDSPContext *c, int flags, int mm_flags)
|
||||
{
|
||||
#if HAVE_YASM
|
||||
#if HAVE_AMD3DNOW_EXTERNAL
|
||||
c->put_pixels_tab[0][1] = ff_put_pixels16_x2_3dnow;
|
||||
c->put_pixels_tab[0][2] = put_pixels16_y2_3dnow;
|
||||
|
||||
@ -226,19 +226,19 @@ static void hpeldsp_init_3dnow(HpelDSPContext *c, int flags, int mm_flags)
|
||||
c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_3dnow;
|
||||
c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_3dnow;
|
||||
}
|
||||
#endif /* HAVE_YASM */
|
||||
#endif /* HAVE_AMD3DNOW_EXTERNAL */
|
||||
}
|
||||
|
||||
static void hpeldsp_init_sse2(HpelDSPContext *c, int flags, int mm_flags)
|
||||
{
|
||||
#if HAVE_YASM
|
||||
#if HAVE_SSE2_EXTERNAL
|
||||
if (!(mm_flags & AV_CPU_FLAG_SSE2SLOW)) {
|
||||
// these functions are slower than mmx on AMD, but faster on Intel
|
||||
c->put_pixels_tab[0][0] = ff_put_pixels16_sse2;
|
||||
c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_sse2;
|
||||
c->avg_pixels_tab[0][0] = ff_avg_pixels16_sse2;
|
||||
}
|
||||
#endif /* HAVE_YASM */
|
||||
#endif /* HAVE_SSE2_EXTERNAL */
|
||||
}
|
||||
|
||||
void ff_hpeldsp_init_x86(HpelDSPContext *c, int flags)
|
||||
|
Loading…
Reference in New Issue
Block a user