diff options
author | Thomas Hellström <totte67@users.sourceforge.net> | 2005-04-26 09:02:55 +0000 |
---|---|---|
committer | Thomas Hellström <totte67@users.sourceforge.net> | 2005-04-26 09:02:55 +0000 |
commit | 93236a755d9303fa1eee68853d35b502b8395128 (patch) | |
tree | 60a34b1c2fe8725106552b6a7acf86b4b698f025 /src/libmpeg2/slice_xvmc.c | |
parent | 0e226aea818f0735b2f566894856eeee6a0a9a36 (diff) | |
download | xine-lib-93236a755d9303fa1eee68853d35b502b8395128.tar.gz xine-lib-93236a755d9303fa1eee68853d35b502b8395128.tar.bz2 |
**BUGFIX**
Fix IDCT / Mocomp rendering errors in xxmc and xvmc modules caused by them not resetting the
macroblock counter when a frame is created.
Fixed libmpeg2 Mocomp XvMC forgetting to handle the signed / usigned intra flag, resulting in a
purple screen on Nvidia when XvMC Mocomp only is used.
CVS patchset: 7500
CVS date: 2005/04/26 09:02:55
Diffstat (limited to 'src/libmpeg2/slice_xvmc.c')
-rw-r--r-- | src/libmpeg2/slice_xvmc.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libmpeg2/slice_xvmc.c b/src/libmpeg2/slice_xvmc.c index f3ce5fb74..43d9666ee 100644 --- a/src/libmpeg2/slice_xvmc.c +++ b/src/libmpeg2/slice_xvmc.c @@ -1663,7 +1663,8 @@ static inline int slice_xvmc_init (picture_t * picture, int code) picture->limit_y = height - 16; //TODO conversion to signed format signed format - if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL) { + if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL && + !(picture->mc->xvmc_accel & SIGNED_INTRA)) { //Motion Comp only unsigned intra // original: picture->dc_dct_pred[0] = picture->dc_dct_pred[1] = @@ -1920,7 +1921,8 @@ void mpeg2_xvmc_slice (mpeg2dec_accel_t *accel, picture_t * picture, int code, u picture->pitches[2]); // cc2 croma } - if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL) { + if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL && + !(picture->mc->xvmc_accel & SIGNED_INTRA)) { // original: picture->dc_dct_pred[0] = picture->dc_dct_pred[1] = picture->dc_dct_pred[2] = 128 << picture->intra_dc_precision; @@ -1977,7 +1979,8 @@ void mpeg2_xvmc_slice (mpeg2dec_accel_t *accel, picture_t * picture, int code, u mba_inc += mba->mba; if (mba_inc) { //TODO conversion to signed format signed format - if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL) { + if((picture->mc->xvmc_accel & ACCEL) == MOTION_ACCEL && + !(picture->mc->xvmc_accel & SIGNED_INTRA)) { // original: picture->dc_dct_pred[0] = picture->dc_dct_pred[1] = picture->dc_dct_pred[2] = 128 << picture->intra_dc_precision; |