VDR developer version 1.7.28 is now available at
A 'diff' against the previous version is available at
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.
The new default skin "LCARS" displays the signal strengths and qualities of
all devices in its main menu. For devices that have an stb0899 frontend chip
(like the TT-budget S2-3200) retrieving this information from the driver is
rather slow, which results in a sluggish response to user input in the main
menu. To speed this up you may want to apply the patches from
to the LinuxDVB driver source.
The changes since version 1.7.27:
- Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4.
- Fixed getting the maximum short channel name length in case there are no
at all (reported by Derek Kelly).
- The new function cDevice::DeviceType() returns a string identifying the type
the given device.
- Now limiting the number of characters of a channel's (short) name to 16 in the
schedules menus, to keep that column from getting overly wide in case there is
a channel with a very long name that has no short name.
- Fixed EPG scan on systems with only a single DVB device that use software
(reported by Juergen Lock).
- Skins can now inquire the menu category for which their cSkinDisplayMenu is
being used. This can be done either through a call to
or by reimplementing cSkinDisplayMenu::SetMenuCategory(). This information
skin to use special icons or decorations for the various types of menus in
- The new setup option "DVB/Standard compliance" can be used to switch between
variations of the DVB standard (thanks to Rolf Ahrenberg). Currently there is
(for the original DVB standard) and "ANSI/SCTE", which is used to properly
certain private stream types.
- The disk usage is no longer automatically added to the title of the main and
"Recordings" menus. This has always been a mekeshift solution and it is now up
to the individual skin if, where and how it wants to display this information.
A skin can use the new cVideoDiskUsage class to implement such a display. For
compatibility, the default skins "Classic VDR", "ST:TNG Panels" and "Text
(i.e. curses) have been changed to behave like before. Other skins may want to
display the disk usage in totally different ways.
- A cOsdMenu can now handle skins that display different numbers of items in the
various menu categories.
- OSD and skin are now reinitialized after a plugin setup page has been
to have them react immediately in case any change to a plugin's setup
has an effect on the OSD.
- The Timers list is now marked as modified whenever a recording starts or ends.
- Fixed cDevice::StillPicture(), making sure it doesn't call the derived class's
function if no buffer has been allocated (reported by Marcus Roscher).
- Fixed the SVDRP command UPDR, which didn't update the global recordings list
(reported by Lars Hanisch).
- cControl::Control() now has an additional boolean parameter, which can be set
true to get the current player control even if it is hidden.
- The new functions cControl::GetRecording() and cControl::GetHeader() can be
to retrieve information about what the current player is playing.
- Fixed a possible high CPU load when pausing replay (thanks to Reinhard Nissl).
- Fixed character comparisons in cSubtitleObject::DecodeCharacterString()
by Reinhard Mantey).
- Renamed the function cString::sprintf(const char *fmt, va_list &ap) to
because it might inadvertently be called with a 'char *' as the second
some compilers and cause a crash (reported by Sundararaj Reel).
- Removed the "bondedMasterFailed" mechanism from cDvbTuner, because it caused
problems with the EPG scan in case a transponder is not receivable in a setup
bonded devices (reported by Michael Schneider).
- Making sure setup strings don't contain any newline characters (thanks to
- The new member function cSkinDisplayReplay::SetRecording() allows a skin to
more information about the currently played recording.
- Fixed a mismatched 'delete' in cSchedules::SetEpgDataFileName() (thanks to
- The DrawText() functions of the OSD now accept the new alignment flag
which triggers keeping a proper distance from the edge that taLeft or taRight
- Fixed checking for UTF-8 support in cFont::Bidi() (reported by Torsten Lang).
- If a recording has no info file, the 'title' of the recording's info is now
to the recording's name.
- cVector::Clear() now reinitializes any previously used members.
- Fixed resetting CAMs (thanks to Marco Skambraks).
- The new function RgbShade() (include osd.h) can be used to generate a
darker version of a given color.
- The new class cSortedTimers can be used to quickly get a list of all timers,
by their start time.
- The new skin "LCARS" is an enhanced version of the "ST:TNG" skin (which is
there in its original layout, for those who don't like the LCARS skin, or
it due to OSD limitations). The LCARS skin utilizes the new "menu category"
to display additional information on the main menu page. It shows upcoming
and the system's devices, as well as which device is recording which timers.
upper pane of the main menu displays the programme data in live and replay
and a progress bar. An indicator on the right side of the device list shows
device is currently used for live viewing, and whether it is in transfer mode.
The individual device displays show the device number, the device type, which
(if any ) is currently assigned to the device, and the signal strength and
On the left side of the OSD there is a permanent display of the current date
time, the disk usage and the system load.
"LCARS" is the new default skin of VDR. It requires at least a 4bpp (16
screen OSD, but you can still operate it if your OSD can handle only fewer
(in which case you may want to switch to the "ST:TNG" or "Classic VDR" skin).
- Finally removed the code marked with
- Now making sure that the "small font" is never larger than the "osd font".
- Fixed font handling with fontconfig 2.9.0 or newer (thanks to Joerg
- Extended the interface to the script that gets called for recordings, so that
the "edited" case it also provides the name of the original recording (thanks
- Added DeleteEvent() to the EPG handler interface, so that an EPG handler can
deleting of an event (thanks to Christian Kaiser).
- Speeded up opening menus on systems with many (several thousands) of
caching the information whether a recording is stored on the video directory
system within the cRecording data (based on a patch from Torsten Lang).
vdr mailing list