[ANNOUNCE] VDR version 2.7.7 released

Klaus Schmidinger <[email protected]> Thu, 24 Jul 2025 22:18:33 +0200
Newsgroups gmane.linux.vdr
Message-ID <[email protected]>
VDR version 2.7.7 is now available at the official VDR GIT archive

       git://git.tvdr.de

You can also get the latest stable version with

       git clone --branch stable/latest git://git.tvdr.de/vdr.git

or as a tar archive with

       http://git.tvdr.de/?p=vdr.git;a=snapshot;h=stable/latest;sf=tbz2

The changes since version 2.7.6:

- Fixed cPoller::Poll() to allow negative timeout values again.
- When regenerating the index of a recording, PID changes are now taken into account
   (reported by Christoph Haubrich).
- In the "Timers" menu the '0' key now toggles between showing all timers and only
   the active ones (thanks to Matthias Senzel).
- Reworked cTimer::Matches() (triggered by Markus Ehrnsperger):
   + Calculating the raw start/stop time of a timer has been moved to the new function
     cTimer::CalcStartStopTime(). If a plugin calls cTimer::Matches() with Directly==true,
     it should use cTimer::CalcStartStopTime() instead. If it calls cTimer::Matches() with
     Directly==false, it should call cTimer::Matches(time_t t, int Margin) instead.
   + The versions of cTimer::Matches() with 'bool Directly' are deprecated. Existing calls
     with Directly==true are redirected to cTimer::CalcStartStopTime(), and a log message
     is issued.
   + cTimer::Matches() now reports an error if it is called with a time parameter that is
     not the current time.
   + The "first day" parameter of a repeating timer is now only reset if cTimer::Matches()
     is called with t==0 and Margin==0 and it has been exceeded.
   + Access to the cached cTimer::start-/stopTime members is now protected via a mutex.
   + Plugins that use cTimer should continue to work as before. However, the author should
     react accordingly to compile time and log messages regarding these modifications.
     To test whether the plugin code will compile once the deprecated functions are
     removed in a future version, the macro DEPRECATED_TIMER_MATCHES can be set to 0 in
     timers.h.
   APIVERSNUM is now 30009.
- Fixed the stop time of repeating timers in case of DST change (thanks to Markus Ehrnsperger).
- Fixed expiring VPS timers in case the event has not yet startet after its announced end time.
- Reverted the change in cCondWait::SleepMs() because of a possible lockup (reported by Johann
   Friedrichs).
- Added cTimer::VpsTime() (suggested by Markus Ehrnsperger).
- Now sending the SVDRP discover broadcast once per minute, to re-establish lost connections.
- If an SVDRP peer connection is lost, the connection in the opposite direction is now also
   closed (reported by Markus Ehrnsperger).
- Shutdown now takes into account the VPS margin (reported by Christoph Haubrich).
- Fixed an 'invalid lock sequence' when deleting the timeshift timer.
- Added DeviceFreeze() when pausing at the last mark (reported by Andreas Baierl).
- Plugins need to be rebuilt.

Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus