From 74c474634487696fa0cca055cb8694d0e4bc1329 Mon Sep 17 00:00:00 2001 From: =?utf8?q?M=C3=A5ns=20Rullg=C3=A5rd?= Date: Sun, 18 Jan 2009 05:52:12 +0000 Subject: [PATCH] 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 --- libavcodec/alpha/dsputil_alpha.c | 4 ++++ libavcodec/avcodec.h | 1 + libavcodec/options.c | 1 + 3 files changed, 6 insertions(+) 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"}, -- 2.7.4