Autor Thema: [Release] VDR 2.x  (Gelesen 3446 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #15 am: 27 März, 2017, 22:10 »
VDR version 2.3.2 is now available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.2.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.1-2.3.2.diff

MD5 checksums:

6dbb208ea3d59658a18912b49af175b3  vdr-2.3.2.tar.bz2
68a0ed9f01048026333939d30e0a6474  vdr-2.3.1-2.3.2.diff

A summary of all the major changes since the last stable version 2.3.1

Changelog vdr 2.3.2
This is a summary of the changes in VDR 2.3.2 since the last developer version 2.3.1. It only contains things that are of actual importance to the user and doesn't mention the many fixes and improvements that have been made "behind the scenes". See the file HISTORY that comes with the VDR source for a detailed list of all changes.

- Fixed a crash when deleting a recording (reported by Oliver Endriss).
- Fixed an overflow of PIDs in a receiver (thanks to Robert Hannebauer).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed initializing device specific parameters in cDvbTransponderParameters.
- The function SetCurrentChannel(const cChannel *Channel) is now deprecated and
   may be removed in a future version. Use SetCurrentChannel(int ChannelNumber)
   instead.
- The SVDRP command DELC now refuses to delete the very last channel in the list,
   to avoid ending up with an empty channel list.
- The cRwLock class now allows nested read locks within a write lock from the
   same thread. This fixes possible crashes when moving or deleting channels in
   the menu or through SVDRP (as well as other operations that try to acquire a
   read lock within a write lock).
- Fixed a crash when trying to delete a channel that is being used by a timer.
- Fixed setting the current item and counter values in the Recordings menu after
   deleting the last recording in a subfolder.
- Fixed a crash when deleting a recording that is currently being replayed.
- Fixed a crash when moving a recording to a folder on a different volume.
   The cRecordingsHandler now performs its actual operations in a separate thread,
   thus avoiding locking problems and reducing the time between subsequent
   operations.
- Added a note to the description of cFont::Size(), regarding possible differences
   between it and cFont::Height() (suggested to Thomas Reufer).
- Made the cPlayer member functions FramesPerSecond, GetIndex and GetReplayMode
   'const' (thanks to Thomas Reufer).
- Fixed resuming replay at a given position, which was off by one frame (thanks
   to Thomas Reufer).
- Improved handling frame numbers to have a smoother progress display during
   replay of recordings with B-frames (thanks to Thomas Reufer).
- Fixed replaying recordings to their very end, if they don't end with an I-frame
   (thanks to Thomas Reufer).
- Implemented a frame parser for H.265 (HEVC) recordings (thanks to Thomas Reufer).
- Added cFont::Width(void) to get the default character width and allow stretched
   font drawing in high level OSDs (thanks to Thomas Reufer).
- Fixed regenerating the index of audio recordings (thanks to Thomas Reufer).
- Fixed building VDR with systemd >= 230 (thanks to Ville Skyttä).
- Sorted sources.conf by continous azimuth (thanks to Lucian Muresan).
- Added 'S58.5E Kazsat 3' to sources.conf (thanks to Aitugan Sarbassov).
- Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems
   (reported by Sergey Chernyavskiy).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Added a 'const' version of cTimers::GetTimer() (thanks to Lars Hanisch).
- Fixed a typo in the description of cTimers::GetTimersRead() (thanks to Lars
   Hanisch).
- Fixed a possible buffer overflow in handling CA descriptors (suggested by
   Lars Hanisch).
- Avoiding some duplicate code and unnecessary work in nit.c (thanks to Ville
   Skyttä).
- Added support for the systemd watchdog (thanks to Marc Perrudin),
- Added a short sleep to cTSBuffer::Action() to avoid high CPU usage (thanks to
   Sergey Chernyavskiy).
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Thanks to the many people who have contributed in the making, testing and
debugging of this new version of VDR, and also to all users who have been
enjoying VDR over the past 15 years!

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #16 am: 28 März, 2017, 21:54 »
VDR version 2.3.3 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.3.tar.bz2

A 'diff' against the previous version is available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.2-2.3.3.diff

MD5 checksums:

73182b570bcf5a67ab56f7734e479631 vdr-2.3.3.tar.bz2
112c2057dbd7e86c31f8227f61cfd2a6 vdr-2.3.2-2.3.3.diff

A summary of all the major changes since the last stable version 2.3.2

Changelog vdr 2.3.3
This is a summary of the changes in VDR 2.3.3 since the last developer version 2.3.2. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- Added 'S3W ABS-3A' to sources.conf (thanks to Frank Richter).
- Fixed a possible deadlock in the recordings handler thread.
- Updated the Russian OSD texts (thanks to Andrey Pridvorov).
- Added a missing dependency to the Makefile to avoid error messages in the
clean-plugins target (thanks to Tobias Grimm).
- The channel/CAM relations (i.e. the information which CAM can decrypt a given
channel) are now stored in the file 'cam.data' in the cache directory (suggested
by Dietmar Spingler). This speeds up switching to encrypted channels after
newly starting VDR, in case there is more than one CAM in the system.
- Fixed a flaw in handling timeouts for encrypted channels.
- The mechanism of trying different CAMs when switching to an encrypted channel is
now only triggered if there acually is more than one CAM in the system.
- Fixed updating the elapsed/remaining time in the progress display during fast
forward/rewind.
- Changed 'unsigned' to 'signed' in some places to avoid trouble with abs() in
gcc6+ (reported by Derek Kelly).
- CAMs that can handle multiple devices at the same time can now indicate this
by creating the first cCamSlot as usual, and every other cCamSlot by giving
it the first one as its "MasterSlot". To VDR this means that when searching
for a CAM that can decrypt a particular channel, it only needs to ask the
master CAM slot whether it is suitable for decrypting, and can skip all the
other slots belonging to the same master. This can greatly speed up channel
switching on systems with more than one CAM (that can handle multiple devices).
- The LCARS skin now displays the master CAM's number when a device is tuned to
an encrypted channel.
- The Setup/CAM menu now only displays master CAMs.
- Fixed setting the local machine's SVDRP host name (was overwritten if setup.conf
contained an empty string).
- PIDs can now be added to and deleted from a cReceiver while it is attached to
a cDevice, without having to detach it first and re-attach it afterwards.
- Implemented support for MTD ("Multi Transponder Decryption"). This allows a CAM
that is capable of decrypting more than one channel ("Multi Channel Decryption")
to decrypt channels from different transponders. See the remarks in mtd.h on
what a derived cCamSlot class needs to do in order to activate MTD (thanks to
Jasmin Jessich for writing the ddci2 plugin and for valuable input and help
with testing and debugging).
- The function cRingBufferLinear::Clear() can now be called safely from the
reading thread, without additional locking.
- Now stopping any ongoing recordings before stopping the plugins, to avoid
a crash when stopping VDR while recording.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #17 am: 08 Mai, 2017, 20:10 »
VDR Developer Version 2.3.4 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.4.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.3-2.3.4.diff

MD5 checksums:

