]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Alpha: proper IDCT selection
authormru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 18 Jan 2009 05:52:12 +0000 (05:52 +0000)
committermru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 18 Jan 2009 05:52:12 +0000 (05:52 +0000)
Only select the Alpha IDCT if auto or explicitly requested.  Also
disable it in lowres mode.

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16666 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/alpha/dsputil_alpha.c
libavcodec/avcodec.h
libavcodec/options.c

index c1500b11f927143e8b2dbd960d645b0594bc4eac..905137edf2bf5554ca8fe14b5384dc3f05547bec 100644 (file)
@@ -356,7 +356,11 @@ void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx)
     put_pixels_clamped_axp_p = c->put_pixels_clamped;
     add_pixels_clamped_axp_p = c->add_pixels_clamped;
 
+    if (!avctx->lowres &&
+        (avctx->idct_algo == FF_IDCT_AUTO ||
+         avctx->idct_algo == FF_IDCT_SIMPLEALPHA)) {
     c->idct_put = simple_idct_put_axp;
     c->idct_add = simple_idct_add_axp;
     c->idct = simple_idct_axp;
+    }
 }
index 958ba8c30d5fdb77d6ad9c9aa754660e18a29c82..edd4a7beb6bf031435c69ff4bf2b573a4c1db919 100644 (file)
@@ -1398,6 +1398,7 @@ typedef struct AVCodecContext {
 #define FF_IDCT_FAAN          20
 #define FF_IDCT_EA            21
 #define FF_IDCT_SIMPLENEON    22
+#define FF_IDCT_SIMPLEALPHA   23
 
     /**
      * slice count
index e04219a1d7df30dc4ed86bdf14c3c581d92d641b..953dfe6a0636048d4b9fdc63810f7cd2b57247f2 100644 (file)
@@ -210,6 +210,7 @@ static const AVOption options[]={
 {"simplearmv5te", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARMV5TE, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"simplearmv6", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARMV6, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"simpleneon", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLENEON, INT_MIN, INT_MAX, V|E|D, "idct"},
+{"simplealpha", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEALPHA, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"h264", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_H264, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"vp3", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_VP3, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"ipp", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_IPP, INT_MIN, INT_MAX, V|E|D, "idct"},