[Ffmpeg-cvslog] r5668 - trunk/libavformat/mov.c
bcoudurier
subversion
Sat Jul 8 14:58:50 CEST 2006
Author: bcoudurier
Date: Sat Jul 8 14:58:50 2006
New Revision: 5668
Modified:
trunk/libavformat/mov.c
Log:
better handling of partial files
Modified: trunk/libavformat/mov.c
==============================================================================
--- trunk/libavformat/mov.c (original)
+++ trunk/libavformat/mov.c Sat Jul 8 14:58:50 2006
@@ -1750,9 +1750,9 @@
assert(chunk_duration % sc->time_rate == 0);
current_dts += chunk_duration / sc->time_rate;
}
- /* adjust sample count to chunk count */
- sc->sample_count = sc->chunk_count;
}
+ /* adjust sample count to avindex entries */
+ sc->sample_count = st->nb_index_entries;
}
static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
@@ -1842,11 +1842,12 @@
return -1;
/* must be done just before reading, to avoid infinite loop on sample */
sc->current_sample++;
- url_fseek(&s->pb, sample->pos, SEEK_SET);
- if (av_get_packet(&s->pb, pkt, sample->size) <= 0) {
- av_log(s, AV_LOG_ERROR, "stream %d, error reading packet at offset 0x%llx, maybe partial file\n", sc->ffindex, sample->pos);
+ if (sample->pos >= url_fsize(&s->pb)) {
+ av_log(mov->fc, AV_LOG_ERROR, "stream %d, offset 0x%llx: partial file\n", sc->ffindex, sample->pos);
return -1;
}
+ url_fseek(&s->pb, sample->pos, SEEK_SET);
+ av_get_packet(&s->pb, pkt, sample->size);
pkt->stream_index = sc->ffindex;
pkt->dts = sample->timestamp;
if (sc->ctts_data) {
More information about the ffmpeg-cvslog
mailing list