[Live-devel] Stopping

d.gordenin at ngslab.ru d.gordenin at ngslab.ru
Thu Sep 11 05:43:28 PDT 2025


Hello.

I have an RTSP server, it is fully our code, but it is based on Live555. 
This server sends to a video player (ffplay or our custom player) a 
stream, which earlier was recorded by another application. So, this 
system is an video archive and the RTSP server is a player here.

It works fine, but I faced a problem. I recorded a stream from a USB web 
camera. Using webrtc I change resolution and continue recording. So, the 
archive containes frames with different resolutions (and may be 
different SPS PPS). After I want to play them. Plaing works before the 
changing resolution. The RTSP server is a FramedSource:

class VideoSource : public FramedSource
{
   ...
protected:
   void doGetNextFrame() override;
}

voidVideoSource::doGetNextFrame()
{
     ...
     //sending frames
     memcpy(fTo, frame_.raw_data.data(), frame_.raw_data.size());
     fFrameSize = frame_.raw_data.size();

     ...
     //next circle
     nextTask() = envir().taskScheduler().scheduleDelayedTask(0, (TaskFunc*)FramedSource::afterGetting, this);
}

This circle works before changing resolution. After the last frame 
sending it never called again. And live555 stops the stream. Why?



Denis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20250911/d113fb68/attachment.htm>


More information about the live-devel mailing list