summaryrefslogtreecommitdiff
path: root/src/libmpeg2/slice.c
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2001-05-26 00:48:47 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2001-05-26 00:48:47 +0000
commit65480cd3d11b465f0ede5f6c3d1b9f12e06dc98b (patch)
tree4601feb5b4f1639204ee480414899d9b86ae7d5f /src/libmpeg2/slice.c
parentc463738e5a66020a5abf7482047b015929cf951d (diff)
downloadxine-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.c9
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] =