mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
fixing some 64bit bugs
Originally committed as revision 867 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
405469cefd
commit
4dd0e44f14
@ -2900,7 +2900,7 @@ static int h263_decode_block(MpegEncContext * s, DCTELEM * block,
|
||||
if (s->h263_rv10 && level == -128) {
|
||||
/* XXX: should patch encoder too */
|
||||
level = get_bits(&s->gb, 12);
|
||||
level = (level << 20) >> 20;
|
||||
level= (level + ((-1)<<11)) ^ ((-1)<<11); //sign extension
|
||||
}
|
||||
} else {
|
||||
run = rl->table_run[code];
|
||||
|
@ -1049,7 +1049,7 @@ static int mpeg1_decode_block(MpegEncContext *s,
|
||||
/* escape */
|
||||
run = get_bits(&s->gb, 6);
|
||||
level = get_bits(&s->gb, 8);
|
||||
level = (level << 24) >> 24;
|
||||
level= (level + ((-1)<<7)) ^ ((-1)<<7); //sign extension
|
||||
if (level == -128) {
|
||||
level = get_bits(&s->gb, 8) - 256;
|
||||
} else if (level == 0) {
|
||||
@ -1128,7 +1128,7 @@ static int mpeg2_decode_block_non_intra(MpegEncContext *s,
|
||||
/* escape */
|
||||
run = get_bits(&s->gb, 6);
|
||||
level = get_bits(&s->gb, 12);
|
||||
level = (level << 20) >> 20;
|
||||
level= (level + ((-1)<<11)) ^ ((-1)<<11); //sign extension
|
||||
} else {
|
||||
run = rl->table_run[code];
|
||||
level = rl->table_level[code];
|
||||
@ -1211,7 +1211,7 @@ static int mpeg2_decode_block_intra(MpegEncContext *s,
|
||||
/* escape */
|
||||
run = get_bits(&s->gb, 6);
|
||||
level = get_bits(&s->gb, 12);
|
||||
level = (level << 20) >> 20;
|
||||
level= (level + ((-1)<<11)) ^ ((-1)<<11); //sign extension
|
||||
} else {
|
||||
run = rl->table_run[code];
|
||||
level = rl->table_level[code];
|
||||
|
Loading…
Reference in New Issue
Block a user