X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=stream.cpp;h=0b494fb8d5527d4ba51290d62b109ad510f4cc9a;hp=734110c9f47e79ee18586dff5afaabb0f1b311c3;hb=1135808bf9df44b879994e6dac07a31eb78c2fdb;hpb=3b73724f08274a2c5a435d6a834bc10fcf3db41b diff --git a/stream.cpp b/stream.cpp index 734110c..0b494fb 100644 --- a/stream.cpp +++ b/stream.cpp @@ -13,7 +13,6 @@ #include "log.h" #include "metacube2.h" -#include "mutexlock.h" #include "state.pb.h" #include "stream.h" #include "util.h" @@ -26,15 +25,11 @@ Stream::Stream(const string &url, size_t backlog_size, size_t prebuffering_bytes src_encoding(src_encoding), data_fd(make_tempfile("")), backlog_size(backlog_size), - prebuffering_bytes(prebuffering_bytes), - bytes_received(0), - pacing_rate(~0U) + prebuffering_bytes(prebuffering_bytes) { if (data_fd == -1) { exit(1); } - - pthread_mutex_init(&queued_data_mutex, NULL); } Stream::~Stream() @@ -51,9 +46,7 @@ Stream::Stream(const StreamProto &serialized, int data_fd) encoding(Stream::STREAM_ENCODING_RAW), // Will be changed later. data_fd(data_fd), backlog_size(serialized.backlog_size()), - prebuffering_bytes(serialized.prebuffering_bytes()), - bytes_received(serialized.bytes_received()), - pacing_rate(~0U) + bytes_received(serialized.bytes_received()) { if (data_fd == -1) { exit(1); @@ -68,8 +61,6 @@ Stream::Stream(const StreamProto &serialized, int data_fd) } suitable_starting_points.push_back(point); } - - pthread_mutex_init(&queued_data_mutex, NULL); } StreamProto Stream::serialize() @@ -79,7 +70,6 @@ StreamProto Stream::serialize() serialized.set_stream_header(stream_header); serialized.add_data_fds(data_fd); serialized.set_backlog_size(backlog_size); - serialized.set_prebuffering_bytes(prebuffering_bytes); serialized.set_bytes_received(bytes_received); for (size_t point : suitable_starting_points) { serialized.add_suitable_starting_point(point); @@ -235,7 +225,7 @@ void Stream::add_data_deferred(const char *data, size_t bytes, uint16_t metacube return; } - MutexLock lock(&queued_data_mutex); + lock_guard lock(queued_data_mutex); DataElement data_element; data_element.metacube_flags = metacube_flags; @@ -274,7 +264,7 @@ void Stream::process_queued_data() // Hold the lock for as short as possible, since add_data_raw() can possibly // write to disk, which might disturb the input thread. { - MutexLock lock(&queued_data_mutex); + lock_guard lock(queued_data_mutex); if (queued_data.empty()) { return; }