common: Add function for getting SSRC of media_stream

Came across needing to know the local SSRC when trying to separate
media streams from one another.
This commit is contained in:
Joni Räsänen 2022-05-16 10:52:55 +03:00
parent 519b535ecb
commit a6f9afcd28
4 changed files with 24 additions and 12 deletions

View File

@ -296,6 +296,8 @@ namespace uvgrtp {
*/
uvgrtp::rtcp *get_rtcp();
uint32_t get_ssrc() const;
private:
/* Initialize the connection by initializing the socket
* and binding ourselves to specified interface and creating

View File

@ -584,6 +584,16 @@ uvgrtp::rtcp *uvgrtp::media_stream::get_rtcp()
return rtcp_.get();
}
uint32_t uvgrtp::media_stream::get_ssrc() const
{
if (!initialized_ || rtp_ == nullptr) {
LOG_ERROR("RTP context has not been initialized, please call init before asking ssrc!");
return RTP_NOT_INITIALIZED;
}
return rtp_->get_ssrc();
}
rtp_error_t uvgrtp::media_stream::init_srtp_with_zrtp(int flags, int type, std::shared_ptr<uvgrtp::base_srtp> srtp,
std::shared_ptr<uvgrtp::zrtp> zrtp)
{

View File

@ -34,12 +34,12 @@ uvgrtp::rtp::~rtp()
{
}
uint32_t uvgrtp::rtp::get_ssrc()
uint32_t uvgrtp::rtp::get_ssrc() const
{
return ssrc_;
}
uint16_t uvgrtp::rtp::get_sequence()
uint16_t uvgrtp::rtp::get_sequence() const
{
return seq_;
}
@ -127,7 +127,7 @@ void uvgrtp::rtp::set_timestamp(uint64_t timestamp)
timestamp_= timestamp;
}
uint32_t uvgrtp::rtp::get_clock_rate(void)
uint32_t uvgrtp::rtp::get_clock_rate() const
{
return clock_rate_;
}
@ -137,12 +137,12 @@ void uvgrtp::rtp::set_payload_size(size_t payload_size)
payload_size_ = payload_size;
}
size_t uvgrtp::rtp::get_payload_size()
size_t uvgrtp::rtp::get_payload_size() const
{
return payload_size_;
}
rtp_format_t uvgrtp::rtp::get_payload()
rtp_format_t uvgrtp::rtp::get_payload() const
{
return (rtp_format_t)fmt_;
}
@ -152,7 +152,7 @@ void uvgrtp::rtp::set_pkt_max_delay(size_t delay)
delay_ = delay;
}
size_t uvgrtp::rtp::get_pkt_max_delay()
size_t uvgrtp::rtp::get_pkt_max_delay() const
{
return delay_;
}

View File

@ -15,12 +15,12 @@ namespace uvgrtp {
rtp(rtp_format_t fmt);
~rtp();
uint32_t get_ssrc();
uint16_t get_sequence();
uint32_t get_clock_rate();
size_t get_payload_size();
size_t get_pkt_max_delay();
rtp_format_t get_payload();
uint32_t get_ssrc() const;
uint16_t get_sequence() const;
uint32_t get_clock_rate() const;
size_t get_payload_size() const;
size_t get_pkt_max_delay() const;
rtp_format_t get_payload() const;
void inc_sent_pkts();
void inc_sequence();