Commit 67b04c1a authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

more fixes

Originally committed as revision 2192 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent bf5d0505
...@@ -65,7 +65,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n) ...@@ -65,7 +65,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n)
/* DC coef */ /* DC coef */
if(a->version==2){ if(a->version==2){
block[0]= get_sbits(&a->gb, 10); block[0]= 2*get_sbits(&a->gb, 10) + 1024;
}else{ }else{
component = (n <= 3 ? 0 : n - 4 + 1); component = (n <= 3 ? 0 : n - 4 + 1);
diff = decode_dc(&a->gb, component); diff = decode_dc(&a->gb, component);
...@@ -89,7 +89,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n) ...@@ -89,7 +89,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n)
i += run; i += run;
j = scantable[i]; j = scantable[i];
level= (level*qscale*quant_matrix[j])>>3; level= (level*qscale*quant_matrix[j])>>3;
level= (level-1)|1; // level= (level-1)|1;
level = (level ^ SHOW_SBITS(re, &a->gb, 1)) - SHOW_SBITS(re, &a->gb, 1); level = (level ^ SHOW_SBITS(re, &a->gb, 1)) - SHOW_SBITS(re, &a->gb, 1);
LAST_SKIP_BITS(re, &a->gb, 1); LAST_SKIP_BITS(re, &a->gb, 1);
} else { } else {
...@@ -99,15 +99,15 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n) ...@@ -99,15 +99,15 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n)
level = SHOW_SBITS(re, &a->gb, 10); SKIP_BITS(re, &a->gb, 10); level = SHOW_SBITS(re, &a->gb, 10); SKIP_BITS(re, &a->gb, 10);
i += run; i += run;
j = scantable[i]; j = scantable[i];
/* if(level<0){ if(level<0){
level= -level; level= -level;
level= (level*qscale*quant_matrix[j])>>4; level= (level*qscale*quant_matrix[j])>>3;
level= (level-1)|1; level= (level-1)|1;
level= -level; level= -level;
}else{*/ }else{
level= (level*qscale*quant_matrix[j])>>4; level= (level*qscale*quant_matrix[j])>>3;
/* level= (level-1)|1; level= (level-1)|1;
}*/ }
} }
if (i > 63){ if (i > 63){
fprintf(stderr, "ac-tex damaged at %d %d\n", a->mb_x, a->mb_y); fprintf(stderr, "ac-tex damaged at %d %d\n", a->mb_x, a->mb_y);
...@@ -124,11 +124,12 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n) ...@@ -124,11 +124,12 @@ static inline int mdec_decode_block_intra(MDECContext *a, DCTELEM *block, int n)
static inline int decode_mb(MDECContext *a, DCTELEM block[6][64]){ static inline int decode_mb(MDECContext *a, DCTELEM block[6][64]){
int i; int i;
const int block_index[6]= {5,6,0,1,2,3};
a->dsp.clear_blocks(block[0]); a->dsp.clear_blocks(block[0]);
for(i=5; i>=0; i--){ for(i=0; i<6; i++){
if( mdec_decode_block_intra(a, block[i], i) < 0) if( mdec_decode_block_intra(a, block[ block_index[i] ], block_index[i]) < 0)
return -1; return -1;
} }
return 0; return 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment