summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo_parser.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-01-18 04:39:41 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-01-18 04:52:28 +0100
commit741fa0493b94946d4b9bae37e9f4270766f74534 (patch)
tree9f15c966bb4ae8ac0acdfc91ff1e45e59d4d6f22 /libavcodec/mpegvideo_parser.c
parent14f3e8b821d69e51b9a0e618e854bca3434880eb (diff)
downloadffmpeg-741fa0493b94946d4b9bae37e9f4270766f74534.tar.gz
avcodec/mpegvideo_parser: more robust dimension setup
Before this missing seq headers could have led to wrong dimensions Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mpegvideo_parser.c')
-rw-r--r--libavcodec/mpegvideo_parser.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c
index 0159421b56..8196ecaecb 100644
--- a/libavcodec/mpegvideo_parser.c
+++ b/libavcodec/mpegvideo_parser.c
@@ -90,8 +90,8 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
pc->progressive_sequence = buf[1] & (1 << 3);
avctx->has_b_frames= !(buf[5] >> 7);
- pc->width |=(horiz_size_ext << 12);
- pc->height |=( vert_size_ext << 12);
+ pc->width = (pc->width & 0xFFF) | (horiz_size_ext << 12);
+ pc->height = (pc->height& 0xFFF) | ( vert_size_ext << 12);
bit_rate = (bit_rate&0x3FFFF) | (bit_rate_ext << 18);
if(did_set_size)
ff_set_dimensions(avctx, pc->width, pc->height);