# HG changeset patch # User glantau # Date 997224428 0 # Node ID 5bf15419d47eeee487e5eca318df4b48424cee5f # Parent eb898f29e49f87b27de17309488a72a3140d9c8a changed quant matrix order (should fix mmx mpeg decoding bug) diff -r eb898f29e49f -r 5bf15419d47e mpeg12.c --- a/mpeg12.c Tue Aug 07 22:46:19 2001 +0000 +++ b/mpeg12.c Tue Aug 07 22:47:08 2001 +0000 @@ -1172,32 +1172,36 @@ static void mpeg_decode_quant_matrix_extension(MpegEncContext *s) { - int i, v; + int i, v, j; if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->intra_matrix[i] = v; - s->chroma_intra_matrix[i] = v; + j = block_permute_op(i); + s->intra_matrix[j] = v; + s->chroma_intra_matrix[j] = v; } } if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->non_intra_matrix[i] = v; - s->chroma_non_intra_matrix[i] = v; + j = block_permute_op(i); + s->non_intra_matrix[j] = v; + s->chroma_non_intra_matrix[j] = v; } } if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->chroma_intra_matrix[i] = v; + j = block_permute_op(i); + s->chroma_intra_matrix[j] = v; } } if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->chroma_non_intra_matrix[i] = v; + j = block_permute_op(i); + s->chroma_non_intra_matrix[j] = v; } } } @@ -1345,7 +1349,7 @@ { Mpeg1Context *s1 = avctx->priv_data; MpegEncContext *s = &s1->mpeg_enc_ctx; - int width, height, i, v; + int width, height, i, v, j; init_get_bits(&s->gb, buf, buf_size); @@ -1389,8 +1393,9 @@ if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->intra_matrix[i] = v; - s->chroma_intra_matrix[i] = v; + j = block_permute_op(i); + s->intra_matrix[j] = v; + s->chroma_intra_matrix[j] = v; } } else { for(i=0;i<64;i++) { @@ -1402,8 +1407,9 @@ if (get_bits1(&s->gb)) { for(i=0;i<64;i++) { v = get_bits(&s->gb, 8); - s->non_intra_matrix[i] = v; - s->chroma_non_intra_matrix[i] = v; + j = block_permute_op(i); + s->non_intra_matrix[j] = v; + s->chroma_non_intra_matrix[j] = v; } } else { for(i=0;i<64;i++) {