- Stream *stream = streams[stream_index].get();
- stream->http_header = http_header;
-
- if (stream_header != stream->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.
- stream->suitable_starting_points.clear();
-
- if (!stream->fragments.empty()) {
- stream->fragments.clear();
- ++stream->discontinuity_counter;
- stream->clear_hls_playlist_cache();
- }
- }
- stream->stream_header = stream_header;
+ streams[stream_index]->set_header(http_header, stream_header);
+}
+
+void Server::set_unavailable(int stream_index)
+{
+ lock_guard<mutex> lock(mu);
+ assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
+ streams[stream_index]->set_unavailable();