0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

obs-webrtc: Enable PacingHandler

This commit is contained in:
Sean DuBois 2024-06-28 11:29:13 -04:00 committed by Sean DuBois
parent 8963d25dd2
commit 2aae0f4d68

View File

@ -1,3 +1,4 @@
#include <obs.hpp>
#include "whip-output.h" #include "whip-output.h"
#include "whip-utils.h" #include "whip-utils.h"
@ -159,6 +160,9 @@ void WHIPOutput::ConfigureVideoTrack(std::string media_stream_id,
if (!encoder) if (!encoder)
return; return;
OBSDataAutoRelease settings = obs_encoder_get_settings(encoder);
auto video_bitrate = (int)obs_data_get_int(settings, "bitrate");
const char *codec = obs_encoder_get_codec(encoder); const char *codec = obs_encoder_get_codec(encoder);
if (strcmp("h264", codec) == 0) { if (strcmp("h264", codec) == 0) {
video_description.addH264Codec(video_payload_type); video_description.addH264Codec(video_payload_type);
@ -187,6 +191,12 @@ void WHIPOutput::ConfigureVideoTrack(std::string media_stream_id,
packetizer->addToChain(std::make_shared<rtc::RtcpNackResponder>( packetizer->addToChain(std::make_shared<rtc::RtcpNackResponder>(
video_nack_buffer_size)); video_nack_buffer_size));
if (video_bitrate != 0) {
packetizer->addToChain(std::make_shared<rtc::PacingHandler>(
static_cast<double>(video_bitrate * 10000),
std::chrono::milliseconds(5)));
}
video_track = peer_connection->addTrack(video_description); video_track = peer_connection->addTrack(video_description);
video_track->setMediaHandler(packetizer); video_track->setMediaHandler(packetizer);
} }