7b1c985d5e7703f7ec46e3818f546702  vdr-2.3.4.tar.bz2
bacbe7b334a4aa0827d95938e3a1ec6d  vdr-2.3.3-2.3.4.diff

A summary of all the major changes since the last stable version 2.3.3

Changelog vdr 2.3.4
This is a summary of the changes in VDR 2.3.4 since the last developer version 2.3.3. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- The functionality of HandleRemoteModifications(), which synchronizes changes to
   timers between peer VDR machines, has been moved to timers.[ch] and renamed to
   HandleRemoteTimerModifications(). It now also handles deleting remote timers.
- The function cEpgHandlers::BeginSegmentTransfer() is now boolean (thanks to
   Jörg Wendel). See the description in epg.h for the meaning of the return value.
- Changed tEventID back to u_int32_t (suggested by Jörg Wendel). The change to
   u_int16_t in version 2.3.1 was ill-conceived, because the description of the
   "event id" in vdr.5 explicitly mentioned this parameter to be 32 bit in size!
   The members of cEvent have been slightly rearranged to minimize the memory
   requirements on both 32 and 64 bit systems.
- The file 'cam.data' is no longer written if it is read-only.
- Detecting whether a particular CAM actually decrypts a given channel is now
   done separately for each receiver.
- The cEvent class now has a new member 'aux', in which external applications can
   store auxiliary information with an event (thanks to Jörg Wendel). This string
   has no meaning whatsoever to VDR itself, and it will not be written into the
   info file of a recording that is made for such an event.
- Added some guidelines and recommendations to the 'Logging' section of PLUGINS.html.
   The most important being: implement a command line option to control the level
   of logging (in particular allow turning off logging completely!) and never print
   anything to stdout or stderr (unless one of the listed exceptions applies).
- Added a note to the "Pausing live video" section of the MANUAL, stating that
   the timer for paused live video will always record on the local VDR, even if
   an "SVDRP default host" has been set for normal timer recordings.
- cOsdMenu::Display() now checks whether the OSD size has changed and if so calls
   SetDisplayMenu().
- The SVDRP commands that deal with recordings (DELR, EDIT, LSTR, MOVR, and PLAY)
   now use a unique id for each recording, which remains valid as long as this
   instance of VDR is running. This means that recordings are no longer continuously
   numbered from 1 to N in LSTR. There may be gaps in the sequence, in case recordings
   have been deleted, and they are not necessarily listed in numeric order.
   Thanks to Sergey Chernyavskiy.
- Changed 'number' to 'id' in the help texts of SVDRP commands that deal with
   timers.
- Fixed a deadlock in the SVDRP command PLAY in case there is currently a
   recording being replayed.
- Signal strength and quality (CNR) are now determined via DVB API 5 (if available).
   Fallback is the old DVB API 3 method.
- The function cCamSlot::Decrypt() can now also be called with Data == NULL.
   This is necessary to allow CAMs that copy the incoming data into a separate buffer
   to return previously received and decrypted TS packets. See ci.h for details.
   Plugins that implement a derived cCamSlot need to properly handle this case, and
   plugins that implement a derived cDevice need to call Decrypt() in their
   GetTSPacket() function even if the incoming buffer is currently empty (see
   cDvbDevice::GetTSPacket()).
- cTSBuffer::Skip() no longer immediately deletes the given number of bytes from the
   TS buffer, but rather stores the number for later deletion in the next call to
   Get(). This is necessary because in cDvbDevice::GetTSPacket() tsBuffer->Skip()
   is called, but the actual TS packet returned (pointed to by Data) may well be
   (and typically is, unless the CAM copies the data) in the area of the buffer that
   would be deleted by Skip().
- The new function cDevice::SignalStats() (if implemented by an actual device) returns
   statistics about the currently received signal.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed displaying remote timers in the main menu of skin LCARS.
- Fixed editing a remote timer immediately after it has been created.
- Fixed handling the uncorrected block counter for DVB API 3 devices when calculating
   signal quality.
- The SVDRP command LSTC can now list the channels with channel ids if the option
   ':ids' is given (suggested by Dietmar Spingler).
- If 0 is given as the channel number in the SVDRP command LSTC, the data of the
   current channel is listed.
- Fixed a possible crash when pulling the CAM while decrypting a channel with MTD.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #18 am: 04 Juli, 2017, 18:36 »
VDR Developer Version 2.3.5 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.5.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.4-2.3.5.diff

MD5 checksums:

9ca7c556d1fdd733facb6cd9053a4067  vdr-2.3.5.tar.bz2
fbadd411b1ef36dcd8be67d23b3ea41d  vdr-2.3.4-2.3.5.diff


A summary of all the major changes since the last dev version 2.3.4

Changelog vdr 2.3.5
This is a summary of the changes in VDR 2.3.5 since the last developer version 2.3.4. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- CAMs are now sent a generated EIT packet that contains a single 'present event' for
   the current SID, in order to avoid any parental rating dialogs.
- Fixed handling UNC values (the shift operator behaves unexpected for shift values
   larger than the size of the variable).
- Log messages about switching channels now include the channel ID (suggested by
   Dietmar Spingler).
- Events in the EIT that end before the EPG linger time are now ignored in the incoming
   data stream, because they would just be deleted in the next schedules cleanup anyway.
- The constructor of cHash (via cHashBase) now has an additional parameter (OwnObjects)
   which, if set to true, makes the hash take ownership of the hashed objects, so that
   they are deleted when the hash is cleared or destroyed.
- Fixed a memory leak in cSectionSyncerHash. The cSectionSyncerEntry objects put into
   the hash were never explicitly deleted. Now the cSectionSyncerHash takes ownership of
   these objects.
- cListObject now implements a private copy constructor and assignment operator, to keep
   derived objects from calling them implicitly.
- When selecting a device/CAM combination for live viewing, CAMs that are known to decrypt
   the requested channel are now given a higher priority than prefering the primary device
   (reported by Christian Winkler).
- Changed the default return value of cEpgHandler::BeginSegmentTransfer() to true, to
   avoid problems with derived classes that don't implement this function (reported by
   Frank Neumann).
- Fixed selecting delivery system names in case of undefined indexes (thanks to Jasmin
   Jessich).
- Changed the legacy delivery system name "DMBTH" to "DTMB", and added names for
   DVBC_ANNEX_C and DVBC2.
- Added a Status parameter to the interface of cDevice::SignalStats() and
   cDvbDevice::SignalStats() (thanks to Rolf Ahrenberg).
- Fixed handling line numbers in error messages when reading EPG data.
- Added handling RI_HOST_CONTROL to the CI protocol (no actual processing, but its
   presence is required by some CAMs).
- Fixed a crash in case the bottom text of a CAM menu is empty.
- Extended the CI API to allow plugins to implement additional CAM resources.
- Fixed a race between SVDRP CHAN and cDevice::HasProgramme() (reported by Dietmar
   Spingler).
- Reduced the time before a CAM is marked as known to decrypt a particular channel to
   3 seconds.
- When the connection to a peer VDR is terminated, any remote timers of that peer
   are no longer shown on the local VDR.
