[Live-devel] Live555 bug report: Video freezes when playing backward and fPresentationTime is changed

Ross Finlayson finlayson at live555.com
Thu Apr 9 18:35:36 PDT 2020



> On Apr 10, 2020, at 9:04 AM, Matthew Czarnek <mczarnek at edge360.com> wrote:
> 
> My bad. I'm trying to send along the timestamp that the frame was originally recorded alongside the frame. Do you know of a way to do this?

Why do you want to send this?  More specifically: What would a RTSP client do with this data?  Note that if a server ’trick play’ operation (fast forward or reverse play) was initiated as a result of a ’scale’ parameter (positive or negative) in the client's RTSP “PLAY” command, then the RTSP client will already know the ’normal play time’ (think: the position (and displayed time) of the cursor in a client player).  (We provide a function “MediaSession::getNormalPlayTime()” that clients can use to get this.)


> Is it possible to do this for an RTSP stream using a standard protocol? Maybe add a few bytes to the end of the frame which the video reader should ignore?

That would not be a 'standard protocol’ :-)

If you really want to send this data in a way that a standard RTSP client has a chance to handle, then I suggest adding it as a real-time text stream (that would be sent as its own stream, alongside the existing video stream (and audio stream, if any).  Specifically:
	- In your server, add a separate, new “ServerMediaSubsession” object.
		- The “ServerMediaSubsession” object’s “createNewStreamSource()” virtual function would create an instance of a new “FramedSource” subclass (that you would write)
			- Your new “FramedSource” subclass would implement “doGetNextFrame()” by converting the "timestamp that the frame was originally recorded” into ASCII, and delivering the data as an ASCII string.  The “fPresentationTime” in each case should be the same as that of the corresponding video frame.
		- The “ServerMediaSubsession” object’s “createNewRTPSink()” virtual function would create an instance of “T140TextRTPSink”.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/





More information about the live-devel mailing list