summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/h264idct.c
diff options
context:
space:
mode:
authorMike Melanson <mike@multimedia.cx>2006-08-02 07:02:37 +0000
committerMike Melanson <mike@multimedia.cx>2006-08-02 07:02:37 +0000
commit5f24c84bddd59e2d1744408f2c3694050d7d3d3d (patch)
tree044d31ff791ca6d0d60b5624bd31554f7da53876 /src/libffmpeg/libavcodec/h264idct.c
parentfeaf0357aaa9f80562900ad9c50b9adf44d9b795 (diff)
downloadxine-lib-5f24c84bddd59e2d1744408f2c3694050d7d3d3d.tar.gz
xine-lib-5f24c84bddd59e2d1744408f2c3694050d7d3d3d.tar.bz2
sync to FFmpeg 51.11.0
CVS patchset: 8146 CVS date: 2006/08/02 07:02:37
Diffstat (limited to 'src/libffmpeg/libavcodec/h264idct.c')
-rwxr-xr-xsrc/libffmpeg/libavcodec/h264idct.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libffmpeg/libavcodec/h264idct.c b/src/libffmpeg/libavcodec/h264idct.c
index a4ddf1d51..3e44385d5 100755
--- a/src/libffmpeg/libavcodec/h264idct.c
+++ b/src/libffmpeg/libavcodec/h264idct.c
@@ -139,3 +139,28 @@ void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride){
dst[i + 7*stride] = cm[ dst[i + 7*stride] + ((b0 - b7) >> 6) ];
}
}
+
+// assumes all AC coefs are 0
+void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride){
+ int i, j;
+ uint8_t *cm = cropTbl + MAX_NEG_CROP;
+ int dc = (block[0] + 32) >> 6;
+ for( j = 0; j < 4; j++ )
+ {
+ for( i = 0; i < 4; i++ )
+ dst[i] = cm[ dst[i] + dc ];
+ dst += stride;
+ }
+}
+
+void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride){
+ int i, j;
+ uint8_t *cm = cropTbl + MAX_NEG_CROP;
+ int dc = (block[0] + 32) >> 6;
+ for( j = 0; j < 8; j++ )
+ {
+ for( i = 0; i < 8; i++ )
+ dst[i] = cm[ dst[i] + dc ];
+ dst += stride;
+ }
+}