# HG changeset patch # User mru # Date 1282672025 0 # Node ID 3fc4c625b6f37c08377f919a2508255a62a4b183 # Parent e6e4059ea4215c114130f18e6685e75be60fbc8a Remove global mm_flags variable diff -r e6e4059ea421 -r 3fc4c625b6f3 arm/dsputil_iwmmxt.c --- a/arm/dsputil_iwmmxt.c Tue Aug 24 16:52:27 2010 +0000 +++ b/arm/dsputil_iwmmxt.c Tue Aug 24 17:47:05 2010 +0000 @@ -150,10 +150,11 @@ /* A run time test is not simple. If this file is compiled in * then we should install the functions */ -int mm_flags = FF_MM_IWMMXT; /* multimedia extension flags */ void ff_dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx) { + int mm_flags = FF_MM_IWMMXT; /* multimedia extension flags */ + if (avctx->dsp_mask) { if (avctx->dsp_mask & FF_MM_FORCE) mm_flags |= (avctx->dsp_mask & 0xffff); diff -r e6e4059ea421 -r 3fc4c625b6f3 dsputil.h --- a/dsputil.h Tue Aug 24 16:52:27 2010 +0000 +++ b/dsputil.h Tue Aug 24 17:47:05 2010 +0000 @@ -618,7 +618,6 @@ /* should be defined by architectures supporting one or more MultiMedia extension */ int mm_support(void); -extern int mm_flags; void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx); void dsputil_init_arm(DSPContext* c, AVCodecContext *avctx); @@ -647,12 +646,7 @@ __asm__ volatile ("emms;":::"memory"); } - -#define emms_c() \ -{\ - if (mm_flags & FF_MM_MMX)\ - emms();\ -} +#define emms_c() emms() #elif ARCH_ARM @@ -670,7 +664,6 @@ #else -#define mm_flags 0 #define mm_support() 0 #endif diff -r e6e4059ea421 -r 3fc4c625b6f3 h263dec.c --- a/h263dec.c Tue Aug 24 16:52:27 2010 +0000 +++ b/h263dec.c Tue Aug 24 17:47:05 2010 +0000 @@ -553,7 +553,7 @@ #endif #if HAVE_MMX - if(s->codec_id == CODEC_ID_MPEG4 && s->xvid_build>=0 && avctx->idct_algo == FF_IDCT_AUTO && (mm_flags & FF_MM_MMX)){ + if(s->codec_id == CODEC_ID_MPEG4 && s->xvid_build>=0 && avctx->idct_algo == FF_IDCT_AUTO && (mm_support() & FF_MM_MMX)){ avctx->idct_algo= FF_IDCT_XVIDMMX; avctx->coded_width= 0; // force reinit // dsputil_init(&s->dsp, avctx); diff -r e6e4059ea421 -r 3fc4c625b6f3 ppc/dsputil_ppc.c --- a/ppc/dsputil_ppc.c Tue Aug 24 16:52:27 2010 +0000 +++ b/ppc/dsputil_ppc.c Tue Aug 24 17:47:05 2010 +0000 @@ -23,8 +23,6 @@ #include "libavcodec/dsputil.h" #include "dsputil_altivec.h" -int mm_flags = 0; - int mm_support(void) { int result = 0; @@ -182,8 +180,6 @@ if(CONFIG_H264_DECODER) dsputil_h264_init_ppc(c, avctx); if (has_altivec()) { - mm_flags |= FF_MM_ALTIVEC; - dsputil_init_altivec(c, avctx); if(CONFIG_VC1_DECODER) vc1dsp_init_altivec(c, avctx); diff -r e6e4059ea421 -r 3fc4c625b6f3 ppc/mpegvideo_altivec.c --- a/ppc/mpegvideo_altivec.c Tue Aug 24 16:52:27 2010 +0000 +++ b/ppc/mpegvideo_altivec.c Tue Aug 24 17:47:05 2010 +0000 @@ -570,7 +570,7 @@ void MPV_common_init_altivec(MpegEncContext *s) { - if ((mm_flags & FF_MM_ALTIVEC) == 0) return; + if (!has_altivec()) return; if (s->avctx->lowres==0) { if ((s->avctx->idct_algo == FF_IDCT_AUTO) || diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/dnxhd_mmx.c --- a/x86/dnxhd_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/dnxhd_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -52,7 +52,7 @@ void ff_dnxhd_init_mmx(DNXHDEncContext *ctx) { - if (mm_flags & FF_MM_SSE2) { + if (mm_support() & FF_MM_SSE2) { ctx->get_pixels_8x4_sym = get_pixels_8x4_sym_sse2; } } diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/dsputil_mmx.c --- a/x86/dsputil_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/dsputil_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -37,8 +37,6 @@ //#undef NDEBUG //#include -int mm_flags; /* multimedia extension flags */ - /* pixel operations */ DECLARE_ALIGNED(8, const uint64_t, ff_bone) = 0x0101010101010101ULL; DECLARE_ALIGNED(8, const uint64_t, ff_wtwo) = 0x0002000200020002ULL; @@ -2504,7 +2502,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx) { - mm_flags = mm_support(); + int mm_flags = mm_support(); if (avctx->dsp_mask) { if (avctx->dsp_mask & FF_MM_FORCE) @@ -2941,7 +2939,7 @@ #if CONFIG_H264DSP void ff_h264dsp_init_x86(H264DSPContext *c) { - mm_flags = mm_support(); + int mm_flags = mm_support(); if (mm_flags & FF_MM_MMX) { c->h264_idct_dc_add= diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/dsputilenc_mmx.c --- a/x86/dsputilenc_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/dsputilenc_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -1350,6 +1350,8 @@ void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx) { + int mm_flags = mm_support(); + if (mm_flags & FF_MM_MMX) { const int dct_algo = avctx->dct_algo; if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){ diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/h264dsp_mmx.c --- a/x86/h264dsp_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/h264dsp_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -2368,7 +2368,7 @@ #if CONFIG_H264PRED void ff_h264_pred_init_x86(H264PredContext *h, int codec_id) { - mm_flags = mm_support(); + int mm_flags = mm_support(); #if HAVE_YASM if (mm_flags & FF_MM_MMX) { diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/motion_est_mmx.c --- a/x86/motion_est_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/motion_est_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -427,6 +427,8 @@ void dsputil_init_pix_mmx(DSPContext* c, AVCodecContext *avctx) { + int mm_flags = mm_support(); + if (mm_flags & FF_MM_MMX) { c->pix_abs[0][0] = sad16_mmx; c->pix_abs[0][1] = sad16_x2_mmx; diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/mpegaudiodec_mmx.c --- a/x86/mpegaudiodec_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/mpegaudiodec_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -149,7 +149,7 @@ void ff_mpegaudiodec_init_mmx(MPADecodeContext *s) { - mm_flags = mm_support(); + int mm_flags = mm_support(); if (mm_flags & FF_MM_SSE2) { s->apply_window_mp3 = apply_window_mp3; diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/mpegvideo_mmx.c --- a/x86/mpegvideo_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/mpegvideo_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -625,6 +625,8 @@ void MPV_common_init_mmx(MpegEncContext *s) { + int mm_flags = mm_support(); + if (mm_flags & FF_MM_MMX) { const int dct_algo = s->avctx->dct_algo; diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/snowdsp_mmx.c --- a/x86/snowdsp_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/snowdsp_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -874,7 +874,7 @@ void ff_dwt_init_x86(DWTContext *c) { - mm_flags = mm_support(); + int mm_flags = mm_support(); if (mm_flags & FF_MM_MMX) { if(mm_flags & FF_MM_SSE2 & 0){ diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/vc1dsp_mmx.c --- a/x86/vc1dsp_mmx.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/vc1dsp_mmx.c Tue Aug 24 17:47:05 2010 +0000 @@ -714,7 +714,7 @@ #endif void ff_vc1dsp_init_mmx(DSPContext* dsp, AVCodecContext *avctx) { - mm_flags = mm_support(); + int mm_flags = mm_support(); dsp->put_vc1_mspel_pixels_tab[ 0] = ff_put_vc1_mspel_mc00_mmx; dsp->put_vc1_mspel_pixels_tab[ 4] = put_vc1_mspel_mc01_mmx; diff -r e6e4059ea421 -r 3fc4c625b6f3 x86/vp8dsp-init.c --- a/x86/vp8dsp-init.c Tue Aug 24 16:52:27 2010 +0000 +++ b/x86/vp8dsp-init.c Tue Aug 24 17:47:05 2010 +0000 @@ -282,7 +282,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) { - mm_flags = mm_support(); + int mm_flags = mm_support(); #if HAVE_YASM if (mm_flags & FF_MM_MMX) {