Age | Commit message (Collapse) | Author |
|
- The SVDRP command LSTT now accepts the new option 'id' to have the channels
of the timers listed with their unique channel ids instead of their numbers
(suggested by Matthias Schniedermeyer).
- Added a missing #include <linux/unistd.h> to thread.c (thanks to Ville Skyttä).
- Fixed the "plugins-clean" and "plugins-install" targets in the Makefile (thanks
to Andreas Brachold).
- Fixed handling "more than 3 byte" key sequences in cKbdRemote::ReadKeySequence()
(thanks to Peter Bieringer). If you are using the PC keyboard as remote control
input you may need to make VDR newly learn the keys by removing the remote.conf
file.
- To avoid problems with access rights when VDR shall run as 'root' it now skips
all SetCaps() and SetUser() calls when it is started as 'root' and "-u root"
is given.
- Added missing i18n entry for the "Timer" button (thanks to Ville Skyttä)
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Making the "Menu" key behave consistently has not been well received by several
users, so the new option "Setup/OSD/Menu button closes" can be used to get the
old behavior back (which also is the default value of this option).
- Dropped the default vdr user. The program now always runs under the user id
it was started from, unless the '-u' option is given and it was started from
the 'root' user. If you want to have a default vdr user, you can activate and
adjust the "VDR_USER = vdr" line in your Make.config file (from the original
patch by Ludwig Nussel).
- Key macros can now be defined for all non-modeless keys (suggested by Mirko Dölle).
- Adjusted the "KEY MACROS" section of vdr.5 to the new plugin calling mechanism
introduced in version 1.3.32.
- Removed the now obsolete "ca.conf" section from vdr.1 (thanks to Ville Skyttä).
- Added missing description of L and R circular polarization to 'diseqc.conf'.
- Added a note about "modprobe capability" to INSTALL (suggested by Patrick Cernko).
- Fixed canonicalizing the file name in the SVDRP command GRAB to allow full path
names (thanks to Stefan Huelswitt).
- Added a missing '-' to the example for viewing a grabbed image on a remote host
(reported by Philippe Gramoullé).
- Made the "What's on now/next?" menus a lot faster by storing a pointer to each
channel's schedule in the cChannel data.
- Made the log messages regarding lost lock of devices "info" instead of "error"
(suggested by Andreas Brachold).
- The SVDRP command GRAB allows file names without extension again (suggested by
Stefan Huelswitt).
- Pressing '0' in the "Schedule" menu now rotates through displaying "This event on
this channel", "This event on all channels" and "All events on all channels".
This can be used to find reruns of a given show, or the episodes of a series.
Note that if there are many channels in your channels.conf, displaying the
"All events on all channels" page may take a while.
- The status markers in the "Schedule" menu are now only updated if a submenu is
closed in which a timer has been modified, which speeds up closing submenus.
- Now only writing Dolby Digital tracks into the 'info.vdr' file of a recording
if Setup.UseDolbyDigital is true (suggested by André Weidemann).
- Added a leading '0' to the day in the DayDateTime() function (thanks to Rolf
Ahrenberg).
- No longer displaying color buttons in the recording info menu if it has been
invoked from a player (reported by Jürgen Schilling).
|
|
- Fixed handling second audio and Dolby Digital PIDs for encrypted channels
(was broken in version 1.3.37).
- Improved TS/PES conversion to better handle lost TS packets (thanks to
Reinhard Nissl).
- Limited the frequency of log messages from the cRepackers.
- Now using the gettid() syscall to get a thread's pid, so that we get a
useful value on NPTL systems (suggested by Johannes Stezenbach).
- Fixed the RCU remote control handling to avoid problems with NPTL (thanks
to Andreas Share for reporting a lockup with the RCU on NPTL systems).
- When displaying the amount of free disk space, the space consumed by
recordings that have been "deleted" but not yet actually "removed" is now
taken into account (suggested by Christian Vogt).
- Now avoiding unnecessary disk access when checking if there are deleted
recordings that need to be removed (reported by Carsten Koch).
- Fixed handling the DELETEDLIFETIME when removing deleted recordings. Now
a deleted recording is retained at least DELETEDLIFETIME seconds before
actually removing it.
The value of DELETEDLIFETIME has been changed to 300. So after (possibly
inadvertently) deleting a recording, there will be at least 5 minutes
in which it can be recovered (unless a new recording immediately requires
the disk space). The count starts again at 0 every time VDR is started.
- Fixed a possible crash when displaying the "Low disk space!" message from
a background thread (thanks to Christof Steininger).
- Fixed handling OSD areas that have invalid sizes (thanks to Marco Schlüßler).
- Added a mutex to AssertFreeDiskSpace() to make sure calls from foreground
and background threads won't interfere.
- The main menu now dynamically updates its contents in case an instant
recording or replay stops, etc.
- The version number of EPG events is now also stored in the epg.data file
(thanks to Kendy Kutzner).
- EPG events that are no longer in the currently broadcasted data stream are
now automatically deleted.
- Removed an invalid access to Event->schedule in cSchedule::DelEvent().
- Modified cSchedule::Cleanup() (events are always sorted by time).
- Schedules are now cleaned up once every hour (not only at 05:00).
- The "Schedule" and "What's on now/next?" menus are now updated if a timer
is set or modified.
- cTimer no longer has its own 'schedule' member, it rather uses that of the
event it has been set to.
- The "Red" button in the "Schedule", "What's on now/next?" and "Event" menus
now immediately creates a timer for the selected event and marks it with 'T'.
If the event is already marked with 'T', the "Red" button opens the "Edit
timer" menu for that timer.
- Removing deleted recordings is now done in a separate thread.
- Dropped the unused "stop recording on primary interface" stuff.
- Converting a grabbed image to JPEG is now done with the new function
RgbToJpeg() (see tools.h).
- The SVDRP command GRAB now determines the image type (JPEG or PNM) from the
extension (".jpg", ".jpeg" or ".pnm") of the given file name. The explicit
'jpeg' or 'pnm' parameter is still accepted for backward compatibility, but
has no meaning any more.
- The function cDevice::GrabImage() no longer writes the grabbed image to a
file, but rather returns a pointer to the image in memory. The wrapper
function cDevice::GrabImageFile() can be used to write the grabbed image
directly to a file. Plugins that used the old version of cDevice::GrabImage()
need to be adapted to the new interface.
- The new class cBase64Encoder (see tools.h) can be used to encode data in
base64 (thanks to Bob Withers for publishing his Base64 class).
- The SVDRP command GRAB now writes the image data to the SVDRP connection
(encoded in base64) if the given file name consists of only the file
extension (".jpg", ".jpeg" or ".pnm"), or if only "-" is given as file
name (based on a suggestion from Darren Salt).
A simple way of viewing a grabbed image on a remote host is:
svdrpsend.pl -d <hostname> 'grab -' | sed -n -e 's/^216-//p' -e '1ibegin-base64 644 -' -e '$a====' | uudecode | display -
- The new command line option '-g' must be given if the SVDRP command GRAB
shall be allowed to write image files to disk. The parameter to this option
must be the full path name of an existing directory, without any "..", double
'/' or symlinks. By default, or if "-g- is given, grabbing to files is
not allowed any more because of potential security risks.
- Modified the way the SVDRP command GRAB writes the grabbed image to a file
to avoid a security hole (CAN-2005-0071, reported by Javier Fernández-Sanguino
Peña):
+ The file handle is now opened in a way that it won't follow symbolic links
(suggested by Darren Salt).
+ The given file name is now canonicalized, so that it won't contain any
".." or symlinks (suggested by Darren Salt).
+ Grabbing to files is limited to the directory given in the the command
line option '-g'. By default grabbing to files is not allowed any more.
- Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
- Changed all "illegal" to "invalid" in error messages (there's nothing "illegal"
in VDR ;-).
- When started as user 'root' VDR now switches to a lesser privileged user id,
keeping the capability to set the system time (based on a patch from Ludwig
Nussel). By default the user id 'vdr' is used, which can be changed through
the new command line option '-u'. Note that for security reasons VDR will no
longer run as user 'root' (unless you explicitly start it with '-u root',
but this is not recommended!). The 'runvdr' script has been changed to
use the '-u' option.
- Changed the API of the functions cStatus::Recording() and cStatus::Replaying(),
so that they can provide the full file name of the recording. Plugins that use
these (or the related cStatus::Msg...() functions) need to be adapted
(suggested by Andreas Brugger).
- The DVB devices now retune (and, if applicable, resend the DiSEqC data) if
the lock is lost (based on a patch from Reinhard Nissl).
- Fixed handling multi byte key sequences in cKbdRemote (based on a patch from
Jürgen Schneider).
- Removed unused variables in skinclassic.c and skinsttng.c (thanks to Marco
Schlüßler).
- Made the static cControl functions thread safe (thanks to Patrick Fischer).
- Fixed initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid
warnings with g++ 4.1.0 (thanks to Ville Skyttä).
- Fixed incrementing the 'state' variables in the repacker classes in remux.c
to avoid warnings with g++ 4.1.0 (reported by Ville Skyttä).
- The Makefile now reports a summary of failed plugins (thanks to Udo Richter).
- The cTimer constructor can now take an optional cChannel (suggested by
Patrick Fischer).
- Fixed setting the main thread id if VDR is running as a daemon.
- Fixed handling TS packets in cTS2PES (thanks to Reinhard Nissl).
- Added cTimer::SetPriority() to set a timer's priority (suggested by Kendy Kutzner).
- Added cMenuEditStrItem::InEditMode() (suggested by Christian Wieninger).
- Now using FE_READ_STATUS to read the current frontend status (suggested by
Holger Wächtler).
- The "Menu" key now behaves consistently. If there is anything on the OSD, it
is closed when the "Menu" key is pressed, and if there is nothing on the OSD,
the "Menu" key opens the main menu (suggested by Luca Olivetti).
- The new option "Setup/OSD/Timeout requested channel info" can be used to turn
off the automatic timeout of the channel display in case it was invoked by
a press of the "Ok" key (suggested by Thiemo Gehrke).
- A message is now given when an instant recording is started (suggested by
Helmut Auer). Actually the code was already there, just commented out - don't
remember why it wasn't active...
- Removed an obsolete "Summary" text from i18n.c and preceded all key definition
texts with "Key$" to avoid duplicates (reported by Lucian Muresan).
- Preceded all button texts with "Button$".
- Removed obsolete "Eject", "Language" and "scanning recordings..." texts.
- Added missing #include "thread.h" to dvbspu.c (reported by Gavin Hamill).
- Disabled the use of "fadvise" in cUnbufferedFile because there have been
several reports that it causes more problems than it solves (suggested by
Petri Hintukainen). If you want to use "fadvise", you can activate the line
//#define USE_FADVISE
in tools.c.
- Removed unused 'offset' member from cOsdItem.
- In the "Channels" menu the numeric keys now position the cursor to the channel
with the given number (see MANUAL, section "Remote Control Keys", note (3) for
details).
- The "Mark/Move" function in the "Channels" menu now also works in the non-numeric
sort modes.
- The default cOsdObject::Show() now automatically calls cOsdMenu::Display() if
this is a menu.
- The new "Info" key brings up information on the currently viewed programme
or recording. For a live programme this is the same as "Schedule/Ok", i.e. the
description of the current EPG event. For a recording this is the same as shown
by the "Info" button in the "Recordings" menu. Plugins that implement players
can overwrite their cControl::GetInfo() function to show their own info (see
PLUGINS.html for details). Pressing the "Info" key again while the info is
displayed will close the OSD. In order to assign this new key to an existing
remote control setup, the remote.conf file needs to be deleted and VDR has
to be restarted to go through the process of learning the remote control keys.
- Any cReceivers still attached to a cDevice when that device switches to a
different transponder are now automatically detached (suggested by Patrick
Fischer).
- The "flags" of a timer are now handled as an unsigned integer value. In order
to do this, the interface of cMenuEditBitItem also had to be changed.
- In string entry fields (like, e.g., the file name of a recording) the characters
can now be entered by pressing the numeric keys, the same way as on a
telephone keypad (based on the "Easy Input" patch from Marcel Schaeben).
- Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch
from "single shot" to "weekly", followed by the "Right" key (reported by
Andreas Böttger).
- The file 'ca.conf' is obsolete and has been removed.
- Revised all descriptions regarding CICAM.
- Adapted c(Dvb)Device::ProvidesCa() to the dynamic CA handling.
- Added a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack()
(thanks to Reinhard Nissl).
- Added a SleepMs() in cRecorder::Action() to avoid a busy loop (thanks to Ingo
Schneider).
- Cleaned up some trailing white space.
|
|
- Added some missing braces in remux.c (thanks to Wayne Keer for reporting this one).
- Removed unused MAINMENUENTRY from svdrpdemo.c (thanks to Udo Richter for reporting
this one).
- Fixed appending sequence end code in cDvbPlayer::Goto() (thanks to Reinhard Nissl).
- Fixed syncing in cRepacker (thanks to Reinhard Nissl).
- Now always using stream id 0xE0 for the video stream, to avoid problems with
post processing tools that choke on different ids (suggested by Reinhard Nissl).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed cDvbPlayer::SkipFrames() to properly handle radio recordings (thanks to
Reinhard Nissl).
- Updated the Swedish OSD texts (thanks to Tomas Prybil).
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Made LIRC command parsing more robust (thanks to Ville Skyttä).
- Introduced a separate 'plugins-install' target in the Makefile (thanks to Daniel
Thompson).
- Re-introduced the code that waits for a tuner lock in VDR/device.c, since
apparently some users actually need it. It's not active by default, you'll have
to define the WAIT_FOR_TUNER_LOCK macro in that file if you need it (suggested
by Malcolm Caldwell).
- Adjusted the Makefile to the dvb-kernel driver on kernel 2.6 and up (thanks to
Lauri Tischler).
- Repeat keys are now ignored when waiting for a keypress to cancel an operation
(thanks to Marko Mäkelä).
- The main menu function of a plugin can now be activated through a key macro of
the form "@plugin" even if that plugin doesn't have a main menu entry (using
part of a patch by Hardy Flor, which originally implemented calling plugins from
SVDRP).
- The menu timeout handling is now done centrally in the main program loop.
- Added missing help for the 'help' keyword in the SVDRP command PLUG.
- The main menu function of a plugin can now be called programmatically through
the static function cRemote::CallPlugin().
- The SVDRP command PLUG now has a new option 'main' which can be used to initiate
a call to the main menu function of a plugin (using part of a patch by Hardy Flor).
- The new command line option '--vfat' can be used to make VDR encode special
characters in recording file names, even if it wasn't compiled with VFAT=1
(suggested by Peter Bieringer). The compile time option VFAT still exists and
creates a VDR that always behaves as if it were called with '--vfat'.
- Replaced the ':' delimiter between hour and minute in recording file names with
a '.' under Linux, too. Existing recordings with ':' as delimiter will still work.
- Implemented the SVDRP command MOVC (thanks to Andreas Brachold).
- Added support for multiple audio language codes in ISO639LanguageDescriptors to
'libsi' (thanks to Marcel Wiesweg).
- Changed the audio PID language codes to hold up to two 3 letter codes, separated
by '+', to store separate languages broadcast in two channel audio mode.
- If the preferred audio language is broadcast on a PID that has two different
languages in the two stereo channels, the audio channel is now properly set when
switching to such a channel (thanks to Mogens Elneff for his help in testing this).
- Fixed some typos in MANUAL (thanks to Ville Skyttä).
- Fixed the default value for "Setup/EPG bugfix level" (thanks to Ville Skyttä for
reporting this one).
- Fixed defining timers that only differ in the day of week (thanks to Patrick
Rother for reporting this one).
- Fixed converting summary.vdr files that would result in a very long 'short text'
(thanks to Carsten Koch).
- Implemented a hash for the channels to reduce the system load in the EIT scanning
thread (based on a patch by Georg Acher).
|
|
- Fixed a race condition in cTransfer (thanks to Klaus Heppenheimer for reporting this one).
In doing so, the 'active' variables used by the actual derived cThread classes
have been replaced by the cThread::Running() function.
Plugin authors may want to check their derived cThread classes and replace any 'active'
variables the same way as, for instance, done in transfer.c.
- Fixed handling EPG data for time shifted events (thanks to Marco Schlüßler).
- Increased the default value for 'Min. user inactivity' to 300 minutes (suggested
by Helmut Auer).
- Now storing the channel id in the info.vdr file even if there is no EPG info
available (thanks to Andreas Brachold for reporting that there are empty info.vdr
files created in that case).
- Added some 'mkdir -p' to the Makefile's 'install' target (thanks to Wayne Keer).
- Changed the title of the recording info menu (thanks to Rolf Ahrenberg).
- Fixed handling the frame number display if '7' is pressed before the first editing
mark, or '9' after the last one (thanks to Thomas Günther).
- Now discarding any previous numerical input to switch channels if Up, Down, Channel+,
Channel-, Left or Right is pressed (thanks to Wolfgang Rohdewald for reporting a
problem with this).
- Pressing Ok while entering a channel number now immediately switches to that
channel, without waiting for further input.
- Avoiding unnecessary OSD draw operations caused by the audio track description
display in the ST:TNG skin's channel display (thanks to Oliver Endriss for reporting
this).
- Removed the VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES stuff from
cDvbDevice::StillPicture(), since apparently the VIDEO_STILLPICTURE call works.
|
|
- Added a sleep in cDvbPlayer::Action() in case there is no data to send to the
device, which avoids a busy loop on very fast machines (thanks to Martin Wache).
- Modified the description of cDevice::Poll() to avoid misunderstandings.
- Updated Croatian language texts (thanks to Drazen Dupor).
- cDvbPlayer::Goto() now appends a Sequence End Code to get the image shown
immediately with softdevices (thanks to Reinhard Nissl).
- Reactivated cVideoRepacker in remux.c after some fixes (thanks to Reinhard Nissl).
- Removed the fix for handling VPS timers, so that they only record if the event
they are assigned to actually has the given VPS time. This has caused repeating
VPS timers to stop recording prematurely.
- Avoiding duplicate components in EPG events when reading epg.data or in the
PUTE SVDRP command (thanks to Olaf Titz for reporting this one).
- Added the command line options '--lirc', '--rcu' and '--no-kbd' to allow setting
the remote control at runtime (based on a patch by Darren Salt).
- Now checking whether timers or channels are currently being edited via the menu
before making changes through SVDRP (thanks to Andreas Brugger for reporting a
problem with this).
- Files and directories are now created with rights according to the shell's
umask settings (thanks to Andreas Brachold).
- Fixed the cChannel copy constructor (thanks to Marcel Wiesweg for pointing out
a problem with it).
- Fixed an out-of-bounds memory access with audio language ids (thanks to
Matthias Lenk for reporting, and Udo Richter for suggesting a fix).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Added missing storing of the MenuScrollPage parameter (thanks to Frank Krömmelbein).
- Added cRemux::SetTimeouts() for better use of cRemux in a single thread (thanks
to Udo Richter for reporting a problem with this).
- Modified cEITScanner::Process() so that it uses the primary device if it is
replaying and is the only device that provides the given transponder, and that
a forced EPG scan works even if EPG scan timeout is set to 0 (thanks to
Bernhard Stegmaier for reporting a problem with this).
- Fixed cDvbSpuBitmap::putPixel() (thanks to Reinhard Nissl).
- Fixed setting system time to avoid time jumps in case of faulty data (thanks
to Andreas Böttger).
- Fixed a memory leak in the SVDRP command LSTE (thanks to Stefan Huelswitt).
|
|
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Some cable providers don't mark short channel names according to the standard,
but rather go their own way and use "name>short name". VDR now splits at this
character for cable channels (thanks to Gerhard Steiner for reporting this one).
- Added a check for Setup.DiSEqC in cDvbDevice::ProvidesTransponder(), otherwise
the EPG scan didn't work on systems that don't use DiSEqC (thanks to Michael
Reinelt for reporting this one).
- Made the Makefile patch friendlier (thanks to Ludwig Nussel).
- Made cOsd::isOpen an integer counter to avoid problems with messages when a
cOsdObject uses the raw OSD (thanks to Andreas Regel for reporting this one).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- The file 'summary.vdr' has been replaced with 'info.vdr' and now contains the
information about a recording, in the same format as the events are stored in
'epg.data' (see man vdr(5) for details). Existing summary files can be converted
to the new format by running the Perl script 'summary2info.pl', as in
summary2info.pl /video
(the parameter given has to be the video directory). If there is no 'info.vdr'
file for a recording, an attempt is made to read a 'summary.vdr'.
- The "Summary" button in the "Recordings" menu has been renamed to "Info", and
the page it brings up now shows the recording's information, much like the EPG
event page. Therefore it now no longer uses the skin's SetText() function, but
rather the SetRecording() function. Skin plugins may need to adjust that function
accordingly (see skinsttng.c, for instance).
- The SVDRP command LSTR now lists the recording information in the same tagged
format as the LSTE command lists the EPG data.
- The audio track menu now contains track descriptions when replaying (provided
such descriptions were available in the EPG data when the recording was made,
and are stored in the info.vdr file).
- Avoiding extra blanks at the end of names of instant recordings.
- Removed converting byte order on big endian systems from cDvbOsd::Flush(),
which, according to Johannes Stezenbach and Paavo Hartikainen, is wrong.
- Added cPlayer::DeviceSetVideoDisplayFormat() (thanks to Marco Schlüßler).
- No longer saving the setup in case of a fatal error, to keep the volume level
from being set to a wrong value (thanks to Marco Schlüßler).
- Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp()
is waiting (thanks to Marco Schlüßler).
- The SVDRP command DELR no longer deletes recordings that are currently being
written to by a timer (thanks to Sascha Volkenandt for pointing out this one).
- Pressing the "Play" key in live viewing mode now resumes a previous replay
session (thanks to Mirko Dölle).
- Now dropping EPG events that have a zero start time or duration (thanks to
Oliver Endriss).
- No longer stopping Transfer Mode or replay immediately when the Power button
is pressed (thanks to Rolf Ahrenberg).
- Moved the NPTL and UTF-8 checks after the version and help output (thanks to
Andreas Kool for pointing out that 'vdr --version' failed on an UTF-8 system).
- Made tChannelID::operator==() inline for better performance (thanks to Georg
Acher).
- Introduced cListBase::count for better performance (thanks to Georg Acher).
- cEvent no longer stores the channelID directly, but rather has a pointer to
the schedule it is in.
- Now using hash tables to speed up cSchedule::GetEvent() (partially based on
a patch from Georg Acher).
- Avoiding unnecessary calls to getLength() in libsi/si.c, and avoiding the
'& 0xff' in CRC32::crc32() of libsi/util.c (thanks to Georg Acher).
- Speeded up deleting duplicate channels.
- Fixed listing recordings with empty episode names in the LSTR command (thanks
to Stefan Huelswitt for pointing this out).
- Added cThread::SetPriority() and using it in cSectionHandler::Action() to
reduce the priority of the section handler threads (as suggested by Georg Acher).
|
|
- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
back to live mode if a recording is currently active on the primary device.
- Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function
permanently returns 0 (thanks to Reinhard Nissl and Olaf Titz).
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Restricted the "setting audio track" log message to automatic changes during replay.
- Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for
reporting this one).
- Fixed handling symbolic links in cRecordings::ScanVideoDir() (thanks to Stefan
Huelswitt).
- Completed the Danish OSD texts (thanks to Mogens Elneff).
- Forcing a new resync after a call to cRemux::Clear() (suggested by Marco Schlüßler).
- The cAudio::Play() function now has an additional parameter 'uchar Id' which tells
the function the substream id of the given audio packet, so that a plugin can
take the right action for the various kinds if audio data - which now also includes
"normal" audio with ids 0xC0...0xDF (based on suggestions by Werner Fink and Macro
Schlüßler).
- Removed the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since this
is now done when attaching the player to the device (thanks to Marco Schlüßler).
- Making sure the buffer reserve in cTransfer::Action() is re-established after
clearing the buffer.
- Added DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
(thanks to Marco Schlüßler).
- Fixed a typo in detecting UTF-8 (thanks to Reinhard Nissl).
- Now using twice the buffer reserve in cTransfer if the primary DVB card is an
unmodified version with only 2MB of SDRAM, to avoid audio stuttering when
playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad
Flynt for suggestions and experiments in that area).
- Making sure the first audio packet is not dropped when switching to "pre 1.3.19
Dolby Digital compatibility mode".
- The 'plugins-clean' target of the Makefile now only deletes the actual plugin
library files from this version of VDR (suggested by Andreas Brachold).
- Added a missing 'resultSkipped = 0' to cRemux::Clear() (thanks to Marco Schlüßler
for reporting this one).
- The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by
plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice
from starting Transfer Mode in order to replay DD over the DVB device.
- Added missing reset of the 'repacker' to cTS2PES::Clear() (thanks to Marco
Schlüßler for reporting this one).
|
|
- 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
files.
- 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:
cChannel::ToText()
tChannelID::ToString()
cEvent::GetDateString()
cEvent::GetTimeString()
cEvent::GetEndTimeString()
cEvent::GetVpsString()
cMark::ToText()
cTimer::ToText()
cSource::ToString()
cTimer::PrintDay()
cTimer::PrintFirstDay()
PrefixVideoFileName()
IndexToHMSF()
ChannelString()
strescape()
AddDirectory()
itoa()
WeekDayName()
DayDateTime()
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
Gleichmann).
- 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
Schlüßler).
- 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.
|
|
- Fixed cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond
the end of the given buffer, which has caused some unjustified "unknown
picture type errors" (thanks to Marco Schlüßler).
- Fixed a possible crash when pausing live video and the recording was unable
to start, maybe because there was no lock on the device (thanks to Andreas
Brugger for reporting this one).
- Fixed some characters in the iso8859-2 font file (thanks to Dino Ravnic).
- Fixed some errors in the Croatian language texts (thanks to Dino Ravnic).
- Fixed a possible recursion in cControl::Shutdown() (thanks to Sascha Volkenandt).
- Now setting the VPID before the APID in live mode to avoid unnecessary
overhead in the firmware (thanks to Werner Fink).
- Now checking available OSD memory at runtime (thanks to Oliver Endriss).
- Fixed some typos in the Makefile's 'font' target (thanks to Olaf Titz).
- Fixed handling childTid in cThread to avoid possible race conditions (thanks
to Stefan Huelswitt for pointing this out).
- Fixed toggling the "Day" item in the "Timers" menu, so that it selects the
right day of week for timers in the future.
- Some improvements to cPoller (thanks to Marco Schlüßler).
|
|
- Fixed some typos in the Makefile's 'font' target (thanks to Uwe Hanke).
- Added more checks and polling when getting frontend events (based on a patch
from Werner Fink).
- No longer explicitly waiting for a tuner lock when switching channels
(apparently setting "live" PIDs before the tuner is locked doesn't hurt).
Moved the wait into cDevice::AttachReceiver() instead.
- Immediately displaying the new channel info when switching channel groups.
- Moved the main program loop variables further up to allow compilation with
older compiler versions (thanks to Marco Schlüßler for reporting this one).
- Now calling pthread_cond_broadcast() in the destructor of cCondWait and
cCondVar to make sure any sleepers will wake up (suggested by Werner Fink).
Also using pthread_cond_broadcast() instead of pthread_cond_signal() in
cCondWait, in case there is more than one sleeper.
- Making sure that timers and channels are only saved together, in a consistent
manner (thanks to Mirko Dölle for reporting a problem with inconsistent
channel and timer lists).
- Now handling the channel name, short name and provider separately. cChannel
therefore has two new functions, ShortName() and Provider(). ShortName()
can be used to display a short version of the name (in case such a version
is available). The optional boolean parameter of ShortName() can be set to
true to make it return the name, if no short name is available.
The sequence of 'name' and 'short name' in the channels.conf file has been
swapped (see man vdr(5)).
- Added the 'portal name' to cChannels (thanks to Marco Schlüßler).
- Fixed handling key codes that start with 0x1B in the KBD remote control code.
- Now using qsort() to sort cListBase lists. For this, the virtual function
cListObject::operator<() has been replaced with cListObject::Compare().
Plugins that implement derived cListObject classes may need to adjust their
code.
- The "Channels" menu can now be sorted "by number" (default), "by name" and
"by provider". While in the "Channels" menu, pressing the '0' key switches
through these modes.
- Fixed the buffer size in cRecording::SortName().
- Now displaying the name of the remote control for which the keys are being
learned inside the menu to avoid overwriting the date/time in the 'classic'
skin (thanks to Oliver Endriss for reporting this one).
|
|
- Fixed checking for the presence of NPTL (thanks to Jouni Karvo).
- Making sure section filters are only set if the device actually has a lock
(thanks to Andreas Share for pointing this out).
- Fixed a possible NULL pointer assignment in cMenuText::SetText() (thanks to
Marco Schlüssler).
- Fixed a crash in case the last line in channels.conf is a group separator and
that group is selected in the channel display (thanks to Dick Streefland).
- Added cRingBufferLinear::Read() to read directly from a file handle into the
ring buffer.
- Using timeouts in ring buffers to avoid 'usleep()'.
- Clearing the 'Transfer Mode' ring buffer after clearing the device to avoid
an "almost full" ring buffer.
- Removed locking from cRingBufferLinear for better performance under high load.
- Using a cRingBufferLinear in cRemux to avoid unnecessary copying of data.
- Using a cRingBufferLinear in cTSBuffer and filling it in a separate thread
to avoid buffer overflows. Plugins using cTSBuffer will need to remove the
call to the now obsolete Read() function (see cDvbDevice::GetTSPacket() for
the new usage of cTSBuffer).
- cRemux::Process() has been split into Put(), Get() and Del() to allow for a
better decoupling of the remuxing and disk writing process. Plugins using
cRemux will need to be modified accordingly.
- The actual disk writing in recordings is now done in a separate thread to
improve the overall throughput.
- Changed cRemux so that it returns the maximum available amount of data with
each call, not just 2048 byte.
- Added a visual display of all cRingBufferLinear buffers for debugging. To
activate it, define DEBUGRINGBUFFERS in ringbuffer.h.
- Instead of cCondVar now using the new cCondWait (which also avoids a possible
"near miss" condition; thanks to Sascha Volkenandt for pointing out this one).
cCondVar is still present for plugins that use it (and VDR itself also still
uses it in cRemote).
- The cRingBuffer now does EnableGet()/EnablePut() only if the buffer is more than
one third full or empty, respectively. This dramatically improves recording
performance and reduces system load (thanks to Marco Schlüßler for doing some
testing regarding buffer performance and giving me some hints that finally led
to finding out that this was the basic problem causing buffer overflows).
- Improved Transfer Mode (thanks to Marco Schlüßler for suggestions and testing).
- Fixed a possible crash with inconsistent SI data (thanks to Marcel Wiesweg).
- Fixed showing the replay mode if the OSD is currently in use (thanks to Kimmo
Tykkala for pointing out this problem).
- cOsdProvider::NewOsd() now always returns a valid pointer, even if the OSD is
currently in use (it will then return a dummy cOsd object and write a message to
the log file).
- Added Estonian language texts (thanks to Arthur Konovalov).
- Fixed 'newplugin' and libsi/Makefile to use the compiler defined in $(CXX) for
generating file dependencies (thanks to Andreas Brachold).
- Moved the initialization of aPid1 and aPid2 to the beginning of cDvbDevice::cDvbDevice()
to have them set in case a patch references them (thanks to Wayne Keer for pointing
this out).
- Completed the Russian OSD texts (thanks to Vyacheslav Dikonov).
- Avoiding unnecessary section filter start/stops (thanks to Marco Schlüßler).
- Made the "Channel not available!" message and mtInfo instead of mtError (suggested
by Wayne Keer).
- Made volume control more linear (thanks to Emil Naepflein and Udo Richter).
- Now skipping code table info in SI data (suggested by Milos Kapoun).
- Added missing Czech characters to fontosd-iso8859-2.c (thanks to Milos Kapoun).
- Fixed a crash in the time search mechanism (reported by Reinhard Nissl).
- If one PID can't be added, the whole cDevice::AttachReceiver() will now fail
and all PIDs added so far will be deleted (thanks to Marco Schlüßler for
pointing out this one).
- Now only saving channels.conf after a modification made by the user (avoids
lots of disk access due to automatic channel updates). Automatic channel
modifications will be saved every 10 minutes if no recording is currently
active.
- Removed the 'Log' parameter from the cChannel::Set... functions. Instead
checking if the channel has a non-zero number.
- Updated 'channels.conf.terr' for Hannover (thanks to Sven Kreiensen).
|
|
- 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
"Setup/OSD/Theme".
- 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!).
|
|
- Fixed resetting the EPG data versions after changing the preferred languages
(thanks to Teemu Rantanen for reporting this one and helping to debug it).
- Added LinkageDescriptor handling to 'libsi' (thanks to Marcel Wiesweg).
- Added Russian language texts (thanks to Vyacheslav Dikonov).
Plugin authors may want to add the new entries to their I18N texts and contact
the translators to have their texts translated. Note that there are now 17
different OSD languages, so please make sure you have 17 versions for each of
your texts.
- Some corrections and additions to the Finnish OSD texts (thanks to Rolf
Ahrenberg and Niko Tarnanen).
- Fixed a wrong 'delta' value in the call to the shutdown script (thanks to
Stephan Epstein for reporting this one).
- Activated detection of radio channels (to avoid reports about "channels not
being detected that used to be detected with the 'scan' utility or the
original 'autopid' patch ;-).
- Channels with a zero VPID no longer write a PPID into channels.conf.
- Short channel names are now only stored if they actually differ from the
full name.
- The EPG scan now scans newly found transponders together with already existing
ones.
- The "Red" button in the "Setup/EPG" menu can now be used to force an EPG
scan on a single DVB card system (see MANUAL for details).
- The new SVDRP command 'SCAN' can be used to force an EPG scan on a single
DVB card system (see MANUAL under Setup/EPG for details).
- Fixed handling PID changes in 'Transfer Mode'.
- Excess blanks in channel names read from the SDT are now removed.
- Fixed wrong parameter settings when scanning NITs for terrestrial transponders
(thanks to Christian Tramnitz for pointing out this one).
- Fixed some out of bounds parameter settings when scanning NITs for cable
and satellite transponders.
- Added 'libsi' include files to the 'include' directory, so that plugins can
use them (thanks to Marcel Wiesweg).
- Now only processing NITs that contain the transponder they are actually
broadcast on.
- Fixed setting the source type for newly detected terrestrial transponders
(thanks to Christian Tramnitz for his support in debugging this).
|
|
- Fixed a lockup in the EPG scanner when no non-primary device was available
(thanks to Martin Holst for reporting this one).
- Fixed a compiler warning about virtual cConfig::Load() functions (thanks to
Lauri Tischler for reporting this one).
- Fixed a warning about character comparison in libsi/si.c (thanks to Lauri
Tischler for reporting this one).
- The new parameter "Update channels" in the "Setup/DVB" menu can be used to
control if and how channels will be automatically updated (see MANUAL).
This has already been part of the 'autopid' patch by Andreas Schultz and has
now been adopted.
- Fixed a crash in case there is no DVB hardware present (thanks to Sascha
Volkenandt for reporting this one).
- Changed calculation of channel ids to make it work for tv stations that use
the undefined NID value 0 (thanks to Teemu Rantanen for reporting this one).
- Enhanced the SDT filter to handle multi part sections.
- Added support for selecting preferred EPG languages (based upon a patch by
Teemu Rantanen).
- Fixed a 'const' in libsi/si.h (thanks to Marcel Wiesweg).
- Fixed the 'su' call in 'runvdr' to make it work on systems that require the
user name to appear before the command option (thanks to Robert Huitl).
- Fixed testing for matching section filters in case they are turned off (thanks
to Marcel Wiesweg).
- In case of incomplete sections an error message is now logged only every 10
seconds.
- Fixed a possible NULL pointer access in cEITScanner::Process() (thanks to
Andreas Kool).
- The actual transponder data is now taken from the NIT and existing channels
are adjusted if necessary. If the NIT contains new transponders, they are
scanned for channels during the next EPG scan. Note that only the satellite
branches are tested, cable and terrestrial need to be tested by somebody who
actually has such equipment.
|
|
- 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 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).
|
|
- Fixed a bug in channel switching after Left/Right has been pressed (thanks to
Michael Walle for reporting this one).
- Improved channel switching in case of numerical input by switching as soon as
the channel is unique (suggested by Jaakko Hyvätti).
- Fixed creating a new channel in the "Channels" menu in case the 'channels.conf'
contains ':@nnn' lines with no text (thanks to Guy Roussin for reporting this
one).
- Changed the behaviour of the '0' key in normal viewing mode so that a channel
only qualifies as "previous" if it has been selected for at least 3 seconds
(suggested by Thomas Keil).
- Now clearing the channel info display when entering numeric keys to switch
channels (suggested by Guy Roussin).
- Added missing I18N entry for "Ppid" (thanks to Rolf Ahrenberg).
- Fixed handling the color buttons in the "Edit channel" menu (thanks to Thomas
Keil for reporting this one).
- Fixed an occasional "Broken pipe" error in SVDRP connections (thanks to Gerhard
Steiner for reporting this one).
- Fixed checking CA capabilities with the dvb-kernel driver (thanks to Kenneth
Aafløy).
- Fixed selecting the device, because sometimes an FTA recording terminated a
CA recording (thanks to Emil Naepflein).
- Fixed a possible crash in case a VFAT file system is used without compiling VDR
with VFAT=1 (thanks to Ernst Fürst for reporting this one).
- Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile
or Make.config as defaults (thanks to Steffen Barszus).
- Added the usual menu timeout to the CAM menus.
|
|
- Fixed the 'channels.conf' entries for "Studio Universal" and "Disney Channel".
- Fixed handling channels in the "Channels" menu in case there are ':@nnn' group
separators without names (thanks to Guy Roussin for reporting this one).
- The SVDRP command CHAN now also accepts channel IDs.
- Increased the timeout until an index file is considerd no longer to be written
(sometimes in time shift with heavy system load the index file was closed too
early by the replay thread).
- Implemented "Link Layer" based CAM support, which hopefully will solve the
problems with CAMs we had in the past. To use this you need the driver version
2002-01-08 or higher (with the new firmware supporting the "Link Layer" protocol).
- Added an EPG bugfix that moves the Subtitle data to the Extended Description in
case the latter is empty and the Subtitle exceeds some useful length.
- Since several channels put very long strings into the Subtitle part of their
EPG data, that string is now limited in length when used in a recording's
file name.
|
|
- Now checking if there is a connection to the keyboard (thanks to Jaakko Hyvätti)
and only creating the KBD remote control if VDR is running in the foreground.
- Fixed taking an active SVDRP connection into account when doing shutdown (thanks
to Gregoire Favre for reporting this one).
- Changed setting of CXX and CXXFLAGS variables in Makefile, so that an externally
defined value will be taken if present (suggested by Robert Schiele).
Plugin authors should please change the lines
CXX = g++
CXXFLAGS = -O2 -Wall -Woverloaded-virtual
in their Makefile to
CXX ?= g++
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
- Fixed recording overlapping timers on the same channel in case
DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined
(thanks to Jaakko Hyvätti).
- No longer stopping/restarting the DMX when switching audio channels (thanks to
Sven Goethel).
- Fixed high CPU load in 'Transfer Mode' (thanks to Oliver Endriss).
- If a PC keyboard is used as remote control, the string entry fields in the
menus now accept character input directly (however, this works only for keys that
are not otherwise defined as remote control keys). Also, plugins can switch the
cKbdRemote class into "raw mode", where all keyboard input will be made available
through the new 'kKbd' key code and none of it will be processed as normal remote
control functions (thanks to Jan Rieger for suggestions and testing).
- Fixed deleting characters in string entry fields in 'insert' mode.
- Now using "Doxygen" to generate source documentation (thanks to Walter Stroebel
for providing an initial 'Doxyfile' configuration and adjusting some comments).
See INSTALL for information how to do this. Some function descriptions have
already been adapted to Doxygen, more will follow.
|
|
- The character '|' in description texts of EPG records is now interpreted as a
newline character (suggested by Gerhard Steiner).
- Updated 'channels.conf.cable' (thanks to Andreas Kool).
- Improved handling of repeated remote keys.
- The RCU now only sets the channel number display when there are no incoming remote
control keys, which improves reaction on repeated keys.
- The actual tuning is now done in a separate thread, which makes zapping through the
channels a lot faster and no longer gets stuck on channels that don't broadcast.
This also makes "Motor-DiSEqC" work (thanks to Reinhard Walter Buchner for his help
in testing this). Since switching channels now no longer explicitly waits for a
channel lock in the foreground thread, the "panic level" mechanism is no longer
used (maybe we don't need it any more, anyway).
- The keyboard is now by default always active to control VDR. The 'make' option
REMOTE=KBD is therefore obsolete. When compiling VDR with REMOTE=RCU or REMOTE=LIRC,
the keyboard can thus now be active together with the remote control. If you want
to build VDR _without_ keyboard support you can set NO_KBD=1 in the 'make' call.
Since the keyboard codes are now different from the ones used previously (which
were mapped by the 'ncurses' library) you will need to go through the "Learning
keys" procedure again. To do so, either delete the file /video/remote.conf or
remove the KBD.* entries from it before starting this version of VDR.
(Thanks to Thomas Sailer for pointing out how to set the terminal parameters to
read from the keyboard).
- The 'ncurses' library is now only necessary when compiling VDR with DEBUG_OSD=1.
|
|
- Fixed missing initialization of 'number' in cChannel (thanks to Martin Hammerschmid
for reporting this one).
- Fixed a misplaced ')' in the fix about the stale lock files (thanks again to
Oliver Endriss for pointing this out - it was my fault).
- Group delimiters in the 'channels.conf' file that have no text (like a simple ":"
or ":@201") no longer show up in the Channels menu (suggested by Guy Roussin).
- Added "Tele 5" to 'channels.conf' (thanks to Georg Hitsch).
- Changed the source directory name for plugins from 'SRC' to 'src' (suggested by
Clemens Kirchgatterer).
- Removed transponders 10788, 11739 and 12266 from 'channels.conf' (apparently they
are no longer active).
- Deactivated some templates in tools.h in case some plugin needs to use the STL
(suggested by Gerald Berwolf).
- Timers now accept channel IDs even if the 'source' is 0 (thanks to Stefan Huelswitt
for reporting this one).
- Now taking an active SVDRP connection into account when doing shutdown or
housekeeping (suggested by Emil Naepflein).
- Macros in 'keymacros.conf' can now use "@plugin" to directly access the main menu
function of a given plugin (see man vdr(5) for details).
- The new plugin 'sky' can be used to integrate a Sky Digibox into the VDR system,
using a Kfir MPEG2 encoder card (see PLUGINS/src/sky/README for details).
|
|
- Completely switched to the new CVS HEAD version of the linux-dvb driver.
The NEWSTRUCT compile time switch is now obsolete. The required driver is now
the CVS HEAD version dated 2002-11-01 or later.
- Adjusted the INSTALL file to the 1.1.x version.
- Only accepting key presses from the current remote control when learning (thanks to
Oliver Endriss).
- Fixed the EPG scanner, which broke 'Transfer Mode' as soon as it kicked in
(thanks to Oliver Endriss for reporting this one).
- Fixed handling audio tracks in cDvbDevice.
- Updated channels.conf.terr (thanks to Uwe Scheffler).
- Fixed displaying the group separators in the channel display (thanks to Martin
Hammerschmid for pointing out this one).
- The Makefile now includes the file Make.config (if present in the VDR source
directory), which allows the user to overwrite several settings with individual
values (suggested by Andreas Schultz). The VDR distribution archive does not
contain this file in order to not overwrite a user defined file. There is a
Make.config.template which contains the default values of the macros the user
can overwrite.
- Since there have been changes to the 'newplugin' script authors of plugins
may want to newly create their plugins' Makefiles with the new version of this
script, and adapt them to their individual needs (make sure you don't overwrite
your existing plugin directory - make a backup copy first!).
- Fixed reading EPG data via the SVDRP command PUTE (it changed the current
service ID).
- Fixed closing all dup'ed file descriptors in cPipe.
- Implemented a plugin interface for additional audio processing (see PLUGINS.html
under "Dolby Digital").
The functionality of the '-a' command line option has been reactivated.
Since the author doesn't have any Dolby Digital equipment this may or may not
work as expected. There may still be some places where a call to cAudios::Clear()
or cAudios::Mute() is necessary. Those with Dolby Digital equipment should please
take a look at this and maybe send patches.
Replaying Dolby Digital in ways other than through VDR's '-a' option will have to
be implemented as plugins. Those who have written patches for VDR version 1.0.x
should convert their work into the proper plugins for version 1.1.x.
Note to authors of cPlayer derived plugins: please read the modified comments
in device.h regarding the member functions cDevice::Clear(), cDevice::Mute() and
cDevice::PlayAudio(). Derived classes must call these base class member functions
to make sure all registered cAudio objects are properly handled. Also note that
the return type of cDevice::PlayAudio() has been changed to 'void', since this
function always has to accept the entire data block immediately and there is
nothing that could be reasonably done in case an error occurs in one of the
cAudio objects.
- Now checking the driver's DVB_API_VERSION in dvbdevice.h. Since VDR now requires
a driver dated 2002-11-01 or later the MIN_DVB_DRIVER_VERSION_FOR_TIMESHIFT and
DVB_DRIVER_VERSION stuff has been replaced with DO_REC_AND_PLAY_ON_PRIMARY_DEVICE,
which can be used to disable simultaneous recording and replaying on the primary
DVB device in case there are problems with this.
|
|
- Fixed some faulty default parameter initializations (thanks to Robert Schiele).
- Added further satellites to 'sources.conf' (thanks to Reinhard Walter Buchner
and Oliver Endriss).
- Updated Finnish OSD texts (thanks to Jaakko Hyvätti).
- Fixed a small glitch when switching channels (thanks to Dennis Noordsij for
reporting this one).
- Fixed handling multiple 'CaCaps' entries in 'setup.conf'.
- Group separators in 'channels.conf' may now be given like ':@201 My Channels',
where '@201' indicates the number to be given to the next channel. This can be
used to create 'gaps' in the channel numbering (see 'man 5 vdr'). BE CAREFUL
TO UPDATE YOUR 'timers.conf' ACCORDINGLY IF INSERTING THIS NEW FEATURE INTO YOUR
'channels.conf' FILE!
- Timers now internally have a pointer to their channel (this is necessary to
handle gaps in channel numbers, and in preparation for unique channel ids).
- Fixed slow reaction on SVDRP input (thanks to Guido Fiala for reporting this one).
- Added KI.KA to channels.conf.cable (thanks to Robert Schiele).
- Frequency values for cable and terrestrial channels in 'channels.conf' can
now be given either in MHz, kHz or Hz. The actual value given will be multiplied
by 1000 until it is larger than 1000000.
- Fixed skipping unavailable channels when zapping downwards.
- Fixed checking the Ca() status of a cDevice (thanks to Stefan Huelswitt).
- Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device
(thanks to Steffen Barszus and Stefan Huelswitt for reporting this one and
helping to fix it).
- Fixed channel switching in case of an active 'Transfer Mode' on the primary
device ('Transfer Mode' is now launched with priority '-1').
- Fixed a ternary expression in dvbspu.c.
- Fixed handling 'Transfer Mode' on single device systems when recording an
encrypted channel (thanks to Stefan Huelswitt).
- Fixed blocking replaying in case an encrypted channel is being recorded on
the primary device.
- Now the name of the remote control is displayed when learning the keys.
- Fixed learning remote control keys in case there is more than one remote
control (thanks to Oliver Endriss for reporting this one).
- Implemented additional dedicated keys for "Play", "Pause", "Stop", "Record",
"FastFwd", "FastRew", "Channel+" and "Channel-". If your remote control supports
any of these keys you can delete your 'remote.conf' file and restart VDR to
go through the key learning procedure again in order to assign these new keys.
See MANUAL for more information.
Authors of player plugins should update their ProcessKey() functions so that
the new player keys have the same functionality as the "Up", "Down", "Left",
"Right" and "Blue" keys, respectively. Note that the existing functionality
of these keys should by all means be retained, since VDR (and any plugins)
shall be fully usable with just the basic set of keys. These new keys are only
for additional comfort in case the remote control in use supports them.
- Implemented new keys to directly access the VDR main menu functions "Schedule",
"Channels", "Timers", "Recordings", "Setup" and "Commands". If your remote
control provides keys you want to assign these functions to, you can delete
your 'remote.cof' file and restart VDR to go through the key learning procedure
again in order to assign these new keys. See MANUAL for more information.
- The new configuration file 'keymacros.conf' can be used to assign macros to
the color buttons in normal viewing mode, as well as to up to 9 user defined
keys. See MANUAL and man vdr(5) for more information. The default 'keymacros.conf'
implements the functionality of the "color button patch".
- Fixed a crash when learning the keys of several remote controls and pressing
buttons of those that have already been learned (thanks to Oliver Endriss for
reporting this one).
|
|
- Fixed a missing Flush() call in the remote control learning procedure (thanks
to Oliver Endriss).
- Modified channel handling to cover all parameters necessary for DVB-C and DVB-T
(see man vdr(5) for the meaning of the additional parameters stored in the field
previously named 'polarisation'). Thanks to Uwe Scheffler and Andy Carter for testing.
If you have a system with different kinds of DVB cards, like DVB-T and DVB-C,
for instance, there is no more need to distinguish the channels through the
'Ca' parameter in order to assign them to the various DVB cards. This is now
taken care of by the "source" parameter. So a channel marked as "terrestrial",
for example, will only be received on DVB-T cards.
Note that the cChannel class has been moved into a separate file (channels.[ch]),
and that all data members have been made private and are now only accessible
through member functions. You may have to change any plugin code that accesses
cChannel data accordingly.
- The new configuration file 'sources.conf' contains the various signal sources
(satellites, cable and terrestrial) which are used in 'channels.conf' and
'diseqc.conf' (thanks to Reinhard Walter Buchner for adding some satellites to
'sources.conf' and Oliver Endriss and Lauri Tischler for testing and debugging).
- The 'diseqc' parameter in the channel definitions has been redefined to hold the
"source" of the given channel (which can be either a satellite, cable or terrestrial).
For compatibility with channels.conf files from older versions, numeric values in
this parameter will be tolerated, but they have no meaning. If you want to use
DiSEqC you will need to replace these old values with the proper source identifiers
defined in the new configuration file 'sources.conf'. See how this is done in the
'channels.conf' file that comes with the VDR package.
- The new configuration file 'diseqc.conf' can be used to set up the individual
diseqc configuration (see man vdr(5) for a description of the file format).
- The "Edit channel" menu has a new entry "Source:" in which the source of this
channel can be selected (either a satellite, cable or terrestrial). The set of
parameters at the end of this menu will change according to the type of source.
- The "Use DiSEqC" parameter in the "Setup/LNB" menu has been moved to the beginning
of the list and disables the rest of the parameters when set to "yes", since these
are now only meaningful if DiSEqC is _not_ used.
- Removed some unnecessary #includes from eit.c and changed cMenuRecordings::Del()
to cMenuRecordings::Delete() to avoid warnings in gcc-3.2 (thanks to Andreas
Schultz for pointing this out).
- Improved skipping channels that are (currently) not available (thanks to Stefan
Huelswitt).
- Updated channels.conf.terr and channels.conf.cable (thanks to Uwe Scheffler).
- Fixed a bug when pressing the "Blue" button in the main menu without having
displayed it (thanks to Oliver Endriss for reporting this one).
|
|
- Fixed an incomplete initialization of the filter parameters in eit.c (thanks
to Jeremy Hall).
- Fixed the 'newplugin' script for use with the NEWSTRUCT driver (thanks to
Andreas Schultz for reporting this one). If you have already created a plugin
directory and Makefile with 'newplugin', please apply the following patch to it:
-------------------------------------------------------
--- Makefile 2002/06/10 16:24:06 1.4
+++ Makefile 2002/09/17 15:36:36 1.5
@@ -15,7 +15,12 @@
### The directory environment:
+ifdef NEWSTRUCT
+DVBDIR = ../../../../DVB/include
+DEFINES += -DNEWSTRUCT
+else
DVBDIR = ../../../../DVB/ost/include
+endif
VDRDIR = ../../..
VDRINC = $(VDRDIR)/include
LIBDIR = ../../lib
@@ -34,7 +39,7 @@
INCLUDES = -I$(VDRINC) -I$(DVBDIR)
-DEFINES = -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
+DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
-------------------------------------------------------
This is the diff for the 'setup' example that comes with VDR, so your line
numbers may be different.
- Added a missing 'public' keyword in device.h (thanks to Martin Hammerschmid).
- Fixed a race condition when starting 'Transfer Mode'.
- Rearranged the remote control key handling to allow plugins to implement
additional types of remote controls (see PLUGINS.html, section "Remote Control").
The previously used files 'keys.conf' and 'keys-pc.conf' have been replaced
by the file 'remote.conf', which holds the key definitions of all remote controls.
- The LIRC remote control keys are now handled just like the keyboard and RCU keys.
This means that you can use the lircd.conf file as is for your remote control,
without the need of editing it to make the key names the same as used in VDR.
When first starting VDR it will go into the "Learning keys" mode and ask you
to press the various keys. The resulting key assignment will be stored in
the file 'remote.conf'.
Since I have no way of testing the LIRC support, I hope I didn't break it in
the process...
- While learning the remote control keys it is now possible to press the 'Menu'
key to skip the definition of keys that are not available on your particular
RC unit.
- Fixed handling DVD subtitles in the SPU decoder (thanks to Andreas Schultz).
- Avoiding restarts due to 'panic level' when switching channels on the primary
device during EPG scan.
|
|
- Fixed the 'newplugin' script to make it name the target for creating the
distribution package 'dist', as stated in the PLUGINS.html documentation.
If you have already created a plugin source directory and Makefile you may
want to check it and replace the 'package' target with 'dist' if necessary.
- Changed device handling for being able to do simultaneous recording and
replay on the same device (Time Shifting). In order for this to work you need
to use a driver with a firmware version that has this feature implemented.
- cDevice::ProvidesCa() is no longer virtual. The new function
cDevice::ProvidesChannel() is now used to determine whether a device can
receive a given channel, and by default this function returns false. So a
device that is a pure replaying device doesn't need to do anything here.
- Increased the recorder buffer size to 5MB in order to be able to better handle
multiple recordings.
- Implemented cTSBuffer for better handling TS packet buffering in derived
cDevice classes.
- Changed the interface if cDevice::GetTSPacket() to avoid unnecessary copying
of data.
- Removed cDevice::Channel(), since this makes no more sense with devices
receiving multiple channels.
- Switching through channels with the 'Up' and 'Down' keys now skips channels
that are currently not available (for instance because all devices are
recording and these channels are on different transponders).
- Implemented an SPU decoder (thanks to Andreas Schultz).
- Fixed a crash when entering an integer value outside the limits (thanks to
Stefan Huelswitt for reporting this one).
- Added play mode pmAudioOnlyBlack (thanks to Stefan Huelswitt).
|
|
- 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.
|
|
- 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).
|
|
- Added Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten).
- Activated cutting.
- Activated 'Transfer Mode'.
- Moved handling of the Menu key entirely into vdr.c.
- Switched VDR's own player to the new cPlayer/cControl structures.
- Switched handling 'Transfer Mode' to the new cPlayer/cControl structures.
- The following limitations apply to this version:
+ The '-a' option (for Dolby Digital audio) doesn't work yet.
+ Switching between different language tracks doesn't work yet.
|
|
- 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.
|
|
- 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.
|
|
- Begin of the 1.1 development branch. THIS IS NOT A STABLE VERSION!
The current stable version for every day use is still the 1.0 branch.
- First step towards a universal plugin interface. See the file PLUGINS.html
for a detailed description. The man page vdr(1) describes the new options '-L'
and '-P' used to load plugins. This first step implements the complete "outer"
shell for plugins. The "inner" access to VDR data structures will follow.
- The VDR version number is now displayed in the title line of the "Setup" menu.
|
|
- Fixed restoring CICAM setup values for a fourth DVB card (thanks to Klaus Wolf).
- Completed internationalization of OSD texts (thanks to Hannu Savolainen,
Arnold Niessen, Paulo Lopes, Jean-Claude Repetto, Alberto Carraro, Matjaz
Thaler and Truls Slevigen).
- Improved file I/O in case of EINTR, which may occur e.g. with heavy system
load (thanks to Werner Fink).
- Now writing the title of a recording into the 'summary.vdr' file.
- Workaround for displaying still frames with the unpatched LinuxDVB driver
(if anybody ever finds out why the unpatched driver doesn't display VDR's
still frames, please let me know).
- When executing a command from the "Commands" menu, the title of that command
is now immediately shown in the status line (followed by "...") to give the
user some feedback that the command is being executed, which is especially
important if this takes some time.
- Fixed scrolling the "Channels" menu in case the cursor ends up on a group
delimiter (thanks to Bernd Zierath for helping to debug this one).
- Added manual pages vdr(1) and vdr(5) (which made the FORMATS file obsolete).
- New command command line option '-V' to display the VDR version.
- Adjusting column width for channel numbers in case there are more than 999
channels.
- Checking the return value of '...FileRady...' calls in dvbapi.c for better
performance under heavy system load.
- New 'make' target 'install', which copies the manual pages and executables
to their appropriate system locations and creates the /video directory if
it doesn't exist yet.
- Automatic hotkey assignment is now suppressed if the first entry in
commands.conf starts with a digit in the range '1'...'9', followed by a blank.
- Fixed a bug in switching back the replay mode display in time shift mode
(thanks to Achim Lange for reporting this one).
- Fixed a bug in the 'First day' timer parameter for timers that record over
midnight.
- Added units to Setup parameters.
- Changed time entry in the 'Jump' command during replay, so that it is filled
up from right to left.
- Now using statfs() to determine the amount of free disk space, which avoids
the use of an external 'df' command (thanks to Ruben Nunez Francisco).
- Fixed skipping the next hit of a repeating timer (thanks to Rainer Zocholl
for reporting this one).
- Fixed a bug when a timer records over midnight of a day that had a change in
Daylight Saving Time.
- Added Polish language texts (thanks to Michael Rakowski).
- Fixed a bug in parsing group separators in channels.conf (thanks to Henning
Holtschneider for reporting this one).
- Changed the default 'Ok' key when using the PC keyboard from '5' (in the
numeric block) to 'Enter', because the '5' key didn't work on keyboards with
the F-keys on top.
- Fixed a bug in the EPG bugfix mechanism if the extended description is shorter
than 3 characters (thanks to Andreas Schultz).
|
|
- Added scanning for EPG data for another 4 days on channels that support this
(thanks to Oleg Assovski).
- Removed '#define VFAT 1' from recording.c (was a leftover from testing).
- Fixed the "Low disk space!" message (thanks to Sergei Haller).
- Added the TPID to Hessen-3 in 'channels.conf' (thanks to Sergei Haller).
- Fixed a crash when replaying with DEBUG_OSD=1 (thanks to Stefan Huelswitt).
- Implemented the "First day" parameter for repeating timers. See FORMATS for
information about the enhanced 'timers.conf' file format, and MANUAL for
a description of the new item in the "Edit Timer" menu and the enhanced
functionality of the "Blue" button in the "Timers" menu.
- When deleting a recording that is currently still being recorded, the related
timer will now automatically be terminated. If this is a repeating timer, it
will receive a "First day" setting that skips the timer for this day.
- Fixed closing all unused file descriptors when opening a pipe (thanks to
Werner Fink).
- Instant recordings now take the EPG data from the point in time at 5 minutes
from the start time of the recording. In order for this to work the 'active'
parameter of a timer now uses the second bit to indicate that this is an
"instant" recording (see FORMATS for details).
- Fixed the SVDRP GRAB command in case the video device can't be opened (thanks
to Adrian Stabiszewski).
- At startup the data written into 'epg.data' is now read into the EPG data
structures. In order for this to work, the 'E' record has been extended to
(optionally) contain the 'table ID' (see FORMATS for details).
- The new SVDRP command PUTE can be used to put EPG data into the EPG list.
See FORMATS for details about the required data format.
- Taking the German umlauts 'as is' when compiled with VFAT.
- The new Setup parameter RecordDolbyDigital can be used to generally turn off
recording the Dolby Digital audio channels in case you want to save disk space
or don't have the equipment to replay Dolby Digital audio.
- Reading the 'setup.conf' file no longer terminates in case of an error, but
rather attempts to read the rest of the file.
- Removed DVD support from the core VDR source, since the current version from
Andreas Schultz is already much further developed (DVD menu navigation) and
the concept of "additional players" in VDR is going to change in version 1.1.0,
where a new "plugin" interface shall allow the easy implementation of new
players without having to patch the core VDR source. Until then, Andreas has
agreed to provide his DVD support as a completely external patch.
- The contents of the distribution archive now contains the directory name with
the current version number, as in 'vdr-1.0.0pre1/...' in order to avoid
inadvertently overwriting an existing VDR directory with a new version.
- Added a missing error message in SVDRP command LSTC in case the given channel
can't be found.
|
|
- Updated channel settings for 'N24' (thanks to Andreas Gebel).
- Fixed handling hierarchical recordings menu in case of directories starting
with the same sequence of characters.
- Fixed handling timers on the 29th, 30th or 31st of a month in case the next
month has less than 31 days.
- Added a description of the sort order of individual episodes in the
recordings menu to the MANUAL.
- Removed the EPG bugfix for "Title / Subtitle" cleanup. Apparently Pro-7 has
finally stopped this nasty habit.
- Added some EPG bugfix statistics (printed to the log file every time the EPG
data is cleaned up and when VDR is terminated). Maybe somebody in charge of
the EPG data at the listed channels will read this and take the necessary
actions to fix these things...
- Changed the [dei]syslog macros in tools.h to use a variable number of args,
thus making it safe to use them in nested 'if/else' statements.
- Fixed error handling in establishing an SVDRP connection (thanks to Davide
Achilli) for pointing this out).
- The new configuration file 'svdrphosts.conf' is now used to define which
hosts may access the SVDRP port (by default only 'localhost' has access).
See FORMATS for details.
- The special keywords TITLE and EPISODE can now be used in timer file names
(see MANUAL and FORMATS for details).
- The new setup parameter NameInstantRecord can be used to define how an
instant recording will be named (see MANUAL for details).
- When looking for the EPG record of the timer that starts a recording, now
that record is taken which covers the time calculated as
'start + (Setup.MarginStart * 2) + 1)' in order to have a better chance of
hitting the right record in case of an instant recording. Timers that start
further in the future should always be programmed via the "Schedules" menu.
- The special VPIDs '0' and '1' are now used to enable recording radio channels.
Actually '0' should be enough, but '1' must be used with encrypted channels
(driver bug?). Note, though, that since VDR is mainly a *video recorder*, some
features like, e. g., the progress display, may not work as expected with
radio recordings. Thanks to Michael Paar.
- Fixed a problem with the ERR macro defined by ncurses.h (thanks to Artur
Skawina).
|
|
- Fixed setting the OSD size in the 'Confirm' interface call (thanks to
Deti Fliegl).
- Removed the 'read incomplete section...' error message in the EIT processor.
- Fixed channel data for "DW TV" (thanks to Axel Gruber).
- Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan
Schreiber).
- Prepared the OSD functions for multiple overlapping windows.
- Removed the check to see whether the system time is running linearly.
- Improved performance of SVDRP command entry.
- Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to
broadcast the correct timestamps for EPG events between 0:00 and 6:00!
- Fixed failing watchdog timer if program hangs in OSD activities (thanks to
Carsten Koch).
- No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and
REMOTE=KBD (thanks to Lauri Pesonen).
- The "Recordings" menu now displays a hierarchical structure if there are
subdirectories for the recordings. This can be controlled through the
"RecordingDirs" parameter in the "Setup" menu.
See "MANUAL/Replaying a Recording" for details.
- Improved speed of setting the Help button texts.
- Fixed handling file names that contain single quotes (') or dollar signs ($)
in the call to the shutdown command (option '-s') and the recording command
(option '-r').
- Improved error handling in the editing process; the resulting file will be
deleted if an error occured.
- A message is now prompted at the end of the editing process, indicating
whether the process succeeded or failed.
- Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to
Sergei Haller).
- A message is now prompted if free disk space becomes low during recording.
- The editing process now calls AssertFreeDiskSpace() to remove deleted
recordings if the disk becomes full.
- The "Main" menu now displays in its title the used disk space (in percent)
and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB
per minute.
- Activating the "Recordings" menu now displays "scanning recordings..." to
give the user some feedback in case this takes longer.
- Status messages are now displayed centered.
- Removed the 'Tools' subdirectory from the VDR archive. All contributed tools
can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
|
|
- Implemented a lock file to prevent more than one instance of VDR from removing
files from the video directory at the same time.
- The new setup parameter SplitEditedFiles can be used to control whether or
not the result of an editing process shall be written into separate files.
- Fixed handling repeat function when using LIRC (thanks to Matthias Weingart).
- The shutdown program (defined with the '-s' option) now also gets the channel
number and recording title of the timer (see INSTALL).
- New channel data for 'Premiere One', 'Premiere X-Action', 'Fox Kids Türkce'
and 'N24' (thanks to Andreas Share, Ulrich Röder, Uwe Scheffler and Simon
Bauschulte). Note that if you are using the default 'channels.conf' or
'channels.conf.cable' files you may need to check any exiting timers to see
whether they still use the correct channel number.
- Fixed the "EPG bugfix" (sometimes had duplicate information in Subtitle and
Extended Description).
- Fixed checking for valid video device when setting the video mode.
- The external command 'sort' is no longer required. VDR now sorts the list of
recordings itself, making sure that recordings that stem from repeating timers
are sorted chronologically. Sorting is done according to the setting of the
current locale, so you may want to make sure LC_COLLATE is set to the desired
value (see INSTALL).
- Fixed handling 'newline' characters in EPG texts (thanks to Rolf Hakenes for
an improved version of his 'libdtv').
Newline characters are always mapped to a single "blank" in VDR, because they
would otherwise disturb the Title and Subtitle layout in the channel display
(where these are assumed to be single line texts) and would have to be
specially handled in the 'epg.data' file and the LSTE command in SVDRP.
- Mapping ` ("backtick") characters in EPG texts to ' (single quote).
- Fixed timers starting and ending at unexpected times. 'localtime()' was not
thread safe, now using localtime_r().
- Removed the "system time seen..." message.
- Fixed a bug in the replay mode display when pressing the Green or Yellow
button while in trick mode (thanks to Stefan Huelswitt)
- Closing all open file descriptors when calling external programs.
- The menu timeout now also works when pressing the "Back" button during replay
to enter the "Recordings" menu.
- Updated 'channels.conf' for the "Bundesliga" channels of Premiere World
(thanks to Helmut Schächner).
- Fixed reading timers.conf and channels.conf that contain blanks after numeric
values.
- Fixed handling trick modes near the beginning and end of a recording.
- Pressing the "Back" button while replaying a DVD now leads to the DVD menu.
|
|
- Implemented automatic shutdown (see INSTALL and MANUAL for details).
- New SVDRP command NEXT to show the next timer event.
- The new remote control key "Power" can be used to turn the VDR machine
off (this requires the presence of the '-s' option).
- Fixed code for the default "Ok" button on the PC keyboard (was 0x162 on
the "good old" keyboards (with the F-keys at the left side), while it changed
to 0x15E on the newer keyboards).
- When a recording is edited, the summary information (if present) is now
also copied.
- When a recording is running on the primary interface, any attempt to change
the current channel will now lead to a "Channel locked" message.
- The main program loop now first checks whether any timer recordings are
finished, before starting a new timer recording. This is important in case
one timer ends at the same time another timer starts.
- New setup parameter OSDMessageTime to define how long an OSD message shall
be displayed.
- The "File" parameter of a timer can now contain the '~' character to store
the recording in a hierarchical directory structure. The '~' character has
been chosen since the file system's directory delimiter '/' may be part of
a regular programme name (showing the directory hierarchy in the "Recordings"
menu will follow later).
- Repeating timers now create recordings that contain the 'Subtitle' information
from the EPG data in their file name. Typically (on tv stations that care
about their viewers) this contains the episode title of a series. The
subtitle is appended to the timer's file name, separated by a '~' character,
so that it results in all recordings of this timer being collected in a
common subdirectory. You can disable this with the 'UseSubtitle' parameter
in the "Setup" menu.
- The summary information is now taken from the EPG data at the actual time of
recording (no longer at the time the timer is created in the "Schedule" menu).
If a timer already has summary data, that data will be used. If you have
repeating timers in your 'timers.conf', you may want to make sure they do
NOT contain any summary information (that's the last field in the timer
definitions). Use your favourite text editor to delete that information.
That way every recording will store the actual summary data at the time of
the recording.
|
|
- The "channel not sync'ed" log message now also lists the card number.
- Now using the EIT services from 'libdtv' (thanks to Rolf Hakenes), which
provides EPG information for NVOD ("Near Video On Demand") channels.
- Doing some bug fixing on the EPG data (some tv stations apparently have
their own idea on how to fill in the data...). The level up to which EPG
bugs are fixed can be controlled with the EPGBugfixLevel parameter in the
"Setup" menu (see MANUAL for details, and cEventInfo::FixEpgBugs() in eit.c
for the actual implementation).
- Fixed broken recordings after a driver buffer overflow.
- Fixed the chirping sound after Pause/Play of a DVD (thanks to Andreas
Schultz).
|
|
- Fixed displaying colored button texts that are too long.
- Suppressing replay progress display when replaying a DVD.
- Updated channels.conf.cable (thanks to Uwe Scheffler).
- Updated French OSD texts (thanks to Jean-Claude Repetto).
- Improved AC3 decoding when replaying DVDs (thanks to Matjaz Thaler).
- Fixed handling DVB card indexes when using only one card in a multi-card
system.
- Changed the 'Eject DVD' button text to a simple 'Eject' (the German text
was too long...).
- Made the font file generation more stable (thanks to Artur Skawina).
- Changed the default value for the "DiSEqC" setup parameter to "off".
- The new command line option '-E' can be used to define where the EPG data
shall be written to. This is especially useful if VDR runs in a system
that turns off the video disk when it is not used, and therefore needs
to write the EPG file to a ramdisk (or turn off writing it alltogether).
See 'vdr --help' for details.
- Making sure the disk is up and running before starting recording (this
is important for systems that turn off the video disk when it is not used).
- Added the "Jump" function in replay mode (thanks to Stefan Huelswitt).
See the description of the "Red" key in MANUAL under "Replay Control" for
details.
- Fixed displaying editing marks when toggling a mark in "pause" mode.
- If there is no free DVB device to record, the log message will now be given
only once.
- Made I/O more robust by handling EINTR (thanks to Werner Fink).
|
|
- Modified the display of the channel group separators (thanks to Markus Lang
for this suggestion).
- Added support for replaying DVDs (thanks to Andreas Schultz). See INSTALL for
instructions on how to compile VDR with DVD support.
- Fixed replay progress display in case replay is paused while watching an
ongoing recording.
- Ringbuffer uses semaphores to signal empty/full conditions.
- Fixed calculating the timeout value in cFile::FileReady() (thanks to
Wolfgang Henselmann-Weiss).
|
|
- Added Norwegian language texts (thanks to Jørgen Tvedt).
- Increased the usleep value in cDvbOsd::Cmd() to 5000 in order to work on
systems with the KURT/utime-patch (thanks to Guido Fiala).
- Changed the check whether the driver is loaded in runvdr to check for the
'dvb' module (the last one loaded).
- Fixed repeat function with LIRC (thanks to Stefan Huelswitt).
- Increased the upper limit for the symbol rate to 30000 (thanks to Ulrich
Röder).
- Made the position of the channel display configurable (thanks to Stefan
Huelswitt).
- Made the width and height of the OSD configurable (thanks to Stefan Huelswitt).
- DiSEqC support can now be generally enabled/disabled in the Setup menu. This
may be necessary if your multiswitch gets irritated by the default DiSEqC
codes '0' (thanks to Markus Lang).
- Fixed replaying in case there is no index file.
- Fixed jumping to an editing mark when replay has been paused.
- Avoiding unnecessary code execution in the replay progress display (thanks
to Guido Fiala).
- When entering time values the digits that still have to be entered are now
shown as '-' (as in "1-:--").
- When setting an editing mark while the progress display is not active, the
display will now be turned on for a short while to indicate the successful
setting of the mark.
- Updated 'channels.conf' for Premiere World (thanks to Helmut Schächner).
Check your timers if you use this channels.conf file, since the sequence of
several PW channels has been changed.
- Changed the color of "Info" messages to "black on green" and that of the
confirmation messages (like "Delete...") to "black on yellow".
- Fixed display with DEBUG_OSD (it still crashes sometimes, esp. when replaying,
but I can't seem to find what causes this... any ideas anybody?).
- Avoiding audio/video distortions in 'Transfer Mode' by no longer actually
tuning the primary interface (which can't receive this channel, anyway).
Apparently the driver gets irritated when the channel is switched and a
replay session is started immediately after that.
- Increased timeout until reporting "video data stream broken" when recording.
- Explicitly switching back to the previously active channel after ending a
replay session (to have it shown correctly in case it was in 'Transfer Mode').
|
|
- Fixed SVDRP commands LSTC and LSTT to make them return an error message if
no channels or timers are defined.
- Enhanced 'channels.conf.cable' (thanks to Hans-Peter Raschke).
- Fixed switching to another channel via the EPG while a recording is being
replayed.
- Fixed a memory leak in the EIT processor that happened when the system time
was set.
- Removed some redundant code from the cListBase destructor.
- Fixed internationalization of some Main menu texts.
- Updated 'channels.conf' after the recent changes of Premiere World (thanks
to Axel Gruber).
- Redesigned the ring buffer to make it work with two separate threads for
input and output (also prepared for using a remultiplexer).
- Fixed setting system time from transponders.
- Fixed a segfault in the Schedule menu in case there is no EPG information.
- The 'runvdr' script now kills any leftover vdr threads before restarting it.
- Fixed a problem with Daylight Saving Time when displaying the times of
recordings.
- Added Dutch language texts (thanks to Arnold Niessen).
- The new command line option -t can be used to set the controlling terminal
(thanks to Jürgen Sauer). This is especially useful when starting VDR through
an entry in /etc/inittab (see INSTALL).
- Since the CAM module only works if it is installed in the "highest" DVB card,
recordings now search for a free DVB card from lowest to highest index (as
opposed to the previous "highest to lowest" search) in order to not use the
CAM card for FTA recordings unless necessary. This is only important for
systems with three or more DVB cards.
- Added the "statdvb2vdr" tool from Hans-Peter Raschke.
- Fixed a segfault that sometimes happened when killing VDR.
- VDR now returns an exit status of '2' in case of an error at startup, instead
of terminating with 'abort()' (which caused a core dump).
- SVDRP now also works with clients that don't do line buffering (like the
Windows 'telnet').
- Empty lines in config files no longer cause error messages.
- New SVDRP command LSTE to list the EPG data.
- The SVDRP HELP command now prints the topics in several columns.
|
|
- Fixed 'Transfer Mode' in cases where a non-primary interface was switched to
a channel that only the primary interface can receive (which could happen in
the EPG scanner).
- The EPG scanner now starts with the first channel (it used to start with the
second channel).
- Reacitvated setting the PNR.
- Adapted the frame scanning to the new muxing of the driver.
- The new compile time option REMOTE=NONE can be used to compile VDR without
any remote control support (for applications where it shall be controlled
exclusively via SVDRP).
- The new command line option -D can be used to define which DVB interfaces
a certain instance of VDR shall use.
- The "Left" and "Right" keys are now used to page up and down in lists (thanks
to Martin Hammerschmid). Since the "Timers" menu already uses these keys to
(de)activate timers, this functionality is not available there.
- The "Main" and "Commands" menu now support "hotkeys", which means that if the
first non-blank character of a menu item is a digit in the range 1..9, that
item can be selected by pressing the respective numeric key on the remote
control.
- The channel data in 'channels.conf' now contains the teletext PID (thanks to
Dave Chapman). Existing files will be read normally (and the teletext PID set
to 0), but once they are written back (due to some channel editing) the file
will have the new format.
- The EPG scanner now scans each transponder only once per cycle.
- Deleted recordings are now automatically removed from disk after a while (not
only when disk space is being needed for a new recording).
- Fixed repeat function in LIRC remote control.
- Changed the MAXDVBAPI macro in dvbapi.c to 4 in order to directly support the
maximum possible number of DVB cards.
- The 'Ca' parameter in the default 'channels.conf' has been changed from '2'
to '3' because the VDR prototype now has 3 DVB cards (and currently the CAM
module only works if it is inserted into the last DVB card).
- The "Now", "Next" and "Schedule" menus now remember the current channel and
restore the list when switching between them.
- The "Green" button in the "Recordings" menu can now be used to rewind a
recording and play it from the very beginning.
- Fixed handling ':' in timer filenames and '\n' in timer summaries (see FORMATS).
- When removing recordings empty directories are now removed from the video
directory.
- Added the "schnitt" tools from Matthias Schniedermeyer.
- New SVDRP command MESG to display a short message on the OSD.
- The Perl script 'svdrpsend.pl' can be used to send SVDRP commands to VDR.
- SVDRP can now immediately reuse the same port if VDR is restarted.
- SVDRP now has a timeout after which the connection is automatically closed
(default is 300 seconds, can be changed in "Setup").
- The compile time switch VFAT can be used to make VDR avoid the ':' character
in file names (VFAT can't handle them). Do 'make VFAT=1' to enable this.
- Support for DVB-C (thanks to Hans-Peter Raschke and Peter Hofmann).
See the INSTALL file for more information about the use of VDR with cable.
- Fixed an occasional segfault in the EIT processor.
- A value of '0' for the EPGScanTimeout setup parameter now completely turns off
scanning for EPG data on both single and multiple card systems.
- New setup parameter "PrimaryLimit" that allows to prevent timers from using the
primary DVB interface in multi card systems. Default value is 0, which means
that every timer may use the primary interface.
- The 'active' field of a timer will now be explicitly set to '1' if the user
modifies an active timer (see FORMATS for details).
- The new command line option -w can be used to activate a watchdog that makes
VDR exit in case the main program loop does not respond for more than the
given number of seconds. This is mainly useful in combination with the new
'runvdr' script that restarts VDR in case is has exited.
|
|
- VDR now requires driver version 0.8.1 or higher.
- Recordings are now saved in PES mode. Note that you now need to install the
driver *WITHOUT* 'outstream=0'! This is the default when you 'make insmod' in
the DVB/driver directory.
Old recordings (in AV_PES mode) can still be replayed (as long as the driver
still supports replaying AV_PES files). The only limitation with this is that
in fast forward/back mode the picture may be slightly distorted and there may
be sound fragments.
- The EPG data is now dumped into the file /video/epg.data every ten minutes.
Use the Perl script 'epg2html.pl' to convert the raw EPG data into a simple
HTML programme listing.
- Fixed handling of channel switching with the "Blue" button in the "What's on
now/next?" menus.
- Fixed saving the MarginStop setup parameter.
- Fixed missing initialization in cConfig.
- Implemented "On Disk Editing".
- There is no more default 'timers.conf' file.
- Added Italian language texts (thanks to Alberto Carraro).
- Fixed starting a replay session when the program is currently in "transfer
mode".
- Fixed setting/modifying timers via SVDRP with empty summary fields.
- Fixed a problem with recordings that have a single quote character in their
name (this is now mapped to 0x01).
- Changed the value for Diseqc to '0' in the default 'channels.conf'.
- Fixed displaying channels and recording status in the RCU's LED display when
a recording is interrupted due to higher priority.
- Implemented safe writing of config files (first writes into a temporary file
and then renames it).
- In case the video data stream is broken the log message will come only every
5 seconds.
- The current channel is now saved in the 'setup.conf' file when VDR is cancelled,
and will be restored next time it is started (thanks to Deti Fliegl).
- The EIT scanning thread is now locked when switching channels to avoid problems.
- Encrypted channels can now be selected even without knowing the PNR (however, it
is still necessary for the EPG info).
|
|
- Date and time in the title of an event info page are now always right adjusted.
- The 'current channel' is now handled device specific (in case there is more
than one DVB card).
- The 'SetSystemTime' option in the "Setup" menu is now shown as "yes/no".
- Implemented "internationalization" (see 'i18n.c' for information on how to
add new languages). Thanks to Miha Setina for translating the OSD texts to
the Slovenian language.
- Fixed learning keys on the PC keyboard (display oscillated).
- Fixed a timing problem with OSD refresh and SVDRP.
- Avoiding multiple definitions of the same timer in the "Schedule" menu (this
could happen when pressing the "Red" button while editing the timer).
- There can now be a configuration file named 'commands.conf' that defines
commands that can be executed through the "Main" menu's "Commands" option
(see FORMATS for details on how to define these commands).
- Added a 'fixed' font for use with the output of system commands.
- The 'Priority' parameter of the timers is now also used to interrupt a low
priority timer recording if a higher priority timer wants to record.
- A timer recording on a DVB card with a CAM module will now be interrupted
by a timer that needs to use this specific DVB card to record an encrypted
channel, if the timer currently occupying this DVB card doesn't need the
CAM module (and thus can continue recording on a different DVB card).
- The "Yellow" button in the "What's on now/next?" menus now displays the
schedule of the current channel from that menu.
- All DVB cards in a multi-card system now write their EIT information into the
same data structure.
- If there is more than one DVB card in the system, the non-primary cards are
now used to periodically scan through the channels in order to keep the
EPG info up-to-date. Scanning kicks in after 60 seconds of user inactivity
(timeout in order to keep user interactions instantaneously) and each channel
that has the 'pnr' parameter defined in 'channels.conf' is switched to for
20 seconds. If there is only one DVB card in the system, that card will start
scanning after 5 hours (configurable through the "Setup" menu) of user inactivity
and will switch back to the channel it originally displayed at the first sign of
user activity. Any scanning will only occur if that particular card is not
currently recording or replaying.
- Now shifting the 'Subtitle' info into the 'ExtendedDescription' on stations
that don't send the EIT information correctly (like, e.g., 'VOX').
- Implemented a 10 seconds latency when removing files.
- Fixed unwanted reaction on the "Green" and "Yellow" button in the "Event" display.
- Implemented 'Transfer Mode' to display video data from the DVB card that actually
can receive a certain channel on the primary interface. This is currently in
an early state and may still cause some problems, but it appears to work nice
already.
|
|
- The EIT information is now gathered in a separate thread.
- The sytem time can now be synchronized to the time broadcast in the DVB data
stream. This can be enabled in the "Setup" menu by setting "SetSystemTime" to
1. Note that this works only if VDR is running under a user id that has
permisson to set the system time.
- The new item "Schedule" in the "Main" menu opens VDR's EPG (thanks to Robert
Schneider). See the MANUAL file for a detailed description.
- The new setup parameters MarginStart and MarginStop define how long (in
minutes) before the official start time of a broadcast VDR shall begin
recording, and how long after the official end time it shall stop recording.
These are used when a recording is programmed from the "Schedules" menu.
- The delay value in the dvb.c.071.diff patch to the driver has been increased
to '3', because on some systems the OSD was not displayed correctly. If you
are running an already patched version 0.71 driver and encounter problems
with the OSD, please make sure the parameter in the ddelay call is '3', not
'2'.
- Fixed initializing the RCU remote control code (didn't work after switching
on the system).
- Problematic characters in recording names (which can come from timers that
are programmed via the "Schedules" menu) are now replaced by suitable
substitutes.
|
|
- Remote control data is now received in a separate thread, which makes things
a lot smoother.
- Repeat and release of remote control keys is now explicitly distinguished.
- In replay mode the search forward/back and skip functions now have two modes:
Pressing the key shortly and releasing it starts the function, and pressing it
again stops it. Pressing and holding down the key starts the function and
releasing the key stops it.
- The '@' character that marks an "instant recording" can now be turned off
in the "Setup" menu (thanks to Matthias Schniedermeyer).
- Pressing the "Back" button while replaying now stops replaying and brings up
the "Recordings" menu (suggested by Carsten Koch). This can be used to easily
delete a recording after watching it, or to switch to a different recording.
- The "Recordings" menu now places the cursor on the last replayed recording, if
that file still exists.
- The "Blue" button in the "Main" menu can now be used to "Resume" a previously
stopped replay session (suggested by Martin Hammerschmid).
- The low and high LNB frequencies can now be changed in the "Setup" menu.
|
|
- Modified LIRC interface to better handle repeat function.
- Faster OSD by first writing into a bitmap and then sending the entire bitmap
to the DVB driver at once (requires the patch 'dvb.c.071.diff' to be applied
against the version 0.71 DVB driver file 'dvb.c').
- When switching channels the channel is now immediately displayed, and the
current/next information is shown as soon as it becomes available.
- No longer displaying the year in the 'Recordings' menu to saves space for the
title.
- The 'Recordings' menu now displays a '*' to indicate new recordings.
- Added the description of the timers.conf file to the FORMATS file (thanks to
Bastian Guse).
- Displaying as much as possible of the current/next info (dropping characters
that would display only partially).
- In normal viewing mode the '0' key now toggles between the current and the
previous channel.
|
|
- NOTE: If you are using DVB driver version 0.7 you need to load the dvb.o
module with option outstream=0, so your insmod statement should read
'insmod dvb.o outstream=0'. This is currently necessary because 'vdr'
still works with AV_PES data.
- Video files now have the 'group read' bit set.
- Fixed handling errors in 'readstring()'.
- Handling SIGPIPE and re-establishing handler after intercepting a signal.
- The configuration files are now by default read from the video directory.
This can be changed by using the new '-c' option. Make sure you copy your
current '*.conf' files to your video directory ('/video' by default), or
use "-c ." to get the old behaviour of loading the configuration files
from the current directory.
- Waiting for input is now handled by a common function, which improves
response time on user actions. As a consequence the EIT data may sometimes
not be displayed, but this will change later when cEIT runs as a separate
thread.
- The new SVDRP command 'HITK' (thanks to Guido Fiala!) can be used to 'hit'
a remote control key. Establish an SVDRP connection and enter HITK without
a parameter for a list of all valid key names.
- The new SVDRP command 'GRAB' (thanks to Guido Fiala!) can be used to grab
the current frame and save it to a file.
- The new SVDRP commands 'OVL*' can be used to control video overlays (thanks
to Guido Fiala!). This is mainly for use in the 'kvdr' tool (see the 'kvdr'
page at http://www.s.netic.de/gfiala).
- If the name of the video directory used with the '-v' option had trailing
slashes, the recording file names have been damaged. Trailing slashes are
now silently removed.
- Fixed a buffer overflow in EIT parsing.
- Added a security warning regarding SVDRP to the INSTALL file.
- Fixed 'confirm' dialog.
- The daemon mode (option '-d') now no longer works with REMOTE=KBD (there
is no stdin in daemon mode, so KBD makes no sense - plus it sometimes
crashed).
|