Mercurial > libavformat.hg
changeset 5496:324c7c25e4ad libavformat
simplify error handling in mov_read_default
author | bcoudurier |
---|---|
date | Mon, 04 Jan 2010 22:58:19 +0000 |
parents | cce2ae0f48a0 |
children | 59df3b64dc89 |
files | mov.c |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mov.c Mon Jan 04 22:51:38 2010 +0000 +++ b/mov.c Mon Jan 04 22:58:19 2010 +0000 @@ -181,11 +181,10 @@ int64_t total_size = 0; MOVAtom a; int i; - int err = 0; if (atom.size < 0) atom.size = INT64_MAX; - while(((total_size + 8) < atom.size) && !url_feof(pb) && !err) { + while(((total_size + 8) < atom.size) && !url_feof(pb)) { int (*parse)(MOVContext*, ByteIOContext*, MOVAtom) = NULL; a.size = atom.size; a.type=0; @@ -226,7 +225,9 @@ } else { int64_t start_pos = url_ftell(pb); int64_t left; - err = parse(c, pb, a); + int err = parse(c, pb, a); + if (err < 0) + return err; if (url_is_streamed(pb) && c->found_moov && c->found_mdat) break; left = a.size - url_ftell(pb) + start_pos; @@ -237,10 +238,10 @@ total_size += a.size; } - if (!err && total_size < atom.size && atom.size < 0x7ffff) + if (total_size < atom.size && atom.size < 0x7ffff) url_fskip(pb, atom.size - total_size); - return err; + return 0; } static int mov_read_dref(MOVContext *c, ByteIOContext *pb, MOVAtom atom)