Browse code

do not return an error, but warn and recover when encountering an audio packet that should countain a signaled mpeg-pes packet.

Originally committed as revision 11428 to svn://svn.ffmpeg.org/ffmpeg/trunk

Ivo van Poorten authored on 2008/01/06 07:27:49
Showing 1 changed files
... ...
@@ -66,6 +66,7 @@ static int pva_read_packet(AVFormatContext *s, AVPacket *pkt) {
66 66
     int ret, syncword, streamid, reserved, flags, length, pts_flag;
67 67
     int64_t pva_pts = AV_NOPTS_VALUE;
68 68
 
69
+recover:
69 70
     syncword = get_be16(pb);
70 71
     streamid = get_byte(pb);
71 72
     get_byte(pb);               /* counter not used */
... ...
@@ -111,8 +112,10 @@ static int pva_read_packet(AVFormatContext *s, AVPacket *pkt) {
111 111
             pes_header_data_length = get_byte(pb);
112 112
 
113 113
             if (pes_signal != 1) {
114
-                av_log(s, AV_LOG_ERROR, "expected signaled PES packet\n");
115
-                return AVERROR(EIO);
114
+                av_log(s, AV_LOG_WARNING, "expected signaled PES packet, "
115
+                                          "trying to recover\n");
116
+                url_fskip(pb, length - 9);
117
+                goto recover;
116 118
             }
117 119
 
118 120
             get_buffer(pb, pes_header_data, pes_header_data_length);