]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mips/idctdsp_init_mips.c
Merge commit 'ab7b038906f3e40ed474676d8e3029902a2078f5'
[ffmpeg] / libavcodec / mips / idctdsp_init_mips.c
index c9643408699e04f43f217d9a486586bce01fdaf8..3d2192e273f65b839eea41c3a9be2ccfde4f83d4 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
+ *                    Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
  *
  * This file is part of FFmpeg.
  *
@@ -40,10 +41,33 @@ static av_cold void idctdsp_init_msa(IDCTDSPContext *c, AVCodecContext *avctx,
 }
 #endif  // #if HAVE_MSA
 
+#if HAVE_MMI
+static av_cold void idctdsp_init_mmi(IDCTDSPContext *c, AVCodecContext *avctx,
+                                     unsigned high_bit_depth)
+{
+    if ((avctx->lowres != 1) && (avctx->lowres != 2) && (avctx->lowres != 3) &&
+        (avctx->bits_per_raw_sample != 10) &&
+        (avctx->bits_per_raw_sample != 12) &&
+        (avctx->idct_algo == FF_IDCT_AUTO)) {
+                c->idct_put = ff_simple_idct_put_mmi;
+                c->idct_add = ff_simple_idct_add_mmi;
+                c->idct = ff_simple_idct_mmi;
+                c->perm_type = FF_IDCT_PERM_NONE;
+    }
+
+    c->put_pixels_clamped = ff_put_pixels_clamped_mmi;
+    c->add_pixels_clamped = ff_add_pixels_clamped_mmi;
+    c->put_signed_pixels_clamped = ff_put_signed_pixels_clamped_mmi;
+}
+#endif /* HAVE_MMI */
+
 void ff_idctdsp_init_mips(IDCTDSPContext *c, AVCodecContext *avctx,
                           unsigned high_bit_depth)
 {
 #if HAVE_MSA
     idctdsp_init_msa(c, avctx, high_bit_depth);
 #endif  // #if HAVE_MSA
+#if HAVE_MMI
+    idctdsp_init_mmi(c, avctx, high_bit_depth);
+#endif /* HAVE_MMI */
 }