[SCM] libav/experimental: rtpdec: Return AVERROR(EAGAIN) for mpegts parsing errors

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:17:46 UTC 2013


The following commit has been merged in the experimental branch:
commit 946df0598bcd9edd7a3d4f3197cadab421b712ea
Author: Martin Storsjö <martin at martin.st>
Date:   Fri Oct 15 21:32:21 2010 +0000

    rtpdec: Return AVERROR(EAGAIN) for mpegts parsing errors
    
    This indicates that there was no error that needs to be reported to the
    caller, so we can move on to parse the next packet immediately, if
    available. The only error code that ff_mpegts_parse_packet can return
    indicates that there was no packet to return from the provided data, for
    which it returns -1.
    
    Originally committed as revision 25496 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 0b88afa..8311e4c 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -471,8 +471,11 @@ static int rtp_parse_packet_internal(RTPDemuxContext *s, AVPacket *pkt,
     if (!st) {
         /* specific MPEG2TS demux support */
         ret = ff_mpegts_parse_packet(s->ts, pkt, buf, len);
+        /* The only error that can be returned from ff_mpegts_parse_packet
+         * is "no more data to return from the provided buffer", so return
+         * AVERROR(EAGAIN) for all errors */
         if (ret < 0)
-            return ret;
+            return AVERROR(EAGAIN);
         if (ret < len) {
             s->read_buf_size = len - ret;
             memcpy(s->buf, buf + ret, s->read_buf_size);
@@ -634,7 +637,7 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt,
             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 ret;
+                return AVERROR(EAGAIN);
             s->read_buf_index += ret;
             if (s->read_buf_index < s->read_buf_size)
                 return 1;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list