summaryrefslogtreecommitdiff
path: root/libavcodec/jrevdct.c
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2001-08-07 22:45:35 +0000
committerFabrice Bellard <fabrice@bellard.org>2001-08-07 22:45:35 +0000
commit13b54752647fd89bbfea809fd047d3476020a546 (patch)
tree883fb2656073bede12d07abc1fb07e167d0f2d67 /libavcodec/jrevdct.c
parentdc541ee74b2fbf147685e254d50b72903cb66527 (diff)
permuted coefs in normal IDCT to avoid having different cases there
Originally committed as revision 47 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/jrevdct.c')
-rw-r--r--libavcodec/jrevdct.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/libavcodec/jrevdct.c b/libavcodec/jrevdct.c
index 2ef40f38e5..246f1b190a 100644
--- a/libavcodec/jrevdct.c
+++ b/libavcodec/jrevdct.c
@@ -197,16 +197,18 @@ void j_rev_dct(DCTBLOCK data)
register int *idataptr = (int*)dataptr;
+ /* WARNING: we do the same permutation as MMX idct to simplify the
+ video core */
d0 = dataptr[0];
- d1 = dataptr[1];
- d2 = dataptr[2];
- d3 = dataptr[3];
- d4 = dataptr[4];
- d5 = dataptr[5];
- d6 = dataptr[6];
+ d2 = dataptr[1];
+ d4 = dataptr[2];
+ d6 = dataptr[3];
+ d1 = dataptr[4];
+ d3 = dataptr[5];
+ d5 = dataptr[6];
d7 = dataptr[7];
- if ((d1 == 0) && (idataptr[1] | idataptr[2] | idataptr[3]) == 0) {
+ if ((d1 | d2 | d3 | d4 | d5 | d6 | d7) == 0) {
/* AC terms all zero */
if (d0) {
/* Compute a 32 bit value to assign. */