common: Add get_configuration_value() for getting configuration flag values

This commit is contained in:
Heikki Tampio 2023-05-10 16:18:25 +03:00
parent 624a0d676f
commit 655294e9d2
2 changed files with 66 additions and 0 deletions

View File

@ -326,6 +326,18 @@ namespace uvgrtp {
*/ */
rtp_error_t configure_ctx(int rcc_flag, ssize_t value); rtp_error_t configure_ctx(int rcc_flag, ssize_t value);
/**
* \brief Get the values for set configuration flags, see ::RTP_CTX_CONFIGURATION_FLAGS for more details
*
* \return Value of the configuration flag
*
* \retval int value on success
* \retval -1 if the provided configuration flag does not exist
* \retval -2 on error
* \retval -3 not implemented
*/
int get_configuration_value(int rcc_flag);
/// \cond DO_NOT_DOCUMENT /// \cond DO_NOT_DOCUMENT
/* Get unique key of the media stream /* Get unique key of the media stream

View File

@ -856,6 +856,60 @@ rtp_error_t uvgrtp::media_stream::configure_ctx(int rcc_flag, ssize_t value)
return ret; return ret;
} }
int uvgrtp::media_stream::get_configuration_value(int rcc_flag)
{
int ret = -2;
if (rcc_flag == RCC_SSRC) {
return ssrc_.get()->load();
}
else if (rcc_flag == RCC_REMOTE_SSRC) {
return remote_ssrc_.get()->load();
}
if (!initialized_) {
UVG_LOG_ERROR("RTP context has not been initialized fully, cannot continue!");
return RTP_NOT_INITIALIZED;
}
switch (rcc_flag) {
case RCC_UDP_SND_BUF_SIZE: {
return -3;
}
case RCC_UDP_RCV_BUF_SIZE: {
return -3;
}
case RCC_RING_BUFFER_SIZE: {
return -3;
}
case RCC_PKT_MAX_DELAY: {
return -3;
}
case RCC_DYN_PAYLOAD_TYPE: {
return -3;
}
case RCC_CLOCK_RATE: {
return -3;
}
case RCC_MTU_SIZE: {
return -3;
}
case RCC_FPS_NUMERATOR: {
return fps_numerator_;
}
case RCC_FPS_DENOMINATOR: {
return fps_denominator_;
}
case RCC_SESSION_BANDWIDTH: {
return bandwidth_;
}
default:
return -1;
}
return ret;
}
uint32_t uvgrtp::media_stream::get_key() const uint32_t uvgrtp::media_stream::get_key() const
{ {
return key_; return key_;