# HG changeset patch # User bcoudurier # Date 1206097494 0 # Node ID c082ee7573b2747df1bc660ff2435fa5e5209a87 # Parent 2e6b9701594778cb4c8011e428319d053093f97c simplify, and only stop parsing when non streamable diff -r 2e6b97015947 -r c082ee7573b2 mov.c --- a/mov.c Fri Mar 21 11:02:13 2008 +0000 +++ b/mov.c Fri Mar 21 11:04:54 2008 +0000 @@ -191,7 +191,7 @@ 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 */ @@ -390,9 +390,6 @@ 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 */ } @@ -416,8 +413,6 @@ /* 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 */ }