X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=udpinput.h;h=b3f504aa20255943302a77e5673489fd89ba4831;hp=481b006549f9f249a7ddd971874a78353c26dcd9;hb=70c47a998c5aa2eb536c3c8f71f3178cd217a14d;hpb=3b8ad87137cff7522ed12f4675d5ff26933bc94a diff --git a/udpinput.h b/udpinput.h index 481b006..b3f504a 100644 --- a/udpinput.h +++ b/udpinput.h @@ -1,6 +1,7 @@ #ifndef _UDPINPUT_H #define _UDPINPUT_H 1 +#include #include #include @@ -19,7 +20,9 @@ public: virtual std::string get_url() const { return url; } virtual void close_socket(); - virtual void add_destination(const std::string &stream_id); + virtual void add_destination(int stream_index); + + virtual InputStats get_stats() const; private: // Actually gets the packets. @@ -28,17 +31,26 @@ private: // Create the HTTP header. void construct_header(); - std::vector stream_ids; + std::vector stream_indices; // The URL and its parsed components. std::string url; - std::string host, port, path; + std::string user, host, port, path; // The HTTP header we're sending to clients. std::string http_header; // The socket we are receiving on (or -1). int sock; + + // Temporary buffer, sized for the maximum size of an UDP packet. + char packet_buf[65536]; + + // Mutex protecting . + mutable pthread_mutex_t stats_mutex; + + // The current statistics for this connection. Protected by . + InputStats stats; }; #endif // !defined(_UDPINPUT_H)