- No longer setting a new timer's remote host name if "SVDRP peering" is turned off.
- Fixed a double deletion of a cTimer in case HandleRemoteModifications() returned
   false (thanks to Johann Friedrichs).
- Removed TsGetContinuityCounter() from remux.h, using TsContinuityCounter() instead.
- Fixed setting the local machine's SVDRP host name (was overwritten if setup.conf
   contained an empty string). The SVDRP host name is now only written to setup.conf
   if it differs from the system's host name.
- If the Channel+/- keys are pressed while in the Schedules menu, the menu is now
   switched to the EPG of the new current channel.
- The Makefiles have been modified so that during the build process they no longer
   display the actual (lengthy) commands, but rather just the name of the file that
   is being built, as in
   CC vdr.o
   The first two characters indicate the kind of operation (CC=compile, LD=link,
   AR=archive, MO=msgfmt, GT=xgettext, PO=msgmerge, IN=install).
   This way it is much easier to spot error messages and warnings, since they are not
   buried under tons of text.
   Plugin authors should modify their makefiles accordingly, by simply preceeding
   the respective commands with an '@' and inserting '@echo XX $@' (where XX is one
   of the character combinations listed above) before the command.
   The newplugin script has also been modified accordingly.
- Fixed detecting the inclusion of STL header files in tools.h (thanks to Jasmin
   Jessich).
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #19 am: 04 Juli, 2017, 18:38 »
VDR Developer Version 2.3.6 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.6.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.5-2.3.6.diff

MD5 checksums:

eab982df03da492a7d263718a8c487c2  vdr-2.3.6.tar.bz2
84a53afa495740bfdf9aab4b8900df99  vdr-2.3.5-2.3.6.diff

A summary of all the major changes since the last dev version 2.3.5

Changelog vdr 2.3.6
This is a summary of the changes in VDR 2.3.6 since the last developer version 2.3.5. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- Added backtrace functions for debugging (see cBackTrace in thread.h).
- Added checking the correct sequence of locking global lists (with help and
   suggestions from Jasmin Jessich). At the first occurrence of an invalid locking
   sequence, the 20 most recent locks will be written to the log file, followed by a
   backtrace that led to the call in question. This code can be activated by defining
   the macro DEBUG_LOCKSEQ in thread.c (which is on by default).
   When debugging an actual invalid locking sequence, you can additionally define
   the macro DEBUG_LOCKCALL in thread.c, which will add information about the caller
   of each lock. Note that this may cause some stress on the CPU, therefore it is off
   by default.
- The file Make.config.template now reacts on DEBUG=1 in the 'make' command line,
   and disables code optimizations by setting -O0 (thanks to Jasmin Jessich).
   This can be helpful when backtracing highly optimized code. You may want to
   'make distclean' before running 'make' with a modified setting of DEBUG, to make
   sure all object files are newly compiled.
- Fixed the locking sequence when dumping EPG data.
- Fixed the locking sequence when starting a recording.
- The Makefiles now use the macro $(Q) instead of a plain '@' in front of their
   commands, so that verbosity can be controlled by the user (suggested by Jasmin
   Jessich). Add VERBOSE=1 to the 'make' call in the VDR source directory to see the
   actual commands that are executed.
   Plugin authors should modify their makefiles accordingly, by simply preceeding
   the respective commands with '$(Q)' and inserting '@echo XX $@' (where XX is one
   of the character combinations listed in the release note for version 2.3.5) before
   the command.
   The newplugin script has also been modified accordingly.
   Note that if you build a plugin directly in the plugin's own source directory,
   the $(Q) macro won't be defined and commands will be displayed. You can add
   Q=@ to the make call to have it less verbose (provided the plugin's Makefile
   was modified as described above).
- Added clearing CiResourceHandlers before shutting down the plugin manager.
- Fixed a double channel switch when pressing the Channel+/- keys while no menu
   or channel display is open.
- Fixed generating k_Release key events for LIRC remote controls (due to the short
   timeout another normal key was sometimes put into the queue after the generated
   release). Also removed some code redundancy and added some buffer checks.
- Now using a separate mutex to fix the race between SVDRP CHAN and
   cDevice::HasProgramme(), because the previous fix caused a deadlock (reported by
   Derek Kelly).
- Fixed a possible crash in case the SVDRP connection to a peer VDR is terminated
   while getting remote timers.
- Fixed the locking sequence when creating a new timer from the Schedules menu.
- Fixed the locking sequence when switching between 'Now', 'Next' and 'Schedule'
   in the Schedules menu.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #20 am: 04 Juli, 2017, 18:40 »
VDR Developer Version 2.3.7 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.7.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.6-2.3.7.diff

MD5 checksums:

0df2c8b40c89d142c698200ac3dcb14a  vdr-2.3.7.tar.bz2
fbe211e46b12a2fcf2f19054d3ce62cf  vdr-2.3.6-2.3.7.diff

A summary of all the major changes since the last dev version 2.3.6

Changelog vdr 2.3.7
This is a summary of the changes in VDR 2.3.7 since the last developer version 2.3.6. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- Fixed false positives when checking the locking sequence, in case of nested locks
   within the same thread.
- Fixed uninitialized variable SdWatchdog in vdr.c (reported by Frank Neumann).
- Fixed the locking sequence when starting an instant recording.
- Fixed L(ock) and U(nlock) indicators in cStateLockLog.
- Increased SLL_LENGTH in thread.c to better handle long caller lines, and enclosed
   logCaller with DEBUG_LOCKCALL to preserve memory in normal operation.
- Fixed a typo in CAMMENURETYTIMEOUT and added logging CAM enquiries.
- The new configuration file 'camresponses.conf' can be used to define automatic
   responses to CAM menus, for instance to avoid annyoing popup messages or entering
   the parental rating PIN. See vdr.5 for details.
- The option "Setup/Miscellaneous/Show channel names with source" can now be set to
   "type" or "full" to show either the type or the full name of the source (thanks to
   Martin Wache).
- The "Channels" menu now indicates whether a channel is encrypted ('X') or a radio
   channel ('R') (thanks to Martin Wache).
- Changed ##Lock to ##_Lock in the DEF_LIST_LOCK and USE_LIST_LOCK macros defined
   in tools.h, so that there is no cSchedulesLock any more. The epgsearch plugin still
   had an abandoned member of class cSchedulesLock, which, as a side effect, caused an
   invalid lock sequence to be flagged (reported by Johann Friedrichs). In order to
   have the compiler report such things, these macros have been changed.
- Introduced the new macro DISABLE_TEMPLATES_COLLIDING_WITH_STL, which can be defined
   before including tools.h in case some plugin needs to use the STL and gets error
   messages regarding one of the template functions defined in tools.h.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #21 am: 04 Juli, 2017, 18:42 »
VDR Developer Version 2.3.8 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.8.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.7-2.3.8.diff

MD5 checksums:

2afe8b899b3af1967320c216c1315f3e  vdr-2.3.8.tar.bz2
d6ef77c644432dde9a01a05280ca5228  vdr-2.3.7-2.3.8.diff

