return servers[0].lookup_stream_by_url(url);
}
-int ServerPool::add_stream(const string &url, size_t backlog_size, size_t prebuffering_bytes, Stream::Encoding encoding, Stream::Encoding src_encoding)
+int ServerPool::add_stream(const string &url,
+ const string &hls_url,
+ size_t backlog_size,
+ size_t prebuffering_bytes,
+ Stream::Encoding encoding,
+ Stream::Encoding src_encoding,
+ unsigned hls_frag_duration,
+ size_t hls_backlog_margin,
+ const string &allow_origin)
{
// Adding more HTTP streams after UDP streams would cause the UDP stream
// indices to move around, which is obviously not good.
assert(udp_streams.empty());
for (int i = 0; i < num_servers; ++i) {
- int stream_index = servers[i].add_stream(url, backlog_size, prebuffering_bytes, encoding, src_encoding);
+ int stream_index = servers[i].add_stream(url, hls_url, backlog_size, prebuffering_bytes, encoding, src_encoding, hls_frag_duration, hls_backlog_margin, allow_origin);
assert(stream_index == num_http_streams);
}
return num_http_streams++;
}
}
-void ServerPool::add_data(int stream_index, const char *data, size_t bytes, uint16_t metacube_flags)
+void ServerPool::add_data(int stream_index, const char *data, size_t bytes, uint16_t metacube_flags, const RationalPTS &pts)
{
assert(stream_index >= 0 && stream_index < ssize_t(num_http_streams + udp_streams.size()));
// HTTP stream.
for (int i = 0; i < num_servers; ++i) {
- servers[i].add_data_deferred(stream_index, data, bytes, metacube_flags);
+ servers[i].add_data_deferred(stream_index, data, bytes, metacube_flags, pts);
}
}
servers[i].set_src_encoding(stream_index, encoding);
}
}
+
+void ServerPool::set_hls_frag_duration(int stream_index, unsigned hls_frag_duration)
+{
+ for (int i = 0; i < num_servers; ++i) {
+ servers[i].set_hls_frag_duration(stream_index, hls_frag_duration);
+ }
+}
+
+void ServerPool::set_hls_backlog_margin(int stream_index, size_t hls_backlog_margin)
+{
+ for (int i = 0; i < num_servers; ++i) {
+ servers[i].set_hls_backlog_margin(stream_index, hls_backlog_margin);
+ }
+}
+
+void ServerPool::set_allow_origin(int stream_index, const std::string &allow_origin)
+{
+ for (int i = 0; i < num_servers; ++i) {
+ servers[i].set_allow_origin(stream_index, allow_origin);
+ }
+}
+
+void ServerPool::register_hls_url(int stream_index, const string &hls_url)
+{
+ for (int i = 0; i < num_servers; ++i) {
+ servers[i].register_hls_url(stream_index, hls_url);
+ }
+}