[FFmpeg-cvslog] mpegdemux: move private stream 1 handling out of mpegps_read_pes_header
Michael Niedermayer
git at videolan.org
Sat Aug 4 19:49:38 CEST 2012
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Jul 31 19:43:20 2012 +0200| [ce7cf600be62d81cddefb302c2f098672130774b] | committer: Michael Niedermayer
mpegdemux: move private stream 1 handling out of mpegps_read_pes_header
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce7cf600be62d81cddefb302c2f098672130774b
---
libavformat/mpeg.c | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index d51a693..904399c 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -349,18 +349,6 @@ static int mpegps_read_pes_header(AVFormatContext *s,
if (startcode == PRIVATE_STREAM_1) {
startcode = avio_r8(s->pb);
len--;
- if (startcode >= 0x80 && startcode <= 0xcf) {
- /* audio: skip header */
- avio_r8(s->pb);
- avio_r8(s->pb);
- avio_r8(s->pb);
- len -= 3;
- if (startcode >= 0xb0 && startcode <= 0xbf) {
- /* MLP/TrueHD audio has a 4-byte header */
- avio_r8(s->pb);
- len--;
- }
- }
}
if(len<0)
goto error_redo;
@@ -397,6 +385,22 @@ static int mpegps_read_packet(AVFormatContext *s,
if (len < 0)
return len;
+ if (startcode >= 0x80 && startcode <= 0xcf) {
+ if(len < 4)
+ goto skip;
+
+ /* audio: skip header */
+ avio_r8(s->pb);
+ avio_r8(s->pb);
+ avio_r8(s->pb);
+ len -= 3;
+ if (startcode >= 0xb0 && startcode <= 0xbf) {
+ /* MLP/TrueHD audio has a 4-byte header */
+ avio_r8(s->pb);
+ len--;
+ }
+ }
+
/* now find stream */
for(i=0;i<s->nb_streams;i++) {
st = s->streams[i];
More information about the ffmpeg-cvslog
mailing list