summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/avcodec.h7
-rw-r--r--libavcodec/mlib/dsputil_mlib.c9
-rw-r--r--libavcodec/mpegvideo.c3
-rw-r--r--libavcodec/mpegvideo.h3
4 files changed, 18 insertions, 4 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index c442df67f7..eb228320f5 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -310,10 +310,11 @@ typedef struct AVCodecContext {
int aspected_height;
int dct_algo;
-#define FF_DCT_AUTO 0
+#define FF_DCT_AUTO 0
#define FF_DCT_FASTINT 1
-#define FF_DCT_INT 2
-#define FF_DCT_MMX 3
+#define FF_DCT_INT 2
+#define FF_DCT_MMX 3
+#define FF_DCT_MLIB 4
//FIXME this should be reordered after kabis API is finished ...
//TODO kill kabi
diff --git a/libavcodec/mlib/dsputil_mlib.c b/libavcodec/mlib/dsputil_mlib.c
index 4539b6464a..c380eb45f7 100644
--- a/libavcodec/mlib/dsputil_mlib.c
+++ b/libavcodec/mlib/dsputil_mlib.c
@@ -18,6 +18,7 @@
*/
#include "../dsputil.h"
+#include "../mpegvideo.h"
#include <mlib_types.h>
#include <mlib_status.h>
@@ -125,7 +126,6 @@ void ff_fdct_mlib(DCTELEM *data)
void dsputil_init_mlib(void)
{
- av_fdct = ff_fdct_mlib;
ff_idct = ff_idct_mlib;
put_pixels_tab[0] = put_pixels_mlib;
@@ -142,3 +142,10 @@ void dsputil_init_mlib(void)
add_pixels_clamped = add_pixels_clamped_mlib;
}
+
+void MPV_common_init_mlib(MpegEncContext *s)
+{
+ if(s->avctx->dct_algo==FF_DCT_AUTO || s->avctx->dct_algo==FF_DCT_MLIB){
+ s->fdct = ff_fdct_mlib;
+ }
+}
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 7f1f4f2b6b..f480a61dcd 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -153,6 +153,9 @@ int MPV_common_init(MpegEncContext *s)
#ifdef ARCH_ALPHA
MPV_common_init_axp(s);
#endif
+#ifdef HAVE_MLIB
+ MPV_common_init_mlib(s);
+#endif
s->mb_width = (s->width + 15) / 16;
s->mb_height = (s->height + 15) / 16;
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index d4766dc562..6b7377b246 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -480,6 +480,9 @@ void MPV_common_init_mmx(MpegEncContext *s);
#ifdef ARCH_ALPHA
void MPV_common_init_axp(MpegEncContext *s);
#endif
+#ifdef HAVE_MLIB
+void MPV_common_init_mlib(MpegEncContext *s);
+#endif
extern void (*draw_edges)(UINT8 *buf, int wrap, int width, int height, int w);
void ff_conceal_past_errors(MpegEncContext *s, int conceal_all);
void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length);