Age | Commit message (Collapse) | Author |
|
- Changed thread handling to make it work with NPTL ("Native Posix Thread Library").
Thanks to Jon Burgess, Andreas Schultz, Werner Fink and Stefan Huelswitt.
- The cThread class now accepts a 'Description' parameter, which is used to log
the beginning and end of the thread, together with its process and thread id.
For descriptions that need additional parameters you can use the function
cThread::SetDescription(), which accepts 'printf()' like arguments.
Existing plugins that use threads should be changed to use this functionality
instead of explicit 'dsyslog()' calls inside their Action() function in order
to support logging the thread ids.
- Added "Slovak Link" and "Czech Link" to 'ca.conf' (thanks to Emil Petersky).
However, 'ca.conf' is now pretty much obsolete due to the automatic CA handling.
- Mutexes are now created with PTHREAD_MUTEX_ERRORCHECK_NP, which makes the
'lockingTid' stuff obsolete (thanks to Stefan Huelswitt).
- Changed font handling to allow language specific character sets.
- Adopted the small font character set from the "Elchi" patch (originally
provided by Alessio Sangalli).
- Greek language texts now use iso8859-7 character set (thanks to Dimitrios
Dimitrakos).
- Rearranged section data handling, so that the actual data handling can be done
separately, even from within plugins.
- The EPG data structures have been moved from eit.[hc] to epg.[hc] and have been
adapted to the general VDR coding style. Plugins that use these data structures
may need to change some function names (which should be obvious).
The name 'subtitle' has been changed to 'shortText' to avoid clashes with actual
subtitles that are part of a movie. The name 'extendedDescription' has been
shortened to 'description'.
- Replaced 'libdtv' with 'libsi' (thanks to Marcel Wiesweg), which is thread
safe and can be used by multiple section filters simultaneously.
- Added 'cRwLock' to 'thread.[hc]'. Note that all plugin Makefiles need to
define _GNU_SOURCE for this to work (see the example plugin Makefiles and
'newplugin').
- Fixed a problem with crc32 in SI handling on 64bit systems (thanks to Pedro
Miguel Sequeira de Justo Teixeira for reporting this one).
- Fixed an alignment problem in CAM access on 64bit systems (thanks to Pedro
Miguel Sequeira de Justo Teixeira for reporting this one).
- Added 'StreamType' setting to CAM communication, which is important for
Aston/SECA CAMs (thanks to Antonino Sergi).
- Now the CA descriptors are sent to the CAM in the 'program' or 'ES level'
sections, depending on where they are found in the PMT (thanks to Hans-Peter
Raschke for reporting this one). This should make SkyCrypt CAMs work.
- Now using the 'version number' of EPG events to avoid unnecessary work.
- Channel data is now automatically derived from the DVB data stream (inspired
by the 'autopid' patch from Andreas Schultz).
- The current channel is now automatically re-tuned if the PIDs or other settings
change. If a recording is going on on a channel that has a change in its
settings, the recording will be stopped and immediately restarted to use the
new channel settings.
- EPG events now use the complete channel ID with NID, TID and SID.
- Channel names in 'channels.conf' can now have a short form, as provided
by some tv stations (see man vdr(5)). Currently channels that provide short
names in addition to long ones are listed in the OSD as "short,long name",
as in "RTL,RTL Television". The short names will be used explicitly later.
- The Ca parameter in 'channels.conf' has been extended and now contains all the
CA system ids for the given channel. When switching to a channel VDR now tests
for a device that provides one of these CA system ids. The devices automatically
get their supported ids from the CI handler.
- The values in 'ca.conf' are currently without any real meaning. Whether or not
a channel with conditional access can be received is now determined automatically
by evaluating its CA descriptors and comparing them to the CA system ids
provided by the installed CAM. Only the special values 1-16 are used to assign
a channel to a particular device.
- Increased the maximum number of possible OSD colors to 256.
- Limited the line length in the EPG bugfix report, which appears to fix a buffer
overflow that caused a crash when cleaning up the EPG data (at 05:00 in the
morning).
|
|
- Fixed 'runvdr' to stay in the loop only if VDR returns an exit status of '1'.
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Empty values in setup.conf are no longer treated as an error (thanks to Andreas
Kool for reporting this one).
- Added a note about the config files of plugins to INSTALL (thanks to Thomas
Keil).
- VDR now continues to start up, even if there is an error in setup.conf.
- Fixed a bug in resetting OSD color palettes (thanks to Torsten Herz).
- Fixed starting a recording on the primary device if there is a replay session
active (thanks to Javier Marcet for reporting this one).
- Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a
recording on the primary device.
|
|
- Fixed the TS to PES repacker so that it works with MPEG1 streams (thanks to
Andreas Kool).
- Fixed keeping track of the current channel number when moving channels in
the "Channels" menu (thanks to Mirko Günther for reporting this one).
- Made the plugin library directory configurable via Make.config (thanks to
Ludwig Nussel).
- Fixed scaling SPU bitmaps in Letterbox mode when playing NTSC material.
In order to do this, the cDevice was given a new member function GetVideoSystem().
- Fixed two warnings when compiling with gcc 3.3.1 (thanks to Alfred Zastrow for
reporting this).
- Made crc32() a static function in libdtv/libsi/si_parser.c to avoid a name clash
when using other libraries that also implement a function by that name (thanks
to Reinhard Nissl for reporting this one).
- Fixed staying off the end of an ongoing recording while replaying in time shift
mode (thanks to Rainer Zocholl for reporting this one).
- VDR now stops with exit status 2 if one of the configuration files can't be
read correctly at program startup (suggested by Rainer Zocholl).
- Fixed a crash when starting "Pause live video" twice within the same minute on
the same channel.
- Fixed freezing replay if a timer starts while in Transfer Mode from the device
used by the timer, and the timer needs a different transponder (thanks to
Richard Robson for reporting this one).
- Fixed toggling channels with the '0' key (thanks to Mirko Günther for reporting
this one).
- Made the "Zap timeout" (the time until a channel counts as "previous" for
switching with '0') a setup variable, available in "Setup/Miscellaneous"
(suggested by Helmut Auer).
- Removing deleted recordings faster than normal when cutting, to avoid running
out of disk space (thanks to Manfred Schmidt-Voigt for reporting this one).
|
|
- The CAM is now accessed only if the current channel actually has a non-zero Ca
value, and CAM access is completely suppressed during replay, which avoids
problems in case the CAM is attached to the primary DVB device.
- The "Left" and "Right" buttons now set the cursor to the first or last list item
even if the list consist only of a single page, like, for instance, the Main menu
(thanks to Oliver Endriss).
- Made the log message "OSD window width must be a multiple of 4..." a debug message
instead of an error message, so it can be avoided by using a log level less than 3.
- Updated Greek language texts (thanks to Dimitrios Dimitrakos).
- Fixed faulty behaviour of the "Mute" key in case the channel display is visible
(thanks to Florian Bartels for reporting this one and Sascha Volkenandt for
helping to fix it).
- Modified LOF handling to allow for C-band reception (thanks to Malcolm Caldwell).
- Added some missing cAudio handling calls (thanks to Werner Fink).
- Replaced the 'for' loops in StripAudioPackets() with memset() calls (thanks to
Werner Fink).
- Further increased the timeout until an index file is considerd no longer to be
written.
- Fixed a crash in case the index file can't be accessed any more during replay
(thanks to Stefan Huelswitt for reporting this one).
- Fixed displaying messages in the status line in case they exceed the OSD width
(thanks to Gerhard Steiner for reporting this one).
- Avoiding high CPU load in case the connection to LIRC gets lost (thanks to
Ludwig Nussel).
- Fixed handling repeat function with LIRC (thanks to Ludwig Nussel).
- Fixed handling min/max borders when entering integer values (thanks to Andy
Grobb for reporting this one).
- Implemented a "resume ID" which allows several users to each have their own
resume.vdr files (thanks to Martin Hammerschmid). This parameter can be set in
the "Setup/Replay" menu (see MANUAL for details).
- Now using 'libdtv' version 0.0.5 (thanks to Rolf Hakenes for the new version
and Stefan Huelswitt for adapting VDR to it).
- If no device with an MPEG decoder can be found at startup, the first device
is now used as primary device (just to have some device).
- Adjusted some Premiere channels in 'channels.conf' (thanks to Thomas Koch).
- Updated 'channels.conf.cable' (thanks to Stefan Hußfeldt).
- The 'epg.data' file is now read after all plugins have been started (thanks
to Sascha Volkenandt).
- The LIRC remote control no longer tries to learn keys if it can't connect to
the LIRC daemon (thanks to Ludwig Nussel for reporting this one). The same
applies to the RCU remote control in case of errors during startup.
- Fixed handling of Ca parameters with values <= MAXDEVICES, which don't indicate
an actual encrypted channel (thanks to Stefan Huelswitt for reporting this one).
|
|
- Fixed replaying the last few seconds of a recording.
- Added some missing #includes to files in libdtv for gcc 3.2 (thanks to Jürgen
Zimmermann).
- Added cDevice::NewOsd() to allow a derived cDevice class to implement its own
OSD capabilities (thanks to Andreas Schultz).
- Added cPalette::AllColors() for plugins that need to get the color entries of
a cPalette (see osdbase.h).
- The new SVDRP command CLRE can be used to clear the entire EPG data (suggested
by Matthias Schniedermeyer).
- Fixed handling one-shot timers that were already recording and had their start
time changed into the future (thanks to Matthias Schniedermeyer for reporting
this one).
|
|
- Adapted VDR to the NEWSTRUCT driver. To use the new driver, compile VDR with
'make NEWSTRUCT=1' (thanks to Holger Wächtler for some valuable advice).
By default it currently still uses the old driver.
- Added some missing #includes (thanks to Martin Hammerschmid).
- Changed the log error message "can't record MPEG1!" to "error in data stream!",
since the mentioning of MPEG1 has irritated many people.
- Consistently using malloc/free and new/delete (thanks to Andreas Schultz).
- Temporarily made cDevice::ProvidesCa() virtual (Andreas Schultz needs this
in his DXR3 plugin).
- cDevice no longer exposes a file handle to cPlayer. A derived cPlayer class
can now call DevicePoll() to see whether the replay device is ready for
further data. A derived cDevice class must implement Poll() and shall
check if any of its file handles is ready for data.
- Implemented several replay modes to allow players that play only audio (thanks
to Stefan Huelswitt).
- Improved cCondVar::Wait() and implemented cCondVar::TimedWait() (thanks to
Stefan Huelswitt).
- VDR no longer gives up if there is no DVB device. It continues to work if
there is at least one device, either a DVB device found by the core VDR code
itself, or a device implemented by a plugin.
|
|
- Added direct access to the index data of cPalette (needed for displaying SPUs,
thanks to Andreas Schultz).
- The status monitor function cStatus::Replaying() now gets a 'cControl *' argument instead
of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
allow access to the player's status.
- Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
- Changed the symantics of the Name parameter in cStatus::Recording() and
cStatus::Replaying(). It is no longer the full directory name of the recording,
but rather just the basic name. This has been changed to allow players that can't
provide a name to simply use a string that describes the player type (like, e.g.,
"DVD").
- Fixed a hangup when switching to the next file during replay.
- Fixed a possible race condition in the cDvbPlayer (thanks to Andreas Schultz
for pointing out this one).
- Disabled channels on Transponder 12070 in 'channels.conf', which apparently no longer transmits.
|
|
- 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.
|
|
- Changed the cPlugin::Start() function to return a boolean value that indicates
if the plugin will not be able to perform its task (suggested by Stefan Huelswitt).
- Added the cPlugin::Housekeeping() function (suggested by Stefan Huelswitt).
- Updated channels.conf.cable (thanks to Uwe Scheffler).
- Added 'insert' capabilities to cList (suggested by Stefan Huelswitt).
- Changed the 'package' target in the plugin's Makefile to produce a package that
expands to a directory with just the plugin name and version number (suggested
by Stefan Huelswitt).
- Made the config directory available to plugins (suggested by Stefan Huelswitt).
See PLUGINS.html, section "Configuration files" for details.
- Improved the [eid]syslog() macros, so that the LOG_... macros don't need to be
given any more.
|
|
- Separated the actual DVB hardware OSD implementation from the abstract OSD
interface. 'osdbase.c/.h' now implements the abstract OSD, while 'dvbosd.c/.h'
is the actual implementation for the DVB hardware. This is in preparation for
allowing additional kinds of OSD hardware implementations.
- Fixed leftover references to the file FORMATS in MANUAL and svdrp.c.
- Avoiding ambiguities in the cList template class in case one defines a "list of
lists" (thanks to Stefan Huelswitt).
- Simplified the basic cMenuSetupPage class for easier use in plugins.
- Added setup parameters and a Setup menu to the 'hello' plugin example.
- Fixed logging error message for unknown config parameters in plugins.
- Rearranged cleanup sequence at the end of the main program.
- Adapted PLUGINS.html to use the actual code examples from the 'hello' plugin.
|