A summary of all the major changes since the last dev version 2.3.7

Changelog vdr 2.3.8
This is a summary of the changes in VDR 2.3.8 since the last developer version 2.3.7. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- Updated links in the INSTALL file (thanks to Chris Mayo).
- Fixed detecting whether a CAM replies to queries, which didn't work on some systems
   since the implementation of RI_HOST_CONTROL (reported by Daniel Scheller).
- Added some missing locks when calling functions from cStatus or cSkin*, and added
   some text to status.h and skins.h, explaining the locking situation when such
   functions are called.
- Fixed a possible crash in cStateLockLog.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Now skipping a leading '/' in AddDirectory(), to avoid double slashes (reported by
   Chris Mayo).
- Fixed drawing very long menu titles in the LCARS skin (reported by Matthias Senzel).
- Timers are now linked to EPG events even if they are inactive. By default Events that
   are linked to inactive timers are marked with 'I' and 'i', depending on whether the
   timer would record the entire Event or only part of it.
   The function cSkinDisplayMenu::SetItemEvent() now has an additional parameter named
   TimerActive, which indicates whether the timer that would record this event (if any)
   is active. A plugin may react on this when displaying a menu line for an event.
   The old version of cSkinDisplayMenu::SetItemEvent() (without the TimerActive parameter)
   is still there for backwards compatibility. It may be removed in a future version,
   so plugin authors should switch to the new one.
- Now using readdir() instead of readdir_r(), if GLIBC version 2.24 or newer is used
   (suggested by Frank Neumann).
- Added a note to the log, indicating that no further invalid lock sequences will be
   reported until VDR is restarted.
- Whenever a change is made to the recordings in the video directory, the SVDRP command
   UPDR is now sent to all peer VDRs, so that they will update their recordings list.
   This is especially useful if one VDR mounts the video directory of an other one into
   a subdirectory.
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
« Letzte Änderung: 19 April, 2018, 08:42 von mtron »
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #22 am: 19 April, 2018, 08:35 »
VDR Developer Version 2.3.9 is now available at

ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.9.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.8-2.3.9.diff

MD5 checksums:

9e4202b046df9ea960d930ce99e967ab  vdr-2.3.9.tar.bz2
38a0f436fbed219665725aa2e54a9ca0  vdr-2.3.8-2.3.9.diff

A summary of all the major changes since the last dev version 2.3.8

Changelog vdr 2.3.9
This is a summary of the changes in VDR 2.3.9 since the last developer version 2.3.8. See the file HISTORY that comes with the VDR source for a detailed list of all changes.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed a possible crash when stopping VDR (thanks to Matthias Senzel for reporting and
   helping to debug this one).
- Fixed handling VPS events outside the LingerLimit, which could cause recordings to
   stop prematurely (thanks to Johann Friedrichs).
- Fixed an invalid lock sequence when trying to remove a deleted recording in case
   of low disk space.
- Now making sure that AssertFreeDiskSpace() is called with the maximum timer
   priority in case there are several timers recording with different priorities.
- The MTD mapper now avoids immediately reusing unique PIDs when switching channels,
   to prevent possible problems with old data in buffers (thanks to Onur Sentürk).
- The function cDevice::GetVideoSystem() (which has been deprecated since version 2.1.6)
   has been finally removed.
- The macros used to control deprecated code or functions have been changed to hold
   numeric values (0 and 1), so that they can be controlled at compile time, without
   having to edit the actual source code (suggested by Jasmin Jessich).
- The default for DEPRECATED_VDR_CHARSET_OVERRIDE has been set to 0, which means VDR
   no longer reacts on the environment variable VDR_CHARSET_OVERRIDE. You can add
   'DEPRECATED_VDR_CHARSET_OVERRIDE=1' when compiling in order to restore this
   functionality. However, it is recommended to use the command line option --chartab
   instead.
- The timeout for the channel display is now reset whenever the channel or EPG data
   changes.
- OSD menus now try to keep the offset of the list cursor at a constant position on
   the screen, even if the list is modified while being displayed.
- The LCARS skin's main menu now reacts to changes of the current channel's name.
- If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the
   Red button to edit the timer, local timers are now preferred over remote timers
   in case there is more than one timer that will record that event.
- Switching the primary device is no longer done via osSwitchDvb (which has been
   removed), but rather by the main program loop reacting to changes in Setup.PrimaryDVB.
- The new SVDRP commands 'LSTD' and 'PRIM' can be used to list all available devices
   and to switch the primary device (thanks to Thomas Reufer).
- Added some comments regarding font height (thanks to Thomas Reufer).
- Fixed handling timers during the change from DST to winter time (thanks to Johann
   Friedrichs).
- Added missing checks of 'player' in member functions of cControl, and setting
   cControl::player to NULL in cDvbPlayerControl::Stop() to avoid a possible crash
   with plugins that retrieve player information after a replay has been stopped, but
   before the replay control has been destroyed (thanks to Johann Friedrich).
- Now calling Hide() and cStatus::MsgReplaying(..., false) from cReplayControl::Stop(),
   to inform plugins about an ending replay session before the replay control gets
   destroyed.
- Fixed a possible crash when moving a recording between different volumes (reported by
   Matthias Senzel).
- Fixed positioning the cursor in the Recordings menu when moving a recording between
   different volumes.
- Added a note to PLUGINS.html about writing log messages in English.
- Fixed a deadlock when moving a folder containing several recordings between
   different volumes (reported by Matthias Senzel).
- Fixed positioning to the current item when changing the sort mode in the Recordings
   menu, in case there is a LastReplayed recording.
- The CAM menu is now automatically closed when the current channel is switched
   (suggested by Dietmar Spingler).
- Fixed a lengthy write lock on the Recordings list in case of moving a folder with
   more than one recording (thanks to Matthias Senzel).
- If TS packets are not accepted by the output device in Transfer Mode, this is now
   reported only once per minute in the log file.
- The new setup option "OSD/Sorting direction for recordings" can be used to switch
   the sequence in which recordings are presented in the "Recordings" menu between
   ascending (oldest first) and descendeng (newest first) (thanks to Matthias Senzel).
- When moving recordings between volumes, the "Recordings" menu now displays those items
   that have not yet been moved completely as non-selectable. This avoids situations
   where trying to play such a recording might fail.
- Fixed canceling moving a folder with several recordings between volumes.
- When moving a recording to a different folder, the cursor is no longer placed on the
   new location of the recording, but rather stays in the original folder (suggested by
   Matthias Senzel). If the original folder got empty by moving away the last recording
   it contained, the cursor is moved up until a non empty folder is found.
- Changed the log message ""ERROR: copying directory '%s' to '%s' ended prematurely" from
   "error" to "info", because any actual error would have already been reported before this
   (suggested by Matthias Senzel).
- When selecting a folder for a recording or timer, it is now possible to open a folder
   even if it doesn't contain any subfolders (suggested by Matthias Senzel).
- Fixed a possible deadlock when detaching a receiver from a device.
- Moved any locking from cutter.c into recording.c, to avoid a problem with locking
   the Recordings list (reported by Matthias Senzel).
