summaryrefslogtreecommitdiff
path: root/svdrp.h
AgeCommit message (Collapse)Author
2006-01-08Version 1.3.38vdr-1.3.38Klaus Schmidinger
- 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.
2005-11-27Version 1.3.37vdr-1.3.37Klaus Schmidinger
- Added compiler options "-fPIC -g" to all plugins (thanks to Rolf Ahrenberg). - Fixed initializing the day index when editing the weekday parameter of a repeating timer (thanks to Marco Schlüßler). - No longer removing superfluous hyphens in EPG data - would become too language dependent to handle all kinds of exceptions. - Modified switching to Dolby Digital audio in live mode, if the driver and firmware can handle live DD without the need of a Transfer Mode (thanks to Werner Fink). Live DD mode requires a full featured DVB card and a LinuxDVB driver with firmware version 0x2622 or higher. Older versions will use Transfer Mode just like before. - Implemented handling of the "CA PMT Reply" for CAMs (thanks to Marco Schlüßler for figuring out some obscure length bytes in the CA PMT Reply data of AlphaCrypt CAMs). - Some preparations for being able to record several encrypted channels from the same transponder at the same time (or record and view different encrypted channels), provided the CAM in use can handle this. This is work in progress and isn't actively used, yet. - Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported by Stefan Huelswitt). - Added a copy constructor to cString and fixed its assignment operator (thanks to Holger Brunn). - The new function Skins.QueueMessage() can be called from a background thread to queue a message for display. See VDR/skins.h for details. - The SVDRP command MESG uses the new message queueing facility, so MESG commands may now be executed at any time, and the message will be displayed (no more "pending message").
2005-11-06Version 1.3.36vdr-1.3.36Klaus Schmidinger
- Fixed a NULL pointer access with the cUnbufferedFile when a replay session runs all the way until the end of the recording (thanks to Joachim Wilke). - A menu is no longer automatically closed when a replay ends (reported by Marko Mäkelä). - Removed '\n' from several syslog() calls (reported by Sascha Volkenandt). - Fixed missing '&' in the SetAreas() example in PLUGINS.html (reported by Sascha Volkenandt). - Fixed a memory leak in cString::operator=() (reported by Sascha Volkenandt). - Updated the Dutch OSD texts (thanks to Maarten Wisse). - cReadLine now dynamically allocates its buffer, so that it can handle lines of any length. - Changed cConfig::Load() to use cReadLine instead of a fixed buffer (thanks to Andreas Mair for reporting a problem with extremely long summary fields in timers). - cSVDRP now dynamically allocates its command buffer in order to handle commands of any length. The MAXPARSEBUFFER macro is now obsolete and has been removed. If a plugin has used that macro, it should either define a buffer size of its own, or use cReadLine when reading files. - Fixed a race condition in the SPU decoder (thanks to Marco Schlüßler). - The EPG scan no longer disturbs players that have also set live PIDs (reported by Stefan Huelswitt). - Fixed setting the help key display in the Recordings menu in case of several layers of subdirectories. - Removed EPG bugfix #0, because it removed actually important data.
2005-10-31Version 1.3.35vdr-1.3.35Klaus Schmidinger
- Updated 'sources.conf' (thanks to Philip Prindeville). - Now using daemon() instead of fork() to run VDR in daemon mode (thanks to Enrico Scholz). - Fixed a possible endless loop in a menu with no selectable items if Setup.MenuScrollWrap is true (thanks to Enrico Scholz). - Making sure no item is displayed as "current" if Up, Down, Left or Right is pressed in a menu with no selectable items. - Added '__attribute__' to functions that use printf() like parameters (thanks to Darren Salt). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns). - Added more error messages and line numbers when reading EPG data and info.vdr (thanks to Peter Bieringer). - Updated the Danish OSD texts (thanks to Mogens Elneff). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported by Marco Schlüßler). - Fixed lock handling in CAM communication to avoid problems with multiple CAMs per device or CAMs with more than one smart card. - Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos). - Updated the French OSD texts (thanks to Nicolas Huillard). - Fixed the cFilter example in PLUGINS.html (reported by Patrick Fischer). - The new class cUnbufferedFile is used for the recording files to avoid trashing the file system cache (based on a patch by Ralf Müller).
2005-08-28Version 1.3.31vdr-1.3.31Klaus Schmidinger
- Added missing German OSD texts for 'Audio language'. - The Setup/CICAM menu now only contains the devices that actually have a CI and dynamically detects the number of slots a CI provides. - Implemented cAudioRepacker for better handling of audio PES packets (thanks to Reinhard Nissl). - Modified handling of audio packets for radio channels in remux.c (thanks to Reinhard Nissl). - Updated the Danish OSD texts (thanks to Mogens Elneff). - Fixed the EPG scan, so that it doesn't use the primary device if that is currently in Transfer-Mode from itself (thanks to Marcus Hilbrich for a bug report that lead to this). - Removed the TUNER_LOCK_TIMEOUT in cDevice::AttachReceiver() since it caused more trouble than it fixed. - Fixed detecting short channel names for "Kabel Deutschland", who uses a comma as delimiter (thanks to Marco Schlüßler). - Moved cMenuEditTimer and cMenuEvent to menu.h so that plugins can use it (suggested by Thomas Günther). - The new static function cString::sprintf() can be used to easily create a formatted string. - Plugins can now implement their own SVDRP commands (based on a patch from Hardy Flor). See PLUGINS.html, section "SVDRP commands" for details. The SVDRP commands of a plugin are accessed through the new SVDRP command PLUG. See PLUGINS/src/svdrpdemo for an example of how to use this feature. - The new SVDRP command PLAY can be used to start replaying a recording (thanks to Hardy Flor). - The new SVDRP command EDIT can be used to start the editing process of a recording (based on the CUTR patch by Harald Milz).
2004-01-18Version 1.3.2vdr-1.3.2Klaus Schmidinger
- 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).
2003-04-27Version 1.1.29vdr-1.1.29Klaus Schmidinger
- Fixed detecting broken connection to the LIRC daemon (thanks to Ludwig Nussel). - Now sending CA descriptors to the CAM in the same sequence as they were originally received (thanks to Stefan Huelswitt). - The PCR PID can now be set separately from the video PID. The syntax in the 'channels.conf' file is, for example, ...:164+17:..., where 164 is the video PID and 17 is the PCR PID. The separator is a '+' sign, not a comma or semicolon as with the audio PIDs, because this is not an alternate PID, but rather an additional, necessary PID. In order to use this feature you need a driver version dated 2003-04-27 or higher (setting the PCR PID didn't work in earlier versions). - Fixed deleting the last recording in the "Recordings" menu, which started pausing live video (thanks to Christoph Friederich for reporting this one). - Now setting the "broken link" flag for GOPs at the beginning of a new video sequence, which avoids artefacts when cutting (thanks to Stefan Huelswitt). - Removed the Mute() call from cDvbDevice::StillPicture() (suggested by Andreas Schultz). - Updated 'channels.conf.terr' for Berlin (thanks to Andreas Brachold). - Extended logging info when starting/stopping timers to show the channel number, start/stop time and the file name (suggested by Manuel Hartl). - Added a note regarding non-VDR files in the /videoX directories to INSTALL (suggested by Benjamin Harling). - Skipping keys that come in too fast from LIRC (thanks to Christian Jacobsen). - Avoiding short display of the main menu if a plugin displays its own OSD and is started through a user defined key macro (thanks to Andreas Mair for reporting this one). - Reduced the time to wait for EPG data when starting a recording to 3 seconds. - The new SVDRP command STAT can be used to request information about the disk usage (thanks to Thomas Koch). - Fixed faulty calculation of section length in eit.c (thanks to Teemu Rantanen).
2002-12-01Version 1.1.18vdr-1.1.18Klaus Schmidinger
- 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).
2002-10-27Version 1.1.14vdr-1.1.14Klaus Schmidinger
- 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).
2002-08-25Version 1.1.8vdr-1.1.8Klaus Schmidinger
- Fixed replaying the last few seconds of a recording. - Added some missing #includes to files in libdtv for gcc 3.2 (thanks to Jürgen Zimmermann). - Added cDevice::NewOsd() to allow a derived cDevice class to implement its own OSD capabilities (thanks to Andreas Schultz). - Added cPalette::AllColors() for plugins that need to get the color entries of a cPalette (see osdbase.h). - The new SVDRP command CLRE can be used to clear the entire EPG data (suggested by Matthias Schniedermeyer). - Fixed handling one-shot timers that were already recording and had their start time changed into the future (thanks to Matthias Schniedermeyer for reporting this one).
2002-03-17Version 1.0.0pre4vdr-1.0.0pre4Klaus Schmidinger
- Added 'Ca' code 201 for 'Cryptoworks, GOD-DIGITAL' to 'ca.conf' (thanks to Bernd Schweikert). - Fixed avoiding the primary DVB interface in case Setup.PrimaryLimit is 0. - Fixed handling CICAM settings if the first one of a DVB card was FTA. - Fixed reacting on changes in CICAM settings (needed to restart VDR before). - The "Blue" button in the "Main" menu now works as "Stop" button if a recording is currently being replayed. - New command line option '-m' to mute audio of the primary DVB device at startup (suggested by Mirko Günther). - The new SVDRP command VOLU can be used to control the audio volume (suggested by Mirko Günther). - Fixed resetting 'mute' state when setting the volume to a non-zero value. - Added log messages when deleting recordings in case the disk runs full while recording. - Fixed closing a pipe (used for replaying Dolby Digital audio), which sometimes left 'zombie' processes behind (thanks to Werner Fink for helping to debug this one). - Now starting the Dolby Digital output thread only if the recording actually contains Dolby Digital audio data (thanks to Werner Fink). - Implemented OSD for Volume and Mute (works only if there is no other OSD activity, but this should be no problem for normal use). - Changed the MANUAL description of the "Conditional Access" setup parameters to reflect the actual "CICAM DVBn m" notation in the "Setup" menu. - The new Setup parameter "Use time from transponder" can be used to define which transponder shall be used to set the system time (see MANUAL for details). If you have been using the SetSystemTime option previously, you now MUST select a channel that you trust to have a reliable time base. - Grouped the Setup parameters into several sub-menus, so that each group of parameters fits on a single screen - unless the height of the OSD has been set to a small value (based on code from Markus Lang). - Changed the title of the "Main" menu to "VDR". - Fixed displaying a system message while the replay mode is being shown. - Physically removing a deleted recording if one with the same name shall be deleted again. - The "Left" and "Right" keys are now used to page up and down in text displays (like the EPG descriptions or the results of commands executed from the "Commands" menu). - Fixed high CPU usage in transfer mode. - Replaced 'killproc' with 'killall' in 'runvdr', since apparently 'killproc' is not available by default on some Linux distributions, whereas 'killall' is. Please check if your system provides 'killall' - if it doesn't, please change this back in 'runvdr' and report this (thanks to Achim Lange). - The "Commands" menu now automatically assigns number keys as hotkeys to the commands. If you have preceeded your commands with digits you may want to remove these from your 'commands.conf' file. - The new Setup item "Restart" can be used to force a complete restart of VDR, including reloading the driver. Note that this can only work if VDR and the driver are wrapped into a mechanism that actually performs this action if VDR exits. The 'runvdr' script can be used for this purpose. - Refined texts of the "Setup" menu.
2002-02-24Version 1.0.0pre1vdr-1.0.0pre1Klaus Schmidinger
- 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.
2001-11-04Version 0.98vdr-0.98Klaus Schmidinger
- Completed storing the current audio volume in the setup.conf file (thanks to Andy Grobb). - Fixed closing the progress display with the "Back" key when in trick mode and Setup.ShowReplayMode is enabled (thanks to Stefan Huelswitt). - New SVDRP commands LSTR and DELR to list and delete recordings (thanks to Thomas Heiligenmann). - Fixed a crash when pressing the '2' button while replaying a DVD. - Updated 'channels.conf' for the "Bundesliga" channels of Premiere World (thanks to Mel Schächner). - Changed the tuning code to use FrontendInfo to detect the type of DVB card. - Removed the recursion stuff from cThread (cMutex already does this). - Fixed handling the repeat function in the channel display. - Avoiding multiple EPG entries for the same event (thanks to Rolf Hakenes for some valuable information on how to do this). - A recording on the primary interface can now be stopped to make it continue on an other free DVB card (if one is free at the moment). See MANUAL for details. - Added some missing teletext PIDs (thanks to Norbert Schmidt). - Added PTS to the converted PCM audio when replaying a DVD (thanks to Andreas Schultz). Now the audio and video of a DVD replayed over the DVB card's A/V out should always be in sync. - Fixed handling the "Power" key in case Setup.MinUserInactivity is set to 0 to disable automatic shutdown. - Added a fifth parameter to the 'shutdown' call that indicates the reason for this shutdown request (see INSTALL). - Fixed releasing 'index' memory after recording or playback. - Fixed ejecting a DVD while it is being replayed. - Removed all video overlay stuff from cDvbApi and SVDRP. Guido Fiala's new 'kvdr' version 0.4 now does these things itself. As a consequence of this you will now need to use kvdr 0.4 or later. - The device /dev/video is now opened only if necessary (to GRAB an image), allowing other programs (like 'kvdr', for instance) to use that device.
2001-09-16Version 0.95vdr-0.95Klaus Schmidinger
- Fixed behaviour in case the shutdown didn't take place (there were many "next timer event at..." messages in that case). - Reduced the default value for MinEventTimeout to 30 minutes. - Fixed detecting manual start in shutdown feature. - An error message is now displayed in case the Transfer Mode can't be started because the necessary DVB card is currently recording (or there is no DVB card that can access this channel). - Fixed toggling channels with the '0' key in case the "Ok" button has been pressed to display the current/next information. - Pressing the "Power" key now always initiates the shutdown sequence (after user confirmation in case of a recording timer), event if there is currently a menu or a replay session active. Note the additional remarks in INSTALL regarding the values of the two parameters given to the shutdown program in case of a currently recording timer. - Switching through channel groups with the "Left" and "Right" keys now always starts at the group that contains the current channel. - Implemented "Multi Speed Mode" (thanks to Stefan Huelswitt). - Implemented backtracing to hit the right spot after fast forward/rewind (thanks to Stefan Huelswitt). - Implemented replay mode display (thanks to Stefan Huelswitt, with a few rewrites by kls). - Changed the size of all input buffers used to parse config files or receive SVDRP commands to the same value of 10KB. This allows long strings to be used in the 'summary' field of a timer, for instance. - The pipe to the Dolby Digital replay command (option '-a') now closes all unused file descriptors in the child process to avoid crashing when the OSD is used (thanks to Andreas Vitting). - Switched to the driver's new tuning API (VDR now requires a driver version dated 2001-09-14 or higher). - Changed obsolete macro VIDEO_WINDOW_CHROMAKEY to VID_TYPE_CHROMAKEY (thanks to Guido Fiala). - New version of the "Master-Timer" tool (thanks to Matthias Schniedermeyer). - Better error handling when writing configuration files. - Fixed putting the final editing mark into the edited version's marks file. - Fixed manipulating an editing mark at the very end of a recording. - Fixed starting a new replay immediately after stopping a previous one (had caused a mix between live video and replay). - Three new keys ("Volume+", Volume-" and "Mute") to control the DVB card's audio output volume. - New version of the 'epg2timers' tool (thanks to Carsten Koch).
2001-09-02Version 0.94vdr-0.94Klaus Schmidinger
- 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.
2001-04-01Version 0.72vdr-0.72Klaus Schmidinger
- 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.
2001-02-24Version 0.71vdr-0.71Klaus Schmidinger
- 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.
2000-09-20Version 0.64vdr-0.64Klaus Schmidinger
- 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).
2000-08-06Version 0.61vdr-0.61Klaus Schmidinger
- When scrolling through a list it now moves a full page up or down when the cursor reaches the top or bottom of the menu (thanks to Heino Goldenstein!). - Added missing '#include <sys/stat.h>' to recording.c. - The video directory can now be defined with the command line option -v. - There can now be more than one video directory (in case you have several disks). - Fixed learning key codes for PC keyboard. - New command line option '-l' to set the log level. - Times in timers.conf are now always printed with 4 digits (leading '0'). - Slow forward/back mode (thanks to Guido Fiala!). - The "Up" key in replay mode no longer restarts replay at the very beginning, but rather resumes normal replay mode after a "pause", "forward" or "backward" operation. Use the "Skip -60s" function repeatedly to go back to the beginning of the recording. - Improved reaction on user input in fast/slow forward/back modes. - No more upper limit for the value of 'Pnr'. - Checking if the video card is really a DVB card. - New SVDRP command UPDT to update an existing timer (or add a new one if it doesn't yet exist). - New version of the 'epg2timers' tool (with a modified channel list). - Bugfix in closing window in DEBUG_OSD mode.
2000-07-25Version 0.6vdr-0.6Klaus Schmidinger
- Added support for LIRC remote control (thanks to Carsten Koch!). There are now three different remote control modes: KBD (PC-Keyboard), RCU and LIRC. See the INSTALL file for information on how to enable either of these modes. The default mode is now KBD, not RCU as before (to make it work immediately even if there is no actual remote control). - Fixed small bug in dvbapi.c that was causing some channels (many on hotbird) not to be correctly tuned (thanks to Plamen Ganev!). - Now clearing the replay buffer in search forward/back, which results in faster reaction. - The 'Recordings' menu is now listed alphabetically (thanks to Carsten Koch!). - The new 'epg2timers' tool (thanks to Carsten Koch!) can be used to convert an EPG "merkliste" page (http://www.tvtv.de) to vdr timer entries. - The new 'xtvrc2vdr' tool (thanks to Plamen Ganev!) can be used to convert 'xtvrc' channel files into 'vdr' format. - When more than one timer matches at the same time, the first one in the list with the highest 'Priority' is selected. - The MANUAL section on "Programming the Timer" has been filled in. - The year in the "Recordings" menu as well as in the progress display during replay has been reduced to 2 digits to allow more space for the recording's title. In the internal file structure the year is still stored with 4 digits, so there will be no problem at the next turn of the century ;-) - Channel names and timer filenames can now contain blanks. To avoid problems with file names that contain blanks, all blanks in recording file names are converted to underscores. - The polarization can now be given in uppercase or lowercase characters in channels.conf. - Fixed buffer initialization to work with DVB driver version 0.6. - Implemented the "Simple Video Disk Recorder Protocol" (SVDRP) to control the VDR over a network connection. - Implemented command line option handling. - The program can now run in full background mode by using the --daemon option. - Added a "summary" field to the timers (thanks to Carsten Koch!). This field can contain a descriptive text of the programme and will be displayed when the "Blue" key is pressed on a recording that was created by this timer. If the text contains the special character '|', a newline will be inserted at that place. When pressing "Ok" on a timer that contains a summary field, the summary will be displayed. To edit such a timer the "Red" key must be pressed. Timers without a summary still go into Edit mode when pressing "Ok". The summary field can only be filled in directly by editing the 'timers.conf' file with a text editor, or by defining/modifying the timer via the SVDRP interface.