aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/armv4l/dsputil_iwmmxt.c
diff options
context:
space:
mode:
authorGildas Bazin <gbazi@altern.org>2005-06-28 22:46:36 +0000
committerMichael Niedermayer <michaelni@gmx.at>2005-06-28 22:46:36 +0000
commiteba9ae3cfcfb924e2dd6e6c45838e73181bd1430 (patch)
tree8b76726c4a504880d78b894125cd36822c525fb8 /libavcodec/armv4l/dsputil_iwmmxt.c
parentb4cad5371b72027627220e96b79ec0d65b2debe5 (diff)
downloadffmpeg-eba9ae3cfcfb924e2dd6e6c45838e73181bd1430.tar.gz
IWMMXT configure support + runtime selection patch by (Gildas Bazin, gbazin : altern org)
Originally committed as revision 4409 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/armv4l/dsputil_iwmmxt.c')
-rw-r--r--libavcodec/armv4l/dsputil_iwmmxt.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libavcodec/armv4l/dsputil_iwmmxt.c b/libavcodec/armv4l/dsputil_iwmmxt.c
index 6e2465d7c8..99a55e7905 100644
--- a/libavcodec/armv4l/dsputil_iwmmxt.c
+++ b/libavcodec/armv4l/dsputil_iwmmxt.c
@@ -126,8 +126,26 @@ static void nop(uint8_t *block, const uint8_t *pixels, int line_size, int h)
return;
}
+int mm_flags; /* multimedia extension flags */
+
+int mm_support(void)
+{
+ return 0; /* TODO, implement proper detection */
+}
+
void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx)
{
+ mm_flags = mm_support();
+
+ if (avctx->dsp_mask) {
+ if (avctx->dsp_mask & FF_MM_FORCE)
+ mm_flags |= (avctx->dsp_mask & 0xffff);
+ else
+ mm_flags &= ~(avctx->dsp_mask & 0xffff);
+ }
+
+ if (!(mm_flags & MM_IWMMXT)) return;
+
c->add_pixels_clamped = add_pixels_clamped_iwmmxt;
c->put_pixels_tab[0][0] = put_pixels16_iwmmxt;