- Now using the 'example' macro in vdr.5 (thanks to Chris Mayo).
- Now unlocking the Recordings list before displaying an error message in
   cMenuPathEdit::ApplyChanges() and cReplayControl::Stop() (reported by Matthias Senzel).
- Fixed a possible deadlock when quickly zapping through encrypted channels (reported
   by Jörg Wendel).
- The new function cStatus::MarksModified() can be implemented by plugins to get
   informed about any modifications to the editing marks of the currently played
   recording (based on a patch from Jörg Wendel).
- Fixed handling editing marks in the replay progress display, in case the marks are
   deleted via the Info/Edit menu of the currently played recording (the progress
   display still displayed them).
- Limited some CAM related log messages to the actual master CAM, if any.
- The Perl script 'peerdemo' shows how one can find all the VDRs in the local network
   using the peer connection mechanism.
- Added the UPDATE-2.4.0 file.
- Making sure cSVDRPClient::Process() reads the entire reply once it started reading,
   even if no Response parameter is given.
- Replaced the warning regarding the open SVDRP port in the INSTALL file with a remark
   about using svdrphosts.conf to completely disable SVDRP access.
- Added a note about the fixed UDP port for SVDRP discovery to vdr.1.
- Fixed updating the Timers menu after turning a local timer on/off with the Red
   button.
- Fixed keeping the cursor position in the Recordings menu in case a timer starts
   recording while the menu is open.
- When a timer is newly created in the Timers menu, it now immediately appears at the
   correct position in the list, rather than first being added at the end and then
   jumping to the proper offset.
- Fixed getting the info of a newly edited recording (reported by Matthias Senzel).
- Improved calculating signal strength and quality (thanks to Helmut Binder).
- While a timer is recording, the file '.timer' in the recording directory now contains
   the full id of the timer that is currently recording into this directory. This is used
   to determine whether a timer is still recording on a remote VDR when deleting a recording
   from the Recordings menu.
- Fixed handling SVDRP peering for more than one instance of VDR on the same machine, and
   improved logging and debug output.
- Fixed case inconsistency with SVDRPDefaultHost in config.c.
- Added a section about the '.sort' file to vdr.5.
- Initiating the client side of a peer-to-peer SVDRP connection is now done with the new
   SVDRP command CONN instead of using the UDP port with the server's address.
   This change requires that all VDRs that shall take part in a peer-to-peer network need
   to be updated to this version.
- Moved handling remote timers into cSVDRPClientHandler::ProcessConnections().
- Combined Start/StopSVDRPServer/ClientHandler() into Start/StopSVDRPHandler().
- Updated the Polish OSD texts (thanks to Tomasz Maciej Nowak).
- When remote timers are fetched from a peer VDR, we no longer blindly delete and re-add
   them, but rather compare them and make only the minimum necessary changes.
- Fixed the CompareInts() function.
- Disabled the use of posix_fadvise() when reading (i.e. replaying), since it caused
   stuttering replay in fast forward and fast rewind mode in case the video directory
   is mounted via NFS. You can re-enable it by setting the macro USE_FADVISE_READ to 1
   in tools.c.
- Modified cStateLock's SetExplicitModify() and IncState() (changed to SetModified()) to
   allow for the introduction of syncing a separate cStateKey to a cStateLock.
- Assigning events to timers no longer triggers sending a POLL to all peer VDRs.
- When making modifications to remote timers, the local VDR no longer sends a POLL to
   all remote VDRs.
- Fixed removing a cStateKey from a cStateLock (setting StateKey.stateLock = NULL was
   done too late, after the lock had already been released).
- Now writing the info file before attaching the recorder to the device, to make sure it
   is present when the recorder needs to update the fps value.
- Making sure the Schedules menu has a proper title, even if it is empty.
- Removed sending the SVDRP command UPDR to peer VDRs whenever a change is made to the
   recordings in the video directory (which was introduced in version 2.3.8), because it
   triggered re-reading the video directory too fast.
- Improved handling VPS timers to better react to EPG changes during an ongoing recording.
- Commented out the logging in cMarks::Align(), to avoid log entries in case of editing
   marks that are not generated by VDR itself, and thus may be a little off (suggested by
   Jörg Wendel). You can activate this line again for debugging if necessary.
- Made the input buffer in cSVDRPClient dynamic.
- Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and
   T2DeliverySystemDescriptor that were overwritten when parsing the
   SatelliteDeliverySystemDescriptor or TerrestrialDeliverySystemDescriptor, respectively.
- Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting
   the user.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]

Offline mtron

  • Server-Admin
  • *
  • Beiträge: 1513
    • some debs
Re: [Release] VDR 2.x
« Antwort #23 am: 19 April, 2018, 08:40 »
VDR  Version 2.4.0 is now available at

       ftp://ftp.tvdr.de/vdr/vdr-2.4.0.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-2.3.9-2.4.0.diff

MD5 checksums:

12c6a3abeadfa915fcfe736bb047a3ab  vdr-2.4.0.tar.bz2
6d98c2d619e82f3d4503146602fccde7  vdr-2.3.9-2.4.0.diff

A summary of all the major changes since the last stable Release

Changelog vdr 2.4.0
This is a summary of the changes in VDR 2.4.0 since the last stable version 2.2.0 See the file HISTORY that comes with the VDR source for a detailed list of all changes.

Peering

    If there is more than one VDR in the local network, they can now form a peer-to-peer network, so that timers can be moved freely between them. The following changes have been made to implement this:
        VDR now sends out a broadcast to port 6419/udp, which was assigned to 'svdrp-disc' by the IANA. VDRs listening on that port will automatically initiate an SVDRP connection to the broadcasting VDR, and in turn send out a broadcast to make other VDRs connect to them. That way all VDRs within the local network will have permanent "peer-to-peer" SVDRP connections between each other. The configuration in the svdrphosts.conf file is taken into account when considering whether or not to respond to an SVDRP discover broadcast.
        The new SVDRP command PING is used by automatically established peer-to-peer connections to keep them alive.
        The new function GetSVDRPServerNames() can be used to get a list of all VDRs this VDR is connected to via SVDRP.
        The new function ExecSVDRPCommand() can be used to execute an SVDRP command on one of the servers this VDR is connected to, and retrieve the result. The helper functions SVDRPCode() and SVDRPValue() can be used to easily access the codes and values returned by ExecSVDRPCommand().
        The new SVDRP command POLL is used by automatically established peer-to-peer connections to trigger fetching remote timers.
        The new options "Setup/Miscellaneous/SVDRP peering", ".../SVDRP host name" and ".../SVDRP default host" can be used to configure automatic peering between VDRs in the same network. Peering is disabled by default and can be enabled by setting "SVDRP peering" to "yes".
        The "Edit timer" menu now has a new parameter "Record on", which can be used to select the VDR on which this timer shall record. Timers can be freely moved between connected VDRs by simply selecting the desired machine in this field.
        The cTimer class now has a new member named 'remote', which holds the name of the remote server this timer will record on. If this is NULL, it is a local timer.
        Added a note to the "Pausing live video" section of the MANUAL, stating that the timer for paused live video will always record on the local VDR, even if an "SVDRP default host" has been set for normal timer recordings.
        The Perl script 'peerdemo' shows how one can find all the VDRs in the local network using the peer connection mechanism.

