If a package without any payload is received, drop it. This avoids parser errors in consuming modules which expect to get some data at least. For example some SAT>IP servers send an empty (header only) RTP packet on startup, which previously caused live555 to immediately close the connection.
Signed-off-by: Julian Scheel <[email protected]> --- liveMedia/MultiFramedRTPSource.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/liveMedia/MultiFramedRTPSource.cpp b/liveMedia/MultiFramedRTPSource.cpp index 04adf66..4742d3a 100644 --- a/liveMedia/MultiFramedRTPSource.cpp +++ b/liveMedia/MultiFramedRTPSource.cpp @@ -138,6 +138,10 @@ void MultiFramedRTPSource::doGetNextFrame1() { BufferedPacket* nextPacket = fReorderingBuffer->getNextCompletedPacket(packetLossPrecededThis); if (nextPacket == NULL) break; + if (nextPacket->dataSize() == 0) { + fReorderingBuffer->releaseUsedPacket(nextPacket); + break; + } fNeedDelivery = False; -- 2.4.3 _______________________________________________ live-devel mailing list [email protected] http://lists.live555.com/mailman/listinfo/live-devel
