Pass launch_session_t directly into session::alloc()

This commit is contained in:
Cameron Gutman 2024-01-14 18:03:02 -06:00
parent 6cdb7f7d03
commit 77b0bab374
3 changed files with 10 additions and 10 deletions

View File

@ -796,7 +796,7 @@ namespace rtsp_stream {
return;
}
auto session = stream::session::alloc(config, launch_session->gcm_key, launch_session->iv, launch_session->av_ping_payload, launch_session->control_connect_data);
auto session = stream::session::alloc(config, *launch_session);
auto slot = server->accept(session);
if (!slot) {

View File

@ -1779,7 +1779,7 @@ namespace stream {
}
std::shared_ptr<session_t>
alloc(config_t &config, crypto::aes_t &gcm_key, crypto::aes_t &iv, std::string_view av_ping_payload, uint32_t control_connect_data) {
alloc(config_t &config, rtsp_stream::launch_session_t &launch_session) {
auto session = std::make_shared<session_t>();
auto mail = std::make_shared<safe::mail_raw_t>();
@ -1788,18 +1788,18 @@ namespace stream {
session->config = config;
session->control.connect_data = control_connect_data;
session->control.connect_data = launch_session.control_connect_data;
session->control.feedback_queue = mail->queue<platf::gamepad_feedback_msg_t>(mail::gamepad_feedback);
session->control.hdr_queue = mail->event<video::hdr_info_t>(mail::hdr);
session->control.iv = iv;
session->control.iv = launch_session.iv;
session->control.cipher = crypto::cipher::gcm_t {
gcm_key, false
launch_session.gcm_key, false
};
session->video.idr_events = mail->event<bool>(mail::idr);
session->video.invalidate_ref_frames_events = mail->event<std::pair<int64_t, int64_t>>(mail::invalidate_ref_frames);
session->video.lowseq = 0;
session->video.ping_payload = av_ping_payload;
session->video.ping_payload = launch_session.av_ping_payload;
constexpr auto max_block_size = crypto::cipher::round_to_pkcs7_padded(2048);
@ -1826,11 +1826,11 @@ namespace stream {
session->audio.fec_packet->fecHeader.ssrc = 0;
session->audio.cipher = crypto::cipher::cbc_t {
gcm_key, true
launch_session.gcm_key, true
};
session->audio.ping_payload = av_ping_payload;
session->audio.avRiKeyId = util::endian::big(*(std::uint32_t *) iv.data());
session->audio.ping_payload = launch_session.av_ping_payload;
session->audio.avRiKeyId = util::endian::big(*(std::uint32_t *) launch_session.iv.data());
session->audio.sequenceNumber = 0;
session->audio.timestamp = 0;

View File

@ -40,7 +40,7 @@ namespace stream {
};
std::shared_ptr<session_t>
alloc(config_t &config, crypto::aes_t &gcm_key, crypto::aes_t &iv, std::string_view av_ping_payload, uint32_t control_connect_data);
alloc(config_t &config, rtsp_stream::launch_session_t &launch_session);
int
start(session_t &session, const std::string &addr_string);
void