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

Reply via email to