summaryrefslogtreecommitdiff
path: root/libavcodec/jrevdct.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/jrevdct.c')
-rw-r--r--libavcodec/jrevdct.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/libavcodec/jrevdct.c b/libavcodec/jrevdct.c
index 1c253fee39..8bc0d1657d 100644
--- a/libavcodec/jrevdct.c
+++ b/libavcodec/jrevdct.c
@@ -1203,8 +1203,6 @@ void j_rev_dct4(DCTBLOCK data)
register int *idataptr = (int*)dataptr;
- /* WARNING: we do the same permutation as MMX idct to simplify the
- video core */
d0 = dataptr[0];
d2 = dataptr[1];
d4 = dataptr[2];
@@ -1627,6 +1625,20 @@ void j_rev_dct4(DCTBLOCK data)
}
}
+void j_rev_dct2(DCTBLOCK data){
+ int d00, d01, d10, d11;
+
+ data[0] += 4;
+ d00 = data[0+0*DCTSTRIDE] + data[1+0*DCTSTRIDE];
+ d01 = data[0+0*DCTSTRIDE] - data[1+0*DCTSTRIDE];
+ d10 = data[0+1*DCTSTRIDE] + data[1+1*DCTSTRIDE];
+ d11 = data[0+1*DCTSTRIDE] - data[1+1*DCTSTRIDE];
+
+ data[0+0*DCTSTRIDE]= (d00 + d10)>>3;
+ data[1+0*DCTSTRIDE]= (d01 + d11)>>3;
+ data[0+1*DCTSTRIDE]= (d00 - d10)>>3;
+ data[1+1*DCTSTRIDE]= (d01 - d11)>>3;
+}
#undef FIX
#undef CONST_BITS