[Live-devel] openRTSP (playcommon.cpp) -- duration greater than ~2000 seconds?

Brad Thomas vidiot1000 at yahoo.com
Thu Mar 25 15:43:21 PDT 2010


Hello,



Does anyone have the code changes to allow openrtsp to take advantage of the changelog below.

Thanks,
Brad Thomas

I noticed in the change log the following :

2006.02.15:

Changed the "microseconds" parameter to "TaskScheduler::scheduleDelayedTask()"
  from "int" to "int64_t".  This allows for durations greater than the previous
  ~2000 second limit.


It seems that openRTSP (playcommon.cpp) was not updated to take advantage 
of this change as it still has the following code in startPlayingStreams() 
which still only allows for ~2000 seconds of recording.

// Figure out how long to delay (if at all) before shutting down, or
  // repeating the playing
  Boolean timerIsBeingUsed = False;
  double secondsToDelay = duration;
  if (duration > 0) {
    double const maxDelayTime
      = (double)( ((unsigned)0x7FFFFFFF)/1000000.0 );
    if (duration > maxDelayTime) {
      *env << "Warning: specified end time " << duration
		<< " exceeds maximum " << maxDelayTime
		<< "; will not do a delayed shutdown\n";
    } else {
      timerIsBeingUsed = True;
      double absScale = scale > 0 ? scale : -scale; // ASSERT: scale != 0
      secondsToDelay = duration/absScale + durationSlop;

      int uSecsToDelay = (int)(secondsToDelay*1000000.0);
      sessionTimerTask = env->taskScheduler().scheduleDelayedTask(
         uSecsToDelay, (TaskFunc*)sessionTimerHandler, (void*)NULL);
    }
  }


      


More information about the live-devel mailing list