diff options
author | Thomas Hellström <totte67@users.sourceforge.net> | 2005-01-30 18:01:25 +0000 |
---|---|---|
committer | Thomas Hellström <totte67@users.sourceforge.net> | 2005-01-30 18:01:25 +0000 |
commit | 204bc7799afd8ea60e34036d94a9051703e4848f (patch) | |
tree | 18c8e9e72b27b454d527edc5986b5b33ab254d2b /src/libmpeg2/slice_xvmc.c | |
parent | 8277e17065942e71e3d9edc8cea27cd014209e5e (diff) | |
download | xine-lib-204bc7799afd8ea60e34036d94a9051703e4848f.tar.gz xine-lib-204bc7799afd8ea60e34036d94a9051703e4848f.tar.bz2 |
**BUGFIX**
Bug 1092411
Makes XvMC handle cases where each slice is split into more than two parts.
This got broken on IDCT / MOCOMP with a previous commit to fix a search
segfault. Has never worked before with VLD.
Still IDCT / MOCOMP exhibit bad picture quality in this case but not worse
than before it got broken.
CVS patchset: 7375
CVS date: 2005/01/30 18:01:25
Diffstat (limited to 'src/libmpeg2/slice_xvmc.c')
-rw-r--r-- | src/libmpeg2/slice_xvmc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libmpeg2/slice_xvmc.c b/src/libmpeg2/slice_xvmc.c index c4d2a5ff0..0079d361b 100644 --- a/src/libmpeg2/slice_xvmc.c +++ b/src/libmpeg2/slice_xvmc.c @@ -1707,8 +1707,9 @@ void mpeg2_xvmc_slice (mpeg2dec_t *mpeg2dec, picture_t * picture, int code, uint if (1 == code) { mpeg2dec->xvmc_last_slice_code = 0; } - if (code != mpeg2dec->xvmc_last_slice_code + 1) - return; + if ((code != mpeg2dec->xvmc_last_slice_code + 1) && + (code != mpeg2dec->xvmc_last_slice_code)) + return; bitstream_init (picture, buffer); @@ -1936,7 +1937,7 @@ void mpeg2_xvmc_slice (mpeg2dec_t *mpeg2dec, picture_t * picture, int code, uint default: /* end of slice, or error */ if (mpeg2_cpu_state_restore) mpeg2_cpu_state_restore (&cpu_state); - mpeg2dec->xvmc_last_slice_code++; + mpeg2dec->xvmc_last_slice_code = code; return; } } @@ -2036,7 +2037,7 @@ void mpeg2_xvmc_slice (mpeg2dec_t *mpeg2dec, picture_t * picture, int code, uint } } } - mpeg2dec->xvmc_last_slice_code++; + mpeg2dec->xvmc_last_slice_code = code; #undef bit_buf #undef bits #undef bit_ptr |