1. 07 Jan, 2017 1 commit
  2. 07 Feb, 2015 1 commit
  3. 19 Feb, 2012 1 commit
    • Klaus Schmidinger's avatar
      Version 1.7.24 · c2d9577b
      Klaus Schmidinger authored
      Original announce message:
      VDR developer version 1.7.24 is now available at
      A 'diff' against the previous version is available at
      MD5 checksums:
      a034c5e399417dfc583483f650d003ee  vdr-1.7.24.tar.bz2
      aa1a2b202da92e65945ff39470b26618  vdr-1.7.23-1.7.24.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:
      - Updated the Italian OSD texts (thanks to Diego Pierotto).
      - Fixed a high load in case a transponder can't be received.
      - Improved the way DVB_API_VERSION is checked.
      - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
      - Fixed asserting there is a live programme if the primary device is bonded with
        a device that starts a recording on a different band.
      - Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html.
      - Fixed a crash in a plugin using cDeviceHook when VDR ends (reported by Oliver Endriss).
      - Some improvements to the Makefiles (thanks to Christian Ruppert).
      - Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full
        minutes (thanks to Christoph Haubrich).
      - Symbolic links are no longer resolved in cRecordings::ScanVideoDir() (thanks to
        Sundararaj Reel).
      - The epg.data file is now read in a separate thread to make the startup process
        faster in case the file is very large (suggested by Helmut Auer).
      - Fixed selecting the primary device for receiving the live viewing channel in
        case it is bonded with an other device and has no receiver attached to it.
      - Fixed a possible crash when canceling VDR while displaying subtitles, and the
        primary device is no longer available.
      - Improved handling subtitles of BBC channels.
      - No longer using tabs as delimiter in the EPG bugfix log (they were garbled in the
        log file).
      - Added a missing '.' after the month in VPS strings.
      - Added some missing 'const' to cDevice (thanks to Joachim Wilke).
      - Fixed handling the PrimaryLimit when requesting a device for live viewing
        (reported by Uwe Scheffler).
      - Removed superfluous calls to SetVideoFormat() from device constructors. This
        function is called in cDevice::SetPrimaryDevice(), anyway.
      - An ongoing editing process is now canceled if either the original or the edited
        version of the recording is deleted from the Recordings menu.
      - The SVDRP command DELR now won't delete a recording that is currently being edited.
      - Removed code stub for obsolete SVDRP command MOVT.
      - The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory
        instead of looping through adapter/frontend numbers. This allows for "holes" in the
        device numbering.
      - cReadDir::Next() now skips directory entries "." and "..".
      - Fixed a possible deadlock in time shift mode.
      - Fixed switching into time shift mode when pausing live video (thanks to Reinhard
        Nissl for helping to debug this one).
  4. 19 Mar, 2011 1 commit
    • Klaus Schmidinger's avatar
      Version 1.7.17 · 5619c060
      Klaus Schmidinger authored
      - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
      - Fixed following symbolic links in RemoveFileOrDir() (cont'd) (thanks to
        Steffen Barszus).
      - Changed the description of cDevice::GetSTC() to make it mandatory for devices
        that can replay.
      - Removed the check for positive STC values from cDvbSubtitleConverter::Action().
      - Added cString::operator=(const char *String) (suggested by Antti Seppälä).
      - Some spelling fixes (thanks to Ville Skyttä).
      - Passing package name and version to xgettext (thanks to Ville Skyttä).
      - Made 'dist' target dependent on up to date *.po (thanks to Ville Skyttä).
      - Added Language and fixed Language-Team header of *.po (thanks to Ville Skyttä).
      - Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
      - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
        This avoids artifacts during fast forward/rewind when replaying recordings from such
        channels. To fix the index of existing recordings from such channels, just delete the
        'index' file of the recording and VDR will generate a new one the next time you play it.
        You should also change the line "F 25" to "F 50" in the 'info' file of that recording.
      - Added support for "registration descriptor" to 'libsi' and using it in pat.c (thanks
        to Rolf Ahrenberg).
      - Fixed unjustified log entries about changed channel pids (reported by Derek Kelly).
      - Added an include of VDR's 'Make.global' to libsi's Makefile (thanks to Rolf
      - Removed displaying the "contents" information from the "Classic VDR" and
        "ST:TNG Panels" skins, because it is often wrong and nothing but irritating.
      - Added typecasts to avoid gcc 4.5 warnings in switch statements on eKeys
        variables where additional 'k_...' flags are used.
      - Fixed inclusion of <stdarg.h> (thanks to Henning Heinold).
      - Changed "frame duration" to "frame rate" in vdr.5 (reported by Tobias Grimm).
      - Removing a cRemote from the Remotes list in case its initialization failed (thanks
        to Dominik Strasser).
      - Added LDFLAGS to the linker calls in the Makefiles (thanks to Joerg Bornkessel and
        Paul Menzel).
      - Now updating the 'frames per second' data in the list of recordings when a new
        recording is started that has a frame rate other than the default.
      - The include path to the freetype2 header files is now retrieved via a call to
        'pkg-config --cflags freetype2' (suggested by Andreas Oberritter).
      - The OSD now has full TrueColor support. There can be several "pixmaps" that can
        be overlayed with alpha blending. All existing skins should work out of the box
        with the TrueColor OSD - the only exception being cOsd::GetBitmap(). Since the
        TrueColor OSD doesn't use bitmaps, this function will return a dummy bitmap, which
        may not be what the plugin expects. As long as this bitmap is only used for setting
        the palette, there is no problem. However, any other operations on this bitmap will
        have no effect. See the description of the cPixmap functions in osd.h for details
        about the new functionalities.
        The "ST:TNG Panels" skin has been enhanced to automatically use the TrueColor OSD
        if available.
        The "osddemo" plugin has been extended to show some of the possibilities of the
        TrueColor OSD if it is run on a system that actually provides TrueColor support.
        Thanks to Reinhard Nissl for some valuable input, help with debugging, and an
        implementation of the AlphaBlend() function.
      - Updated the Slovakian language texts (thanks to Milan Hrala).
      - Added Serbian language texts (thanks to Milan Cvijanovic).
      - Fixed reallocating memory in the "pictures" plugin (reported by Paul Menzel, with
        input from Oliver Endriss).
      - Fixed reallocating memory in cTsToPes::PutTs() (suggested by Oliver Endriss).
      - Now checking the result of all realloc() calls.
      - Fixed setting up the 'Recordings' menu in case there are several recordings
        with exactly the same name (reported by Marcus Hilbrich).
      - Setting the audio type of language descriptors to 0x00 in the PAT/PMT generator
        (thanks to Anssi Hannula).
      - Changed the compiler optimization flag to -O3, which gives quite a performance
        boost in the AlphaBlend() function.
      - While replaying, the editing marks are now updated every 10 seconds (based on a
        patch from Manuel Reimer).
      - Now reducing the thread and I/O priority cCuttingThread::Action() to make the
        foreground process more responsive (suggested by Frank Neumann).
      - Removed checking for minimum line length of 21 characters in the LIRC receiver code
        (reported by Gerald Dachs).
      - Updated the Romanian OSD texts (thanks to Lucian Muresan).
      - Now storing the original display size when handling DVB subtitles (thanks to
        Reinhard Nissl).
      - The original display size of subtitles is now used to scale them properly when
        displaying them on an HD OSD.
  5. 13 Apr, 2008 1 commit
    • Klaus Schmidinger's avatar
      Version 1.7.0 · 771986b8
      Klaus Schmidinger authored
      - Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was
        revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now
        requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto.
        Note that the channels.conf file now supports additional parameters, so you may
        want to make sure you have a backup of this file in case you need to go back to
        the previous version of VDR!
      - Fixed displaying transponder data when it is modified (thanks to Reinhard Nissl).
      - Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
      - Improved logging system time changes to avoid problems on slow systems under
        heavy load (suggested by Helmut Auer).
      - Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf
      - Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
        Andreas Mair).
      - Fixed setting the OSD level in the 'osddemo' example (thanks to Wolfgang Rohdewald).
      - Increased the time between checking the CAM status to 500ms to avoid problems
        with some CAMs (reported by Arthur Konovalov).
  6. 17 Feb, 2008 1 commit
    • Klaus Schmidinger's avatar
      Version 1.5.15 · 9279cb21
      Klaus Schmidinger authored
      - Updated the Italian OSD texts (thanks to Diego Pierotto).
      - Added option -i to the pictures plugin's pic2mpg to ignore unknown file types.
      - Revoked the switch to the "multiproto" driver in order to make a new stable
        version before making this big switch and forcing all users to install a
        driver that is not yet in the kernel source. The removed code will reappear
        in version 1.7.0.
        Note that you may need to switch back to an older version of your channels.conf
        file if you have already used version 1.5.14, because it introduced new parameters.
      - Added the new command line option --userdump to enable core dumps in case VDR
        is run as root with option -u (thanks to Hans-Werner Hilse).
      - Speeded up anti-aliased font rendering by caching the blend indexes (based on
        a suggestion by Martin Wache).
      - Fixed setting the OSD area in the pictures plugin.
      - Ignoring "repeat" and "release" keys in the time search entry mode during replay,
        to avoid inadvertently leaving it in case a key is pressed too long (suggested
        by Andreas Brugger).
      - Improved sending all frames to devices that can handle them in fast forward
        trick speeds, including subtitles (thanks to Timo Eskola).
      - The section handler is now stopped before the device is destroyed, to avoid
        accessing file handles after they have become invalid (thanks to Reinhard
        Nissl for reporting an invalid access when ending VDR, and to Deti Fliegl for
        a patch that was used to implement StopSectionHandler()).
      - Fixed setting the date in the channel display of the classic and sttng skins,
        to avoid unnecessary OSD access (thanks to Marco Schlüßler).
      - The free disk space is now also displayed in the title of the "Recordings"
        menu (suggested by Walter Koch).
      - Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because
        it applies to non-VPS recordings as well.
      - Fixed a loss of a timer's 'recording' flag after modifying it via MODT.
      - Fixed detecting directories in cFileNameList::Load().
      - Running the thread that removes deleted recordings at a low priority to (maybe)
        avoid stuttering replay in case the thread is run during replay.
      - Limiting the length of the recording name in timers in case VDR is run with
        --vfat, in order to avoid names that are too long for Windows (suggested by Rolf
      - Using cString::sprintf() instead of asprintf() (thanks to Wolfgang Rohdewald
        for pointing out a possible problem if the return value is not checked).
        Plugin authors may want to consider doing the same. For convenience there is now
        an additional version of cString::sprintf() that accepts a va_list parameter.
      - When deleting the recording that is currently replayed, the replay is now
        stopped immediately (thanks to Mikko Matilainen for reporting a possible crash
        if the Info key is pressed after deleting the currently replayed recording).
      - Updated the Russian OSD texts (thanks to Oleg Roitburd).
      - When determining the amount of free disk space, any deleted (but not yet removed)
        recordings on different file systems (that are mounted under the video directory)
        are no longer taken into account.
      - When running out of disk space during a recording, only such deleted or old
        recordings are removed, that actually are on the video directory file system(s).
        This prevents VDR from accidentally deleting recordings on other file systems,
        which would not add any free space to the video directory.
      - Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks
        in plugins (thanks to Petri Hintukainen).
      - Added cStatus::TimerChange() to inform plugins about changes to the list of timers
        (based on a patch from Benedikt Elser).
      - Added new cStatus functions to the 'status' plugin.
      - Added missing #include <limits.h> to epg.c and menuitems.h (thanks to Ville Skyttä).
      - The new function cSkin::SetScrollbar() can be implemented by skins to display
        a scrollbar in every list menu. The 'classic' and 'sttng' skins have been
        changed accordingly, as well as the 'skincurses' plugin.
      - Introduced 'operator const void * ()' in cString to catch cases where operator*()
        should be used.
      - Fixed calculating the scrollbar sizes in the skins.
  7. 12 Aug, 2007 1 commit
    • Klaus Schmidinger's avatar
      Version 1.5.7 · 4c65b525
      Klaus Schmidinger authored
      - All logging now goes to LOG_ERR, because some systems split error, info and
        debug messages into separate files, which repeatedly caused extra efforts to
        find out when incomplete log excerpts were attached to problem reports in
        the past.
      - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
      - Fixed a problem with characters >0x7F in the modified version of skipspace()
        (thanks to Marco Schlüßler).
      - Fixed a bug I introduced when simplifying the original patch for detecting
        Premiere NVOD channel links (crash reported by Malte Schröder).
      - Internationalization is now done with 'gettext' (following a suggestion by
        Lucian Muresan). Plugin authors may want to use the Perl script
        'i18n-to-gettext.pl' to convert their internationalized texts to the gettext
        format (see the instructions inside that script file). The function
        cPlugin::RegisterI18n() is still present for compatibility, but doesn't
        have any more functionality. So plugins that don't convert their texts to
        the gettext format will only present English texts.
        See PLUGINS.html, section "Internationalization", for instructions on how
        to make strings in arrays translatable.
        See README.i18n for information on how to create new or maintain existing
      - The three letter language codes and their aliases are stored in i18n.c, and
        each translation file only contains one of them to link that language name
        to the code.
      - The 'newplugin' script has been extended to generate the Makefile section
        for i18n support.
      - The parameter OSDLanguage in 'setup.conf' is now a string and holds the locale
        code of the selected OSD language (e.g. en_US). If Setup.OSDLanguage is not
        set to a particular locale that is found in VDR's locale directory, the
        locale as defined in the system environment is used by default.
      - The list of tracks given in cStatus::SetAudioTrack() is now NULL terminated,
        so that plugins can actually use all the strings in the list, not just the
        one pointed to by Index (thanks to Alexander Rieger).
      - Fixed handling kLeft in the calls to cStatus::MsgOsdTextItem() (thanks to
        Alexander Rieger).
      - Added the "...or (at your option) any later version" phrase to the license
        information of all plugins, and also the 'newplugin' script (suggested by
        Ville Skyttä). Plugin authors may want to consider doing the same.
      - Fixed the link to the GPL2 at http://www.gnu.org in vdr.c (thanks to Ville
      - cBitmap::SetXpm() now checks whether the given Xpm pointer is not NULL, to
        avoid a crash with files that only contain "/* XPM */" (suggested by Andreas
      - Added a debug error message to cReceiver::~cReceiver() in case it is still
        attached to a device (thanks to Reinhard Nissl).
  8. 06 Nov, 2005 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.36 · 812ab901
      Klaus Schmidinger authored
      - Fixed a NULL pointer access with the cUnbufferedFile when a replay session runs
        all the way until the end of the recording (thanks to Joachim Wilke).
      - A menu is no longer automatically closed when a replay ends (reported by
        Marko Mäkelä).
      - Removed '\n' from several syslog() calls (reported by Sascha Volkenandt).
      - Fixed missing '&' in the SetAreas() example in PLUGINS.html (reported by
        Sascha Volkenandt).
      - Fixed a memory leak in cString::operator=() (reported by Sascha Volkenandt).
      - Updated the Dutch OSD texts (thanks to Maarten Wisse).
      - cReadLine now dynamically allocates its buffer, so that it can handle lines
        of any length.
      - Changed cConfig::Load() to use cReadLine instead of a fixed buffer (thanks
        to Andreas Mair for reporting a problem with extremely long summary fields
        in timers).
      - cSVDRP now dynamically allocates its command buffer in order to handle
        commands of any length. The MAXPARSEBUFFER macro is now obsolete and has
        been removed. If a plugin has used that macro, it should either define
        a buffer size of its own, or use cReadLine when reading files.
      - Fixed a race condition in the SPU decoder (thanks to Marco Schlüßler).
      - The EPG scan no longer disturbs players that have also set live PIDs
        (reported by Stefan Huelswitt).
      - Fixed setting the help key display in the Recordings menu in case of several
        layers of subdirectories.
      - Removed EPG bugfix #0, because it removed actually important data.
  9. 09 Jan, 2005 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.18 · fb5cccb2
      Klaus Schmidinger authored
      - Removed an unused variable from cTimer::GetWDayFromMDay() (thanks to Wayne Keer
        for reporting this one).
      - Some more changes to the 'childTid' handling in cThread (based on suggestions by
        Stefan Huelswitt).
      - Fixed the spelling of 'canceling' (thanks to Wayne Keer for reporting this one).
      - Re-introduced a sleep to cDvbPlayer::Action() to avoid high CPU load in still
        picture mode (thanks to Reinhard Nissl for reporting this one).
      - Fixed a possible race condition in generating the DVB device names (thanks to
        Rainer Zocholl for reporting this one).
      - Changed the way PES packets are played to allow replay of AC3 sound over the
        full featured DVB cards (partially based on a patch from Werner Fink).
        + The new function cDevice::PlayPes() is now called with the complete PES data
          stream and calls PlayVideo() and PlayAudio() as necessary.
        + cDevice::PlayVideo() is now only called with actual video PES packets.
        + cDevice::PlayAudio() is now called with the actual audio PES packets, which
          can be either "normal" audio or AC3 data. You need at least firmware version
          0x261d to replay AC3 sound over a full featured DVB card. This function now
          has an 'int' return value.
        + PlayAudio() of derived cDevice classes shall no longer call the base class
          function. It shall just play the given data as audio.
        + cPlayer::PlayVideo() and cPlayer::PlayAudio() are now obsolete and have been
          replaced with cPlayer::PlayPes().
        + All StripAudioPackets() functions are now obsolete. The functionality has been
          moved into cDevice::PlayPes(), where only the video and audio packets that are
          actually required will be processed.
        + All audio track handling is now done by cDevice; cTransfer and cDvbPlayer no
          longer care about audio tracks. cPlayer, however, still has the virtual hooks
          for audio track handling in order to allow plugins to implement players that
          have their own idea about this.
        + cChannel::[AD]pid[12]() have been replaced with cChannel::[AD]pid(int i) to
          allow access to all available PIDs.
      - Escaped the '-' and 'ö' characters in the man pages (thanks to Darren Salt for
        pointing this out).
      - Completed the Italian OSD texts (thanks to Sean Carlos).
      - Fixed setting 'synced' in cRemux when recording radio channels (thanks to
        Laurence Abbott).
      - Removed the LOCK_THREAD from the LIRC thread (thanks to Ludwig Nussel).
      - Fixed genfontfile.c (sometimes the character width was wrong, and the codes were
        shifted one too far to the left).
      - Fixed the character width and shifted the codes one to the right in all font
      - Renamed font???.c to font???-iso8859-1.c for symmetry.
      - Switched the character set to iso8859-15 for English, German and Finnish (thanks
        to Andreas Brugger for reporting the missing Euro sign in iso8859-1).
      - Added 'channels.conf.terr' entries for Lübeck (thanks to Stefan Hußfeldt).
      - Fixed a race condition in starting a thread (thanks to Reinhard Nissl for
        reporting this one).
      - Replaced non-threadsafe library functions with their threadsafe versions (thanks
        to Rainer Zocholl for pointing this out).
      - Other non-threadsafe functions have been replaced by threadsafe classes that hide
        the actual buffering. In particular these are:
        readdir() -> cReadDir
        readline() -> cReadLine
      - Several formerly non-threadsafe functions now have a return type of cString:
        When using these functions in a 'const char *' context there is nothing special
        to consider, except that you can no longer have a pointer to the return value,
        as in
        const char *date = DayDateTime();
        Although this will compile without error message, the resulting 'date' will not
        be valid after this line. Use this instead:
        cString date = DayDateTime();
        In a 'const void *' context (as in printf() etc.) the result needs to be
        dereferenced with a '*', as in
        printf("%s", *DayDateTime());
        to make it a 'const char *'.
      - Removed delay_ms(), using cCondWait::SleepMs() instead.
      - Replaced time_ms() with a threadsafe and non-overflowing cTimeMs (thanks to Rainer
        Zocholl for pointing out this problem).
      - Added cDevice::mutexReceiver to avoid a race condition when attaching/detaching
        receivers from different threads.
      - The new remote control button "Audio" can be used to switch between different
        audio tracks. The "Green" button in the "Main" menu has been changed from "Language"
        to "Audio", since it now also controls switching between normal and Dolby Digital
        audio tracks (see MANUAL for details).
      - The description of the audio tracks is now taken from the "component descriptors"
        that are broadcast in the EPG data. However (as no big surprise), not all channels
        actually provide useful data here, so there are now some additional EPG bugfixes,
        which can be activated by setting the "EPG bugfix level" to 3.
      - The format of the 'epg.data' files has been extended by the new tag 'X', which
        contains the stream components of an event (see man vdr(5) for details).
      - The cStatus class now has the new member function SetAudioTrack(), which can be
        used to get notified when the audio track has been switched, and the new member
        function SetAudioChannel() which is called when the audio channel is changed.
      - Skins need to implement the new cSkinDisplayTrack class to display the audio
        track menu.
      - The ST:TNG skin now displays the current audio track description (if any) at the
        botton left side.
      - The new setup option "DVB/Audio languages" can be used to control which audio
        language shall be selected in case a channel broadcasts in different languages
        (see MANUAL for details).
      - The "Left" and "Right" keys in the "Audio" menu can be used to switch between
        the left and right stereo channels in case there are different audio tracks
        in these channels (see MANUAL for details).
      - Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund).
      - Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
      - Fixed deleting a menu item in case the next item is not selectable (thanks to
        Dino Ravnic).
      - Implemented displaying mandatory subtitles in the SPU decoder (thanks to Marco
      - The setup option "Recording/Record Dolby Digital" has been renamed and moved to
        "DVB/Use Dolby Digital". It now controls whether Dolby Digital is recorded and
        whether an available DD audio track will appear in the "Audio" menu.
      - Added support for circular polarization (thanks to Jonan Santiago).
      - Thanks to Werner Fink, Reinhard Nissl, Sascha Volkenandt and Bjørnar Nilsen for
        their support in testing and fine tuning this version.
  10. 19 Jun, 2004 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.11 · eb52e300
      Klaus Schmidinger authored
      - In order to avoid problems on NPTL systems, VDR now checks for the presence
        of NPTL at program start, and if it is, exits and tells the user to do
        'export LD_ASSUME_KERNEL=2.4.1' before starting VDR.
      - Revisited the "Fixed missing audio after replaying a DVD" change because it
        introduced a sound disturbance when switching between channels on the same
        transponder (thanks to Marco Schlüßler).
      - In order to avoid problems on UTF-8 systems, VDR now checks for the presence
        of UTF-8 at program start, and if it is, exits and tells the user to turn off
        UTF-8 before starting VDR (thanks to Ludwig Nussel for pointing out a problem
        with systems that are set to use UTF-8). There are also problems in case the
        video partition is mounted with "iocharset=utf8" (thanks to Jörg Knitter for
        reporting this one).
        Please also read the "IMPORTANT NOTES" section in the INSTALL file!
      - Some changes to the SPU decoder interface (thanks to Sven Goethel).
      - Some improvements in cOsd creation (thanks to some suggestions by Jouni Karvo).
      - Fixed calculating the OSD width and height (thanks to Olaf Henkel for reporting
        a problem with long event texts in the "Classic VDR" skin).
      - Fixed switching channels while an encrypted channel is being recorded, because the
        channel was switched if the new channel was on the same transponder and was
        a radio channel or an unencrypted channel (thanks to Martin Dauskardt for reporting
        this one).
      - No longer using the external 'find' command to scan the video directory for
        recordings (based on a suggestion by Mirko Dölle).
      - The list of recordings is now kept statically in memory to avoid long delays
        when opening the "Recordings" menu. As a side effect, external modifications to
        the video directory are no longer immediately reflected in the "Recordings" menu.
        If a plugin manipulates the video directory in any way, it can call the function
        Recordings.TriggerUpdate() to trigger an update of the list of recordings.
        If some external tool manipulates the video directory, it can touch the file
        '.update' in the video directory to trigger an update of the list of recordings.
      - Fixed a memory leak in theme description handling (thanks to Sascha Volkenandt).
      - Added cDevice::Flush() to make sure that all data in the video card's buffers
        has been processed (thanks to Reinhard Nissl). Currently this is not yet actually
        implemented for FF DVB cards.
      - Fixed handling the color button texts in cMenuEditStrItem (thanks to Maynard
        Cedric for reporting this one).
      - Fixed the description of cRingBufferLinear (thanks to Ludwig Nussel for pointing
        out this one).
      - Fixed cRingBufferLinear::Get() in case the buffer wraps around (thanks to Ludwig
        Nussel for reporting this one).
  11. 23 May, 2004 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.8 · 3c349510
      Klaus Schmidinger authored
      - Fixed a crash when switching the skin and having selected a non-default theme
        that is not available for the newly selected skin (thanks to Sascha Volkenandt
        for reporting this one).
      - Fixed some issues with gcc 3.4 (thanks to Prakash K. Cheemplavam and Marcel
      - Added a hint to PLUGINS.html about how to name a plugin that implements a skin.
      - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
      - Single shot timers and events now show the day of week (adopted with some changes
        from the "elchi" patch, orginally introduced by Oskar Signell). Plugins that use
        cEvent::GetDateString() should note that this function now returns a longer
        string, including the day of week. The new function const char *WeekDayName(time_t t)
        can be called with a time_t value to get the day of week for that time.
      - When processing XPM data, the color name "None" is now mapped to #00000000, which
        is "fully transparent" (suggested by Sascha Volkenandt).
      - Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting
        this one and helping to test the fix).
      - Fixed freezing picture when a recording starts on a system that always uses
        'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one).
      - Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg).
      - Added a few missing initializations (thanks to Marcel Wiesweg).
      - Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins.
        It now also has a SetText() function that can be used to dynamically set the text
        in an already existing cMenuText (both suggested by Stefan Huelswitt).
      - Added play mode pmVideoOnly (thanks to Marcel Wiesweg).
      - Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
        (thanks to Oliver Endriss).
      - No longer displaying unused color buttons in the "Classic VDR" skin (thanks to
        Oliver Endriss for reporting this one).
      - Added some missing cStatus::MsgOsdTextItem() calls (thanks to Oliver Endriss for
        reporting this one).
  12. 16 May, 2004 1 commit
    • Klaus Schmidinger's avatar
      Version 1.3.7 · c80a53ff
      Klaus Schmidinger authored
      - Fixed a memory leak in thread handling when using NPTL (thanks to Jon Burgess).
      - Fixed handling Setup.RecordDolbyDigital, which was broken since version 1.1.6.
      - Fixed handling text lengths for itemized EPG texts (thanks to Marcel Wiesweg).
      - Fixed the help for LSTE and LSTR (was broken in 1.3.6).
      - Improved iso8859-7 fonts (thanks to Dimitrios Dimitrakos).
      - Added some 3-letter language codes (thanks to Marcus Mönnig).
      - Added language code handling to the subtitling descriptor in 'libsi' (thanks to
        Pekka Virtanen).
      - Moved several menu item classes from menu.c to menuitems.[hc] to make them
        available for plugins.
      - The epg2html.pl script now handles '|' in description texts.
      - The new setup option "OSD/Use small font" can be used to control the use of
        the small font (see MANUAL for details).
      - Swapped osd.[hc] and osdbase.[hc] to have the virtual OSD base class named cOsd.
        Plugins may need to adjust their #include statements.
      - Colors are now given as AARRGGBB instead of AABBGGRR. The values are mapped to
        the driver's (wrong) sequence in dvbosd.c (this should really be fixed in the
        driver, together with the endian problem).
      - The new OSD setup parameters "Left" and "Top" can be used to define the top left
        corner of the OSD.
      - The OSD size parameters are now in pixel (as opposed to formerly characters).
        When reading a 'setup.conf' file from an older version of VDR, the OSDwidth
        and OSDheight values will be converted to pixel automatically.
      - The OSD is now fully device independent. See the comments in VDR/osd.h and the
        description in PLUGINS.html for information on how a plugin can implement an OSD
        display on arbitrary hardware.
      - The OSD (actually its cBitmap class) can now handle XPM files. There are several
        XPM files in the VDR/symbols directory which can be used by skins (some of these
        have been taken from the "elchi" patch). See VDR/skinsttng.c for examples on how
        to use these.
      - Due to the changes in the OSD handling the DEBUG_OSD option for a textual OSD
        has been dropped. There will be a plugin that implements a skin with this
        functionality later.
      - The entire OSD display can now be implemented via "skins". See VDR/skins.[hc],
        VDR/skinclassic.[hc], VDR/skinsttng.[hc] and PLUGINS.html for information on how
        a plugin can implement its own skin. By default VDR comes with a "Classic" skin
        that implements the OSD display known from previous versions, and the new skin
        named "ST:TNG Panels", which is also the default skin now. The actual skin can
        be selected through "Setup/OSD/Skin".
      - The colors used in a skin can now be configured using "themes". See PLUGINS.html
        for information on how a skin can make use of themes, and man vdr(5) for the
        structure of a theme file. The actual theme to use can be selected through
      - Added Croatian language texts (thanks to Drazen Dupor).
        NOTE: there is apparently a problem with the newly introduced iso8859-2 font,
        because as soon as Setup/OSD/Language is set to Croatian (currently the last one
        in the list) everything freezes and the vdr processes have to be killed with -9
        and the driver needs to be reloaded. Maybe somebody else can find out what's
        going wrong here...
      - Added missing NULL checks when accessing sectionHandler in device.c (thanks to
        Pekka Virtanen).
      - Fixed setting the time from the DVB data stream (thanks to Helmut Auer for
        pointing out a frequency/transponder handling mixup). This now also takes the
        actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and
        set the "Set system time" and "Use time from transponder" parameters accordingly
        (this is necessary even if you have already set them before!).