[Switched from vlc-devel because this part really is just live555-specific]
On 24/06/15 14:26, Ross Finlayson wrote:
That’s odd. I tested against a MP3 stream (file), and in that case
VLC sent a “PAUSE” command when I clicked the pause button. But it
didn’t when I tried streaming from a MPEG Transport Stream file, or
from a raw H.264 file. Go figure...
I think it's because in the case of MP3 your server does return the
duration:
a=range:npt=0-88.451
But you're right that this doesn't trigger the problem. It's because
your server returns a body to GET_PARAMETER, whereas ours doesn't, and
hence yours avoids the buffering issue identified in my patch today. If
you patch your server to return an empty body (after all, it wasn't
actually asked for any parameters :-) ) then you will see the issue:
diff --git a/liveMedia/RTSPServer.cpp b/liveMedia/RTSPServer.cpp
index 4a54c5b..c75325e 100644
--- a/liveMedia/RTSPServer.cpp
+++ b/liveMedia/RTSPServer.cpp
@@ -2030,7 +2030,7 @@ void RTSPServer::RTSPClientSession
// By default, we implement "GET_PARAMETER" just as a 'keep alive',
and send back a dummy response.
// (If you want to handle "GET_PARAMETER" properly, you can do so by
defining a subclass of "RTSPServer"
// and "RTSPServer::RTSPClientSession", and then reimplement this
virtual function in your subclass.)
- setRTSPResponse(ourClientConnection, "200 OK", fOurSessionId,
LIVEMEDIA_LIBRARY_VERSION_STRING);
+ setRTSPResponse(ourClientConnection, "200 OK", fOurSessionId, "");
}
Reproduce: Play an RTSP mp3 from VLC, pause, wait for two
GET_PARAMETERS, then try to resume
However, the fundamental problem is that VLC doesn't call your
doEventLoop() during PAUSE - working on that now.
Best regards
Paul
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel