Mercurial > libavformat.hg
changeset 4271:f9ec55b30dfa libavformat
Use EAGAIN return, primarely intended as example of EAGAIN useage.
author | michael |
---|---|
date | Thu, 22 Jan 2009 12:08:06 +0000 |
parents | 96a3395e803b |
children | b3da2fcce8ab |
files | flvdec.c |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/flvdec.c Thu Jan 22 12:06:02 2009 +0000 +++ b/flvdec.c Thu Jan 22 12:08:06 2009 +0000 @@ -309,7 +309,6 @@ int64_t dts, pts = AV_NOPTS_VALUE; AVStream *st = NULL; - retry: for(;;){ pos = url_ftell(s->pb); url_fskip(s->pb, 4); /* size of previous packet */ @@ -345,7 +344,7 @@ av_log(s, AV_LOG_ERROR, "skipping flv packet: type %d, size %d, flags %d\n", type, size, flags); skip: url_fseek(s->pb, next, SEEK_SET); - continue; + return AVERROR(EAGAIN); } /* skip empty data packets */ @@ -369,7 +368,7 @@ || st->discard >= AVDISCARD_ALL ){ url_fseek(s->pb, next, SEEK_SET); - continue; + return AVERROR(EAGAIN); } if ((flags & FLV_VIDEO_FRAMETYPE_MASK) == FLV_FRAME_KEY) av_add_index_entry(st, pos, dts, size, 0, AVINDEX_KEYFRAME); @@ -420,7 +419,7 @@ if (type == 0) { if ((ret = flv_get_extradata(s, st, size)) < 0) return ret; - goto retry; + return AVERROR(EAGAIN); } }