]> git.sesse.net Git - cubemap/blobdiff - server.cpp
Release Cubemap 1.3.2.
[cubemap] / server.cpp
index 9b83ddccd4fd0ff53f39bd08a702495312282d5b..608ed6b70b504e0d0ff4152f77568b6a5fac1236 100644 (file)
@@ -295,11 +295,11 @@ int Server::lookup_stream_by_url(const string &url) const
        return stream_url_it->second;
 }
 
-int Server::add_stream(const string &url, size_t backlog_size, size_t prebuffering_bytes, Stream::Encoding encoding)
+int Server::add_stream(const string &url, size_t backlog_size, size_t prebuffering_bytes, Stream::Encoding encoding, Stream::Encoding src_encoding)
 {
        MutexLock lock(&mutex);
        stream_url_map.insert(make_pair(url, streams.size()));
-       streams.push_back(new Stream(url, backlog_size, prebuffering_bytes, encoding));
+       streams.push_back(new Stream(url, backlog_size, prebuffering_bytes, encoding, src_encoding));
        return streams.size() - 1;
 }
 
@@ -331,6 +331,13 @@ void Server::set_encoding(int stream_index, Stream::Encoding encoding)
        assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
        streams[stream_index]->encoding = encoding;
 }
+
+void Server::set_src_encoding(int stream_index, Stream::Encoding encoding)
+{
+       MutexLock lock(&mutex);
+       assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
+       streams[stream_index]->src_encoding = encoding;
+}
        
 void Server::set_header(int stream_index, const string &http_header, const string &stream_header)
 {
@@ -366,10 +373,10 @@ void Server::add_gen204(const std::string &url, const std::string &allow_origin)
        ping_url_map[url] = allow_origin;
 }
 
-void Server::add_data_deferred(int stream_index, const char *data, size_t bytes, StreamStartSuitability suitable_for_stream_start)
+void Server::add_data_deferred(int stream_index, const char *data, size_t bytes, uint16_t metacube_flags)
 {
        assert(stream_index >= 0 && stream_index < ssize_t(streams.size()));
-       streams[stream_index]->add_data_deferred(data, bytes, suitable_for_stream_start);
+       streams[stream_index]->add_data_deferred(data, bytes, metacube_flags);
 }
 
 // See the .h file for postconditions after this function.     
@@ -646,7 +653,7 @@ int Server::parse_request(Client *client)
 
        string url = request_tokens[1];
        client->url = url;
-       if (url.find("?backlog") == url.size() - 8) {
+       if (url.size() > 8 && url.find("?backlog") == url.size() - 8) {
                client->stream_pos = -2;
                url = url.substr(0, url.size() - 8);
        } else {