From 189975ed1b7cec593a9057edc29522042e7f0310 Mon Sep 17 00:00:00 2001 From: Dimiden Date: Fri, 3 Jan 2025 19:51:48 +0900 Subject: [PATCH] Added support for a data track in SRT Stream --- src/projects/publishers/srt/srt_stream.cpp | 13 ++++++++++++- src/projects/publishers/srt/srt_stream.h | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/projects/publishers/srt/srt_stream.cpp b/src/projects/publishers/srt/srt_stream.cpp index f76d135a8..635234cad 100644 --- a/src/projects/publishers/srt/srt_stream.cpp +++ b/src/projects/publishers/srt/srt_stream.cpp @@ -78,6 +78,7 @@ namespace pub std::shared_ptr first_video_track = nullptr; std::shared_ptr first_audio_track = nullptr; + std::shared_ptr first_data_track = nullptr; for (const auto &[id, track] : GetTracks()) { @@ -94,6 +95,10 @@ namespace pub } else if (track->GetMediaType() == cmn::MediaType::Data) { + if (first_data_track == nullptr) + { + first_data_track = track; + } } else { @@ -111,7 +116,8 @@ namespace pub } bool result = ((first_video_track != nullptr) ? packetizer->AddTrack(first_video_track) : true) && - ((first_audio_track != nullptr) ? packetizer->AddTrack(first_audio_track) : true); + ((first_audio_track != nullptr) ? packetizer->AddTrack(first_audio_track) : true) && + ((first_data_track != nullptr) ? packetizer->AddTrack(first_data_track) : true); if (result == false) { @@ -208,6 +214,11 @@ namespace pub EnqueuePacket(media_packet); } + void SrtStream::SendDataFrame(const std::shared_ptr &media_packet) + { + EnqueuePacket(media_packet); + } + void SrtStream::BroadcastIfReady(const std::vector> &packets) { std::vector> data_list; diff --git a/src/projects/publishers/srt/srt_stream.h b/src/projects/publishers/srt/srt_stream.h index f464cb099..047ee83ad 100644 --- a/src/projects/publishers/srt/srt_stream.h +++ b/src/projects/publishers/srt/srt_stream.h @@ -32,7 +32,7 @@ namespace pub //-------------------------------------------------------------------- void SendVideoFrame(const std::shared_ptr &media_packet) override; void SendAudioFrame(const std::shared_ptr &media_packet) override; - void SendDataFrame(const std::shared_ptr &media_packet) override {} // Not supported yet + void SendDataFrame(const std::shared_ptr &media_packet) override; //-------------------------------------------------------------------- //--------------------------------------------------------------------