offset_t start_pos = url_ftell(pb);
int64_t left;
err = mov_default_parse_table[i].parse(c, pb, a);
- if (c->found_moov && c->found_mdat)
+ if (url_is_streamed(pb) && c->found_moov && c->found_mdat)
break;
left = a.size - url_ftell(pb) + start_pos;
if (left > 0) /* skip garbage at atom end */
if(atom.size == 0) /* wrong one (MP4) */
return 0;
c->found_mdat=1;
- if(c->found_moov)
- return 1; /* found both, just go */
- url_fskip(pb, atom.size);
return 0; /* now go for moov */
}
/* we parsed the 'moov' atom, we can terminate the parsing as soon as we find the 'mdat' */
/* so we don't parse the whole file if over a network */
c->found_moov=1;
- if(c->found_mdat)
- return 1; /* found both, just go */
return 0; /* now go for mdat */
}