From: Ronald S. Bultje Date: Sun, 26 Jul 2009 19:09:35 +0000 (+0000) Subject: Add handling of EAGAIN at packet boundaries. See "[PATCH] RTSP-MS 14/15: X-Git-Tag: v0.6~3732 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2078ca16eefda6ce23f129898f6097e40d9a97b4;p=platform%2Fupstream%2Flibav.git Add handling of EAGAIN at packet boundaries. See "[PATCH] RTSP-MS 14/15: ASF packet parsing" thread for discussion / reasoning. Originally committed as revision 19509 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index df39bb9..0995b5a 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -609,6 +609,14 @@ static int ff_asf_get_packet(AVFormatContext *s, ByteIOContext *pb) } if (c != 0x82) { + /** + * This code allows handling of -EAGAIN at packet boundaries (i.e. + * if the packet sync code above triggers -EAGAIN). This does not + * imply complete -EAGAIN handling support at random positions in + * the stream. + */ + if (url_ferror(pb) == AVERROR(EAGAIN)) + return AVERROR(EAGAIN); if (!url_feof(pb)) av_log(s, AV_LOG_ERROR, "ff asf bad header %x at:%"PRId64"\n", c, url_ftell(pb)); }