summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-05-26 12:59:48 +0200
committerwm4 <wm4@nowhere>2015-05-26 12:59:48 +0200
commitbdcd25d3c23b49704f3abe78dc0c523f20a71d45 (patch)
tree8e99dbab070e66281ca2aa3f8f2d724d33b8715f
parent302901ddaf452903e9ceea7a9928d1ade2cc6b10 (diff)
downloadmpv-bdcd25d3c23b49704f3abe78dc0c523f20a71d45.tar.bz2
mpv-bdcd25d3c23b49704f3abe78dc0c523f20a71d45.tar.xz
demux: don't get stuck on some cases of timestamp resets
In this case, streaming ogg via mpd over icecast made it buffer infinitely on new tracks.
-rw-r--r--demux/demux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/demux/demux.c b/demux/demux.c
index b99d0263c9..d4754b7bb0 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -389,7 +389,8 @@ static bool read_packet(struct demux_internal *in)
read_more |= ds->active && !ds->head;
packs += ds->packs;
bytes += ds->bytes;
- if (ds->active && ds->last_ts != MP_NOPTS_VALUE && in->min_secs > 0)
+ if (ds->active && ds->last_ts != MP_NOPTS_VALUE && in->min_secs > 0 &&
+ ds->last_ts >= ds->base_ts)
read_more |= ds->last_ts - ds->base_ts < in->min_secs;
}
MP_DBG(in, "packets=%zd, bytes=%zd, active=%d, more=%d\n",