Conditional Access

    Implemented support for MTD ("Multi Transponder Decryption"). This allows a CAM that is capable of decrypting more than one channel ("Multi Channel Decryption") to decrypt channels from different transponders. See the remarks in mtd.h on what a derived cCamSlot class needs to do in order to activate MTD.
    The Setup/CAM menu now displays which device an individual CAM is currently assigned to.
    The channel/CAM relations (i.e. the information which CAM can decrypt a given channel) are now stored in the file 'cam.data' in the cache directory. This speeds up switching to encrypted channels after newly starting VDR, in case there is more than one CAM in the system. The file 'cam.data' is not written if it is read-only.
    The mechanism of trying different CAMs when switching to an encrypted channel is now only triggered if there acually is more than one CAM in the system.
    CAMs that can handle multiple devices at the same time can now indicate this by creating the first cCamSlot as usual, and every other cCamSlot by giving it the first one as its "MasterSlot". To VDR this means that when searching for a CAM that can decrypt a particular channel, it only needs to ask the master CAM slot whether it is suitable for decrypting, and can skip all the other slots belonging to the same master. This can greatly speed up channel switching on systems with more than one CAM (that can handle multiple devices).
    The LCARS skin now displays the master CAM's number when a device is tuned to an encrypted channel.
    The Setup/CAM menu now only displays master CAMs.
    Detecting whether a particular CAM actually decrypts a given channel is now done separately for each receiver.
    The function cCamSlot::Decrypt() can now also be called with Data == NULL. This is necessary to allow CAMs that copy the incoming data into a separate buffer to return previously received and decrypted TS packets. See ci.h for details. Plugins that implement a derived cCamSlot need to properly handle this case, and plugins that implement a derived cDevice need to call Decrypt() in their GetTSPacket() function even if the incoming buffer is currently empty (see cDvbDevice::GetTSPacket()).
    CAMs are now sent a generated EIT packet that contains a single 'present event' for the current SID, in order to avoid any parental rating dialogs.
    When selecting a device/CAM combination for live viewing, CAMs that are known to decrypt the requested channel are now given a higher priority than prefering the primary device.
    Extended the CI API to allow plugins to implement additional CAM resources.
    The new configuration file 'camresponses.conf' can be used to define automatic responses to CAM menus, for instance to avoid annyoing popup messages or entering the parental rating PIN. See vdr.5 for details.

