diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2016-03-02 18:52:23 -0500 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2016-03-05 08:26:36 -0500 |
commit | 7d4a1ff344cbf969ac648642a0fd8484fd5b8637 (patch) | |
tree | 4f3c384d2a5a4d53a91f619cd2bd45395babd3da | |
parent | 1389b4c18d1042c196603ba66c25113bcee1738b (diff) | |
download | ffmpeg-7d4a1ff344cbf969ac648642a0fd8484fd5b8637.tar.gz |
mpegvideo: Fix undefined negative shifts in ff_init_block_index
Found-by: gcc5-ubsan.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-rw-r--r-- | libavcodec/mpegvideo.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index e0787a6790..5974e18b95 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -1754,9 +1754,9 @@ void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename s->block_index[5]= s->mb_stride*(s->mb_y + s->mb_height + 2) + s->b8_stride*s->mb_height*2 + s->mb_x - 1; //block_index is not used by mpeg2, so it is not affected by chroma_format - s->dest[0] = s->current_picture.f->data[0] + ((s->mb_x - 1) << mb_size); - s->dest[1] = s->current_picture.f->data[1] + ((s->mb_x - 1) << (mb_size - s->chroma_x_shift)); - s->dest[2] = s->current_picture.f->data[2] + ((s->mb_x - 1) << (mb_size - s->chroma_x_shift)); + s->dest[0] = s->current_picture.f->data[0] + (s->mb_x - 1) * (1 << mb_size); + s->dest[1] = s->current_picture.f->data[1] + (s->mb_x - 1) * (1 << (mb_size - s->chroma_x_shift)); + s->dest[2] = s->current_picture.f->data[2] + (s->mb_x - 1) * (1 << (mb_size - s->chroma_x_shift)); if(!(s->pict_type==AV_PICTURE_TYPE_B && s->avctx->draw_horiz_band && s->picture_structure==PICT_FRAME)) { |