forked from FFmpeg/FFmpeg
simplify error handling in mov_read_default
Originally committed as revision 21024 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
cb41b2b6e0
commit
a510991cff
1 changed files with 6 additions and 5 deletions
|
@ -181,11 +181,10 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||
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 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||
} 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 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||
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)
|
||||
|
|
Loading…
Add table
Reference in a new issue