X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=stream.h;h=22a162df0f753bbb70fa3844ba534e75d3bb666c;hb=8f44468bfe4a1d1607b0ab7044c3071605ae1fa7;hp=a4aa642b1b81cbb5a336cd138e3fe8d94122c6f7;hpb=340489a8e732519182ecbc92116e7dfa2997143c;p=cubemap diff --git a/stream.h b/stream.h index a4aa642..22a162d 100644 --- a/stream.h +++ b/stream.h @@ -15,7 +15,10 @@ class StreamProto; struct Client; struct Stream { - Stream(const std::string &stream_id, size_t backlog_size); + // Must be in sync with StreamConfig::Encoding. + enum Encoding { STREAM_ENCODING_RAW = 0, STREAM_ENCODING_METACUBE }; + + Stream(const std::string &stream_id, size_t backlog_size, Encoding encoding); ~Stream(); // Serialization/deserialization. @@ -27,8 +30,15 @@ struct Stream { std::string stream_id; - // The HTTP response header, plus the video stream header (if any). - std::string header; + // The HTTP response header, without the trailing double newline. + std::string http_header; + + // The video stream header (if any). + std::string stream_header; + + // What encoding we apply to the outgoing data (usually raw, but can also + // be Metacube, for reflecting to another Cubemap instance). + Encoding encoding; // The stream data itself, stored in a circular buffer. // @@ -73,6 +83,8 @@ struct Stream { private: Stream(const Stream& other); + + void add_data_raw(const char *data, ssize_t bytes); }; #endif // !defined(_STREAM_H)