Commit 98ea4759 authored by michael's avatar michael

reduce len checks, simplifies code

there is a very small chance that a stream which is damaged && unseekable && very small packet && damage to the flags && unlucky buffer state could have a valid packet after a damaged packet lost, but i think this is so unlikely that the simplification outweights it
mans if you disagree with any commit to mpeg.c just say so and ill revert it


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@7562 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent b9a74a26
......@@ -1498,20 +1498,14 @@ static int mpegps_read_pes_header(AVFormatContext *s,
}
if ((c & 0xc0) == 0x40) {
/* buffer scale & size */
if (len < 2)
goto error_redo;
get_byte(&s->pb);
c = get_byte(&s->pb);
len -= 2;
}
if ((c & 0xf0) == 0x20) {
if (len < 4)
goto error_redo;
dts = pts = get_pts(&s->pb, c);
len -= 4;
} else if ((c & 0xf0) == 0x30) {
if (len < 9)
goto error_redo;
pts = get_pts(&s->pb, c);
dts = get_pts(&s->pb, -1);
len -= 9;
......@@ -1530,15 +1524,11 @@ static int mpegps_read_pes_header(AVFormatContext *s,
goto error_redo;
if ((flags & 0xc0) == 0x80) {
dts = pts = get_pts(&s->pb, -1);
if (header_len < 5)
goto error_redo;
header_len -= 5;
len -= 5;
} if ((flags & 0xc0) == 0xc0) {
pts = get_pts(&s->pb, -1);
dts = get_pts(&s->pb, -1);
if (header_len < 10)
goto error_redo;
header_len -= 10;
len -= 10;
}
......@@ -1552,20 +1542,18 @@ static int mpegps_read_pes_header(AVFormatContext *s,
goto redo;
if (startcode == PRIVATE_STREAM_1 && !m->psm_es_type[startcode & 0xff]) {
if (len < 1)
goto error_redo;
startcode = get_byte(&s->pb);
len--;
if (startcode >= 0x80 && startcode <= 0xbf) {
/* audio: skip header */
if (len < 3)
goto error_redo;
get_byte(&s->pb);
get_byte(&s->pb);
get_byte(&s->pb);
len -= 3;
}
}
if(len<0)
goto error_redo;
if(dts != AV_NOPTS_VALUE && ppos){
int i;
for(i=0; i<s->nb_streams; i++){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment