Skip to content
Snippets Groups Projects
Commit e2d19ea2 authored by Azur Ponjavic's avatar Azur Ponjavic
Browse files

moved mutex

parent 2227f5de
No related branches found
No related tags found
No related merge requests found
...@@ -368,7 +368,9 @@ bool WebRTCTransport::send_setup_complete(RemoteStrategy remote_strategy, Encode ...@@ -368,7 +368,9 @@ bool WebRTCTransport::send_setup_complete(RemoteStrategy remote_strategy, Encode
msg[2] = std::byte((maxMessageSize & 0x0000ff00) >> 8); msg[2] = std::byte((maxMessageSize & 0x0000ff00) >> 8);
msg[3] = std::byte((maxMessageSize & 0x00ff0000) >> 16); msg[3] = std::byte((maxMessageSize & 0x00ff0000) >> 16);
msg[4] = std::byte((maxMessageSize & 0xff000000) >> 24); msg[4] = std::byte((maxMessageSize & 0xff000000) >> 24);
std::unique_lock<std::mutex> lock(this->worker_mutex);
this->send_data(msg); this->send_data(msg);
lock.unlock();
return true; return true;
} }
...@@ -400,7 +402,9 @@ bool WebRTCTransport::send_frame_config_nal(FrameId frame_id, const std::span<co ...@@ -400,7 +402,9 @@ bool WebRTCTransport::send_frame_config_nal(FrameId frame_id, const std::span<co
} }
lava::log()->info(str); lava::log()->info(str);
memcpy(&msg[2], content.data(), sizeof(uint8_t) * content.size()); memcpy(&msg[2], content.data(), sizeof(uint8_t) * content.size());
std::unique_lock<std::mutex> lock(this->worker_mutex);
this->send_data(msg); this->send_data(msg);
lock.unlock();
return true; return true;
} }
...@@ -430,6 +434,7 @@ bool WebRTCTransport::send_frame_nal(FrameNumber frame_number, FrameId frame_id, ...@@ -430,6 +434,7 @@ bool WebRTCTransport::send_frame_nal(FrameNumber frame_number, FrameId frame_id,
msg_frame_buffer = new rtc::binary(); msg_frame_buffer = new rtc::binary();
msg_frame_buffer->reserve(maxMessageSize); msg_frame_buffer->reserve(maxMessageSize);
} }
std::unique_lock<std::mutex> lock(this->worker_mutex);
for (u_int offset = 0; offset < content.size_bytes(); offset += (maxMessageSize - 18)) { for (u_int offset = 0; offset < content.size_bytes(); offset += (maxMessageSize - 18)) {
u_int msg_size = (content.size_bytes() - offset < (maxMessageSize - 18)) ? (content.size_bytes() - offset + 18) : maxMessageSize; u_int msg_size = (content.size_bytes() - offset < (maxMessageSize - 18)) ? (content.size_bytes() - offset + 18) : maxMessageSize;
msg_frame_buffer->resize(msg_size); msg_frame_buffer->resize(msg_size);
...@@ -470,6 +475,7 @@ bool WebRTCTransport::send_frame_nal(FrameNumber frame_number, FrameId frame_id, ...@@ -470,6 +475,7 @@ bool WebRTCTransport::send_frame_nal(FrameNumber frame_number, FrameId frame_id,
this->send_data(*msg_frame_buffer); this->send_data(*msg_frame_buffer);
} }
lock.unlock();
return true; return true;
} }
...@@ -631,13 +637,11 @@ void WebRTCTransport::set_state(TransportState state) { ...@@ -631,13 +637,11 @@ void WebRTCTransport::set_state(TransportState state) {
} }
void WebRTCTransport::send_data(const rtc::binary& rawMsg) { void WebRTCTransport::send_data(const rtc::binary& rawMsg) {
std::unique_lock<std::mutex> lock(this->worker_mutex);
this->send_queue.push_back(rawMsg); this->send_queue.push_back(rawMsg);
this->packets_send += 1; this->packets_send += 1;
if (!this->send_active) { if (!this->send_active) {
this->process_send_queue(); this->process_send_queue();
} }
lock.unlock();
} }
void WebRTCTransport::process_send_queue() { void WebRTCTransport::process_send_queue() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment