forgot ot reinit pointers in CYSFConvolution::start()

pull/1/head
Tom Early 5 years ago
parent 310490d012
commit 04db23e069

@ -49,7 +49,7 @@ struct __attribute__ ((__packed__))dstar_dvframe
class CDvFramePacket : public CPacket class CDvFramePacket : public CPacket
{ {
friend class CCodecStream; //friend class CCodecStream;
public: public:
// constructor // constructor
CDvFramePacket(); CDvFramePacket();

@ -42,7 +42,7 @@ CPacketStream::CPacketStream()
//////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////
// open / close // open / close
bool CPacketStream::Open(const CDvHeaderPacket &DvHeader, std::shared_ptr<CClient>client) bool CPacketStream::OpenPacketStream(const CDvHeaderPacket &DvHeader, std::shared_ptr<CClient>client)
{ {
bool ok = false; bool ok = false;
@ -58,16 +58,16 @@ bool CPacketStream::Open(const CDvHeaderPacket &DvHeader, std::shared_ptr<CClien
m_LastPacketTime.Now(); m_LastPacketTime.Now();
#ifdef TRANSCODER_IP #ifdef TRANSCODER_IP
if (std::string::npos != std::string(TRANSCODED_MODULES).find(DvHeader.GetRpt2Module())) if (std::string::npos != std::string(TRANSCODED_MODULES).find(DvHeader.GetRpt2Module()))
m_CodecStream = g_Transcoder.GetStream(this, client->GetCodec()); m_CodecStream = g_Transcoder.GetCodecStream(this, client->GetCodec());
else else
m_CodecStream = g_Transcoder.GetStream(this, CODEC_NONE); m_CodecStream = g_Transcoder.GetCodecStream(this, CODEC_NONE);
#endif #endif
ok = true; ok = true;
} }
return ok; return ok;
} }
void CPacketStream::Close(void) void CPacketStream::ClosePacketStream(void)
{ {
// update status // update status
m_bOpen = false; m_bOpen = false;

@ -45,8 +45,8 @@ public:
CPacketStream(); CPacketStream();
// open / close // open / close
bool Open(const CDvHeaderPacket &, std::shared_ptr<CClient>); bool OpenPacketStream(const CDvHeaderPacket &, std::shared_ptr<CClient>);
void Close(void); void ClosePacketStream(void);
// push & pop // push & pop
void Push(std::unique_ptr<CPacket> packet); void Push(std::unique_ptr<CPacket> packet);

@ -205,7 +205,7 @@ CPacketStream *CReflector::OpenStream(std::unique_ptr<CDvHeaderPacket> &DvHeader
stream->Lock(); stream->Lock();
// is it available ? // is it available ?
if ( stream->Open(*DvHeader, client) ) if ( stream->OpenPacketStream(*DvHeader, client) )
{ {
// stream open, mark client as master // stream open, mark client as master
// so that it can't be deleted // so that it can't be deleted
@ -272,7 +272,7 @@ void CReflector::CloseStream(CPacketStream *stream)
stream->Unlock(); stream->Unlock();
// and stop the queue // and stop the queue
stream->Close(); stream->ClosePacketStream();
} }
} }

@ -195,7 +195,7 @@ void CTranscoder::Task(void)
//////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////
// manage streams // manage streams
std::shared_ptr<CCodecStream> CTranscoder::GetStream(CPacketStream *PacketStream, uint8 uiCodecIn) std::shared_ptr<CCodecStream> CTranscoder::GetCodecStream(CPacketStream *PacketStream, uint8 uiCodecIn)
{ {
CBuffer Buffer; CBuffer Buffer;

@ -60,7 +60,7 @@ public:
bool IsConnected(void) const { return m_bConnected; } bool IsConnected(void) const { return m_bConnected; }
// manage streams // manage streams
std::shared_ptr<CCodecStream> GetStream(CPacketStream *, uint8); std::shared_ptr<CCodecStream> GetCodecStream(CPacketStream *, uint8);
void ReleaseStream(std::shared_ptr<CCodecStream>); void ReleaseStream(std::shared_ptr<CCodecStream>);
// task // task

@ -36,12 +36,16 @@ const unsigned int NUM_OF_STATES = 16U;
const uint32_t M = 2U; const uint32_t M = 2U;
const unsigned int K = 5U; const unsigned int K = 5U;
CYSFConvolution::CYSFConvolution() : m_oldMetrics(m_metrics1), m_newMetrics(m_metrics2), m_dp(m_decisions) {} CYSFConvolution::CYSFConvolution() : m_oldMetrics(nullptr), m_newMetrics(nullptr), m_dp(nullptr) {}
void CYSFConvolution::start() void CYSFConvolution::start()
{ {
for (int i=0; i<16; i++) memset(m_metrics1, 0, NUM_OF_STATES * sizeof(uint16_t));
m_metrics1[i] = m_metrics2[i] = 0U; memset(m_metrics2, 0, NUM_OF_STATES * sizeof(uint16_t));
m_oldMetrics = m_metrics1;
m_newMetrics = m_metrics2;
m_dp = m_decisions;
} }
void CYSFConvolution::decode(uint8_t s0, uint8_t s1) void CYSFConvolution::decode(uint8_t s0, uint8_t s1)

Loading…
Cancel
Save

Powered by TurnKey Linux.