diff --git a/reflector/DVFramePacket.cpp b/reflector/DVFramePacket.cpp index 2258971..a244832 100644 --- a/reflector/DVFramePacket.cpp +++ b/reflector/DVFramePacket.cpp @@ -152,6 +152,7 @@ void CDvFramePacket::SetTCParams() m_TCPack.streamid = m_uiStreamId; m_TCPack.is_second = m_bIsSecond; m_TCPack.is_last = m_bLastPacket; + m_TCPack.module = m_cModule; } //////////////////////////////////////////////////////////////////////////////////////// diff --git a/reflector/PacketStream.cpp b/reflector/PacketStream.cpp index cda2c8b..4479f99 100644 --- a/reflector/PacketStream.cpp +++ b/reflector/PacketStream.cpp @@ -65,9 +65,9 @@ void CPacketStream::ClosePacketStream(void) // update status m_bOpen = false; m_uiStreamId = 0; - m_OwnerClient = nullptr; + m_OwnerClient.reset(); #ifdef TRANSCODED_MODULES - m_CodecStream = nullptr; + m_CodecStream.reset(); #endif } diff --git a/reflector/PacketStream.h b/reflector/PacketStream.h index ad2ff0f..92b81b5 100644 --- a/reflector/PacketStream.h +++ b/reflector/PacketStream.h @@ -54,6 +54,7 @@ public: bool IsOpen(void) const { return m_bOpen; } uint16_t GetStreamId(void) const { return m_uiStreamId; } const CCallsign &GetUserCallsign(void) const { return m_DvHeader.GetMyCallsign(); } + const char GetRpt2Module(void) const { return m_DvHeader.GetRpt2Module(); } protected: // data diff --git a/reflector/Protocol.cpp b/reflector/Protocol.cpp index 400a4d1..5bd5c1d 100644 --- a/reflector/Protocol.cpp +++ b/reflector/Protocol.cpp @@ -133,7 +133,8 @@ void CProtocol::OnDvFramePacketIn(std::unique_ptr &Frame, const auto stream = GetStream(Frame->GetStreamId(), Ip); if ( stream ) { - //std::cout << "DV frame" << "from " << *Ip << std::endl; + // set the packet module, the transcoder needs this + Frame->SetPacketModule(stream->GetRpt2Module()); // and push stream->Lock(); stream->Push(std::move(Frame)); diff --git a/reflector/Reflector.cpp b/reflector/Reflector.cpp index dcdfd12..581e3d7 100644 --- a/reflector/Reflector.cpp +++ b/reflector/Reflector.cpp @@ -183,6 +183,7 @@ std::shared_ptr CReflector::OpenStream(std::unique_ptrGetRpt2Module(); + DvHeader->SetPacketModule(module); auto stream = GetStream(module); if ( stream == nullptr ) {