Timers

    The cTimer class now has a new member named 'remote', which holds the name of the remote server this timer will record on. If this is NULL, it is a local timer.
    Timers from other VDRs that are connected to this VDR via SVDRP are now automatically fetched and stored in the global Timers list. In order for this to work, all of the channels used by timers on the remote VDR must also be defined on the local VDR (however, not necessarily in the same sequence).
    Accessing the global Timers list now has to be protected by proper locking, because SVDRP commands are now executed in a separate thread. The introduction of this locking mechanism required the following changes:
        The new classes cStateLock and cStateKey are used to implement locking with quick detection of state changes.
        cConfig::cConfig() now has a parameter that indicates whether this list requires locking.
        The global lists of Timers, Channels, Schedules and Recordings are no longer static variables. They are now pointers that need to be retrieved through a call to cTimers::GetTimersRead/Write(), cChannels::GetChannelsRead/Write(), cSchedules::GetSchedulesRead/Write() and cRecordings::GetRecordingsRead/Write(), respectively.
        References from/to link channels are now removed in cChannels::Del() rather than cChannel::~cChannel(), to make sure the caller holds a proper lock.
        cChannel::HasTimer() has been removed. This information is now retrieved via cSchedule::HasTimer().
        Several member functions of cChannel, cTimer, cMarks and cRecording have been made 'const', and some of them are now available as both 'const' and 'non-const' versions.
        The cChannel::Set...() functions are now 'bool' and return true if they have actually changed any of the channels's members.
        cChannels::SetModified() has been renamed to cChannels::SetModifiedByUser().
        cChannels::Modified() has been renamed to cChannels::ModifiedByUser(), and now has a 'State' parameter that allows the caller to see whether a channel has been modified since the last call to this function with the same State variable.
        The macros CHANNELSMOD_NONE/_AUTO/_USER have been removed.
        cMarks now requires locking via cStateKey.
        cSortedTimers now requires a pointer to the list of timers.
        cEvent::HasTimer() no longer scans the list of timers to check whether an event is referenced by a timer, but rather keeps score of how many timers reference it. This was necessary in order to avoid having to lock the list of timers from within a cEvent.
        The new class cListGarbageCollector is used to temporary store any objects deleted from cLists that require locking. This allows pointers to such objects to be dereferenced even if the objects are no longer part of the list.
        cListBase::Contains() can be used to check whether a particular object is still contained in that list.
        Outdated events are no longer "phased out", but rather deleted right away and thus taken care of by the new "garbage collector" of the list.
        Deleted cRecording objects are no longer kept in a list of "vanished" recordings, but are rather taken care of by the new "garbage collector" of the list.
        cSchedules::ClearAll() has been removed. The functionality is now implemented directly in cSVDRPServer::CmdCLRE().
        cSchedule now has a member Modified(), which can be used with a State variable to quickly determine whether this schedule has been modified since the last call to this function with the same State variable.
        cSchedulesLock has been removed. Locking the list of schedules is now done via the cList's new locking mechanism.
        The 'OnlyRunningStatus' parameters in cEpgHandler::BeginSegmentTransfer() and cEpgHandler::EndSegmentTransfer() are now obsolete. They are still present in the interface for backward compatibility, but may be removed in a future version. Their value is always 'false'.
        The constant tcMod is no longer used in cStatus::TimerChange(). The definition is still there for backward compatibility.
    Plugins that access the global lists of Timers, Channels, Recordings or Schedules will need to be adapted as follows:
        Instead of directly accessing the global variables Timers, Channels or Recordings, they need to set up a cStateKey variable and call the proper getter function, as in cStateKey StateKey; if (const cTimers *Timers = cTimers::GetTimersRead(StateKey)) { // access the timers StateKey.Remove(); } and cStateKey StateKey; if (cTimers *Timers = cTimers::GetTimersWrite(StateKey)) { // access the timers StateKey.Remove(); } See timers.h, thread.h and tools.h for details on this new locking mechanism.
        There are convenience macros for easily accessing these lists without having to explicitly set up a cStateKey and calling its Remove() function. These macros have the form LOCK_*_READ/WRITE (with '*' being TIMERS, CHANNELS, SCHEDULES or RECORDINGS). Simply put such a macro before the point where you need to access the respective list, and there will be a pointer named Timers, Channels, Schedules or Recordings, respectively, which is valid until the end of the current block.
        If a plugin needs to access several of the global lists in parallel, locking must always be done in the sequence Timers, Channels, Recordings, Schedules. This is necessary to make sure that different threads that need to lock several lists at the same time don't end up in a deadlock.
        Some pointer variables may need to be made 'const'. The compiler will tell you about these.
    If a timer is newly created with the Red button in the Schedule menu, and the timer is presented to the user in the "Edit timer" menu because it will start immediately, it now *must* be confirmed with "Ok" to set the timer. Otherwise the timer will not be created.
    The function cTimer::ToText() no longer returns a newline character at the end of the string. The newline is now added by the caller as necessary. This was changed because cTimer::ToText() is now also needed in a context where the terminating newline can't be used. Consequently, cChannel::ToText() and cMark::ToText() have been modified accordingly.
    Timers now have unique ids instead of numbers, which remain valid as long as this instance of VDR is running. This means that timers are no longer continuously numbered from 1 to N in LSTT. There may be gaps in the sequence, in case timers have been deleted.
    Timers are now linked to EPG events even if they are inactive. By default Events that are linked to inactive timers are marked with 'I' and 'i', depending on whether the timer would record the entire Event or only part of it. The function cSkinDisplayMenu::SetItemEvent() now has an additional parameter named TimerActive, which indicates whether the timer that would record this event (if any) is active. A plugin may react on this when displaying a menu line for an event. The old version of cSkinDisplayMenu::SetItemEvent() (without the TimerActive parameter) is still there for backwards compatibility. It may be removed in a future version, so plugin authors should switch to the new one.
    Improved handling VPS timers to better react to EPG changes during an ongoing recording.

Plugins

    The dvbhddevice plugin is no longer part of the VDR source archive. You can get the latest version of this plugin from the author's repository at https://bitbucket.org/powARman/dvbhddevice.
    The dvbsddevice and rcu plugins are no longer part of the VDR source archive. You can get the latest versions of these plugins from ftp://ftp.tvdr.de/vdr/Plugins.
    The -V and -h options now list the plugins in alphabetical order.
    Added some guidelines and recommendations to the 'Logging' section of PLUGINS.html. The most important being: implement a command line option to control the level of logging (in particular allow turning off logging completely!) and never print anything to stdout or stderr (unless one of the listed exceptions applies).
    Added a note to PLUGINS.html about writing log messages in English.
    The new function cStatus::MarksModified() can be implemented by plugins to get informed about any modifications to the editing marks of the currently played recording.

Skins

    The main menu of the LCARS skin now displays a small rectangle on the left side of a timer if this is a remote timer. The color of that rectangle changes if the timer is currently recording on the remote VDR.
    Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal menus.
    The LCARS skin now displays the master CAM's number when a device is tuned to an encrypted channel.

Remote control

    The new setup option "Recording/Record key handling" can be used to define what happens if the Record key on the remote control is pressed during live tv.
    If the Channel+/- keys are pressed while in the Schedules menu, the menu is now switched to the EPG of the new current channel.

Devices

    The command line option -D now accepts the value '-' (as in -D-), which prevents VDR from using any DVB devices.
    The function cDevice::SetCurrentChannel(const cChannel *Channel) is now deprecated and may be removed in a future version. Use SetCurrentChannel(int ChannelNumber) instead.
    Signal strength and quality (CNR) are now determined via DVB API 5 (if available). Fallback is the old DVB API 3 method.
    The new function cDevice::SignalStats() (if implemented by an actual device) returns statistics about the currently received signal.
    The function cDevice::GetVideoSystem() (which has been deprecated since version 2.1.6) has been finally removed.
    Switching the primary device is no longer done via osSwitchDvb (which has been removed), but rather by the main program loop reacting to changes in Setup.PrimaryDVB.

EPG

    The character 0x0D is now stripped from EPG texts.
    The EPG scanner no longer moves the dish if there is a positioner.
    The function cEpgHandlers::BeginSegmentTransfer() is now boolean. See the description in epg.h for the meaning of the return value.
    The cEvent class now has a new member 'aux', in which external applications can store auxiliary information with an event. This string has no meaning whatsoever to VDR itself, and it will not be written into the info file of a recording that is made for such an event.
    Changed the default return value of cEpgHandler::BeginSegmentTransfer() to true, to avoid problems with derived classes that don't implement this function.
    The EIT filter no longer parses data from "other TS", to avoid problems with broadcasters who transmit faulty EIT data.

OSD

    The new function cOsd::MaxPixmapSize() can be called to determine the maximum size a cPixmap may have on the current OSD. The 'osddemo' example has been modified accordingly. Plugin authors may want to use this function in case they use pixmaps that are larger than the full OSD size. The default implementation sets this limit to 2048x2048 pixel.
    Added some comment to cPixmap about the relation between OSD, ViewPort and DrawPort.
    The new setup option "OSD/Default sort mode for recordings" can be used to define how recordings shall be sorted by default (either by time or by name, with "by time" being the default). If a particular sort mode has been selected for a folder by pressing '0', the default no longer applies to that folder. Repeating timers no longer write a ".sort" file into a recordings folder to have the recordings sorted by time.
    The function cOsd::GetBitmap() is now 'protected'. If a plugin doesn't compile with this version of VDR, you can uncomment the line //#define DEPRECATED_GETBITMAP in osd.h as a quick workaround. In the long run the plugin will need to be adapted.
    Background modifications of channels, timers and events are now displayed immediately in the corresponding menus.
    The Timers menu now displays the name of the remote VDR in front of the timer's file name, if this is a remote timer.
    The width and height of the OSD are now limited to the actual maximum dimensions of the output device, taking into account the top and left offset.
    Added a note to the description of cFont::Size(), regarding possible differences between it and cFont::Height().
    Added cFont::Width(void) to get the default character width and allow stretched font drawing in high level OSDs.
    cOsdMenu::Display() now checks whether the OSD size has changed and if so calls SetDisplayMenu().
    The option "Setup/Miscellaneous/Show channel names with source" can now be set to "type" or "full" to show either the type or the full name of the source.
    The "Channels" menu now indicates whether a channel is encrypted ('X') or a radio channel ('R').
    The timeout for the channel display is now reset whenever the channel or EPG data changes.
    OSD menus now try to keep the offset of the list cursor at a constant position on the screen, even if the list is modified while being displayed.
    If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the Red button to edit the timer, local timers are now preferred over remote timers in case there is more than one timer that will record that event.
    The new setup option "OSD/Sorting direction for recordings" can be used to switch the sequence in which recordings are presented in the "Recordings" menu between ascending (oldest first) and descendeng (newest first).
    When selecting a folder for a recording or timer, it is now possible to open a folder even if it doesn't contain any subfolders.

Recordings

    Recordings now have unique ids instead of numbers, which remain valid as long as this instance of VDR is running. This means that recordings are no longer continuously numbered from 1 to N in LSTR. There may be gaps in the sequence, in case recordings have been deleted, and they are not necessarily listed in numeric order.
    Added detection of 24fps.
    The script that gets called for recordings is now also called right before a recording is edited, with the first parameter being "editing".
    Implemented a frame parser for H.265 (HEVC) recordings.
    When moving recordings between volumes, the "Recordings" menu now displays those items that have not yet been moved completely as non-selectable. This avoids situations where trying to play such a recording might fail.
    When moving a recording to a different folder, the cursor is no longer placed on the new location of the recording, but rather stays in the original folder. If the original folder got empty by moving away the last recording it contained, the cursor is moved up until a non empty folder is found.

SVDRP

    The SVDRP port now accepts multiple concurrent connections. You can now keep an SVDRP connection open as long as you wish, without preventing others from connecting. Note, though, that SVDRP connections still get closed automatically if there has been no activity for 300 seconds (configurable via "Setup/Miscellaneous/SVDRP timeout (s)").
    The SVDRP log messages have been unified and now always contain the IP and port number of the remote host.
    SVDRP connections are now handled in a separate "SVDRP server handler" thread, which makes them more responsive. Note that there is only one thread that handles all concurrent SVDRP connections. That way each SVDRP command is guaranteed to be processed separately, without interfering with any other SVDRP commands that might be issued at the same time. Plugins that implement SVDRP commands may need to take care of proper locking if the commands access global data.
    You can now set DumpSVDRPDataTransfer in svdrp.c to true to have all SVDRP communication printed to the console for debugging.
    The SVDRP commands that deal with timers (DELT, LSTT, MODT, NEWT, NEXT and UPDT) as well as any log messages that refer to timers, now use a unique id for each timer, which remains valid as long as this instance of VDR is running. This means that timers are no longer continuously numbered from 1 to N in LSTT. There may be gaps in the sequence, in case timers have been deleted.
    All timer related response strings from SVDRP commands now use the channel ID instead of channel numbers.
    The SVDRP command DELT no longer checks whether the timer that shall be deleted is currently recording.
    The SVDRP command DELC now refuses to delete the very last channel in the list, to avoid ending up with an empty channel list.
    The SVDRP commands that deal with recordings (DELR, EDIT, LSTR, MOVR, and PLAY) now use a unique id for each recording, which remains valid as long as this instance of VDR is running. This means that recordings are no longer continuously numbered from 1 to N in LSTR. There may be gaps in the sequence, in case recordings have been deleted, and they are not necessarily listed in numeric order.
    Changed 'number' to 'id' in the help texts of SVDRP commands that deal with timers.
    The SVDRP command LSTC can now list the channels with channel ids if the option ':ids' is given.
    If 0 is given as the channel number in the SVDRP command LSTC, the data of the current channel is listed.
    The new SVDRP commands 'LSTD' and 'PRIM' can be used to list all available devices and to switch the primary device.

Misc

    Added a section about Output Devices to the INSTALL file.
    The -u option now also accepts a numerical user id.
    The cRwLock class now allows nested read locks within a write lock from the same thread. This fixes possible crashes when moving or deleting channels in the menu or through SVDRP (as well as other operations that try to acquire a read lock within a write lock).
    Added support for the systemd watchdog.
    PIDs can now be added to and deleted from a cReceiver while it is attached to a cDevice, without having to detach it first and re-attach it afterwards.
    Log messages about switching channels now include the channel ID.
    The constructor of cHash (via cHashBase) now has an additional parameter (OwnObjects) which, if set to true, makes the hash take ownership of the hashed objects, so that they are deleted when the hash is cleared or destroyed.
    cListObject now implements a private copy constructor and assignment operator, to keep derived objects from calling them implicitly.
    The Makefiles have been modified so that during the build process they no longer display the actual (lengthy) commands, but rather just the name of the file that is being built, as in CC vdr.o The first two characters indicate the kind of operation (CC=compile, LD=link, AR=archive, MO=msgfmt, GT=xgettext, PO=msgmerge, IN=install). This way it is much easier to spot error messages and warnings, since they are not buried under tons of text. Add VERBOSE=1 to the 'make' call in the VDR source directory to see the actual commands that are executed. Plugin authors should modify their makefiles accordingly, by simply preceeding the respective commands with '$(Q)' and inserting '@echo XX $@' (where XX is one of the character combinations listed above) before the command. The newplugin script has also been modified accordingly. Note that if you build a plugin directly in the plugin's own source directory, the $(Q) macro won't be defined and commands will be displayed. You can add Q=@ to the make call to have it less verbose (provided the plugin's Makefile was modified as described above).
    Added backtrace functions for debugging (see cBackTrace in thread.h).
    Added checking the correct sequence of locking global lists. At the first occurrence of an invalid locking sequence, the 20 most recent locks will be written to the log file, followed by a backtrace that led to the call in question. This code can be activated by defining the macro DEBUG_LOCKSEQ in thread.c (which is on by default). When debugging an actual invalid locking sequence, you can additionally define the macro DEBUG_LOCKCALL in thread.c, which will add information about the caller of each lock. Note that this may cause some stress on the CPU, therefore it is off by default.
    The file Make.config.template now reacts on DEBUG=1 in the 'make' command line, and disables code optimizations by setting -O0. This can be helpful when backtracing highly optimized code. You may want to 'make distclean' before running 'make' with a modified setting of DEBUG, to make sure all object files are newly compiled.
    Introduced the new macro DISABLE_TEMPLATES_COLLIDING_WITH_STL, which can be defined before including tools.h in case some plugin needs to use the STL and gets error messages regarding one of the template functions defined in tools.h.
    The macros used to control deprecated code or functions have been changed to hold numeric values (0 and 1), so that they can be controlled at compile time, without having to edit the actual source code.
    The default for DEPRECATED_VDR_CHARSET_OVERRIDE has been set to 0, which means VDR no longer reacts on the environment variable VDR_CHARSET_OVERRIDE. You can add 'DEPRECATED_VDR_CHARSET_OVERRIDE=1' when compiling in order to restore this functionality. However, it is recommended to use the command line option --chartab instead.
    Disabled the use of posix_fadvise() when reading (i.e. replaying), since it caused stuttering replay in fast forward and fast rewind mode in case the video directory is mounted via NFS. You can re-enable it by setting the macro USE_FADVISE_READ to 1 in tools.c.
[close]

When updating from an earlier version of VDR please make sure you read the INSTALL
and MANUAL files that come with the VDR source before doing so!
Please make sure you have backup copies of all your configuration files,
and verify carefully that your timers will be set to the correct channels
after switching to this new version.

Please also visit the VDR homepage at

     http://www.tvdr.de

and VDR's facebook page at

     https://www.facebook.com/VideoDiskRecorder

Have fun!

Klaus
_______________________________________________
vdr mailing list
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Signatur
PC: lshw | Sats: 19.2° & 13°Ost (DiSEqC, 80cmØ Blech) | DVB-Soft: vdr 2.1.7 mit softhddevice via va-api
- Hauppauge Nova-T USB 2.0 Stick mit DiBcom DiB7700P Frontend, MT2060 tuner, Firmware
- TerraTec Cinergy S2 PCI HD mit STB0899 demodulator und Mantis VP 1041 PCI bridge
- TerraTec Cinergy S2 USB mit Montage DS3000 demodulator und IR-receiver,  Firmware
[close]