From d72af7eae68766b62560bdb171302bcc44d98ec2 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 23 Jul 2015 00:01:39 +0200 Subject: [PATCH] Respect prebuffering_bytes= on existing streams when reloading. --- main.cpp | 1 + server.cpp | 7 +++++++ server.h | 1 + serverpool.cpp | 7 +++++++ serverpool.h | 3 +++ 5 files changed, 19 insertions(+) diff --git a/main.cpp b/main.cpp index 2080d73..32d654c 100644 --- a/main.cpp +++ b/main.cpp @@ -185,6 +185,7 @@ void create_streams(const Config &config, stream_index = servers->lookup_stream_by_url(stream_config.url); assert(stream_index != -1); servers->set_backlog_size(stream_index, stream_config.backlog_size); + servers->set_prebuffering_bytes(stream_index, stream_config.prebuffering_bytes); servers->set_encoding(stream_index, Stream::Encoding(stream_config.encoding)); } diff --git a/server.cpp b/server.cpp index 2f7a332..33a335a 100644 --- a/server.cpp +++ b/server.cpp @@ -317,6 +317,13 @@ void Server::set_backlog_size(int stream_index, size_t new_size) assert(stream_index >= 0 && stream_index < ssize_t(streams.size())); streams[stream_index]->set_backlog_size(new_size); } + +void Server::set_prebuffering_bytes(int stream_index, size_t new_amount) +{ + MutexLock lock(&mutex); + assert(stream_index >= 0 && stream_index < ssize_t(streams.size())); + streams[stream_index]->prebuffering_bytes = new_amount; +} void Server::set_encoding(int stream_index, Stream::Encoding encoding) { diff --git a/server.h b/server.h index feea863..79c35f8 100644 --- a/server.h +++ b/server.h @@ -59,6 +59,7 @@ public: int add_stream_from_serialized(const StreamProto &stream, int data_fd); int lookup_stream_by_url(const std::string &url) const; void set_backlog_size(int stream_index, size_t new_size); + void set_prebuffering_bytes(int stream_index, size_t new_amount); void set_encoding(int stream_index, Stream::Encoding encoding); private: diff --git a/serverpool.cpp b/serverpool.cpp index 310a0a7..a834e8c 100644 --- a/serverpool.cpp +++ b/serverpool.cpp @@ -201,6 +201,13 @@ void ServerPool::set_backlog_size(int stream_index, size_t new_size) } } +void ServerPool::set_prebuffering_bytes(int stream_index, size_t new_amount) +{ + for (int i = 0; i < num_servers; ++i) { + servers[i].set_prebuffering_bytes(stream_index, new_amount); + } +} + void ServerPool::set_encoding(int stream_index, Stream::Encoding encoding) { for (int i = 0; i < num_servers; ++i) { diff --git a/serverpool.h b/serverpool.h index 4b56544..e0c59cd 100644 --- a/serverpool.h +++ b/serverpool.h @@ -49,6 +49,9 @@ public: // Changes the given stream's backlog size on all the servers. void set_backlog_size(int stream_index, size_t new_size); + // Changes the given stream's amount of forced prebuffering on all the servers. + void set_prebuffering_bytes(int stream_index, size_t new_amount); + // Changes the given stream's encoding type on all the servers. void set_encoding(int stream_index, Stream::Encoding encoding); -- 2.39.2