summaryrefslogtreecommitdiff
path: root/libavformat/mpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2007-01-17 10:55:01 +0000
committerMichael Niedermayer <michaelni@gmx.at>2007-01-17 10:55:01 +0000
commitb90ba24b9a0975c410409116e00c67410a4091a5 (patch)
treecc477e99cb3fb6de107b2a7e06c318c1724df622 /libavformat/mpeg.c
parent6845801f821f370bf4445702407b346a1be55d3a (diff)
simplify pts/dts reading
Originally committed as revision 7565 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/mpeg.c')
-rw-r--r--libavformat/mpeg.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 7e6a6e8d85..cff9fe2b1e 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -1502,13 +1502,13 @@ static int mpegps_read_pes_header(AVFormatContext *s,
c = get_byte(&s->pb);
len -= 2;
}
- if ((c & 0xf0) == 0x20) {
+ if ((c & 0xe0) == 0x20) {
dts = pts = get_pts(&s->pb, c);
len -= 4;
- } else if ((c & 0xf0) == 0x30) {
- pts = get_pts(&s->pb, c);
- dts = get_pts(&s->pb, -1);
- len -= 9;
+ if (c & 0x10){
+ dts = get_pts(&s->pb, -1);
+ len -= 5;
+ }
} else if ((c & 0xc0) == 0x80) {
/* mpeg 2 PES */
#if 0 /* some streams have this field set for no apparent reason */
@@ -1522,15 +1522,15 @@ static int mpegps_read_pes_header(AVFormatContext *s,
len -= 2;
if (header_len > len)
goto error_redo;
- if ((flags & 0xc0) == 0x80) {
+ if (flags & 0x80) {
dts = pts = get_pts(&s->pb, -1);
header_len -= 5;
len -= 5;
- } if ((flags & 0xc0) == 0xc0) {
- pts = get_pts(&s->pb, -1);
- dts = get_pts(&s->pb, -1);
- header_len -= 10;
- len -= 10;
+ if (flags & 0x40) {
+ dts = get_pts(&s->pb, -1);
+ header_len -= 5;
+ len -= 5;
+ }
}
len -= header_len;
while (header_len > 0) {