vc1dec: Don't apply the loop filter on fields

Fixes read of uninitialized memory.

Based on a patch by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
pull/18/head
Martin Storsjö 12 years ago
parent fe06795d78
commit 5d9d8461fb
  1. 5
      libavcodec/vc1dec.c
  2. 58
      tests/ref/fate/vc1_sa10143

@ -4619,7 +4619,8 @@ static void vc1_decode_p_blocks(VC1Context *v)
break;
}
apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY);
apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY) &&
v->fcm == PROGRESSIVE;
s->first_slice_line = 1;
memset(v->cbp_base, 0, sizeof(v->cbp_base[0])*2*s->mb_stride);
for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
@ -4633,7 +4634,7 @@ static void vc1_decode_p_blocks(VC1Context *v)
else if (v->fcm == ILACE_FRAME)
vc1_decode_p_mb_intfr(v);
else vc1_decode_p_mb(v);
if (s->mb_y != s->start_mb_y && apply_loop_filter && v->fcm == PROGRESSIVE)
if (s->mb_y != s->start_mb_y && apply_loop_filter)
vc1_apply_p_loop_filter(v);
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) {
// TODO: may need modification to handle slice coding

@ -1,31 +1,31 @@
#tb 0: 1/25
0, 0, 0, 1, 518400, 0x89407f55
0, 2, 2, 1, 518400, 0xeb8d84a1
0, 3, 3, 1, 518400, 0x2121ff57
0, 4, 4, 1, 518400, 0xd81adb3d
0, 5, 5, 1, 518400, 0x01e36aa2
0, 6, 6, 1, 518400, 0x6b802361
0, 7, 7, 1, 518400, 0xc8403c77
0, 8, 8, 1, 518400, 0xdd342b5d
0, 9, 9, 1, 518400, 0x2100eea5
0, 10, 10, 1, 518400, 0x92a22da6
0, 11, 11, 1, 518400, 0x6bacdef7
0, 12, 12, 1, 518400, 0x4a00715f
0, 13, 13, 1, 518400, 0x59b98727
0, 14, 14, 1, 518400, 0xbf912ee1
0, 15, 15, 1, 518400, 0x8c966cd6
0, 16, 16, 1, 518400, 0x2c9a2535
0, 17, 17, 1, 518400, 0x29085c06
0, 18, 18, 1, 518400, 0x46ae6b7d
0, 19, 19, 1, 518400, 0x283100f4
0, 20, 20, 1, 518400, 0x2731b5ff
0, 21, 21, 1, 518400, 0x1132ea54
0, 22, 22, 1, 518400, 0x37cbe539
0, 23, 23, 1, 518400, 0x08ff75cf
0, 24, 24, 1, 518400, 0xafb6bc45
0, 25, 25, 1, 518400, 0x19d3873d
0, 26, 26, 1, 518400, 0xd494a8be
0, 27, 27, 1, 518400, 0x285f41ef
0, 28, 28, 1, 518400, 0xd4b1ffa1
0, 29, 29, 1, 518400, 0xc3876c3a
0, 30, 30, 1, 518400, 0xb73dbb62
0, 2, 2, 1, 518400, 0x1480849d
0, 3, 3, 1, 518400, 0x0e69ff59
0, 4, 4, 1, 518400, 0x00d6db06
0, 5, 5, 1, 518400, 0x1a5b6a69
0, 6, 6, 1, 518400, 0xc1a1232e
0, 7, 7, 1, 518400, 0x9a4e3c54
0, 8, 8, 1, 518400, 0x04122b44
0, 9, 9, 1, 518400, 0x0fcfeebc
0, 10, 10, 1, 518400, 0xc7882dc1
0, 11, 11, 1, 518400, 0x9d79df09
0, 12, 12, 1, 518400, 0xff6b716f
0, 13, 13, 1, 518400, 0x638a8746
0, 14, 14, 1, 518400, 0x07572efb
0, 15, 15, 1, 518400, 0x306f6cef
0, 16, 16, 1, 518400, 0xd7602518
0, 17, 17, 1, 518400, 0x49ab5bf5
0, 18, 18, 1, 518400, 0x3c736b6c
0, 19, 19, 1, 518400, 0x95ae00c9
0, 20, 20, 1, 518400, 0x7b9ab64e
0, 21, 21, 1, 518400, 0x5205ea68
0, 22, 22, 1, 518400, 0xb486e618
0, 23, 23, 1, 518400, 0xa3217616
0, 24, 24, 1, 518400, 0xc66bbc56
0, 25, 25, 1, 518400, 0xf024872a
0, 26, 26, 1, 518400, 0x97d2a8ba
0, 27, 27, 1, 518400, 0xa3a2418e
0, 28, 28, 1, 518400, 0x08460005
0, 29, 29, 1, 518400, 0x50fb6c94
0, 30, 30, 1, 518400, 0x5584bb40

Loading…
Cancel
Save