[SCM] libav/experimental: Alpha: proper IDCT selection

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:35:34 UTC 2013


The following commit has been merged in the experimental branch:
commit 74c474634487696fa0cca055cb8694d0e4bc1329
Author: Måns Rullgård <mans at mansr.com>
Date:   Sun Jan 18 05:52:12 2009 +0000

    Alpha: proper IDCT selection
    
    Only select the Alpha IDCT if auto or explicitly requested.  Also
    disable it in lowres mode.
    
    Originally committed as revision 16666 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/alpha/dsputil_alpha.c b/libavcodec/alpha/dsputil_alpha.c
index c1500b1..905137e 100644
--- a/libavcodec/alpha/dsputil_alpha.c
+++ b/libavcodec/alpha/dsputil_alpha.c
@@ -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;
+    }
 }
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 958ba8c..edd4a7b 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -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
diff --git a/libavcodec/options.c b/libavcodec/options.c
index e04219a..953dfe6 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -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"},

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list