minor fixes and some better .h files

unstable
Tom Early 4 years ago
parent 60bc3ab68f
commit 2407b20798

@ -136,6 +136,13 @@ void CCodecStream::Task(void)
// todo: check the PID
// update content with transcoded data
Frame->SetCodecData(&pack);
// mark the DStar sync frames if the source isn't dstar
if (ECodecType::dstar!=Frame->GetCodecIn() && 0==Frame->GetPacketId()%21)
{
const uint8_t DStarSync[] = { 0x55,0x2D,0x16 };
Frame->SetDvData(DStarSync);
}
// and push it back to client
m_PacketStream->Lock();
m_PacketStream->push(Packet);

@ -145,7 +145,7 @@ const uint8_t *CDvFramePacket::GetCodecData(ECodecType type) const
////////////////////////////////////////////////////////////////////////////////////////
// set
void CDvFramePacket::SetDvData(uint8_t *DvData)
void CDvFramePacket::SetDvData(const uint8_t *DvData)
{
memcpy(m_uiDvData, DvData, 3);
}

@ -40,10 +40,14 @@ class CDvFramePacket : public CPacket
public:
// constructor
CDvFramePacket();
CDvFramePacket(const SDStarFrame *, uint16_t, uint8_t);
CDvFramePacket(const uint8_t *, const uint8_t *, uint16_t, uint8_t, uint8_t);
CDvFramePacket(const uint8_t *, uint16_t, uint8_t, uint8_t, uint8_t);
CDvFramePacket(uint16_t, uint8_t, const uint8_t *, const uint8_t *, uint8_t, uint8_t, const uint8_t *, const uint8_t *, ECodecType, const uint8_t *, const uint8_t *);
// DStar frame
CDvFramePacket(const SDStarFrame *dstarframe, uint16_t streamid, uint8_t counter);
// DMR Frame
CDvFramePacket(const uint8_t *ambe, const uint8_t *sync, uint16_t streamid, uint8_t counter1, uint8_t counter2);
// YSF Frame
CDvFramePacket(const uint8_t *ambe, uint16_t streamid, uint8_t counter1, uint8_t counter2, uint8_t counter3);
// URF Frame
CDvFramePacket(uint16_t streamid, uint8_t dstarcounter, const uint8_t *dstarambe, const uint8_t *dvdata, uint8_t dmrcounter1, uint8_t dmrcounter2, const uint8_t *dmrambe, const uint8_t *dmrsync, ECodecType type, const uint8_t *m17codec, const uint8_t *nonce);
CDvFramePacket(const CM17Packet &m17);
// virtual duplication
@ -61,7 +65,7 @@ public:
const uint8_t *GetNonce(void) const { return m_Nonce; }
// set
void SetDvData(uint8_t *);
void SetDvData(const uint8_t *);
void SetCodecData(ECodecType, const uint8_t *);
void SetCodecData(const STCPacket *pack);

