stop if current sample is higher than sample count
Originally committed as revision 7689 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
08c8831685
commit
649348777e
@ -1494,6 +1494,10 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
|
||||
if (stsc_index + 1 < sc->sample_to_chunk_sz && i + 1 == sc->sample_to_chunk[stsc_index + 1].first)
|
||||
stsc_index++;
|
||||
for (j = 0; j < sc->sample_to_chunk[stsc_index].count; j++) {
|
||||
if (current_sample >= sc->sample_count) {
|
||||
av_log(mov->fc, AV_LOG_ERROR, "wrong sample count\n");
|
||||
goto out;
|
||||
}
|
||||
keyframe = !sc->keyframe_count || current_sample + 1 == sc->keyframes[stss_index];
|
||||
if (keyframe) {
|
||||
distance = 0;
|
||||
@ -1509,8 +1513,7 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
|
||||
current_dts += sc->stts_data[stts_index].duration / sc->time_rate;
|
||||
distance++;
|
||||
stts_sample++;
|
||||
if (current_sample + 1 < sc->sample_count)
|
||||
current_sample++;
|
||||
current_sample++;
|
||||
if (stts_index + 1 < sc->stts_count && stts_sample == sc->stts_data[stts_index].count) {
|
||||
stts_sample = 0;
|
||||
stts_index++;
|
||||
@ -1578,6 +1581,7 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
|
||||
current_dts += chunk_duration / sc->time_rate;
|
||||
}
|
||||
}
|
||||
out:
|
||||
/* adjust sample count to avindex entries */
|
||||
sc->sample_count = st->nb_index_entries;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user