From 683141e8898415ba949161971b0c7f5508c92d14 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 23 Jul 2015 17:54:19 +0200 Subject: [PATCH] Reset the list of suitable starting points when changing header. --- server.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/server.cpp b/server.cpp index 946dc5d..8a8e867 100644 --- a/server.cpp +++ b/server.cpp @@ -337,8 +337,18 @@ void Server::set_header(int stream_index, const string &http_header, const strin MutexLock lock(&mutex); assert(stream_index >= 0 && stream_index < ssize_t(streams.size())); streams[stream_index]->http_header = http_header; + + if (stream_header != streams[stream_index]->stream_header) { + // We cannot start at any of the older starting points anymore, + // since they'd get the wrong header for the stream (not to mention + // that a changed header probably means the stream restarted, + // which means any client starting on the old one would probably + // stop playing properly at the change point). Next block + // should be a suitable starting point (if not, something is + // pretty strange), so it will fill up again soon enough. + streams[stream_index]->suitable_starting_points.clear(); + } streams[stream_index]->stream_header = stream_header; - // FIXME: We should reset last_suitable_starting_point at this point. } void Server::set_pacing_rate(int stream_index, uint32_t pacing_rate) -- 2.39.2