# HG changeset patch # User bcoudurier # Date 1197745722 0 # Node ID 3fa92d78424c39a1c197593aa6c000b8bb9d3f11 # Parent 9d53cc092c552d68e3c4f9a4c592c70e8e8db486 choose next sample by sample position when streams' next dts difference is below AV_TIME_BASE, to reduce seeking, needed for slow underlying protocols (http), a slightly modified patch from elupus, elupus at ecce dot se diff -r 9d53cc092c55 -r 3fa92d78424c mov.c --- a/mov.c Sat Dec 15 16:54:58 2007 +0000 +++ b/mov.c Sat Dec 15 19:08:42 2007 +0000 @@ -1511,7 +1511,9 @@ int64_t dts = av_rescale(current_sample->timestamp * (int64_t)msc->time_rate, AV_TIME_BASE, msc->time_scale); dprintf(s, "stream %d, sample %d, dts %"PRId64"\n", i, msc->current_sample, dts); - if (dts < best_dts) { + if (!sample || + ((FFABS(best_dts - dts) <= AV_TIME_BASE && current_sample->pos < sample->pos) || + (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts))) { sample = current_sample; best_dts = dts; sc = msc;