From 93236a755d9303fa1eee68853d35b502b8395128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Date: Tue, 26 Apr 2005 09:02:55 +0000 Subject: **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 --- src/libmpeg2/slice_xvmc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/libmpeg2') 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; -- cgit v1.2.3