mirror of
https://github.com/nostar/urfd.git
synced 2026-11-08 12:26:46 +00:00
UNIX socket names
This commit is contained in:
1 parent
aa33b4ebf1
commit
765132b3c3
5 files changed
+27
-29
No files matched your search
@@ -62,7 +62,7 @@ CCodecStream::~CCodecStream()
|
||||
|
||||
bool CCodecStream::Init()
|
||||
{
|
||||
m_TCWriter.SetUp("ReftoTC");
|
||||
m_TCWriter.SetUp(REF2TC);
|
||||
keep_running = true;
|
||||
m_Future = std::async(std::launch::async, &CCodecStream::Thread, this);
|
||||
|
||||
@@ -128,9 +128,13 @@ void CCodecStream::Task(void)
|
||||
m_fPingSum += ping;
|
||||
m_fPingCount += 1;
|
||||
|
||||
// pop the original packet
|
||||
if ( !m_LocalQueue.empty() )
|
||||
if ( m_LocalQueue.empty() )
|
||||
{
|
||||
std::cout << "Unexpected transcoded packet received from transcoder" << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
// pop the original packet
|
||||
auto Packet = m_LocalQueue.pop();
|
||||
auto Frame = (CDvFramePacket *)Packet.get();
|
||||
// todo: check the PID
|
||||
@@ -148,10 +152,6 @@ void CCodecStream::Task(void)
|
||||
m_PacketStream->push(Packet);
|
||||
m_PacketStream->Unlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Unexpected transcoded packet received from transcoder" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
// anything in our queue
|
||||
@@ -159,9 +159,14 @@ void CCodecStream::Task(void)
|
||||
{
|
||||
// yes, pop it from queue
|
||||
auto Packet = pop();
|
||||
|
||||
// we need a CDvFramePacket pointer to access Frame stuff
|
||||
auto Frame = (CDvFramePacket *)Packet.get();
|
||||
|
||||
// yes, send to transcoder
|
||||
// update important stuff in Frame->m_TCPack for the transcoder
|
||||
Frame->SetTCParams();
|
||||
|
||||
// now send to transcoder
|
||||
// this assume that thread pushing the Packet
|
||||
// have verified that the CodecStream is connected
|
||||
// and that the packet needs transcoding
|
||||
|
||||
@@ -142,30 +142,17 @@ void CDvFramePacket::SetDvData(const uint8_t *DvData)
|
||||
memcpy(m_uiDvData, DvData, 3);
|
||||
}
|
||||
|
||||
void CDvFramePacket::SetCodecData(ECodecType type, const uint8_t *data)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ECodecType::dstar:
|
||||
memcpy(m_TCPack.dstar, data, 9);
|
||||
break;
|
||||
case ECodecType::dmr:
|
||||
memcpy(m_TCPack.dmr, data, 3);
|
||||
break;
|
||||
case ECodecType::c2_1600:
|
||||
memcpy(m_TCPack.m17, data, 8);
|
||||
break;
|
||||
case ECodecType::c2_3200:
|
||||
memcpy(m_TCPack.m17, data, 16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CDvFramePacket::SetCodecData(const STCPacket *pack)
|
||||
{
|
||||
memcpy(&m_TCPack, pack, sizeof(STCPacket));
|
||||
}
|
||||
|
||||
void CDvFramePacket::SetTCParams()
|
||||
{
|
||||
m_TCPack.streamid = m_uiStreamId;
|
||||
m_TCPack.is_second = m_bIsSecond;
|
||||
m_TCPack.is_last = m_bLastPacket;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
// operators
|
||||
|
||||
@@ -67,8 +67,8 @@ public:
|
||||
|
||||
// set
|
||||
void SetDvData(const uint8_t *);
|
||||
void SetCodecData(ECodecType, const uint8_t *);
|
||||
void SetCodecData(const STCPacket *pack);
|
||||
void SetTCParams(void);
|
||||
|
||||
// operators
|
||||
bool operator ==(const CDvFramePacket &) const;
|
||||
|
||||
@@ -87,12 +87,13 @@ bool CReflector::Start(void)
|
||||
for (auto it=m_Modules.cbegin(); it!=m_Modules.cend(); it++)
|
||||
{
|
||||
m_TCReader[*it] = std::make_shared<CUnixDgramReader>();
|
||||
std::string readername("TCtoRef");
|
||||
std::string readername(TC2REF);
|
||||
readername.append(1, *it);
|
||||
if (m_TCReader[*it]->Open(readername.c_str()))
|
||||
{
|
||||
std::cerr << "ERROR: Reflector can't open " << readername << std::endl;
|
||||
m_TCReader[*it].reset();
|
||||
return false;
|
||||
}
|
||||
m_Stream[*it] = std::make_shared<CPacketStream>(m_TCReader[*it]);
|
||||
m_RouterFuture[*it] = std::async(std::launch::async, &CReflector::RouterThread, this, *it);
|
||||
|
||||
@@ -18,10 +18,15 @@
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#define TC2REF "TC2URFMod"
|
||||
#define REF2TC "URF2TC"
|
||||
|
||||
enum class ECodecType : std::uint8_t { none = 0, dstar = 1, dmr = 2, c2_1600 = 3, c2_3200 = 4 };
|
||||
|
||||
using STCPacket = struct tcpacket_tag {
|
||||
char module;
|
||||
bool is_second, is_last;
|
||||
uint16_t streamid;
|
||||
ECodecType codec_in;
|
||||
uint8_t dstar[9];
|
||||
uint8_t dmr[9];
|
||||
|
||||
Reference in new issue
Block a user