@ -19,59 +19,50 @@
#include "Main.h"
#include "DVLastFramePacket.h"
////////////////////////////////////////////////////////////////////////////////////////
// constructor
CDvLastFramePacket::CDvLastFramePacket()
{
}
// dstar constructor
CDvLastFramePacket::CDvLastFramePacket(const SDstarFrame *DvFrame, uint16_t sid, uint8_t pid)
CDvLastFramePacket::CDvLastFramePacket(const SDStarFrame *DvFrame, uint16_t sid, uint8_t pid)
: CDvFramePacket(DvFrame, sid, pid)
{
}
// dmr constructor
CDvLastFramePacket::CDvLastFramePacket(const uint8_t *ambe, const uint8_t *sync, uint16_t sid, uint8_t pid, uint8_t spid)
: CDvFramePacket(ambe, sync, sid, pid, spid)
{
}
// ysf constructor
CDvLastFramePacket::CDvLastFramePacket(const uint8_t *ambe, uint16_t sid, uint8_t pid, uint8_t spid, uint8_t fid)
: CDvFramePacket(ambe, sid, pid, spid, fid)
{
}
// urf constructor
CDvLastFramePacket::CDvLastFramePacket
(uint16_t sid,
uint8_t dstarpid, const uint8_t *dstarambe, const uint8_t *dstardvdata,
uint8_t dmrpid, uint8_t dprspid, const uint8_t *dmrambe, const uint8_t *dmrsync, ECodecType type, const uint8_t *codec2)
: CDvFramePacket(sid, dstarpid, dstarambe, dstardvdata, dmrpid, dprspid, dmrambe, dmrsync, type, codec2)
uint8_t dmrpid, uint8_t dprspid, const uint8_t *dmrambe, const uint8_t *dmrsync, ECodecType type, const uint8_t *codec2, const uint8_t *nonce)
: CDvFramePacket(sid, dstarpid, dstarambe, dstardvdata, dmrpid, dprspid, dmrambe, dmrsync, type, codec2, nonce)
{
}
// m17 constructor
CDvLastFramePacket::CDvLastFramePacket(const CM17Packet &m17) : CDvFramePacket(m17)
{
}
// copy constructor
CDvLastFramePacket::CDvLastFramePacket(const CDvLastFramePacket &DvFrame)
: CDvFramePacket(DvFrame)
{
}
////////////////////////////////////////////////////////////////////////////////////////
// virtual duplication
std::unique_ptr<CPacket> CDvLastFramePacket::Duplicate(void) const
{
return std::unique_ptr<CPacket>(new CDvLastFramePacket(*this));

@ -30,19 +30,25 @@
class CDvLastFramePacket : public CDvFramePacket
{
public:
// constructor
// empty constructor
CDvLastFramePacket();
CDvLastFramePacket(const SDstarFrame *, uint16_t, uint8_t);
CDvLastFramePacket(const uint8_t *, const uint8_t *, uint16_t, uint8_t, uint8_t);
CDvLastFramePacket(const uint8_t *, uint16_t, uint8_t, uint8_t, uint8_t);
CDvLastFramePacket(uint16_t, uint8_t, const uint8_t *, const uint8_t *, uint8_t, uint8_t, const uint8_t *, const uint8_t *, ECodecType, const uint8_t *);
// DStar constructor
CDvLastFramePacket(const SDStarFrame *dvframe, uint16_t streamid, uint8_t counter);
// DRM constructor
CDvLastFramePacket(const uint8_t *ambe, const uint8_t *sync, uint16_t streamid, uint8_t counter1, uint8_t counter2);
// YSF constructor
CDvLastFramePacket(const uint8_t *ambe, uint16_t streamid, uint8_t counter1, uint8_t counter2, uint8_t counter3);
// URF constructor
CDvLastFramePacket(uint16_t streamid, uint8_t dstarcounter, const uint8_t *dstarambe, const uint8_t *dvdata, uint8_t dmrcounter1, uint8_t dmrcounter2, const uint8_t *dmrambe, const uint8_t *dmrsync, ECodecType type, const uint8_t *codec2, const uint8_t *nonce);
// M17 constructor
CDvLastFramePacket(const CM17Packet &);
// copy constructor
CDvLastFramePacket(const CDvLastFramePacket &);
// virtual duplication
std::unique_ptr<CPacket> Duplicate(void) const;
// identity
bool IsLastPacket(void) const { return true; }
bool HasTranscodableAmbe(void) const { return false; }
bool IsLastPacket(void) const { return true; }
bool HasTranscodableAmbe(void) const { return false; }
};

@ -125,7 +125,7 @@ CPacket::CPacket(const CM17Packet &m17) : CPacket()
////////////////////////////////////////////////////////////////////////////////////////
// pid conversion
void CPacket::UpdatePids(uint32_t pid)
void CPacket::UpdatePids(const uint32_t pid)
{
// called while pushing this packet in a stream queue
// so now packet sequence number is known and undefined pids can be updated
@ -153,6 +153,7 @@ void CPacket::UpdatePids(uint32_t pid)
// m17 needs update?
if (m_uiM17FrameNumber == 0x8000U)
{
m_uiM17FrameNumber = pid % 0x7FFFU;
// frames are every 20 milliseconds, so the m17 data will come every 40 milliseconds
m_uiM17FrameNumber = (pid % 2) % 0x7FFFU;
}
}

@ -65,7 +65,7 @@ public:
ECodecType GetCodecIn(void) const { return m_eCodecIn; }
// set
void UpdatePids(uint32_t);
void UpdatePids(const uint32_t);
void SetModule(char cMod) { m_cModule = cMod; }
void SetLocalOrigin(void) { m_uiOriginId = ORIGIN_LOCAL; }
void SetRemotePeerOrigin(void) { m_uiOriginId = ORIGIN_PEER; }

Loading…
Cancel
Save

Powered by TurnKey Linux.