multiplex: Remove old unused report_reader from RTCP

This commit is contained in:
Heikki Tampio 2023-05-04 12:31:10 +03:00
parent 8037e730b4
commit 83440274b5
2 changed files with 7 additions and 53 deletions

View File

@ -458,8 +458,6 @@ namespace uvgrtp {
static void rtcp_runner(rtcp *rtcp);
static void rtcp_report_reader(rtcp *rtcp);
/* when we start the RTCP instance, we don't know what the SSRC of the remote is
* when an RTP packet is received, we must check if we've already received a packet
* from this sender and if not, create new entry to receiver_stats_ map */
@ -654,7 +652,6 @@ namespace uvgrtp {
std::mutex send_app_mutex_;
std::unique_ptr<std::thread> report_generator_;
std::unique_ptr<std::thread> report_reader_;
std::shared_ptr<uvgrtp::socket> rtcp_socket_;
std::shared_ptr<uvgrtp::socketfactory> sfp_;
std::shared_ptr<uvgrtp::rtcp_reader> rtcp_reader_;

View File

@ -86,8 +86,6 @@ uvgrtp::rtcp::rtcp(std::shared_ptr<uvgrtp::rtp> rtp, std::shared_ptr<std::atomic
rtp_ts_start_ = 0;
report_generator_ = nullptr;
report_reader_ = nullptr;
srtcp_ = nullptr;
members_ = 1;
@ -220,20 +218,14 @@ rtp_error_t uvgrtp::rtcp::start()
// Source port is in use -> fetch the existing socket
else {
rtcp_socket_ = sfp_->get_socket_ptr(local_port_);
// If socket still is null, create a new one
if (!rtcp_socket_) {
rtcp_socket_ = sfp_->create_new_socket();
new_socket_ = true;
rtcp_reader_ = std::shared_ptr<uvgrtp::rtcp_reader>(new uvgrtp::rtcp_reader(sfp_));
rtcp_reader_->set_socket(rtcp_socket_);
rtcp_reader_->map_ssrc_to_rtcp(remote_ssrc_, std::shared_ptr<uvgrtp::rtcp>(this));
sfp_->map_port_to_rtcp_reader(local_port_, rtcp_reader_);
// This should not ever happen. However if it does, you could just create a new socket like above
UVG_LOG_ERROR("No RTCP socket found");
return RTP_GENERIC_ERROR;
}
// Otherwise use the given existing socket
rtcp_reader_ = sfp_->get_rtcp_reader(local_port_);
rtcp_socket_ = sfp_->get_socket_ptr(local_port_);
rtcp_reader_->set_socket(rtcp_socket_);
//rtcp_reader_->set_socket(rtcp_socket_);
rtcp_reader_->map_ssrc_to_rtcp(remote_ssrc_, std::shared_ptr<uvgrtp::rtcp>(this));
}
@ -309,17 +301,15 @@ rtp_error_t uvgrtp::rtcp::stop()
}
active_ = false;
if (new_socket_) {
rtcp_reader_->stop();
}
if (report_generator_ && report_generator_->joinable())
{
UVG_LOG_DEBUG("Waiting for RTCP loop to exit");
report_generator_->join();
}
if (report_reader_ && report_reader_->joinable())
{
UVG_LOG_DEBUG("Waiting for RTCP reader to exit");
report_reader_->join();
}
rtcp_socket_.reset();
return ret;
@ -381,39 +371,6 @@ void uvgrtp::rtcp::rtcp_runner(rtcp* rtcp)
UVG_LOG_DEBUG("Exited RTCP loop");
}
void uvgrtp::rtcp::rtcp_report_reader(rtcp* rtcp) {
UVG_LOG_INFO("RTCP report reader created!");
std::unique_ptr<uint8_t[]> buffer = std::unique_ptr<uint8_t[]>(new uint8_t[MAX_PACKET]);
rtp_error_t ret = RTP_OK;
int max_poll_timeout_ms = 100;
while (rtcp->is_active()) {
int nread = 0;
std::vector<std::shared_ptr<uvgrtp::socket>> temp = {};
temp.push_back(rtcp->get_socket());
ret = uvgrtp::poll::poll(temp, buffer.get(), MAX_PACKET, max_poll_timeout_ms, &nread);
if (ret == RTP_OK && nread > 0)
{
(void)rtcp->handle_incoming_packet(buffer.get(), (size_t)nread);
}
else if (ret == RTP_INTERRUPTED) {
/* do nothing */
}
else {
UVG_LOG_ERROR("poll failed, %d", ret);
break; // TODO the sockets should be manages so that this is not needed
}
}
UVG_LOG_DEBUG("Exited RTCP report reader loop");
}
rtp_error_t uvgrtp::rtcp::set_sdes_items(const std::vector<uvgrtp::frame::rtcp_sdes_item>& items)
{
bool hasCname = false;