[FFmpeg-devel] [PATCH] mpegts: Return AVERROR(EAGAIN) instead of -1 if there isn't enough data

Martin Storsjö martin
Wed Oct 13 21:32:53 CEST 2010


On Wed, 13 Oct 2010, Baptiste Coudurier wrote:

> On 10/13/2010 01:52 AM, Martin Storsjo wrote:
> > This makes the rtpdec queue code able to process packets more efficiently,
> > keeping the queue shorter, by parsing the next packet instead of returning
> > the unidentified error code -1 as an error.
> > ---
> >   libavformat/mpegts.c |    2 +-
> >   1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> > index d2f9f1e..13a9908 100644
> > --- a/libavformat/mpegts.c
> > +++ b/libavformat/mpegts.c
> > @@ -1742,7 +1742,7 @@ int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket
> > *pkt,
> >           if (ts->stop_parse>0)
> >               break;
> >           if (len<  TS_PACKET_SIZE)
> > -            return -1;
> > +            return AVERROR(EAGAIN);
> >           if (buf[0] != 0x47) {
> >               buf++;
> >               len--;
> 
> Nope, if we couldn't read TS_PACKET_SIZE, it is an error, there is no need to
> retry.

Well then, could this piece of code return some other specific error code, 
not just the generic -1, so that the caller knows that the actual error is 
"not enough data provided"?

// Martin



More information about the ffmpeg-devel mailing list