1. 07 Feb, 2015 1 commit
  2. 05 Dec, 2011 1 commit
    • Klaus Schmidinger's avatar
      Version 1.7.22 · 5a28d999
      Klaus Schmidinger authored
      Original announce message:
      VDR developer version 1.7.22 is now available at
      A 'diff' against the previous version is available at
      MD5 checksums:
      b9c0fe1aac8e653c0d0234bc72c2bb2c  vdr-1.7.22.tar.bz2
      868bb332342c9a78beda17cc85e0bb93  vdr-1.7.21-1.7.22.diff
      This is a developer version. Even though I use it in my productive
      environment. I strongly recommend that you only use it under controlled
      conditions and for testing and debugging.
      From the HISTORY file:
      - Fixed scaling subtitles in case the primary device's GetVideoSize() function doesn't
        return actual values (thanks to Luca Olivetti).
      - The DiSEqC codes are now copied in the call to cDiseqc::Execute().
      - VDR now supports "Satellite Channel Routing" (SCR) according to EN50494 (based on
        the "unicable" patch from Lars Hanisch).
        Since "Unicable" is a registered trademark and stands for only one of many
        implementations of SCR, the following changes have been made compared to the patch,
        which need to be taken into account by people who have set up their system using
        the patch:
        - The 'U' parameter in the diseqc.conf file has been changed to 'S' ("Scr").
        - The configuration file name has been changed from "unicable.conf" to "scr.conf".
      - Updated sources.conf (thanks to Arthur Konovalov).
      - The SVDRP command LSTC now also accepts channel IDs (thanks to Dominic Evans).
      - Fixed handling DVB subtitles and implemented decoding textual DVB subtitles (thanks
        to Rolf Ahrenberg).
      - Added cap_net_raw to the capabilities that are not dropped (thanks to Dominic Evans).
      - Fixed setting the start time of an edited recording (thanks to Christoph Haubrich).
      - Temporarily switching free devices to transponders in order to have their running
        status updated is now done by marking the devices as "occupied" for a certain
        amount of time.
      - The new setup options "LNB/Device n connected to sat cable" can be used to define
        which DVB-S devices are connected to the same sat cable and are therefore "bonded".
        This obsoletes the LNBSHARE patch. Users of the LNBSHARE patch will need to newly
        set up their sat devices with the above options.
      - Fixed a crash when deleting a recording while cutting it (thanks to Ville Skyttä).
      - Fixed several spelling errors (thanks to Ville Skyttä).
      - The new SVDRP command UPDR can be used to trigger an update of the list of
        recordings (thanks to Lars Hanisch).
      - Added generating a pkg-config file to the Makefile (thanks to Ville Skyttä).
      - Removed the '.pl' suffix from all scripts (thanks to Ville Skyttä).
      - Changed the default location for the LIRC socket to /var/run/lirc/lircd (thanks
        to Ville Skyttä).
      - Added file name and line number to LOG_ERROR_STR() (thanks to Rolf Ahrenberg).
      - Replaced all calls to sleep() with cCondWait::SleepMs() (thanks to Rolf Ahrenberg).
      - Fixed a crash with malformed SI data (patch from vdr-portal).
  3. 28 Feb, 2010 1 commit
    • Klaus Schmidinger's avatar
      Version 1.7.13 · 5ce592e5
      Klaus Schmidinger authored
      - Updated the Italian OSD texts (thanks to Diego Pierotto).
      - Changed the position of Sirius 4 to S4.8E in sources.conf (thanks to Alexander Gross).
      - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
      - Moved the declaration of cMenuCommands to menu.h, so that plugins can use it.
      - Added a note to the MANUAL, saying that adding new transponders only works if the
        "EPG scan" is active (suggested by Halim Sahim).
      - Improved handling frames at the beginning and end of a recording in cDvbPlayer for
        devices with large buffers (thanks to Reinhard Nissl).
      - Implemented cDeviceHook to allow plugins more control over which device can
        provide which transponder (thanks to Reinhard Nissl).
      - Implemented cDevice::GetCurrentlyTunedTransponder() (thanks to Reinhard Nissl).
      - Moved strictly necessary Makefile options into Make.global, which is included
        by all plugins (thanks to Paul Menzel). The Makefiles of existing plugins should be
        modified like this:
        --- PLUGINS/src/hello/Makefile  2009/10/18 14:00:07      2.1
        +++ PLUGINS/src/hello/Makefile  2010/02/06 14:50:03      2.2
        @@ -18,7 +18,7 @@
         ### The C++ compiler and options:
         CXX      ?= g++
        -CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
        +CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
         ### The directory environment:
        @@ -26,6 +26,10 @@
         LIBDIR = ../../lib
         TMPDIR = /tmp
        +### Make sure that necessary options are included:
        +include $(VDRDIR)/Make.global
         ### Allow user defined options to overwrite defaults:
         -include $(VDRDIR)/Make.config
      - Added device definitions to the diseqc.conf file format, so that certain satellite
        positions can be limited to a given list of devices.
        This obsoletes the SOURCECAPS patch.
      - Keeping subtitles visible when pausing replay (thanks to Rolf Ahrenberg).
      - Fixed adding new transponders in case there is only a single channel in the
        channel list (reported by Halim Sahin).
      - The file name in the "Timers" menu now shows only the base name of the recording
        without the folder path (if any). Otherwise with long folder paths the actual
        recording name was not visible at all.
      - Updated the Romanian OSD texts (thanks to Lucian Muresan).
      - Exported some libsi functions (thanks to Lucian Muresan).
      - Improved scalability of the default skins.
      - Fixed the German translation of "Folder name must not contain '%c'!" (thanks to
        Frank Schmirler).
      - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
      - Plugins can now define new sources. In order to implement this, the following
        changes were made:
        + The transponder parameter string is no longer interpreted by cChannel, but rather
          stored as is and used only by the respective device. That way plugins can use a
          channel's parameter string to store arbitrary data (see vdr.5).
        + The new class cSourceParam can be used by plugins to define new sources, and to
          implement OSD items that will be used in the channel editor for editing the source
          specific parameters of a channel (see dvbdevice.c for an example of how this is
          done for the default DVB devices).
        + Purely numerical values are no longer accepted in the 'source' parameter of a
        This obsoletes the PLUGINPARAM patch.
      - Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
      - cSafeFile::Close() now flushes the file (suggested by Stephan Austermühle).
      - The option "Setup/DVB/Use Dolby Digital" now only controls whether Dolby Digital
        tracks appear in the "Audio" menu. Dolby Digital is always recorded.
        This obsoletes the DOLBYINREC patch.
  4. 09 Apr, 2006 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.46 · 396d0ad3
      Klaus Schmidinger authored
      - Fixed handling broken PMT records (thanks to Marcel Wiesweg for pointing out how
        to detect these).
      - Added a missing "Button$" for the Timer button and "Key$" in skinclassic.c
        (thanks to Rolf Ahrenberg).
      - Fixed broken entry 'A111.1W' in sources.conf (reported by Luca Olivetti).
      - Replaced the obsolete entry 'S21.5E' in the default 'diseqc.conf' with 'S13.0E'
        (reported by Ville Skyttä).
      - Fixed learning keys when VDR is already running (thanks to Jurij Retzlaff).
      - Fixed handling the system time transponder setting in the Setup/EPG menu, which
        was broken by the min/max fix in cMenuEditIntItem.
      - VPS timers now record only events that have exactly the given start time.
        This fix also implements recording several subsequent events that have the
        same VPS time (like a sports event with intermittent news breaks).
      - When checking for timers that have entered the "VPS margin", any free devices are
        now used to switch to the needed transponder. This improves cases where more than
        one VPS timer is about to start.
      - Fixed handling the VPS margin in case the event's duration is shorter than the
      - Fixed handling VPS timers in case the primary device needs to switch to the
        timer's transponder.
      - Now avoiding the 'actual' device when starting a recording, so that a Transfer
        Mode for live tv isn't interrupted.
      - Fixed a typo in skins.h (thanks to Alexander Rieger).
      - cSkins::QueueMessage() called from a background thread with an empty message
        now clears all messages that have been previously queued by that thread and have
        not yet beed displayed (thanks to Alexander Rieger).
      - Fixed handling the color button texts when switching from the 'Schedule' menu of
        a channel without EPG info to the 'What's on now' menu (reported by Rolf
      - cMenuEditIntItem and cMenuEditChanItem can now be given strings to label the
        minimum and maximum values, and the case that no channel has been selected,
      - The initial channel and volume can now be defined in the "Setup/Miscellaneous"
        menu (based on a patch from Thomas Keil).
      - When hitting the end of a recording in fast forward mode, VDR no longer switches
        back to normal speed if the recording is already finished (thanks to Reinhard
      - No longer calling cPlugin::ProcessArgs() if VDR is run with the --help or
        --version option, to avoid error messages from plugins (reported by Udo Richter).
      - Now checking whether there is any text before calling cStatus::MsgOsdTextItem()
        (reported by Joachim Wilke).
  5. 15 Jan, 2006 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.39 · 78e3da81
      Klaus Schmidinger authored
      - The SVDRP command LSTT now accepts the new option 'id' to have the channels
        of the timers listed with their unique channel ids instead of their numbers
        (suggested by Matthias Schniedermeyer).
      - Added a missing #include <linux/unistd.h> to thread.c (thanks to Ville Skyttä).
      - Fixed the "plugins-clean" and "plugins-install" targets in the Makefile (thanks
        to Andreas Brachold).
      - Fixed handling "more than 3 byte" key sequences in cKbdRemote::ReadKeySequence()
        (thanks to Peter Bieringer). If you are using the PC keyboard as remote control
        input you may need to make VDR newly learn the keys by removing the remote.conf
      - To avoid problems with access rights when VDR shall run as 'root' it now skips
        all SetCaps() and SetUser() calls when it is started as 'root' and "-u root"
        is given.
      - Added missing i18n entry for the "Timer" button (thanks to Ville Skyttä)
      - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
      - Making the "Menu" key behave consistently has not been well received by several
        users, so the new option "Setup/OSD/Menu button closes" can be used to get the
        old behavior back (which also is the default value of this option).
      - Dropped the default vdr user. The program now always runs under the user id
        it was started from, unless the '-u' option is given and it was started from
        the 'root' user. If you want to have a default vdr user, you can activate and
        adjust the "VDR_USER = vdr" line in your Make.config file (from the original
        patch by Ludwig Nussel).
      - Key macros can now be defined for all non-modeless keys (suggested by Mirko Dölle).
      - Adjusted the "KEY MACROS" section of vdr.5 to the new plugin calling mechanism
        introduced in version 1.3.32.
      - Removed the now obsolete "ca.conf" section from vdr.1 (thanks to Ville Skyttä).
      - Added missing description of L and R circular polarization to 'diseqc.conf'.
      - Added a note about "modprobe capability" to INSTALL (suggested by Patrick Cernko).
      - Fixed canonicalizing the file name in the SVDRP command GRAB to allow full path
        names (thanks to Stefan Huelswitt).
      - Added a missing '-' to the example for viewing a grabbed image on a remote host
        (reported by Philippe Gramoullé).
      - Made the "What's on now/next?" menus a lot faster by storing a pointer to each
        channel's schedule in the cChannel data.
      - Made the log messages regarding lost lock of devices "info" instead of "error"
        (suggested by Andreas Brachold).
      - The SVDRP command GRAB allows file names without extension again (suggested by
        Stefan Huelswitt).
      - Pressing '0' in the "Schedule" menu now rotates through displaying "This event on
        this channel", "This event on all channels" and "All events on all channels".
        This can be used to find reruns of a given show, or the episodes of a series.
        Note that if there are many channels in your channels.conf, displaying the
        "All events on all channels" page may take a while.
      - The status markers in the "Schedule" menu are now only updated if a submenu is
        closed in which a timer has been modified, which speeds up closing submenus.
      - Now only writing Dolby Digital tracks into the 'info.vdr' file of a recording
        if Setup.UseDolbyDigital is true (suggested by André Weidemann).
      - Added a leading '0' to the day in the DayDateTime() function (thanks to Rolf
      - No longer displaying color buttons in the recording info menu if it has been
        invoked from a player (reported by Jürgen Schilling).
  6. 24 Oct, 2004 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.14 · 6f93a5f7
      Klaus Schmidinger authored
      - Fixed detecting transponder lock in cDvbTuner (based on a patch from Stefan
      - What was previously marked with WAIT_FOR_LOCK_AFTER_TUNING is now permanently
        active and uses a cCondVar to signal when a transponder is locked.
      - Added some missing 'const' to cChannel.
      - Added a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
        (thanks to Oliver Endriss).
      - Fixed attaching a cPlayer to a cDevice, so that 'Operation not permitted'
        errors don't occur any more (thanks to Marco Schlüßler).
      - Fixed a case where the resultBuffer in cRemux ran full before getting a sync.
      - Removed the usleep() call from cDvbPlayer::Action() to make VDR run on NPTL
        systems (thanks to Alfred Zastrow). The NPTL check at startup has also been
      - Taking the complete size of available data into account when deciding whether
        to clear the transfer buffer to avoid overflows (thanks to Reinhard Nissl).
      - Updated Romanian language texts and the iso8859-2 fonts (thanks to Lucian Muresan).
      - Now actually using the iso8859-15 fonts (thanks to Lucian Muresan).
      - Some minor code cleanups (thanks to Prakash K. Cheemplavam).
      - Fixed missing cleanup at program exit in case there is a problem with a plugin
        (thanks to Mattias Grönlund for pointing this out).
      - Increased the required free buffer space in the resultBuffer of cRemux to
        2 * IPACKS to avoid a buffer overflow in case a cTS2PES writes one complete
        packet and then (within processing the same TS packet) wants to write another
        small packet.
      - Removed the signal handler and WakeUp() call from cThread (it is no longer
      - Added some checks when canceling a thread and removed the usleep() in
        cThread::Start() (suggested by Ludwig Nussel). Also removed 'running' from
        cThread and using only childTid to indicate whether a thread is actually
      - Added cCondWait::Sleep() and using it to replace all usleep() calls (based
        on a suggestion by Werner Fink).
      - Only assigning events to timers if the related schedule has actually been
      - When searching for the present event, the running status is now only taken
        into account if the event has been "seen" within the past 30 seconds.
        This avoids shortly seeing the wrong events in the channel display when
        switching to a channel that hasn't been tuned to in a while.
  7. 24 Nov, 2002 1 commit
    • Klaus Schmidinger's avatar
      Version 1.1.17 · fe9499ba
      Klaus Schmidinger authored
      - Added new entries to 'ca.conf'.
      - Fixed closing unused PID handles (thanks to Stefan Schluenss for reporting this
      - Added more examples to 'diseqc.conf' (thanks to Oliver Endriss).
      - Fixed disabling multiple recordings on a single DVB card (comment out the definition
      - Plugins can now have their very own OSD setup in the object they return from
        a call to cPlugin::MainMenuAction(). In order to implement this, the return type
        of cPlugin::MainMenuAction() had to be changed from (cOsdMenu *) to (cOsdObject *).
        So in case you are compiling an existing plugin with this version of VDR and you
        get an error message, simply change cOsdMenu to cOsdObject in the plugin's source
        for the MainMenuAction() function.
        Plugin authors who have so far (ab)used the cControl mechanism to implement their
        own raw OSD should take a look at the new demo plugin 'osddemo'. It implements
        a very primitive game that shows how a plugin can have its own raw OSD. Especially
        look into cLineGame and see how it implements the Show() function. See also
        the chapter on "User interaction" in PLUGINS.html.
      - Added three new fields to the lines in 'channels.conf': NID, TID and RID. NID and
        TID are the Network and Transport Stream IDs, respectively. RID is an additional ID
        that can be used to tell apart channels that would otherwise be indistinguishable.
        This is typically the case with radio channels, which may have the same NID, TID
        and SID, but different "radio IDs". This new field is therefore called RID ("radio
        ID"). Currently NID and TID are not yet used by VDR and should always be 0. The
        RID is actually used when building the "unique channel ID", so if you have channels
        in your 'channels.conf' file that cause error messages when loading, you can set
        the RIDs of these channels to different values.
        When reading an old 'channels.conf' these new fields will be automatically
        initialized to 0 and once the file is written back to disk they will be appended
        to the channel definitions.
        Thanks to Régis Bossut for pointing out that with some providers the channels can
        only be distinguished through the RID.
      - The "unique channel ID" now contains an optional 5th part (the RID). See man vdr(5).
      - Updated 'channels.conf.cable' and made some channels unique using the new RID
        (thanks to Andreas Kool for pointing out the problems).
      - Made some channels unique in 'channels.conf.terr' using the new RID.
      - Extended the '-l' option to allow logging to LOG_LOCALn (n=0..7) by writing, for
        instance, '-l 3.7' (suggested by Jürgen Schmidt).
      - Now deleting stale lock files if they have a time stamp that is outside the window
        'now +/- LOCKFILESTALETIME'. This improves things in cases where the system time
        makes far jumps, so that a lock file might end up with a time stamp that lies
        in the distant future (thanks to Oliver Endriss).
  8. 06 Oct, 2002 1 commit
    • Klaus Schmidinger's avatar
      Version 1.1.12 · 313e3353
      Klaus Schmidinger authored
      - Fixed a missing Flush() call in the remote control learning procedure (thanks
        to Oliver Endriss).
      - Modified channel handling to cover all parameters necessary for DVB-C and DVB-T
        (see man vdr(5) for the meaning of the additional parameters stored in the field
        previously named 'polarisation'). Thanks to Uwe Scheffler and Andy Carter for testing.
        If you have a system with different kinds of DVB cards, like DVB-T and DVB-C,
        for instance, there is no more need to distinguish the channels through the
        'Ca' parameter in order to assign them to the various DVB cards. This is now
        taken care of by the "source" parameter. So a channel marked as "terrestrial",
        for example, will only be received on DVB-T cards.
        Note that the cChannel class has been moved into a separate file (channels.[ch]),
        and that all data members have been made private and are now only accessible
        through member functions. You may have to change any plugin code that accesses
        cChannel data accordingly.
      - The new configuration file 'sources.conf' contains the various signal sources
        (satellites, cable and terrestrial) which are used in 'channels.conf' and
        'diseqc.conf' (thanks to Reinhard Walter Buchner for adding some satellites to
        'sources.conf' and Oliver Endriss and Lauri Tischler for testing and debugging).
      - The 'diseqc' parameter in the channel definitions has been redefined to hold the
        "source" of the given channel (which can be either a satellite, cable or terrestrial).
        For compatibility with channels.conf files from older versions, numeric values in
        this parameter will be tolerated, but they have no meaning. If you want to use
        DiSEqC you will need to replace these old values with the proper source identifiers
        defined in the new configuration file 'sources.conf'. See how this is done in the
        'channels.conf' file that comes with the VDR package.
      - The new configuration file 'diseqc.conf' can be used to set up the individual
        diseqc configuration (see man vdr(5) for a description of the file format).
      - The "Edit channel" menu has a new entry "Source:" in which the source of this
        channel can be selected (either a satellite, cable or terrestrial). The set of
        parameters at the end of this menu will change according to the type of source.
      - The "Use DiSEqC" parameter in the "Setup/LNB" menu has been moved to the beginning
        of the list and disables the rest of the parameters when set to "yes", since these
        are now only meaningful if DiSEqC is _not_ used.
      - Removed some unnecessary #includes from eit.c and changed cMenuRecordings::Del()
        to cMenuRecordings::Delete() to avoid warnings in gcc-3.2 (thanks to Andreas
        Schultz for pointing this out).
      - Improved skipping channels that are (currently) not available (thanks to Stefan
      - Updated channels.conf.terr and channels.conf.cable (thanks to Uwe Scheffler).
      - Fixed a bug when pressing the "Blue" button in the main menu without having
        displayed it (thanks to Oliver Endriss for reporting this one).