Age | Commit message (Collapse) | Author |
|
Original announce message:
VDR developer version 1.7.28 is now available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.28.tar.bz2
A 'diff' against the previous version is available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.27-1.7.28.diff
MD5 checksums:
3ccff2dcc42d112e23dd64f2c39f02f1 vdr-1.7.28.tar.bz2
7249ead4aca4b24e53d49d11c67e1613 vdr-1.7.27-1.7.28.diff
WARNING:
========
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
From the HISTORY file:
- Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4.
- Fixed getting the maximum short channel name length in case there are no short names
at all (reported by Derek Kelly).
- The new function cDevice::DeviceType() returns a string identifying the type of
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 output
(reported by Juergen Lock).
- Skins can now inquire the menu category for which their cSkinDisplayMenu is currently
being used. This can be done either through a call to cSkinDisplayMenu::MenuCategory()
or by reimplementing cSkinDisplayMenu::SetMenuCategory(). This information allows a
skin to use special icons or decorations for the various types of menus in VDR.
- The new setup option "DVB/Standard compliance" can be used to switch between different
variations of the DVB standard (thanks to Rolf Ahrenberg). Currently there is "DVB"
(for the original DVB standard) and "ANSI/SCTE", which is used to properly handle
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 mode"
(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 confirmed,
to have them react immediately in case any change to a plugin's setup parameter
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 to
true to get the current player control even if it is hidden.
- The new functions cControl::GetRecording() and cControl::GetHeader() can be used
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() (reported
by Reinhard Mantey).
- Renamed the function cString::sprintf(const char *fmt, va_list &ap) to vsprintf(),
because it might inadvertently be called with a 'char *' as the second argument on
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 with
bonded devices (reported by Michael Schneider).
- Making sure setup strings don't contain any newline characters (thanks to Joachim
Wilke).
- The new member function cSkinDisplayReplay::SetRecording() allows a skin to display
more information about the currently played recording.
- Fixed a mismatched 'delete' in cSchedules::SetEpgDataFileName() (thanks to Reinhard
Mantey).
- The DrawText() functions of the OSD now accept the new alignment flag taBorder,
which triggers keeping a proper distance from the edge that taLeft or taRight
aligns to.
- 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 set
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 brighter or
darker version of a given color.
- The new class cSortedTimers can be used to quickly get a list of all timers, sorted
by their start time.
- The new skin "LCARS" is an enhanced version of the "ST:TNG" skin (which is still
there in its original layout, for those who don't like the LCARS skin, or can't use
it due to OSD limitations). The LCARS skin utilizes the new "menu category" feature
to display additional information on the main menu page. It shows upcoming timers
and the system's devices, as well as which device is recording which timers. The
upper pane of the main menu displays the programme data in live and replay mode,
and a progress bar. An indicator on the right side of the device list shows which
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 CAM
(if any ) is currently assigned to the device, and the signal strength and quality.
On the left side of the OSD there is a permanent display of the current date and
time, the disk usage and the system load.
"LCARS" is the new default skin of VDR. It requires at least a 4bpp (16 color) full
screen OSD, but you can still operate it if your OSD can handle only fewer colors
(in which case you may want to switch to the "ST:TNG" or "Classic VDR" skin).
- Finally removed the code marked with __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS
and LEGACY_CRECEIVER.
- 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 Bornkessel).
- Extended the interface to the script that gets called for recordings, so that in
the "edited" case it also provides the name of the original recording (thanks to
Christian Richter).
- Added DeleteEvent() to the EPG handler interface, so that an EPG handler can trigger
deleting of an event (thanks to Christian Kaiser).
- Speeded up opening menus on systems with many (several thousands) of recordings, by
caching the information whether a recording is stored on the video directory file
system within the cRecording data (based on a patch from Torsten Lang).
|
|
Original announce message:
VDR developer version 1.7.25 is now available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.25.tar.bz2
A 'diff' against the previous version is available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.24-1.7.25.diff
MD5 checksums:
a3fd482a3dd8027706d4f32a88c6bd13 vdr-1.7.25.tar.bz2
f34adcdc0cdab378431d8946872d6b59 vdr-1.7.24-1.7.25.diff
WARNING:
========
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:
- The fps value for channels where it differs from the default is now set correctly
when pausing live video.
- Increased the average character estimate for calculating tab positions in skins,
to better suit wide fonts (reported by Rudi Hofer).
- Fixed getting the subsystem ids of DVB devices in case they have been rearranged
via udev rules.
- Added several cTimer::Set...() functions (suggested by Alexander Rieger).
- Changed the return value of cTimer::SetFile() to 'void'.
- Revoked "Fixed a possible deadlock in time shift mode" because it caused trouble with
output on vdr-xine and dxr3, and also short glitches when replaying on any output
device.
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed handling subtitle color palettes on channels where subtitles appear
"word by word" (thanks to Rolf Ahrenberg).
- Fixed upscaling cBitmaps with anti-aliasing (thanks to Rolf Ahrenberg for reporting
a problem with color palettes in subtitles).
- Fixed getting the video aspect ratio for scaling subtitles.
- Removed the "PrimaryLimit". Old "full featured" DVB cards can be run with the
--outputonly option to avoid problems with recording high bandwidth channels.
Besides, with HDTV becoming ever more popular those cards are pretty much obsolete
by now (the TT S2-6400 has no problems recording and replaying high bandwidth
channels simultaneously). And, last but not least, people using software players
won't notice this change, anyway.
- Since cReceivers can have priorities between -99 and 99, the priority
for an unused device has been changed from -1 to -100.
- If the first event in a schedule has a table id of 0x00, any incoming EIT data for
that schedule from the DVB stream will be completely ignored. This way an external
EPG source can fill the schedules with EPG data that will not be messed up with
that from the DVB data stream. Note, though, that this means VDR can not do VPS
controlled recordings with such events!
- Added some typecasts to silence gcc compiler warnings (thanks to Rolf Ahrenberg).
- Fixed handling overlapping timers in case a VPS timer with higher priority needs
to interrupt a timer with lower priority.
- The code for the RCU remote control unit has been moved into a separate plugin
named "rcu".
The REMOTE=RCU option in the 'make' call for VDR is now obsolete.
The command line option --rcu is now obsolete. Use -Prcu instead. If you have
used --rcu with a device path, use -P"rcu -d<device>".
- Added support for automatically selecting subtitles when playing old PES
recordings made with the subtitles plugin (thanks to Anssi Hannula).
- Revised priority handling to allow receivers with a priority that is lower than
that of live viewing (with suggestions from Frank Schmirler):
+ An idle device (one that is not used for live viewing and has no receiver
attached to it) now has priority IDLEPRIORITY (-100).
+ An unused CAM slot now has priority IDLEPRIORITY.
+ The default priority of a cReceiver is now MINPRIORITY (-99).
+ A device that is used only for live viewing (no matter whether it's in Transfer
Mode or real live mode) now has priority TRANSFERPRIORITY (-1).
+ The function cDevice::Receiving() now returns true if there is any receiver
attached to the device. Its boolean parameter has no meaning any more.
+ The default value for the Priority parameter of the function cDevice::ProvidesChannel()
has been changed to IDLEPRIORITY.
- Added a Query parameter to cDevice::GetDevice(), so that devices can be queried
without side effects when zapping.
- Replaced min(max()) calls with the new function constrain().
- Fixed handling OSD color button texts in case a menu item has texts of its own
(reported by Rolf Ahrenberg). If a plugin creates derived cMenuEditItems that set
color button texts, these should not set the texts directly by calling
cSkinDisplay::Current()->SetButtons(), but rather call the new member function
cMenuEditItem::SetHelp().
- Moved the call to cStatus::MsgChannelSwitch(this, 0) to the beginning of
cDevice::SetChannel(), so that any receivers that have been attached to the
device by plugins may be detached before the final call to GetDevice().
This actually reverts "Only calling cStatus::MsgChannelSwitch() if a channel
is actually going to be switched or has actually been switched successfully"
which was made in version 1.1.10, so please report if this has any unwanted
side effects.
|
|
- 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
Ahrenberg).
- 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.
|
|
- 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
channel.
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.
|
|
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The "Edit timer" menu can now set the folder for the recording from a list of
folders stored in "folders.conf".
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- If svdrphosts.conf contains only the address of the local host, the SVDRP port
is opened only for the local host (thanks to Manuel Reimer).
- Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR
in 'make install' (thanks to Martin Dauskardt).
- Added plain text error messages to log entries from cOsd::SetAreas() (suggested
by Rolf Ahrenberg).
- cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved
cDvbSpuBitmap::getMinBpp() (thanks to Matthieu Castet and Johann Friedrichs).
- The new setup option "Miscellaneous/Channels wrap" controls whether the current
channel wraps around the beginning or end of the channel list when zapping (thanks
to Matti Lehtimäki).
- Fixed determining the frame duration on channels where the PTS deltas jitter by
+/-1 around 1800.
- The PCR pid in generated PMTs is now set to the channel's PCR pid again.
- Fixed determining the frame duration on channels where the PTS deltas jitter by
+/-1 around 3600.
- The PCR pid is now recorded for channels where this is different from the video
PID. To facilitate this, the interfaces of cTransfer, cTransferControl, cRecorder
and cReceiver have been modified, so that the PIDs are no longer given in separate
parameters, but rather the whole channel is handed down for processing. The old
constructor of cReceiver is still available, but it is recommended to plugin authors
that they switch to the new interface as soon as possible.
When replaying such a recording, the PCR packets are sent to PlayTsVideo()
- The files "commands.conf" and "reccmd.conf" can now contain nested lists of
commands. See vdr.5 for information about the new file format.
|
|
- Fixed resetting the file size when regenerating the index file.
- The new function cDevice::PatPmtParser() can be used in derived devices to access
the PAT/PMT of the currently replayed material.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in
cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid.
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The 'sky' plugin is no longer part of the VDR source.
- Improved SPU handling on devices with limited OSD capabilities (thanks to
Matthieu Castet).
- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler).
- Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() (thanks to Johann
Friedrichs).
- Removed debug output of '-' from cTransfer::Receive().
- Added defines for large files to the 'newplugin' script (reported by Udo Richter).
- Removed the workaround for short channel names of "Kabel Deutschland", because
apparently they now have their data according to the DVB standard (thanks to
Johann Friedrichs).
- Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs).
- Fixed a busy loop when moving editing marks (thanks to Johann Friedrichs).
- Updated sources.conf (thanks to Derek Kelly).
- Modified cCharSetConv so that it can be used to convert from "whatever VDR uses"
to a given code (thanks to Joachim Wilke).
- Channel names containing commas are now handled correctly in channels.conf.
If a channel's short name contains a comma, it is replaced with a '.'.
- cDevice now logs the device number when a new device is created.
- Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt().
- cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids.
- cPatFilter::Process() now only stores CA descriptors for video and audio pids
(thanks to Francesco Saverio Schiavarelli for reporting a problem with channels
that have some encrypted components that VDR doesn't use).
- cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas
Regel).
- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel).
- cPatPmtParser now also stores the audio stream types.
- The support for full featured DVB cards of the TT/FuSi design has been moved
into the new plugin 'dvbsddevice'. On systems that use such a card as their
primary device, this plugin now needs to be loaded when running VDR in order
to view live or recorded video. If the plugin is not loaded, the card will
be treated like a budget DVB card, and there will be no OSD or viewing
capability.
- Fixed handling the "CA PMT" generation (revised a change not mentioned in version
1.7.9's changes, which caused a malfunction with Conax and Viaccess CAMs).
- Fixed stopping subtitle display when switching the primary device (thanks to
Anssi Hannula).
IMPORTANT NOTE TO PLUGIN AUTHORS: a plugin that implements a derived cDevice
class that can replay video must now call the MakePrimaryDevice() function of
its base class.
- Fixed compiler warnings "format not a string literal and no format arguments"
in some syslog calls (thanks to Rolf Ahrenberg).
- The new command line options --edit and --genindex can be used to edit a
recording or generate its index without actually starting the entire VDR
(based on a patch from Helmut Auer).
- Improved the description of the transponder parameters in vdr.5 (thanks to
Winfried Köhler).
- Avoiding setting the video stream type to 2 if the vpid is 0 (problem reported
by Arthur Konovalov).
- Implemented handling the "Content Descriptor" (based on a patch from Rolf
Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the textual
representation of the content descriptors as "genre". The epg.data file stores
the genre using the tag character 'G'.
- Implemented handling the "Parental Rating Descriptor" (based on a patch from Rolf
Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the parental
rating (if given) in their event displays. The epg.data file stores
the parental rating using the tag character 'R'.
IMPORTANT NOTE: if VDR doesn't display a parental rating, this does not
necessarily mean that the given programme is suitable for all audiences!
- Rearranged cEvent members to minimize memory waste.
- After a CLRE command, no further EPG processing is now done for 10 seconds,
so that data sent with subsequent PUTE commands doesn't interfere with data
from the broadcasters (suggested by Helmut Auer).
- Added support for DVB cards with multiple fontends. Note that this only
works for DVB cards where each frontend can be used independently of all
the others on the same adapter.
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
Anssi Hannula).
|
|
- 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
Nissl).
- 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
Ahrenberg).
- 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).
|
|
- 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
translations.
- 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
Skyttä).
- 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
Mair).
- Added a debug error message to cReceiver::~cReceiver() in case it is still
attached to a device (thanks to Reinhard Nissl).
|
|
- The CAM handling has been refactored. Instead of a cCiHandler per device there
is now an abstract cCiAdapter and a cCamSlot. This allows each slot to be
accessed individually.
- The general 15 seconds workaround time before opening the CAM menu has been
removed. If the CAM menu doesn't open within a timeout, the enter menu command
is now sent again.
- If a CAM is reset or pulled and reinserted, it now automatically starts
decrypting the current channel again.
- The Setup/CAM menu now dynamically refreshes its items and displays whether
a CAM is present or ready. The 'Reset' function no longer leaves the menu.
- The CAM menu will now be openend when pressing the Ok key on a slot entry.
- The CAM menu now stays within the current menu context and doesn't close and
reopen the menu every time an option is selected.
- When an encrypted channel is switched to for the first time, VDR now checks
explicitly whether a CAM can actually decrypt that channel. If there is more
than one CAM in the system that claims to be able to decrypt the channel,
they are all tried in turn.
To make this possible, an encrypted channel needs to be received in Transfer
Mode when it is switched to for the first time, so that VDR can determine
whether the TS packets are actually decrypted. Once a channel is known to
be decrypted by a particular CAM, the next time it is switched to it will
be shown in normal live viewing mode.
- A cDevice now automatically detaches all cReceiver objects that receive PIDs
that can't be decrypted with the current CAM. A plugin that attaches a cReceiver
to a device should therefore watch the receiver's IsAttached() function to
see if it is still attached to the device.
- The cReceiver constructor no longer takes an 'int Ca' as its first parameter,
but rather a 'tChannelID ChannelID'. This is necessary for the device to be
able to determine which CAM a particular channel can be decrypted with. If the
channel is known to be unencrypted, or a plugin doesn't want to provide the
channel id for other reasons, an invalid tChannelID() can be given.
- The cThread::Start() function now waits until a previous incarnation of this
thread has actually stopped. Before this it could happen that a thread's
Cancel(-1) function was called and immediately after that it was started again,
but the Start() function still found it to be 'active'.
- The parameter NeedsDetachReceivers in cDevice::GetDevice(const cChannel *Channel, ...)
has been removed. A call to this function will automatically detach all receivers
from the device if it returns a non-NULL pointer.
- The cTimeMs class now accepts an initial timeout value in its constructor.
- A CAM is now explicitly instructed to stop decrypting when switching away from
an encrypted channel.
- If the CAM in use can decrypt several channels at the same time, VDR can
now make use if this capability. Whether or not a CAM can decrypt more
than one channel is determined by sending it an initial empty QUERY command
and testing whether it replies to it.
- Ca values in the range 0...F in channels.conf can still be used to assign a channel
to a particular device, but this will no longer work with encrypted channels because
without valid CA ids VDR can't decide which CAM slot to use. However, since VDR now
automatically determines which CAM can decrypt which channel, setting fixed
channel/device relations should no longer be necessary.
IF AN ENCRYPTED CHANNEL CAN'T BE DECRYPTED AND YOU HAVE A CA VALUE IN THE RANGE
0...F FOR THAT CHANNEL, SET IT TO 0 (FTA) AND TUNE TO THE CHANNEL AGAIN.
|
|
- Fixed updating the "Info" button in the "Timers" menu.
- Reduced the number of events to actually check when setting events to timers.
- cMenuEditIntItem now checks the given value and forces it to be between the
given min and max limits.
- The status changes of EPG events are now logged for all channels that have timers.
- Removed the log message "deleting plugin: ..." when shutting down VDR (thanks to
Christoph Haubrich for reporting that this is irritating when calling "vdr --help").
- Fixed cReadLine::Read() for lines that end with the infamous "\r\n" (thanks to
Rolf Ahrenberg).
- Fixed cDvbDevice::SetAudioBypass() in case setTransferModeForDolbyDigital is false
(thanks to Werner Fink).
- Updated 'sources.conf' (thanks to Oleg Roitburd).
- Fixed the shutdown timeout (thanks to Alexander Wenzel).
- Only calling RemoveEmptyVideoDirectories() once in case a recording has been
deleted (reported by Hardy Flor).
- Fixed deleting recordings that have been removed externally when running out of
disk space (reported by Jan Lenz).
- Fixed handling repeating VPS timers (they stopped recording too early).
- Timer log messages now show "VPS" if this is a VPS timer.
- Fixed getting the present EPG event in case none is currently 'running' (it
then returns the one that just ended).
- Fixed calling a plugin's main menu function while a message is being displayed
(reported by Helmut Auer).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Made cMenuRecordings::GetRecording() 'protected' (suggested by Marius Heidenstecker).
- Speeded up cRemux::ScanVideoPacket() (thanks to Reinhard Nissl).
- Enhanced logging EPG event data.
- Fixed format string handling (thanks to Darren Salt).
- The new function cDevice::ForceTransferMode() can be used to force the primary
device into transfer mode (thanks to Reinhard Nissl).
- The 'version' of EPG events is now ignored when reading EPG data from 'epg.data'
or via SVDRP/PUTE to avoid problems with double EPG events.
- The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning
for events before the present event.
- Fixed some #include sequences.
- Single shot VPS timers are now only considered 'expired' if their associated
EPG event has been explicitly set to SI::RunningStatusNotRunning.
- The check for timers to be deleted is now done only every 30 seconds.
|
|
- Making sure at least the default skin is available at program start in case a
plugin needs to issue an error message (thanks to Achim Tuffentshammer for
reporting a crash in such a case). Also checking if there is a current skin
in cSkins::Message().
- Completed the Finnish OSD texts and fixed internationalization of the text
for "Setup/DVB/Audio language(s)" (thanks to Rolf Ahrenberg).
- Completed the Estonian OSD texts and switched to iso8859-13 character set
(thanks to Arthur Konovalov).
- Made cCondWait::SleepMs() sleep at least 3ms to avoid a possible busy wait.
- Fixed canceling the LIRC thread (thanks to Marco Schlüßler for pointing out
this one).
- The "Green" button in the "Main" menu is now always "Audio", since the audio
channel might be changed even if there is only one actual audio PID.
- Fixed handling the '-E' option which was broken in version 1.3.18 (thanks to
Christian Jacobsen for reporting this one).
- Added 'channels.conf.terr' entries for Mainz (thanks to Michael Heyse).
- Implemented cDolbyRepacker for better handling of Dolby Digital PES packets
(thanks to Reinhard Nissl).
- Fixed playing files with PES packets longer than 2048 byte through the full
featured DVB card (thanks to Marco Kremer for reporting this one and providing
a test sample).
- Recording and Transfer Mode now handle more than 2 audio PIDs. For this the
interfaces of the following functions have been changed:
cTransferControl::cTransferControl()
cTransfer::cTransfer()
cRecorder::cRecorder()
cReceiver::cReceiver()
cRemux::cRemux()
- Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action()
(thanks to Stefan Huelswitt).
- Extended some buffer sizes to allow handling HDTV streams (thanks to Reinhard
Nissl).
- Added 'channels.conf.terr' entries for Düsseldorf and Köln (thanks to Walter Koch).
- Falling back to 'stereo' when switching channels in case the user had switched
to 'left' or 'right' (suggested by Rolf Groppe).
- Completed the Danish OSD texts (thanks to Mogens Elneff).
- Recording and Transfer Mode can now handle up to 8 Dolby Digital tracks (thanks
to Marco Schlüßler for a patch that implements substream handling into
cDevice::PlayPesPacket(), and Reinhard Nissl for adding substream handling to
cDolbyRepacker).
- Added PlayPes(NULL, 0) to cTransfer::Action() when clearing the transfer buffer
to avoid overflows (thanks to Marco Schlüßler for pointing this out).
|
|
- Re-visited the race condition fix in the cDvbPlayer (thanks again to Andreas
Schultz).
- Changed the VFAT handling to allow users who normally use it but have forgotten
to set it when compiling a new version of VDR to at least see their recordings
made with VFAT enabled (thanks to Christian Rienecker).
- Added some missing teletext PIDs (thanks to Joerg Riechardt).
- Fixed PID handling for cReceiver.
- Added a missing #include to ringbuffer.c (thanks to Martin Hammerschmid).
- Now using CC, CFLAGS, CXX and CXXFLAGS in Makefile.
- Changed the cDevice class to allow plugins to implement their own devices (see
PLUGINS.html for details).
|
|
- Improved the VDR Makefile to avoid a warning if the '.dependencies' file does
not exist, and also using $(MAKE) to call recursive makes.
- Changed the name of the 'package' target in the plugin Makefiles to 'dist'
(following the suggestions in the "GNU Make" manual). If you already have started
a plugin project, you may want to change this in your Makefile accordingly.
- Improved the plugin Makefile to avoid a warning if the '.dependencies' file does
not exist, and also using $(shell...) to get the version numbers. If you already have
started a plugin project, you may want to change this in your Makefile accordingly.
- Fixed some function headers to make them compile with gcc 3.x (thanks to
Gregoire Favre).
- Fixed the cutting mechanism to make it re-sync in case a frame is larger than the
buffer (thanks to Sven Grothklags).
- Added an error message if the directory specified in the '-L' option can't be
accessed (suggested by Stefan Huelswitt).
- Rearranged OSD class names to make 'cOsd' available for the main OSD interface.
- Completely moved OSD handling out of the cDvbApi class, into the new cOsd.
- Implemented cStatus to allow plugins to set up a status monitor.
See PLUGINS.html for details.
- Moved the cEITScanner out of dvbapi.h/.c, into the new eitscan.h/.c.
- Added Swedish language texts (thanks to Tomas Prybil).
- Fixed parsing 'E' records in epg2html.pl (thanks to Matthias Fechner for pointing
out this one).
- Removed compiler option '-m486' to make it work on non-Intel platforms. If you
have already started a plugin project, you may want to make sure you remove this
option from your existing Makefile.
- Completely rearranged the recording and replay functions to make them available
to plugins.
- Replay is now done in a single thread (no more syncing between input and output
thread necessary).
- It is now possible to record several channels on the same transponder with "budget
cards". VDR automatically attaches a recording timer to a card that already
records on the appropriate transponder. How many parallel recordings can actually
be done depends on the computer's performance. Currently any number of recordings
gets attached to a card, so you should carefully plan your timers to not exceed
the limit. On a K6-II/450 it was possible to record three channels from transponder
12480 with a single WinTV NOVA-S.
- Timers that record two successive shows on the same channel may now overlap and
will use the same DVB card. During the time where both timers record the data
is simply saved to both files.
- The following limitations apply to this version:
+ Transfer mode doesn't work yet.
+ The '-a' option (for Dolby Digital audio) doesn't work yet.
+ Switching between different language tracks doesn't work yet.
+ Cutting doesn't work yet.
|