[Live-devel] Broken RTSP source sometime lead to handler not being called

Alexander Tumarov alextai at servision.net
Wed Feb 5 01:21:19 PST 2020


Thank you a lot - the idea with timer+changeResponseHandler did the job. Just 
timer should be scheduled in very early steps and not after Play was issued.

The problem were like that - I have numerous different RTSP sources - some 
them were buggy ( IP Cameras ) - they send a reply to WRONG socket during RTSP 
session establishment (verified with sniffer) .
Sometimes it turned to be that receiver does not recieve a reply (while other 
receiver get it with wrong CSeq). Camera from it's side waits for next command 
and client waits for a reply.

Thanks again.

On Sunday, January 26, 2020 12:41:36 PM IST Ross Finlayson wrote:
> > So it can be very helpfull to have a deadline timeout for getting
> > command's
> > response (of course with callback being called).
> 
> You can cancel a pending RTSP command by calling the function
> 	RTSPClient::changeResponseHandler(unsigned cseq, responseHandler*
> newResponseHandler) (see “liveMedia/include/RTSPClient.h”, line 165)
> 
> You would pass this function a “cseq” value that was returned from a
> previous RTSP “send*Command()” operation (on the same “RTSPClient” object,
> of course).  The “newResponseHandler” can be NULL; this will cancel the
> pending command.  (If a response ends up coming back over the network
> later, then it will just get ignored.)
> 
> The best way to set up a ’timeout’ like this is to call
> “scheduleDelayedTask()”, as you have been doing.  Then your handler can
> call "changeResponseHandler()”, as noted above.
> 
> 
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
> 
> 
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel







More information about the live-devel mailing list