(cherry picked from commit fe07c9c6b5a870b8f2ffcfac649228b4d76e9505)
Signed-off-by: Diego Biurrun <[email protected]>
Conflicts:
libavcodec/x86/dsputil_mmx.c
---
This was reported to break on the 0.8 branch by Mickulas.
libavcodec/x86/dsputil_mmx.c | 3 ++-
libavcodec/x86/h264_intrapred_init.c | 3 ++-
libavcodec/x86/h264dsp_mmx.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
index e34b95b..81472bb 100644
--- a/libavcodec/x86/dsputil_mmx.c
+++ b/libavcodec/x86/dsputil_mmx.c
@@ -2683,7 +2683,8 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext
*avctx)
c->add_hfyu_median_prediction = ff_add_hfyu_median_prediction_mmx2;
#endif
#if HAVE_7REGS
- if (HAVE_AMD3DNOW && (mm_flags & AV_CPU_FLAG_3DNOW))
+ if (HAVE_AMD3DNOW && (mm_flags & AV_CPU_FLAG_3DNOW) &&
+ (mm_flags & AV_CPU_FLAG_CMOV))
c->add_hfyu_median_prediction =
add_hfyu_median_prediction_cmov;
#endif
diff --git a/libavcodec/x86/h264_intrapred_init.c
b/libavcodec/x86/h264_intrapred_init.c
index 223dbde..70a4c1e 100644
--- a/libavcodec/x86/h264_intrapred_init.c
+++ b/libavcodec/x86/h264_intrapred_init.c
@@ -188,7 +188,8 @@ void ff_h264_pred_init_x86(H264PredContext *h, int
codec_id, const int bit_depth
if (chroma_format_idc <= 1)
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_mmx;
if (codec_id == CODEC_ID_SVQ3) {
- h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_mmx;
+ if (mm_flags & AV_CPU_FLAG_CMOV)
+ h->pred16x16[PLANE_PRED8x8] =
ff_pred16x16_plane_svq3_mmx;
} else if (codec_id == CODEC_ID_RV40) {
h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_mmx;
} else {
diff --git a/libavcodec/x86/h264dsp_mmx.c b/libavcodec/x86/h264dsp_mmx.c
index f5ae4dc..19b3a4b 100644
--- a/libavcodec/x86/h264dsp_mmx.c
+++ b/libavcodec/x86/h264dsp_mmx.c
@@ -361,7 +361,8 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int
bit_depth, const int chrom
if (chroma_format_idc <= 1)
c->h264_idct_add8 = ff_h264_idct_add8_8_mmx;
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmx;
- c->h264_luma_dc_dequant_idct= ff_h264_luma_dc_dequant_idct_mmx;
+ if (mm_flags & AV_CPU_FLAG_CMOV)
+ c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_mmx;
if (mm_flags & AV_CPU_FLAG_MMX2) {
c->h264_idct_dc_add = ff_h264_idct_dc_add_8_mmx2;
--
2.1.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel