[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

Reply via email to