Mercurial > libavcodec.hg
comparison mpeg12.c @ 38:5bf15419d47e libavcodec
changed quant matrix order (should fix mmx mpeg decoding bug)
author | glantau |
---|---|
date | Tue, 07 Aug 2001 22:47:08 +0000 |
parents | 20e680e7a490 |
children | 933cc4acab5c |
comparison
equal
deleted
inserted
replaced
37:eb898f29e49f | 38:5bf15419d47e |
---|---|
1170 s->mpeg2 = 1; | 1170 s->mpeg2 = 1; |
1171 } | 1171 } |
1172 | 1172 |
1173 static void mpeg_decode_quant_matrix_extension(MpegEncContext *s) | 1173 static void mpeg_decode_quant_matrix_extension(MpegEncContext *s) |
1174 { | 1174 { |
1175 int i, v; | 1175 int i, v, j; |
1176 | 1176 |
1177 if (get_bits1(&s->gb)) { | 1177 if (get_bits1(&s->gb)) { |
1178 for(i=0;i<64;i++) { | 1178 for(i=0;i<64;i++) { |
1179 v = get_bits(&s->gb, 8); | 1179 v = get_bits(&s->gb, 8); |
1180 s->intra_matrix[i] = v; | 1180 j = block_permute_op(i); |
1181 s->chroma_intra_matrix[i] = v; | 1181 s->intra_matrix[j] = v; |
1182 s->chroma_intra_matrix[j] = v; | |
1182 } | 1183 } |
1183 } | 1184 } |
1184 if (get_bits1(&s->gb)) { | 1185 if (get_bits1(&s->gb)) { |
1185 for(i=0;i<64;i++) { | 1186 for(i=0;i<64;i++) { |
1186 v = get_bits(&s->gb, 8); | 1187 v = get_bits(&s->gb, 8); |
1187 s->non_intra_matrix[i] = v; | 1188 j = block_permute_op(i); |
1188 s->chroma_non_intra_matrix[i] = v; | 1189 s->non_intra_matrix[j] = v; |
1190 s->chroma_non_intra_matrix[j] = v; | |
1189 } | 1191 } |
1190 } | 1192 } |
1191 if (get_bits1(&s->gb)) { | 1193 if (get_bits1(&s->gb)) { |
1192 for(i=0;i<64;i++) { | 1194 for(i=0;i<64;i++) { |
1193 v = get_bits(&s->gb, 8); | 1195 v = get_bits(&s->gb, 8); |
1194 s->chroma_intra_matrix[i] = v; | 1196 j = block_permute_op(i); |
1197 s->chroma_intra_matrix[j] = v; | |
1195 } | 1198 } |
1196 } | 1199 } |
1197 if (get_bits1(&s->gb)) { | 1200 if (get_bits1(&s->gb)) { |
1198 for(i=0;i<64;i++) { | 1201 for(i=0;i<64;i++) { |
1199 v = get_bits(&s->gb, 8); | 1202 v = get_bits(&s->gb, 8); |
1200 s->chroma_non_intra_matrix[i] = v; | 1203 j = block_permute_op(i); |
1204 s->chroma_non_intra_matrix[j] = v; | |
1201 } | 1205 } |
1202 } | 1206 } |
1203 } | 1207 } |
1204 | 1208 |
1205 static void mpeg_decode_picture_coding_extension(MpegEncContext *s) | 1209 static void mpeg_decode_picture_coding_extension(MpegEncContext *s) |
1343 static int mpeg1_decode_sequence(AVCodecContext *avctx, | 1347 static int mpeg1_decode_sequence(AVCodecContext *avctx, |
1344 UINT8 *buf, int buf_size) | 1348 UINT8 *buf, int buf_size) |
1345 { | 1349 { |
1346 Mpeg1Context *s1 = avctx->priv_data; | 1350 Mpeg1Context *s1 = avctx->priv_data; |
1347 MpegEncContext *s = &s1->mpeg_enc_ctx; | 1351 MpegEncContext *s = &s1->mpeg_enc_ctx; |
1348 int width, height, i, v; | 1352 int width, height, i, v, j; |
1349 | 1353 |
1350 init_get_bits(&s->gb, buf, buf_size); | 1354 init_get_bits(&s->gb, buf, buf_size); |
1351 | 1355 |
1352 width = get_bits(&s->gb, 12); | 1356 width = get_bits(&s->gb, 12); |
1353 height = get_bits(&s->gb, 12); | 1357 height = get_bits(&s->gb, 12); |
1387 | 1391 |
1388 /* get matrix */ | 1392 /* get matrix */ |
1389 if (get_bits1(&s->gb)) { | 1393 if (get_bits1(&s->gb)) { |
1390 for(i=0;i<64;i++) { | 1394 for(i=0;i<64;i++) { |
1391 v = get_bits(&s->gb, 8); | 1395 v = get_bits(&s->gb, 8); |
1392 s->intra_matrix[i] = v; | 1396 j = block_permute_op(i); |
1393 s->chroma_intra_matrix[i] = v; | 1397 s->intra_matrix[j] = v; |
1398 s->chroma_intra_matrix[j] = v; | |
1394 } | 1399 } |
1395 } else { | 1400 } else { |
1396 for(i=0;i<64;i++) { | 1401 for(i=0;i<64;i++) { |
1397 v = default_intra_matrix[i]; | 1402 v = default_intra_matrix[i]; |
1398 s->intra_matrix[i] = v; | 1403 s->intra_matrix[i] = v; |
1400 } | 1405 } |
1401 } | 1406 } |
1402 if (get_bits1(&s->gb)) { | 1407 if (get_bits1(&s->gb)) { |
1403 for(i=0;i<64;i++) { | 1408 for(i=0;i<64;i++) { |
1404 v = get_bits(&s->gb, 8); | 1409 v = get_bits(&s->gb, 8); |
1405 s->non_intra_matrix[i] = v; | 1410 j = block_permute_op(i); |
1406 s->chroma_non_intra_matrix[i] = v; | 1411 s->non_intra_matrix[j] = v; |
1412 s->chroma_non_intra_matrix[j] = v; | |
1407 } | 1413 } |
1408 } else { | 1414 } else { |
1409 for(i=0;i<64;i++) { | 1415 for(i=0;i<64;i++) { |
1410 v = default_non_intra_matrix[i]; | 1416 v = default_non_intra_matrix[i]; |
1411 s->non_intra_matrix[i] = v; | 1417 s->non_intra_matrix[i] = v; |