rtpdec: Return AVERROR(EAGAIN) if out of data for mpegts, pass returned error codes...
authorMartin Storsjö <martin@martin.st>
Wed, 13 Oct 2010 08:13:53 +0000 (08:13 +0000)
committerMartin Storsjö <martin@martin.st>
Wed, 13 Oct 2010 08:13:53 +0000 (08:13 +0000)
Originally committed as revision 25459 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtpdec.c

index 240229a..ed2d0a4 100644 (file)
@@ -472,7 +472,7 @@ static int rtp_parse_packet_internal(RTPDemuxContext *s, AVPacket *pkt,
         /* specific MPEG2TS demux support */
         ret = ff_mpegts_parse_packet(s->ts, pkt, buf, len);
         if (ret < 0)
-            return -1;
+            return ret;
         if (ret < len) {
             s->read_buf_size = len - ret;
             memcpy(s->buf, buf + ret, s->read_buf_size);
@@ -630,11 +630,11 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt,
         } else {
             // TODO: Move to a dynamic packet handler (like above)
             if (s->read_buf_index >= s->read_buf_size)
-                return -1;
+                return AVERROR(EAGAIN);
             ret = ff_mpegts_parse_packet(s->ts, pkt, s->buf + s->read_buf_index,
                                       s->read_buf_size - s->read_buf_index);
             if (ret < 0)
-                return -1;
+                return ret;
             s->read_buf_index += ret;
             if (s->read_buf_index < s->read_buf_size)
                 return 1;