Index: source/libvpx/vp9/decoder/vp9_decodeframe.c |
=================================================================== |
--- source/libvpx/vp9/decoder/vp9_decodeframe.c (revision 285372) |
+++ source/libvpx/vp9/decoder/vp9_decodeframe.c (working copy) |
@@ -194,7 +194,7 @@ |
int eob) { |
struct macroblockd_plane *const pd = &xd->plane[plane]; |
if (eob > 0) { |
- TX_TYPE tx_type; |
+ TX_TYPE tx_type = DCT_DCT; |
int16_t *const dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block); |
if (xd->lossless) { |
tx_type = DCT_DCT; |
@@ -1134,14 +1134,18 @@ |
if (cm->profile == PROFILE_1 || cm->profile == PROFILE_3) { |
cm->subsampling_x = vp9_rb_read_bit(rb); |
cm->subsampling_y = vp9_rb_read_bit(rb); |
- vp9_rb_read_bit(rb); // has extra plane |
+ if (vp9_rb_read_bit(rb)) |
+ vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM, |
+ "Reserved bit set"); |
} else { |
cm->subsampling_y = cm->subsampling_x = 1; |
} |
} else { |
if (cm->profile == PROFILE_1 || cm->profile == PROFILE_3) { |
cm->subsampling_y = cm->subsampling_x = 0; |
- vp9_rb_read_bit(rb); // has extra plane |
+ if (vp9_rb_read_bit(rb)) |
+ vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM, |
+ "Reserved bit set"); |
} else { |
vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM, |
"4:4:4 color not supported in profile 0"); |