|
|
|
@ -138,7 +138,12 @@ void CProtocol::OnDvFramePacketIn(CDvFramePacket *Frame, const CIp *Ip)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// find the stream
|
|
|
|
// find the stream
|
|
|
|
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
|
|
|
|
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
|
|
|
|
if ( stream != NULL )
|
|
|
|
if ( stream == NULL )
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// std::cout << "Deleting oprhaned Last Frame Packet with StreamId " << Frame->GetStreamId() << " from " << *Ip << std::endl;
|
|
|
|
|
|
|
|
delete Frame;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//std::cout << "DV frame" << "from " << *Ip << std::endl;
|
|
|
|
//std::cout << "DV frame" << "from " << *Ip << std::endl;
|
|
|
|
// and push
|
|
|
|
// and push
|
|
|
|
@ -152,15 +157,23 @@ void CProtocol::OnDvLastFramePacketIn(CDvLastFramePacket *Frame, const CIp *Ip)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// find the stream
|
|
|
|
// find the stream
|
|
|
|
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
|
|
|
|
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
|
|
|
|
if ( stream != NULL )
|
|
|
|
if ( stream == NULL )
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// std::cout << "Deleting oprhaned Last Frame Packet with StreamId " << Frame->GetStreamId() << " from " << *Ip << std::endl;
|
|
|
|
|
|
|
|
delete Frame;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// push
|
|
|
|
// push
|
|
|
|
stream->Lock();
|
|
|
|
stream->Lock();
|
|
|
|
stream->Push(Frame);
|
|
|
|
stream->Push(Frame);
|
|
|
|
stream->Unlock();
|
|
|
|
stream->Unlock();
|
|
|
|
|
|
|
|
|
|
|
|
// and close the stream
|
|
|
|
// and don't close the stream yet but rely on CheckStreamsTimeout
|
|
|
|
g_Reflector.CloseStream(stream);
|
|
|
|
// mechanism, so the stream will be closed after the queues have
|
|
|
|
|
|
|
|
// been sinked out. This avoid last packets to be send back
|
|
|
|
|
|
|
|
// to transmitting client (master)
|
|
|
|
|
|
|
|
// g_Reflector.CloseStream(stream);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -257,4 +270,3 @@ uint32 CProtocol::ModuleToDmrDestId(char m) const
|
|
|
|
return (uint32)(m - 'A')+1;
|
|
|
|
return (uint32)(m - 'A')+1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|