diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-05-26 00:48:47 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-05-26 00:48:47 +0000 |
commit | 65480cd3d11b465f0ede5f6c3d1b9f12e06dc98b (patch) | |
tree | 4601feb5b4f1639204ee480414899d9b86ae7d5f /src/libmpeg2/slice.c | |
parent | c463738e5a66020a5abf7482047b015929cf951d (diff) | |
download | xine-lib-65480cd3d11b465f0ede5f6c3d1b9f12e06dc98b.tar.gz xine-lib-65480cd3d11b465f0ede5f6c3d1b9f12e06dc98b.tar.bz2 |
implemented frame skipping for libmpeg2 as well as low-quality decoding for low-end systems
CVS patchset: 82
CVS date: 2001/05/26 00:48:47
Diffstat (limited to 'src/libmpeg2/slice.c')
-rw-r--r-- | src/libmpeg2/slice.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libmpeg2/slice.c b/src/libmpeg2/slice.c index 819ff0f65..95c04e79f 100644 --- a/src/libmpeg2/slice.c +++ b/src/libmpeg2/slice.c @@ -1011,8 +1011,9 @@ static inline void slice_non_intra_DCT (picture_t * picture, uint8_t * dest, if (picture->mpeg1) get_mpeg1_non_intra_block (picture); else - get_non_intra_block (picture); - idct_block_add (picture->DCTblock, dest, stride); + get_non_intra_block (picture); + if (!picture->skip_non_intra_dct) + idct_block_add (picture->DCTblock, dest, stride); } #define MOTION_Y(table,offset_x,offset_y,motion_x,motion_y, \ @@ -1712,7 +1713,7 @@ void slice_process (picture_t * picture, uint8_t code, uint8_t * buffer) } coded_block_pattern = get_coded_block_pattern (picture); - + if (coded_block_pattern & 0x20) slice_non_intra_DCT (picture, dest[0] + offset, DCT_stride); @@ -1733,7 +1734,7 @@ void slice_process (picture_t * picture, uint8_t code, uint8_t * buffer) stride >> 1); if (coded_block_pattern & 0x1) slice_non_intra_DCT (picture, dest[2] + (offset >> 1), - stride >> 1); + stride >> 1); } picture->dc_dct_pred[0] = picture->dc_dct_pred[1] = |