mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			3199 lines
		
	
	
		
			180 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3199 lines
		
	
	
		
			180 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Video Disk Recorder Revision History
 | ||
| ------------------------------------
 | ||
| 
 | ||
| 2000-02-19: Version 0.01
 | ||
| 
 | ||
| - Initial revision.
 | ||
| 
 | ||
| 2000-03-11: Version 0.02
 | ||
| 
 | ||
| - Fixed compilation with only DEBUG_REMOTE=1.
 | ||
| - Menus now use colors.
 | ||
| - Support for "Red", "Green", "Yellow", "Blue" buttons.
 | ||
| - Channels and Timers can now be added, deleted and moved.
 | ||
| - Basic record/play file handling support (no actual record/playback yet).
 | ||
| 
 | ||
| 2000-04-15: Version 0.03
 | ||
| 
 | ||
| - Actual record/replay now works.
 | ||
| - Dropped the idea of different "recording qualities" (a 36GB harddisk is
 | ||
|   able to store some 18 hours in full quality, so we don't really need that).
 | ||
| - Termination signals are now caught and the program cleans up before exiting.
 | ||
| - Support for CICAM.
 | ||
| 
 | ||
| 2000-04-24: Version 0.04
 | ||
| 
 | ||
| - Changed name from 'osm' to 'vdr' to avoid mixups with the 'oms' program that
 | ||
|   appears to be in use with DVD replay.
 | ||
| - Implemented a channel display in the top menu line.
 | ||
| - Implemented replay progress display (press "Ok" when replaying to bring it up).
 | ||
| - Implemented direct channel selecting by pressing the numeric keys.
 | ||
| - Added several 'const' keywords to please stricter compilers.
 | ||
| - The repeat function for the remote control no longer adapts dynamically
 | ||
|   to the timing of the RCU (this sometimes caused the repeat function to
 | ||
|   kick in too early).
 | ||
| - Channel selection is now blocked when recording or replaying.
 | ||
| - Improved process handling.
 | ||
| 
 | ||
| 2000-05-27: Version 0.05
 | ||
| 
 | ||
| - Support for more than one DVB card.
 | ||
| - Simultaneous record and replay (with two DVB cards).
 | ||
| - Instant recordings no longer get the name "instant". They now get the name
 | ||
|   of the channel, with a prepended '@' character.
 | ||
| - Timers that are not given an explicit Name now use the channel name with
 | ||
|   a prepended '@' character.
 | ||
| - If an instant recording is currently active, the "Main" menu now contains
 | ||
|   an option to stop that recording.
 | ||
| - Timers are now only processed when the Menu is not active. So after editing
 | ||
|   a timer the effect will take place only after the menu has been closed.
 | ||
|   In order to avoid missing a timer event by inadvertently leaving the menu
 | ||
|   open, the menu will be closed automatically after about two minutes of
 | ||
|   inactivity.
 | ||
| - If a recording is currently being replayed, the "Main" menu now contains an
 | ||
|   option to stop replaying.
 | ||
| - Displaying the recording DVB interface status in the decimal points of the
 | ||
|   RCU display.
 | ||
| - Reduced the number of remote control keys. Modified the key assignments for
 | ||
|   the PC keyboard to better resemble the "up-down-left-right-ok" layout on
 | ||
|   menu controlling remote control units.
 | ||
| 
 | ||
| 2000-07-25: Version 0.6
 | ||
| 
 | ||
| - 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" button 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.
 | ||
| 
 | ||
| 2000-08-06: Version 0.61
 | ||
| 
 | ||
| - 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-09-03: Version 0.62
 | ||
| 
 | ||
| - The Makefile now defines DVBDIR to easily point to where the DVB driver
 | ||
|   source is located.
 | ||
| - When switching channels the current/next information is now displayed if
 | ||
|   available (thanks to Robert Schneider). Since there is now more information
 | ||
|   to read when switching channels, the timeout for displaying it has been
 | ||
|   increased from 2 to 5 seconds (remember that this info can always be recalled
 | ||
|   by pressing the "Ok" button).
 | ||
|   For this feature to work it is necessary that the 'Pnr' parameter in the
 | ||
|   channel setup ('channels.conf') is set to the proper value. This has been
 | ||
|   done for some of the channels in the default 'channels.conf'. Some other
 | ||
|   parameters in the default 'channels.conf' have also been updated, so please
 | ||
|   make sure your timers still use the correct channels!
 | ||
| 
 | ||
| 2000-09-10: Version 0.63
 | ||
| 
 | ||
| - The new "Setup" menu allows the user to configure several parameters to his/her
 | ||
|   personal taste (see MANUAL for details).
 | ||
| - Workaround for a driver timing problem in cDvbApi::Cmd(), which sometimes caused
 | ||
|   the OSD to no longer be displayed (thanks to Niels de Carpentier).
 | ||
| - Added the '-m486' option to the compiler call.
 | ||
| - If a channel name contains a colon (':') it is now replaced with a '|' in
 | ||
|   'channels.conf'.
 | ||
| - Not everybody appears to like the "page scrolling" mechanism introduced by
 | ||
|   Heino Goldenstein in version 0.61, so this is now configurable via the "Setup"
 | ||
|   menu.
 | ||
| - The new 'dvbrc2vdr' tool (thanks to Plamen Ganev!) can be used to convert
 | ||
|   'dvbrc' channel files into 'vdr' format.
 | ||
| - Channels can now be "grouped" (thanks to Plamen Ganev!). See MANUAL for details.
 | ||
|   There is currently no mechanism to define and maintain "Channel groups" via
 | ||
|   the menu, so you'll have to insert "Channel group" control lines into your
 | ||
|   'channels.conf' file manually (for example with a text editor).
 | ||
| - Started a new file named FORMATS with a description of the various file
 | ||
|   formats used by VDR.
 | ||
| - The "Primary DVB interface" can now be chosen via the "Setup" menu.
 | ||
| - Display of the "current/next" information when switching channels can now
 | ||
|   be disabled via the "Setup" menu.
 | ||
| - The "current/next" display now only shows those lines that actually contain
 | ||
|   information.
 | ||
| - When directly selecting a channel by entering the channel number, the digits
 | ||
|   entered so far together with the name of that channel are displayed on the
 | ||
|   OSD (suggested by Martin Hammerschmid).
 | ||
| 
 | ||
| 2000-09-20: Version 0.64
 | ||
| 
 | ||
| - 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-10-03: Version 0.65
 | ||
| 
 | ||
| - 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 save 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.
 | ||
| 
 | ||
| 2000-10-08: Version 0.66
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2000-11-01: Version 0.67
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2000-11-19: Version 0.68
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2001-01-18: Version 0.70
 | ||
| 
 | ||
| - 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 canceled,
 | ||
|   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).
 | ||
| 
 | ||
| 2001-02-24: Version 0.71
 | ||
| 
 | ||
| - 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).
 | ||
| - Reactivated 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.
 | ||
| 
 | ||
| 2001-04-01: Version 0.72
 | ||
| 
 | ||
| - 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-06-02: Version 0.80
 | ||
| 
 | ||
| - VDR now requires driver version 0.9.0 or higher.
 | ||
| - Switched to the "new API" (thanks to Dave Chapman for his great support in
 | ||
|   this task).
 | ||
| - New setup parameter "LnbSLOF" that defines the switching frequency of the LNB.
 | ||
| - Fixed a bug in the EPG scanner with more than one DVB card.
 | ||
| - Fixed checking for free disk space, so that it works with NFS mounted drives.
 | ||
| - Files are now created with mode 644.
 | ||
| - Fixed checking the exit status in the 'runvdr' script.
 | ||
| - Activated loading the driver in 'runvdr'. Please read the comments in 'runvdr'
 | ||
|   for details.
 | ||
| - The new "emergency exit" feature automatically triggers a restart of VDR (if
 | ||
|   used with 'runvdr', otherwise it simply exists) if
 | ||
|   * tuning the channel for a recording fails
 | ||
|   * no useful data is received within the first 1MB of a recording
 | ||
|   * no data is received within a recording for more than 5 seconds
 | ||
|   This should make sure that a recording is successfully restarted after any
 | ||
|   problems.
 | ||
| - Processing the EIT data is now disabled during replay and 'Transfer Mode' in
 | ||
|   order to avoid video and audio glitches (there appears to be a bandwidth
 | ||
|   problem somewhere in the driver/firmware/hardware).
 | ||
| - Due to the reduced amount of OSD memory provided by the driver the number of
 | ||
|   lines in the OSD had to be reduced by 2. By rearranging some of the display
 | ||
|   items the amount of visible information remained the same as before, though.
 | ||
|   If your DVB card has even less memory (which would result in only the
 | ||
|   channel switching display and the replay progress display being visible, but
 | ||
|   no "Main" menu), try reducing the constant 'MenuLines' in dvbapi.h (currently
 | ||
|   '13') even further.
 | ||
| - There are two new setup parameters to define the "Default Priority" and
 | ||
|   "Default Lifetime" when creating a new timer event.
 | ||
| - The meaning of the "Lifetime" parameter has been modified: a value of '99'
 | ||
|   now means that the recording will live "forever", and a value of '0' means
 | ||
|   that the recording has no guaranteed lifetime and will be deleted whenever
 | ||
|   a new recording with higher priority needs disk space.
 | ||
| - Updated version of Matthias Schniedermeyer's 'schnitt' tools.
 | ||
| - New 'master-timer' tool (thanks to Matthias Schniedermeyer).
 | ||
| 
 | ||
| 2001-06-12: Version 0.81
 | ||
| 
 | ||
| - Fixed handling the case where the driver reports EAGAIN during recording,
 | ||
|   but no data comes within 5 seconds.
 | ||
| - Fixed EPG scanning on single DVB card systems.
 | ||
| - There can now be two audio PIDs per channel, which can be toggled via the
 | ||
|   "Green" button in the "Main" menu. The "Edit Channel" menu therefore now
 | ||
|   has two audio PID fields (Apid1 and Apid2). By default, Apid2 is 0, which
 | ||
|   means there is no alternate audio track.
 | ||
| - Fixed replaying in case the driver reports EAGAIN.
 | ||
| - Now 'runvdr' checks if the driver is already loaded (thanks to Henning
 | ||
|   Holtschneider).
 | ||
| - Fixed removing recordings with Lifetime = 99.
 | ||
| - Improved channel switching.
 | ||
| 
 | ||
| 2001-06-16: Version 0.82
 | ||
| 
 | ||
| - Increased timeout until reporting "broken video data stream" when recording.
 | ||
| - Increased amount of non-useful data received by cRemux before assuming the
 | ||
|   recording will fail.
 | ||
| - If there are two audio PIDs defined for a channel, both audio tracks will
 | ||
|   now be recorded and can be selectively replayed later. See the FORMATS file
 | ||
|   for details on how these different audio tracks are stored in the recorded
 | ||
|   files. In order for this to work properly you need to use a driver version
 | ||
|   dated 2001-06-16 or later, where the default PES filter buffer size has been
 | ||
|   reduced. This will create packets for the second audio track that are small
 | ||
|   enough to multiplex smoothly with the video data.
 | ||
| - Fixed a bug in the editing mechanism (didn't work with recordings that
 | ||
|   consist of more than one data file).
 | ||
| - The compile time switch VFAT has been fixed to recognize the ':' character
 | ||
|   in recording names, too.
 | ||
| - Setting all PIDs to 0x1FFF before switching channel.
 | ||
| - New setup parameter "VideoFormat" to define the aspect ratio of the tv set
 | ||
|   in use (4:3 or 16:9).
 | ||
| 
 | ||
| 2001-06-26: Version 0.83
 | ||
| 
 | ||
| - Avoiding "Device or resource busy" error message when setting PIDs.
 | ||
| - Added Portugese language texts (thanks to Paulo Lopes).
 | ||
| - Recording and replaying Dolby Digital (AC3) sound.
 | ||
| - No longer getting stuck when a channel doesn't sync while switching
 | ||
|   with the 'Up' and 'Down' keys.
 | ||
| 
 | ||
| 2001-07-22: Version 0.84
 | ||
| 
 | ||
| - Fixed video packet scanning to make it recognize the whole range of
 | ||
|   allowed video packet ids.
 | ||
| - Added an additional "emergency exit" in case channel switching doesn't
 | ||
|   work several times in a row (when will the driver finally become stable
 | ||
|   enough to allow rock solid channel switching??).
 | ||
| - No longer sending a Diseqc command if the Diseqc value for a given channel
 | ||
|   is '0'. Previously this caused problems with some multi-switches (thanks to
 | ||
|   Markus Lang and Ulrich R<>der).
 | ||
| - When switching channels by entering the channel number via the numeric keys
 | ||
|   on the remote control, the channel number displayed is now followed by the
 | ||
|   '-' character to indicate that additional digits can be entered.
 | ||
| - Increased the timeout for numeric channel switching from 500ms to 1s.
 | ||
| - Fixed handling the "Green" button in the "Schedules" menu for channels that
 | ||
|   have a second audio PID.
 | ||
| - Fixed high system load when displaying a still picture in replay.
 | ||
| - Fixed a hanging SVDRP connection if the client dies without issuing QUIT.
 | ||
| - Increased the frame buffer size to 192KB.
 | ||
| - Removed a superfluous VIDEO_FREEZE call in the replay buffer.
 | ||
| - Added French language texts (thanks to Jean-Claude Repetto).
 | ||
| - Modified OSD to use 2bpp windows (4 colors) in order to work with less
 | ||
|   memory, allow a larger OSD window and be faster. The group separators in the
 | ||
|   "Channels" menu had to be given a different color.
 | ||
| - Moved the channel display to the bottom of the screen.
 | ||
| - Displaying the frame counter in the replay progress display only when editing
 | ||
|   a mark.
 | ||
| - Fixed handling characters above 0xEF in SVDRP.
 | ||
| - Fixed a possible crash in parsing incorrect lines in 'channels.conf'.
 | ||
| - New channel settings for Premiere World (Dolby Digital PIDs not yet
 | ||
|   available).
 | ||
| - Increased the buffer for key names received from LIRC (thanks to Andre
 | ||
|   Valentin).
 | ||
| - Fixed handling a channel group separator at the very beginning of the
 | ||
|   'channels.conf' file.
 | ||
| 
 | ||
| 2001-07-29: Version 0.85
 | ||
| 
 | ||
| - 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 Mel Sch<63>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').
 | ||
| 
 | ||
| 2001-08-06: Version 0.90
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2001-08-12: Version 0.91
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2001-08-18: Version 0.92
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2001-08-26: Version 0.93
 | ||
| 
 | ||
| - The menus and the channel display now show the current date and time.
 | ||
| - The new Setup parameter MaxVideoFileSize can be used to customize the
 | ||
|   maximum size of the recorded video files.
 | ||
| - Fixed a bug in handling repeating timers that record over midnight (the
 | ||
|   calculation of matching timers has been completely rewritten).
 | ||
| - Timers that are currently recording are now marked with '#' in the "Timers"
 | ||
|   menu.
 | ||
| - Timers are now sorted in the "Timers" menu, showing the sequence in which
 | ||
|   they will be recording. This can be disabled in the "Setup" menu. Note
 | ||
|   that the "Mark" button doesn't work if timers are displayed sorted.
 | ||
| 
 | ||
| 2001-09-02: Version 0.94
 | ||
| 
 | ||
| - 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-09-16: Version 0.95
 | ||
| 
 | ||
| - 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-23: Version 0.96
 | ||
| 
 | ||
| - Made VDR compile with libdvdread-0.9.1 (thanks to Andreas Schultz).
 | ||
|   Note that you now _need_ version 0.9.1 of libdvdread to compile VDR with
 | ||
|   DVD support!
 | ||
| - Several fixes to the replay mode display (thanks to Stefan Huelswitt):
 | ||
|   no more replay mode display when pressing the "Green" or "Yellow" button
 | ||
|   (Skip +/-60s); fixed timeout when pressing '0' to set an editing mark while
 | ||
|   the progress display is not shown; mode display is shown after progress
 | ||
|   display is closed; pressing "Ok" while the mode display is on brings up
 | ||
|   the progress display; no more unnecessary display of "normal play mode".
 | ||
| - Supplying the new frontend parameter 'Inversion' (currently it is always
 | ||
|   set to INVERSION_AUTO, which should work with all channels on Astra).
 | ||
| - Removing unnecessary double quotes from EPG Subtitle in EPGBugfixLevel >=1.
 | ||
| - EPG info is now updated if the contents changes but the ID remains the same.
 | ||
| - Fixed handling SVDRP commands whith more than one blank between the command
 | ||
|   word and the options.
 | ||
| - The current volume setting is now saved to setup.conf and restored at the
 | ||
|   next program start.
 | ||
| - New command line option '-r' to define a command that gets called before and
 | ||
|   after each recording (see INSTALL for details).
 | ||
| - Implemented a check to see whether the system time is running linearly.
 | ||
| - Writing the current time (as seen by VDR) into the log file when starting
 | ||
|   a timer recording (this may help debugging cases where timers don't start
 | ||
|   at the expected time).
 | ||
| - Made the volume, mute and power keys work when a menu is active, too (thanks
 | ||
|   to Matthias Weingart).
 | ||
| 
 | ||
| 2001-10-21: Version 0.97
 | ||
| 
 | ||
| - 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 Mel Sch<63>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.
 | ||
| 
 | ||
| 2001-11-04: Version 0.98
 | ||
| 
 | ||
| - 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<63>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-11-25: Version 0.99pre1
 | ||
| 
 | ||
| - Fixed several channel definitions in 'channels.conf' (thanks to Thilo
 | ||
|   Wunderlich).
 | ||
| - Added MPEG audio support for DVD (thanks to Andreas Schultz).
 | ||
| - Implemented DVB-T support (thanks to Dave Chapman).
 | ||
|   This currently works only for UK channels.
 | ||
| - Removed the range limits for the Frequency and Srate parameters of channel
 | ||
|   definitions.
 | ||
| - Changed the maximum value for PIDs in channels.conf from 0xFFFE to 0x1FFF.
 | ||
| - Fixed DVD audio sync problems (thanks to Andreas Schultz).
 | ||
| - Fixed external AC3 replay for DVDs (thanks to Andreas Schultz).
 | ||
| 
 | ||
| 2002-01-27: Version 0.99pre2
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-01-29: Version 0.99pre3
 | ||
| 
 | ||
| - Fixed handling improper buffer lengths in the EIT parser (thanks to Deti
 | ||
|   Fliegl).
 | ||
| 
 | ||
| 2002-01-30: Version 0.99pre4
 | ||
| 
 | ||
| - Fixed handling improperly formatted EIT data (thanks to Rolf Hakenes).
 | ||
| 
 | ||
| 2002-02-03: Version 0.99pre5
 | ||
| 
 | ||
| - 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 out this one).
 | ||
| - 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).
 | ||
| 
 | ||
| 2002-02-10: Version 0.99
 | ||
| 
 | ||
| - Fixed a bug in moving timers or channels to the last position in the list
 | ||
|   (thanks to Matthias Schniedermeyer for helping to debug this one).
 | ||
| - Changed the estimated data rate for calculating the remaining disk capacity
 | ||
|   to 25.75 MB/min.
 | ||
| - Only reporting the 'EPG bugfix statistics' if there really were any fixes.
 | ||
| - Added Finnish language texts (thanks to Hannu Savolainen).
 | ||
| - Reverted to the previous way of searching for the EPG record of the current
 | ||
|   recording in case of a repeating timer (i.e. taking the one that is in the
 | ||
|   middle between start and end time).
 | ||
| - Added a typedef for 'in_addr_t' to make it work with glibc < 2.2 (thanks to
 | ||
|   J<>rgen Schmidt).
 | ||
| - When the last entry in a "Recordings" menu page is deleted, that page is now
 | ||
|   automatically closed (suggested by Uwe Freese).
 | ||
| - Changed the default name for instant recordings to "TITLE EPISODE" (avoiding
 | ||
|   the '-').
 | ||
| - If Setup.ShowInfoOnChSwitch is set to "no", the box for the EPG display is no
 | ||
|   longer shown (thanks to Andy Grobb).
 | ||
| - If compiled with VFAT=1, characters that can't be handled by a VFAT system are
 | ||
|   now encoded to '#XX'.
 | ||
| - When the user presses the "Power" button and there is a timer about to start
 | ||
|   recording within Setup.MinEventTimeout minutes, there is now a confirmation
 | ||
|   prompt telling the user that there is an upcoming timer event.
 | ||
| - If a recording has no episode title, the trailing '~' is no longer shown in
 | ||
|   the progress display.
 | ||
| 
 | ||
| 2002-02-24: Version 1.0.0pre1
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-02-25: Version 1.0.0pre2
 | ||
| 
 | ||
| - Fixed a crash in case there is no 'epg.data' at program start (thanks to
 | ||
|   Andreas Schultz).
 | ||
| 
 | ||
| 2002-03-03: Version 1.0.0pre3
 | ||
| 
 | ||
| - Fixed parsing 'E' records in epg2html.pl.
 | ||
| - Fixed a deadlock when switching channels via Schedule/Now|Next/Switch (reported
 | ||
|   by Martin Hammerschmid).
 | ||
| - Changed the meaning of the 'Ca' parameter in 'channels.conf'. Each channel can
 | ||
|   now define which decryption method it needs in order to be accessed. The new
 | ||
|   configuration file 'ca.conf' contains the defined values, and the default
 | ||
|   'channels.conf' has been modifed to contain the new values for 'Premiere World'
 | ||
|   and 'ORF'. If you use the default 'channels.conf' and have the conditional
 | ||
|   access hardware to receive encrypted channels, please make sure you copy the
 | ||
|   file 'ca.conf' into your /video directory (or wherever your configuration files
 | ||
|   are located) and go into the "Setup" menu and set the CICAM values according
 | ||
|   to your hardware setup. Currently there are two possible CICAM entries per
 | ||
|   DVB card, so any card can implement up to two different conditional access
 | ||
|   modes (besides the default "Free To Air" mode, which is always assumed to be
 | ||
|   available on any DVB card).
 | ||
| - Updated French language texts (thanks to Jean-Claude Repetto).
 | ||
| 
 | ||
| 2002-03-17: Version 1.0.0pre4
 | ||
| 
 | ||
| - 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-04-01: Version 1.0.0pre5
 | ||
| 
 | ||
| - 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 '...FileReady...' 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 (thanks to Mirko D<>lle for reporting this one).
 | ||
| - 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).
 | ||
| 
 | ||
| 2002-04-07: Version 1.0.0
 | ||
| 
 | ||
| - Fixed a problem with wrong EPG data in the Schedules menu (thanks to Tobias
 | ||
|   Kerner, problem was initially reported by Michel Moster, but somehow I had
 | ||
|   misplaced his message...).
 | ||
| - Added Spanish language texts (thanks to Ruben Nunez Francisco).
 | ||
| - Fixed resetting the "First day" timer parameter once the timer actually starts
 | ||
|   recording.
 | ||
| - Fixed the still picture workaround in case the progress display is active
 | ||
|   (thanks to Gerald Raaf).
 | ||
| - Fixed a problem with accessing the epg.data file before it is fully written
 | ||
|   (thanks to Thilo Wunderlich for reporting this one).
 | ||
| - Now the EPG scan skips channels that have their 'Ca' parameter explicitly set
 | ||
|   to an other DVB card (suggested by Sergei Haller).
 | ||
| - Fixed a possible hangup when reading a broken epg.data file (thanks to Henning
 | ||
|   Holtschneider for pointing out this one).
 | ||
| - Fixed a bug in the editing process in case a previously edited file with the
 | ||
|   same name was manually deleted on a system with more than one video directory
 | ||
|   (thanks to Dirk Wiebel for reporting this one).
 | ||
| 
 | ||
| 2002-04-21: Version 1.0.1
 | ||
| 
 | ||
| - Added some DVB-T channels for Berlin (Germany) to channels.conf.terr (thanks to
 | ||
|   Andreas Roedl).
 | ||
| - Implemented enhanced string editing with upper-/lowercase, insert/overwrite
 | ||
|   and delete (thanks to Sergei Haller).
 | ||
| - Fixed color palette handling on "big endian" systems (thanks to Jean Martin
 | ||
|   for pointing out this one).
 | ||
| - Updated the "Blue Movie" channels to the new "Premiere Erotik" (thanks to
 | ||
|   Thilo Wunderlich). NOTE: this adds a new channel to 'channels.conf', so that
 | ||
|   any timers referencing a channel with a number higher than 102 should be
 | ||
|   checked and adapted if necessary (this only applies if you are using the default
 | ||
|   'channels.conf').
 | ||
| - Improved thread locking in the ring buffer to avoid possible race conditions
 | ||
|   under heavy load (thanks to Werner Fink).
 | ||
| - Fixed a crash when selecting the "Jump" function directly after setting an
 | ||
|   editing mark (thanks to Steffen Koch for reporting and Stefan Huelswitt for
 | ||
|   fixing this one).
 | ||
| - Fixed some missing ',' in i18n.c (thanks to Matthias Hilbig).
 | ||
| - Fixed a possible endless loop in shifting recordings between DVB cards (thanks
 | ||
|   to Stefan Huelswitt for reporting this one).
 | ||
| - Updated the Premiere World Formula 1 channels in 'channels.conf' (thanks to Mel
 | ||
|   Sch<63>chner).
 | ||
| - No longer setting PIDs 0x1FFF, which apparently fixes problems with CAMs and
 | ||
|   AC3 sound only working the first time (thanks to Stefan Huelswitt).
 | ||
| - Now encoding '.' at the end of a directory name in case of VFAT=1, since Windows
 | ||
|   can't handle these (thanks to Simon Dean for reporting this one).
 | ||
| 
 | ||
| 2002-05-05: Version 1.0.2
 | ||
| 
 | ||
| - Now taking an active video cutting process into account when doing shutdown or
 | ||
|   housekeeping (thanks to Stefan Huelswitt).
 | ||
| - The default duration of an instant recording has been increased to 3 hours and
 | ||
|   is now configurable in the "Setup/Recording" menu.
 | ||
| - Added Greek language texts (thanks to Dimitrios Dimitrakos).
 | ||
| - Fixed the unit of the "SVDRP timeout" setup parameter (thanks to Marcus Kuba
 | ||
|   for reporting this one).
 | ||
| - Fixed a crash on systems with disks that have a block size larger than 1MB
 | ||
|   (thanks to Ulrich Petri for helping to debug this one).
 | ||
| - Updated 'channels.conf' for the new PW settings (thanks to Andreas Share,
 | ||
|   Carsten Koch, Gerald Raaf and Mel Sch<63>chner). Note that all channels with numbers
 | ||
|   over 50 may have moved, so you should carefully check any timers you have set!
 | ||
| - Updated 'channels.conf.cable' for the new PW settings (thanks to Oliver Lorei
 | ||
|   Stephan Schreiber and Uwe Scheffler). Note that all channels may have moved, so
 | ||
|   you should carefully check any timers you have set!
 | ||
|   For future updates of this file somebody with digital cable should take the role
 | ||
|   of the "maintainer" and send me updated versions based on the file that comes
 | ||
|   with the most recent version of VDR. I will then simply replace the entire file
 | ||
|   'channels.conf.cable' whenever a new version is sent to me.
 | ||
| - Fixed skipping forward in time shift mode near the end of the recording (thanks
 | ||
|   to Andreas B<>ttger for reporting this one).
 | ||
| 
 | ||
| 2002-05-09: Version 1.1.0
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-05-11: Version 1.1.1
 | ||
| 
 | ||
| - 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 (thanks to
 | ||
|   Onno Kreuzinger for reporting this one).
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-05-13: Version 1.1.2
 | ||
| 
 | ||
| - Changed the cPlugin::Start() function to return a boolean value that indicates
 | ||
|   if the plugin will not be able to perform its task (suggested by Stefan Huelswitt).
 | ||
| - Added the cPlugin::Housekeeping() function (suggested by Stefan Huelswitt).
 | ||
| - Updated channels.conf.cable (thanks to Uwe Scheffler).
 | ||
| - Added 'insert' capabilities to cList (suggested by Stefan Huelswitt).
 | ||
| - Changed the 'package' target in the plugin's Makefile to produce a package that
 | ||
|   expands to a directory with just the plugin name and version number (suggested
 | ||
|   by Stefan Huelswitt).
 | ||
| - Made the config directory available to plugins (suggested by Stefan Huelswitt).
 | ||
|   See PLUGINS.html, section "Configuration files" for details.
 | ||
| - Improved the [eid]syslog() macros, so that the LOG_... macros don't need to be
 | ||
|   given any more.
 | ||
| 
 | ||
| 2002-05-26: Version 1.0.3
 | ||
| 
 | ||
| - Updated 'Premiere Sport 2' in channels.conf (thanks to Rudi Hofer).
 | ||
| - 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 Swedish language texts (thanks to Tomas Prybil).
 | ||
| 
 | ||
| 2002-06-10: Version 1.0.4
 | ||
| 
 | ||
| - Added Romanian language texts (thanks to Paul Lacatus).
 | ||
| - Removed compiler option '-m486' to make it work on non-Intel platforms (thanks
 | ||
|   to Alastair McKinstry for pointing this out).
 | ||
| 
 | ||
| 2002-06-16: Version 1.1.3
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-06-23: Version 1.1.4
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-07-21: Version 1.1.5
 | ||
| 
 | ||
| - Added direct access to the index data of cPalette (needed for displaying SPUs,
 | ||
|   thanks to Andreas Schultz).
 | ||
| - The status monitor function cStatus::Replaying() now gets a 'cControl *' argument instead
 | ||
|   of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
 | ||
|   cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
 | ||
|   allow access to the player's status.
 | ||
| - Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
 | ||
| - Changed the symantics of the Name parameter in cStatus::Recording() and
 | ||
|   cStatus::Replaying(). It is no longer the full directory name of the recording,
 | ||
|   but rather just the basic name. This has been changed to allow players that can't
 | ||
|   provide a name to simply use a string that describes the player type (like, e.g.,
 | ||
|   "DVD").
 | ||
| - Fixed a hangup when switching to the next file during replay.
 | ||
| - Fixed a possible race condition in the cDvbPlayer (thanks to Andreas Schultz
 | ||
|   for pointing out this one).
 | ||
| - Disabled channels on Transponder 12070 in 'channels.conf', which apparently no longer transmits.
 | ||
| 
 | ||
| 2002-08-04: Version 1.1.6
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2002-08-16: Version 1.1.7
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-08-25: Version 1.1.8
 | ||
| 
 | ||
| - 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-09-08: Version 1.1.9
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2002-09-15: Version 1.1.10
 | ||
| 
 | ||
| - Removed a superfluous error message from cLockFile::Unlock() (reported by
 | ||
|   Helmut Auer).
 | ||
| - Fixed starting a recording of the current channel with only one DVB card
 | ||
|   (thanks to Stefan Huelswitt for his help).
 | ||
| - A previous 'Transfer Mode' is now automatically re-started after a replay
 | ||
|   stops.
 | ||
| - Only calling cStatus::MsgChannelSwitch() if a channel is actually going to
 | ||
|   be switched or has actually been switched successfully (thanks to Stefan
 | ||
|   Huelswitt).
 | ||
| - The EPG now drops events from "other" streams that have a duration of 86400
 | ||
|   seconds or more (this avoids bogus entries like "PROGRAMMES ALLEMANDS").
 | ||
| - Fixed opening /dev/video in cDvbDevice::GrabImage() in case of NEWSTRUCT
 | ||
|   driver (thanks to Andreas Schultz).
 | ||
| - Added a missing StripAudioPackets() to cDvbPlayer::Action() (thanks to
 | ||
|   Stefan Huelswitt).
 | ||
| - Added an EPG bugfix for the latest VOX EPG data format.
 | ||
| 
 | ||
| 2002-09-29: Version 1.1.11
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-10-06: Version 1.1.12
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2002-10-13: Version 1.1.13
 | ||
| 
 | ||
| - Added cDevice::DeviceNumber() to get the number of a device, not counting any
 | ||
|   gaps that might be in the index count.
 | ||
| - Fixed fetching the current/next information to handle cases where the duration
 | ||
|   of an event is set wrongly and would last beyond the start time of the next
 | ||
|   event.
 | ||
| - Adapted type names to the new HEAD version of the driver (which the previous
 | ||
|   NEWSTRUCT branch has been merged into). Note that to use this driver version
 | ||
|   you still need to add NEWSTRUCT=1 to the make call when building VDR. You
 | ||
|   need a HEAD version of the LinuxDVB driver dated 2002-10-11 or later to compile
 | ||
|   VDR with NEWSTRUCT=1.
 | ||
| - Fixed radio channels in channels.conf.cable (thanks to Robert Schiele and Uwe
 | ||
|   Scheffler).
 | ||
| - Fixed switching the video format in the Setup/DVB menu (thanks to Uwe Scheffler
 | ||
|   for reporting this one).
 | ||
| - Reactivated full handling of second audio PID (even in 'Transfer Mode').
 | ||
| - Fixed a crash when closing down with remote control plugins (thanks to Oliver
 | ||
|   Endriss helping to debug this one).
 | ||
| - Commands in the file 'commands.conf' can now have a '?' at the end of their
 | ||
|   title, which will result in a confirmation prompt before executing the
 | ||
|   command.
 | ||
| - Changed a few leftover 'new char[...]' to MALLOC(char, ...).
 | ||
| - If a command executed from the "Commands" menu doesn't return any output, the
 | ||
|   OSD will now be closed automatically.
 | ||
| - The SVDRP command PUTE now triggers an immediate write of the 'epg.data' file
 | ||
|   (suggested by Gerhard Steiner).
 | ||
| - The new configuration file 'reccmds.conf' can be used to define commands that
 | ||
|   shall be executed from the "Recordings" menu; see MANUAL and 'man vdr(5)' for
 | ||
|   details (suggested by Gerhard Steiner).
 | ||
| 
 | ||
| 2002-10-27: Version 1.1.14
 | ||
| 
 | ||
| - 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<79>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-11-03: Version 1.1.15
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-11-10: Version 1.1.16
 | ||
| 
 | ||
| - Fixed saving the polarization parameter of channels that have a number in the
 | ||
|   'source' parameter (thanks to Peter Seyringer for reporting this one).
 | ||
| - Updated 'channels.conf.terr' (thanks to Andy Carter).
 | ||
| - Updated 'channels.conf.cable' (thanks to Achim Lange).
 | ||
| - First step towards a "unique channel ID". The channel ID is a human readable
 | ||
|   string, made up from several parameters of the channel's definition in the file
 | ||
|   'channels.conf' (see man vdr(5) for details).
 | ||
|   In order for the "unique channel ID" to work, all channel definitions now must
 | ||
|   be unique with respect to the combination of their Source, Frequency and SID
 | ||
|   parameters. You may have to fix your 'channels.conf' manually if there are error
 | ||
|   messages in the log file when loading it. BE SURE TO MAKE A BACKUP COPY OF YOUR
 | ||
|   'channels.conf' AND 'timers.conf' FILE BEFORE SWITCHING TO THIS VERSION, AND CHECK
 | ||
|   VERY CAREFULLY WHETHER YOUR TIMERS ARE STILL SET TO THE RIGHT CHANNELS!
 | ||
|   When reading an existing 'timers.conf', the channels will be identified as before
 | ||
|   by their numbers. As soon as this file is written back, the channel numbers will
 | ||
|   be replaced by the channel IDs. After that it is possible to manually edit the
 | ||
|   'channels.conf' file and rearrange the channels without breaking the timers.
 | ||
|   Note that you can still define new timers manually by using the channel number.
 | ||
|   VDR will correctly identify the 'channel' parameter in a timer definition and
 | ||
|   use it as a channel number or a channel ID, respectively. Also, the SVDRP commands
 | ||
|   that return timer definitions will list them with channel numbers in order to
 | ||
|   stay compatible with existing applications.
 | ||
|   The channel ID is also used in the 'epg.data' file to allow EPG information from
 | ||
|   different sources to be stored, which would previously have been mixed up in case
 | ||
|   they were using the same 'service ID'. Note that the contents of an existing
 | ||
|   'epg.data' file from a previous version will be silently ignored, since it doesn't
 | ||
|   contain the new channel IDs. When inserting EPG data into VDR via SVDRP you now also
 | ||
|   need to use the channel IDs.
 | ||
|   Currently the EPG data received from the DVB data stream only uses the 'Source'
 | ||
|   and 'Service ID' part of the channel ID. This makes it work for channels with
 | ||
|   the same service IDs on different sources (like satellites, cable or terrestrial).
 | ||
|   However, it doesn't work yet if the service IDs are not unique within a specific
 | ||
|   source. This will be fixed later.
 | ||
| - Added missing SID parameters to 'channels.conf'. Some channels have been removed
 | ||
|   since they are apparently no longer broadcasted.
 | ||
| - Removed dropping EPG events from "other" streams that have a duration of 86400
 | ||
|   seconds or more (was introduced in version 1.1.10). This has become obsolete by
 | ||
|   the modification in version 1.1.13, which fixed fetching the current/next information
 | ||
|   to handle cases where the duration of an event is set wrongly and would last beyond
 | ||
|   the start time of the next event. Besides, the change in 1.1.10 broke handling EPG
 | ||
|   data for NVOD channels.
 | ||
| - Fixed a compiler warning regarding cMenuChannels::Del() and MenuTimers::Del() hiding
 | ||
|   the base class virtual functions.
 | ||
| 
 | ||
| 2002-11-24: Version 1.1.17
 | ||
| 
 | ||
| - Added new entries to 'ca.conf'.
 | ||
| - Fixed closing unused PID handles (thanks to Stefan Schluenss for reporting this
 | ||
|   one).
 | ||
| - Added more examples to 'diseqc.conf' (thanks to Oliver Endriss).
 | ||
| - Fixed disabling multiple recordings on a single DVB card (comment out the definition
 | ||
|   of the macros DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and DO_MULTIPLE_RECORDINGS in
 | ||
|   dvbdevice.c).
 | ||
| - Plugins can now have their very own OSD setup in the object they return from
 | ||
|   a call to cPlugin::MainMenuAction(). In order to implement this, the return type
 | ||
|   of cPlugin::MainMenuAction() had to be changed from (cOsdMenu *) to (cOsdObject *).
 | ||
|   So in case you are compiling an existing plugin with this version of VDR and you
 | ||
|   get an error message, simply change cOsdMenu to cOsdObject in the plugin's source
 | ||
|   for the MainMenuAction() function.
 | ||
|   Plugin authors who have so far (ab)used the cControl mechanism to implement their
 | ||
|   own raw OSD should take a look at the new demo plugin 'osddemo'. It implements
 | ||
|   a very primitive game that shows how a plugin can have its own raw OSD. Especially
 | ||
|   look into cLineGame and see how it implements the Show() function. See also
 | ||
|   the chapter on "User interaction" in PLUGINS.html.
 | ||
| - Added three new fields to the lines in 'channels.conf': NID, TID and RID. NID and
 | ||
|   TID are the Network and Transport Stream IDs, respectively. RID is an additional ID
 | ||
|   that can be used to tell apart channels that would otherwise be indistinguishable.
 | ||
|   This is typically the case with radio channels, which may have the same NID, TID
 | ||
|   and SID, but different "radio IDs". This new field is therefore called RID ("radio
 | ||
|   ID"). Currently NID and TID are not yet used by VDR and should always be 0. The
 | ||
|   RID is actually used when building the "unique channel ID", so if you have channels
 | ||
|   in your 'channels.conf' file that cause error messages when loading, you can set
 | ||
|   the RIDs of these channels to different values.
 | ||
|   When reading an old 'channels.conf' these new fields will be automatically
 | ||
|   initialized to 0 and once the file is written back to disk they will be appended
 | ||
|   to the channel definitions.
 | ||
|   Thanks to R<>gis Bossut for pointing out that with some providers the channels can
 | ||
|   only be distinguished through the RID.
 | ||
| - The "unique channel ID" now contains an optional 5th part (the RID). See man vdr(5).
 | ||
| - Updated 'channels.conf.cable' and made some channels unique using the new RID
 | ||
|   (thanks to Andreas Kool for pointing out the problems).
 | ||
| - Made some channels unique in 'channels.conf.terr' using the new RID.
 | ||
| - Extended the '-l' option to allow logging to LOG_LOCALn (n=0..7) by writing, for
 | ||
|   instance, '-l 3.7' (suggested by J<>rgen Schmidt).
 | ||
| - Now deleting stale lock files if they have a time stamp that is outside the window
 | ||
|   'now +/- LOCKFILESTALETIME'. This improves things in cases where the system time
 | ||
|   makes far jumps, so that a lock file might end up with a time stamp that lies
 | ||
|   in the distant future (thanks to Oliver Endriss).
 | ||
| 
 | ||
| 2002-12-01: Version 1.1.18
 | ||
| 
 | ||
| - 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-12-08: Version 1.1.19
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2002-12-15: Version 1.1.20
 | ||
| 
 | ||
| - Now checking if there is a connection to the keyboard (thanks to Jaakko Hyv<79>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<79>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.
 | ||
| 
 | ||
| 2003-01-10: Version 1.1.21
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2003-01-26: Version 1.1.22
 | ||
| 
 | ||
| - Added 'Hrvatska radiotelevizija' and 'RTV Slovenija' to ca.conf (thanks to
 | ||
|   Paul Gohn).
 | ||
| - Implemented actual user input for CAM enquiry menus.
 | ||
| - Since disk file systems apparently don't honor the O_NONBLOCK flag to read from
 | ||
|   a file in non-blocking mode the cDvbPlayer now uses a non blocking file reader
 | ||
|   class to make sure replay remains smooth even under heavy system load.
 | ||
| - Increased the maximum possible packet size in remux.c to avoid corrupted streams
 | ||
|   with broadcasters that send extremely large PES packets (thanks to Teemu Rantanen).
 | ||
| - Added TS error checking to remux.c (thanks to Teemu Rantanen).
 | ||
| - Modified cRingBufferLinear to avoid excessive memmove() calls in 'Transfer Mode'
 | ||
|   and during recordings, which dramatically reduces CPU load. Thanks to Teemu
 | ||
|   Rantanen for pinpointing the problem with the excessive memmove() calls.
 | ||
| - Updated 'channels.conf' (thanks to Achim Lange).
 | ||
| - Added/improved Swedish language texts (thanks to Jan Ekholm).
 | ||
| - Fixed the description of the "Scroll pages" OSD setup parameter ('yes' and 'no'
 | ||
|   were mixed up).
 | ||
| - Fixed handling the LOG_LOCALn parameters in the -l option (thanks to Dimitrios
 | ||
|   Dimitrakos).
 | ||
| - Changed EIT processing to always read a full section.
 | ||
| - Fixed handling user defined CFLAGS in libdtv/libvdr/Makefile (thanks to Clemens
 | ||
|   Kirchgatterer and Robert Schiele).
 | ||
| - Fixed skipping unavailable channels in the EPG scanner.
 | ||
| 
 | ||
| 2003-02-02: Version 1.1.23
 | ||
| 
 | ||
| - Fixed a new/delete malloc/free mismatch in ringbuffer.c (thanks to Stefan
 | ||
|   Huelswitt for reporting this one).
 | ||
| - Improved CAM handling.
 | ||
| 
 | ||
| 2003-02-09: Version 1.1.24
 | ||
| 
 | ||
| - Improved CAM handling (thanks to Reinhard Walter Buchner for a great deal of help
 | ||
|   in debugging this). It is now possible to insert the CAM in any of the two slots,
 | ||
|   to insert and remove it while VDR is running and even to have two CAMs inserted.
 | ||
| - Turning SI filtering off and on when switching channels.
 | ||
| - Timers are now processed even if an OSD menu is open (except for menus that
 | ||
|   explicitly handle timers).
 | ||
| 
 | ||
| 2003-02-16: Version 1.1.25
 | ||
| 
 | ||
| - Fixed high CPU load during replay (thanks to Marcel Wiesweg for pointing out this
 | ||
|   one).
 | ||
| - Fixed margin handling in cRingBufferLinear.
 | ||
| - Now polling the output device in 'Transfer Mode' and retrying to put packets
 | ||
|   into the ring buffer.
 | ||
| - Resetting the CAM slot in case communication breaks down.
 | ||
| - Improved keyboard detection (thanks to Werner Fink).
 | ||
| - Updated 'channels.conf.terr' (thanks to Andy Carter).
 | ||
| - Fixed broken support for raw OSDs of plugins (thanks to Marcel Wiesweg for
 | ||
|   reporting this one).
 | ||
| - Broken CAM connections are now restored automatically.
 | ||
| 
 | ||
| 2003-03-19: Version 1.1.26
 | ||
| 
 | ||
| - Removed signal handling and usleep(5000) from cDvbOsd::Cmd() (apparently this
 | ||
|   is no longer necessary with DVB driver 1.0.0pre2 or later).
 | ||
| - If the primary device (as defined in setup.conf) doesn't have an MPEG decoder
 | ||
|   (and thus can't be used as a primary device) VDR now scans all devices at
 | ||
|   startup and uses the first one (if any) that actually has an MPEG decoder.
 | ||
|   That way this will also work automatically if the primary device is implemented
 | ||
|   by a plugin.
 | ||
| - Fixed a possible deadlock when using the "Blue" button in the "Schedules" menu
 | ||
|   to switch to an other channel (thanks to Torsten Herz).
 | ||
| - Fixed the EPG bugfix code number for the MAX_USEFUL_SUBTITLE_LENGTH fix (thanks to
 | ||
|   Torsten Herz for reporting this one).
 | ||
| - Modified the EPG scanner to avoid CPU load peaks (thanks to Steffen Becker for
 | ||
|   reporting this one).
 | ||
| - Fixed support for Viaccess CAMs (thanks to Axel Gruber for helping to debug this).
 | ||
| 
 | ||
| 2003-04-13: Version 1.1.27
 | ||
| 
 | ||
| - The CAM is now accessed only if the current channel actually has a non-zero Ca
 | ||
|   value, and CAM access is completely suppressed during replay, which avoids
 | ||
|   problems in case the CAM is attached to the primary DVB device.
 | ||
| - The "Left" and "Right" buttons now set the cursor to the first or last list item
 | ||
|   even if the list consist only of a single page, like, for instance, the Main menu
 | ||
|   (thanks to Oliver Endriss).
 | ||
| - Made the log message "OSD window width must be a multiple of 4..." a debug message
 | ||
|   instead of an error message, so it can be avoided by using a log level less than 3.
 | ||
| - Updated Greek language texts (thanks to Dimitrios Dimitrakos).
 | ||
| - Fixed faulty behaviour of the "Mute" key in case the channel display is visible
 | ||
|   (thanks to Florian Bartels for reporting this one and Sascha Volkenandt for
 | ||
|   helping to fix it).
 | ||
| - Modified LOF handling to allow for C-band reception (thanks to Malcolm Caldwell).
 | ||
| - Added some missing cAudio handling calls (thanks to Werner Fink).
 | ||
| - Replaced the 'for' loops in StripAudioPackets() with memset() calls (thanks to
 | ||
|   Werner Fink).
 | ||
| - Further increased the timeout until an index file is considerd no longer to be
 | ||
|   written.
 | ||
| - Fixed a crash in case the index file can't be accessed any more during replay
 | ||
|   (thanks to Stefan Huelswitt for reporting this one).
 | ||
| - Fixed displaying messages in the status line in case they exceed the OSD width
 | ||
|   (thanks to Gerhard Steiner for reporting this one).
 | ||
| - Avoiding high CPU load in case the connection to LIRC gets lost (thanks to
 | ||
|   Ludwig Nussel).
 | ||
| - Fixed handling repeat function with LIRC (thanks to Ludwig Nussel).
 | ||
| - Fixed handling min/max borders when entering integer values (thanks to Andy
 | ||
|   Grobb for reporting this one).
 | ||
| - Implemented a "resume ID" which allows several users to each have their own
 | ||
|   resume.vdr files (thanks to Martin Hammerschmid). This parameter can be set in
 | ||
|   the "Setup/Replay" menu (see MANUAL for details).
 | ||
| - Now using 'libdtv' version 0.0.5 (thanks to Rolf Hakenes for the new version
 | ||
|   and Stefan Huelswitt for adapting VDR to it).
 | ||
| - If no device with an MPEG decoder can be found at startup, the first device
 | ||
|   is now used as primary device (just to have some device).
 | ||
| - Adjusted some Premiere channels in 'channels.conf' (thanks to Thomas Koch).
 | ||
| - Updated 'channels.conf.cable' (thanks to Stefan Hu<48>feldt).
 | ||
| - The 'epg.data' file is now read after all plugins have been started (thanks
 | ||
|   to Sascha Volkenandt).
 | ||
| - The LIRC remote control no longer tries to learn keys if it can't connect to
 | ||
|   the LIRC daemon (thanks to Ludwig Nussel for reporting this one). The same
 | ||
|   applies to the RCU remote control in case of errors during startup.
 | ||
| - Fixed handling of Ca parameters with values <= MAXDEVICES, which don't indicate
 | ||
|   an actual encrypted channel (thanks to Stefan Huelswitt for reporting this one).
 | ||
| 
 | ||
| 2003-04-21: Version 1.1.28
 | ||
| 
 | ||
| - Using masks in EIT filtering to reduce the number of filters (thanks to Andreas
 | ||
|   Schultz).
 | ||
| - Fixed handling Ca descriptors (thanks to Stefan Huelswitt).
 | ||
| - Now only those Ca descriptors are sent to a CAM that are actually understood
 | ||
|   by that CAM.
 | ||
| - Re-enabled CAM communication during replay and on non-Ca channels. This requires
 | ||
|   a DVB driver with firmware version 2613 or later.
 | ||
| - It is now possible to do simultaneous recording and replay with a single DVB
 | ||
|   card, even with encrypted channels. This requires the use of the Link Layer
 | ||
|   firmware, version 2613 or higher; the -icam firmware is still limited to live
 | ||
|   encrypted channels only. Finally we have time shift for encrypted channels on
 | ||
|   single card systems!
 | ||
| - Enhanced detection of pending user I/O from CAMs to avoid sluggish reaction
 | ||
|   to remote control keypresses.
 | ||
| - Implemented "pause live video". You can now press "Menu/Yellow" or "Pause" on
 | ||
|   your remote control while watching live video to start an instant recording
 | ||
|   of the current programme and immediately start replaying that recording.
 | ||
| 
 | ||
| 2003-04-27: Version 1.1.29
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2003-05-04: Version 1.1.30
 | ||
| 
 | ||
| - Fixed minimum lifespan of deleted recordings (thanks to Jaakko Hyv<79>tti).
 | ||
| - Updated French OSD texts (thanks to Olivier Jacques).
 | ||
| - Fixed paging through lists with repeated Left/Right keys.
 | ||
| - Fixed setting the PCR-PID in case it is equal to one of the other PIDs (thanks
 | ||
|   to Oliver Endriss for reporting this one).
 | ||
| - Fixed double call to MainMenuAction() of a plugin if invoked via a hotkey (thanks
 | ||
|   to Kai Moeller for reporting this one).
 | ||
| - Fixed handling dedicated keys.
 | ||
| - Now turning off live PIDs when replaying. This avoids short spikes from other
 | ||
|   channels when switching between Transfer Mode channels, and also lets an ongoing
 | ||
|   replay continue even if a recording is started on the primary device.
 | ||
| - The RCU channel display no longer changes when a recording on a different
 | ||
|   channel starts on the primary device.
 | ||
| - Restoring the current channel in case a recording has switched the transponder.
 | ||
|   If all devices are busy and none of them can provide the current channel, the
 | ||
|   message "Channel not available!" will be displayed.
 | ||
| - Removed the (no longer necessary) 'panic' stuff from cThread.
 | ||
| - Added cStatus::OsdItem() to provide the entire list of menu items to a plugin
 | ||
|   (thanks to Carsten Siebholz).
 | ||
| - The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer
 | ||
|   available when replaying.
 | ||
| 
 | ||
| 2003-05-11: Version 1.1.31
 | ||
| 
 | ||
| - Introduced the new function cPlugin::Initialize(), in order to be able to separate
 | ||
|   the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
 | ||
|   (suggested by Andreas Schultz). Plugin authors should please read the section
 | ||
|   about "Getting started" in PLUGINS.html and adapt their code if applicable.
 | ||
| - Implemented the CableDeliverySystemDescriptor and TerrestrialDeliverySystemDescriptor
 | ||
|   in libdtv (thanks to Sven Grothklags and Andreas Schultz).
 | ||
| - Fixed keeping live video active in case the primary device doesn't have an MPEG
 | ||
|   decoder (thanks to Wolfgang Goeller for reporting this one).
 | ||
| - Implemented cDevice::ActualDevice(), which returns the actual receiving device in
 | ||
|   case of 'Transfer Mode', or the primary device otherwise. This may be useful for
 | ||
|   plugins that want to attach a cReceiver to the device where the current live video
 | ||
|   is actually coming from.
 | ||
| - Added VDRVERSNUM to config.h, which can be used by the preprocessor to check the
 | ||
|   actual VDR version (suggested by Stefan Huelswitt).
 | ||
| - Removed the WaitForPut/WaitForGet stuff from cRingBuffer, since it appears to
 | ||
|   no longer be necessary due to the implementation of cNonBlockingFileReader in
 | ||
|   dvbplayer.c. Also, the long timeout in WaitForPut caused problems with cReceivers
 | ||
|   that use a ring buffer and didn't immediately return from their Receive() function
 | ||
|   if the buffer runs full (thanks to Sascha Volkenandt for reporting this one).
 | ||
| - Fixed handling EPG data where the "extended event descriptor" comes before the
 | ||
|   "short event" or a "time shifted event" (thanks to Jonan Santiago).
 | ||
| - Disabled the "Received stuffing section in EIT" log message.
 | ||
| - Updated 'channels.conf.terr' for Berlin (thanks to Juri Haberland).
 | ||
| - Avoiding short display of the "Main" menu when pressing the "Recordings" button
 | ||
|   or the "Back" button during replay.
 | ||
| - Further increased the timeout until an index file is considerd no longer to be
 | ||
|   written.
 | ||
| - Implemented separate PausePriority and PauseLifetime parameters for the recordings
 | ||
|   created when pausing live video (suggested by Alfred Zastrow).
 | ||
| - Changed C++ style comments in libdtv into C style to avoid warnings in gcc 3.x
 | ||
|   (thanks to Andreas Schultz).
 | ||
| 
 | ||
| 2003-05-18: Version 1.1.32
 | ||
| 
 | ||
| - Removed a faulty parameter initialization in menu.c (thanks to Lauri Tischler for
 | ||
|   reporting this one).
 | ||
| - Re-implemented the WaitForPut/WaitForGet stuff in cRingBuffer, since some plugins
 | ||
|   actually need this. By default the buffer does not wait; if a plugin needs the
 | ||
|   waiting functionality it can call the new SetTimeouts() function.
 | ||
| - Moved the call to cPlugin::Start() further up in vdr.c, to make sure it gets
 | ||
|   called before trying to learn the keys (problem reported by Oliver Endriss).
 | ||
| - No longer starting the editing process if no marks have been set (thanks to
 | ||
|   Matthias Raus for reporting this one).
 | ||
| - Added Catalanian language texts (thanks to Marc Rovira Vall and Ramon Roca).
 | ||
|   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 16
 | ||
|   different OSD languages, so please make sure you have 16 versions for each of
 | ||
|   your texts.
 | ||
| - Moved the detection of a broken video data stream from the cDevice into the
 | ||
|   cRecorder to avoid problems with cReceivers that want to receive from PIDs
 | ||
|   that are currently not transmitting (thanks to Marcel Wiesweg for reporting
 | ||
|   this one).
 | ||
| - Fixed setting the locking pid after a timed wait (thanks to Andreas Schultz).
 | ||
| - Avoiding spurious section filter settings after a channel switch.
 | ||
| - Updated 'channels.conf.cable' (thanks to Stefan Hu<48>feldt).
 | ||
| - Fixed reading 'epg.data' for channels with non-zero RID (thanks to Oliver
 | ||
|   Endriss for reporting this one).
 | ||
| - Fixed EPG bugfix statistics to avoid log entires for undefined channels (thanks
 | ||
|   to Lars Bl<42>ser for reporting this one).
 | ||
| - No longer waiting inside cIndexFile::CatchUp() to avoid shortly blocking replay
 | ||
|   at the end of a recording.
 | ||
| 
 | ||
| 2003-05-25: Version 1.1.33
 | ||
| 
 | ||
| - Modified handling of audio packets in cDvbPlayer for better sync with external
 | ||
|   AC3 replay (thanks to Werner Fink).
 | ||
| - Fixed a memory leak in cNonBlockingFileReader (thanks to Stefan Huelswitt).
 | ||
| - Completed the French OSD texts (thanks to Gregoire Favre).
 | ||
| - Completed the Finnish OSD texts (thanks to Niko Tarnanen and Rolf Ahrenberg).
 | ||
| - Fixed I/O handling in case an explicit controlling terminal is given (thanks
 | ||
|   to Oliver Endriss).
 | ||
| - Fixed resume file handling in case the resume.vdr file can't be written
 | ||
|   (thanks to Gerhard Steiner).
 | ||
| - Fixed cutting a recording if there is only a single editing mark (thanks to
 | ||
|   Ralf Klueber for reporting this one).
 | ||
| - Fixed volume display in case a plugin has its own OSD open (thanks to Marcel
 | ||
|   Wiesweg).
 | ||
| - Fixed channel switching in the EPG scanner on single device systems.
 | ||
| - Completed the Swedish OSD texts (thanks to Tomas Prybil).
 | ||
| - Now switching to the channel used by the most recently started timer in case
 | ||
|   the original current channel becomes unavailable due to a recording on a
 | ||
|   different transponder. If this fails, a channel up/down switch is attempted as
 | ||
|   a fallback solution (thanks to Lauri Tischler for reporting this one, and to
 | ||
|   Hermann Gausterer for suggesting to switch to the recording channel).
 | ||
| - Fixed cReplayControl::Show() to avoid a compiler warning in g++ 3.2.3 (thanks
 | ||
|   to Jan Ekholm for reporting this one).
 | ||
| - Completed the Slovenian OSD texts (thanks to Matjaz Thaler).
 | ||
| - Changed the DEFAULTPRIORITY in device.c to -1, so that the primary device
 | ||
|   will be used for FTA recordings in case the CAM is connected to a non-primary
 | ||
|   device (thanks to Reinhard Walter Buchner for reporting this one).
 | ||
| - The cCiHandler now closes its file handle when it gets destroyed.
 | ||
| - Checking for duplicate recordings with the same file name and disabling the
 | ||
|   second timer (thanks to Peter Bieringer for reporting this one).
 | ||
| - Fixed handling newly created timers in case they are not confirmed with "Ok"
 | ||
|   (thanks to Gerhard Steiner for reporting this one).
 | ||
| - It is now possible to directly delete a timer that is currently recording
 | ||
|   (thanks to Alexander Damhuis for reporting this one).
 | ||
| 
 | ||
| 2003-05-30: Version 1.2.0pre1
 | ||
| 
 | ||
| - Some corrections to the French OSD texts (thanks to Olivier Jacques).
 | ||
| - Fixed some missing commas in i18n.c (thanks to Dimitrios Dimitrakos for
 | ||
|   reporting this problem).
 | ||
| - Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
 | ||
|   Ahrenberg).
 | ||
| - Completed the Italian OSD texts (thanks to Antonio Ospite).
 | ||
| - Fixed breaking off replay in case the user hits "Play" or "Pause" too soon after
 | ||
|   going into "Pause live video" mode (thanks to Karim Afifi for reporting ths one).
 | ||
| - Some corrections to the Catalanian OSD texts (thanks to Jordi Vil<69>).
 | ||
| - Single event timers are now deleted if the recording they are doing is
 | ||
|   deleted before the timer ends.
 | ||
| - Fixed an uninitialized variable in cDisplayChannel (thanks to Stefan Huelswitt).
 | ||
| - Fixed a possible access of invalid file handles in cSIProcessor::Action()
 | ||
|   (thanks to Stefan Huelswitt).
 | ||
| 
 | ||
| 2003-06-01: Version 1.2.0
 | ||
| 
 | ||
| - Completed Greek language texts (thanks to Dimitrios Dimitrakos).
 | ||
| - Completed Polish language texts (thanks to Michael Rakowski).
 | ||
| - Added a note about NPTL ("Native Posix Thread Library") to the INSTALL file
 | ||
|   (thanks to Jon Burgess for pointing this out).
 | ||
| - Some corrections to the Finnish OSD texts (thanks to Jaakko Hyv<79>tti).
 | ||
| - Officially released as version 1.2.0.
 | ||
| 
 | ||
| 2003-06-09: Version 1.2.1
 | ||
| 
 | ||
| - Fixed OSD access in case none of the devices provides one (thanks to Axel
 | ||
|   Gruber for reporting this one).
 | ||
| - Fixed editing channels ('timers.conf' was not written after a channel has
 | ||
|   been modified, which could result in errors upon the next start of VDR).
 | ||
| - Fixed a crash when canceling a newly created timer (thanks to Thomas Schmidt
 | ||
|   for reporting this one).
 | ||
| - Completed Hungarian language texts (thanks to Istvan Koenigsberger and Guido
 | ||
|   Josten).
 | ||
| - Fixed device handling in the CICAM menu in case a VDR instance was started
 | ||
|   with a specific device using the -D option (thanks to Gerald Raaf for reporting
 | ||
|   ths one).
 | ||
| - Initializing the current channel to '1' to avoid a crash in creating a new
 | ||
|   timer in case there is no device in the system that can actually receive any
 | ||
|   channel (thanks to Malcolm Caldwell for reporting this one).
 | ||
| - Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
 | ||
|   Ahrenberg).
 | ||
| 
 | ||
| 2003-08-03: Version 1.2.2
 | ||
| 
 | ||
| - 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<79>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<66>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.
 | ||
| 
 | ||
| 2003-08-17: Version 1.2.3 (not officially released)
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2003-08-26: Version 1.2.4 (not officially released)
 | ||
| 
 | ||
| - Fixed 'runvdr' to stay in the loop only if VDR returns an exit status of '1'.
 | ||
| - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Empty values in setup.conf are no longer treated as an error (thanks to Andreas
 | ||
|   Kool for reporting this one).
 | ||
| - Added a note about the config files of plugins to INSTALL (thanks to Thomas
 | ||
|   Keil).
 | ||
| - VDR now continues to start up, even if there is an error in setup.conf.
 | ||
| - Fixed a bug in resetting OSD color palettes (thanks to Torsten Herz).
 | ||
| - Fixed starting a recording on the primary device if there is a replay session
 | ||
|   active (thanks to Javier Marcet for reporting this one).
 | ||
| - Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a
 | ||
|   recording on the primary device.
 | ||
| 
 | ||
| 2003-08-31: Version 1.2.5pre1
 | ||
| 
 | ||
| - Now explicitly handling exit value 0 and 2 in 'runvdr'.
 | ||
| - Added a missing 'w' to the allowed characters for Finnish and Swedish (thanks
 | ||
|   to Lauri Tischler and Ragnar Sundblad).
 | ||
| - Added channels for DVB-T Hannover (Germany) to channels.cont.terr (thanks to
 | ||
|   Peter Waechtler).
 | ||
| - Fixed a hangup in SVDRP when the client disappears without sending QUIT (thanks
 | ||
|   to Robert Bartl for reporting this one). The problem was introduced in version
 | ||
|   1.2.2 through the fix for an occasional "Broken pipe" error in SVDRP connections.
 | ||
| - Updated 'channels.conf.terr' for Berlin.
 | ||
| - Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
 | ||
|   directly (thanks to Oliver Endriss). This also improves navigating through DVD
 | ||
|   menus with the DVD plugin. If this causes problems with your particular system
 | ||
|   (maybe because you are using the 'analogtv' plugin) you can reactivate the
 | ||
|   previous behaviour by commenting out the line
 | ||
|   #define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
 | ||
|   in VDR/dvbdevice.c.
 | ||
|   Note that you need driver version 2003-08-23 or later for this to work!
 | ||
| - Fixed handling extra blanks in plugin command lines.
 | ||
| - Actually implemented the SVDRP command DELC.
 | ||
| - Now clearing the player device if there are too many poll timeouts in 'Transfer
 | ||
|   Mode', which avoids buffer overflows and black screens in such cases.
 | ||
| 
 | ||
| 2003-09-07: Version 1.2.5pre2
 | ||
| 
 | ||
| - Updated VIVA, VIVA Plus, MTV Central and MTV 2 in channels.conf (thanks to
 | ||
|   Sebastian Frei).
 | ||
| - Changed "Studio Universal" to "Sci-Fi" in channels.conf.
 | ||
| - Fixed a crash when using the --terminal option without having access to the
 | ||
|   given terminal (thanks to Steffen Barszus for helping to debug this one).
 | ||
| - Added a note about the driver version needed for the still picture fix from
 | ||
|   version 1.2.5pre1 to work properly (thanks to Oliver Endriss for pointing
 | ||
|   this out).
 | ||
| - Fixed setting the primary device in case none of the devices provides an MPEG
 | ||
|   decoder (thanks to Rene Bartsch for reporting this one).
 | ||
| - Fixed handling the "Red" button in the "Schedules" menu in case there are no
 | ||
|   events listed for a particular channel (thanks to Christoph Hermanns for
 | ||
|   reporting this one).
 | ||
| - When setting an editing mark while in "Pause" mode, replay now immediately
 | ||
|   jumps to the marked frame (thanks to Oskar Signell for pointing out this
 | ||
|   problem).
 | ||
| - The DVB devices no longer send CA descriptors to the CAM while the EPG scanner
 | ||
|   is active (sometimes the CAMs got irritated when the device tuned to channels
 | ||
|   they couldn't handle).
 | ||
| 
 | ||
| 2003-09-14: Version 1.2.5pre3
 | ||
| 
 | ||
| - Fixed dropping out of replay mode while viewing a recording that is still
 | ||
|   going on (thanks to Oliver Endriss for reporting and helping to debug this
 | ||
|   one).
 | ||
| - Fixed handling ':' characters in channel names when reading channels.conf
 | ||
|   (thanks to Reinhard Nissl for reporting this one).
 | ||
| - Fixed the URL to the 'Doxygen' tool in INSTALL (thanks to Dirk Essl).
 | ||
| - Removed the obsolete chapter "Stopping a recording on the primary DVB interface"
 | ||
|   from MANUAL.
 | ||
| - Completed Dutch language texts (thanks to Hans Dingemans).
 | ||
| - Made 'diseqc.conf' a required file only if Setup.DiSEqC is activated (thanks to
 | ||
|   Thomas Schmidt).
 | ||
| - VDR now starts up even if 'keymacros.conf' references a plugin that is currently
 | ||
|   not loaded (suggested by Alexander Wetzel).
 | ||
| - Fixed checking for VIDEO_STREAM_S in cRemux::SetBrokenLink() (thanks to Oliver
 | ||
|   Endriss).
 | ||
| - Added 'repeat' function to keys '7' and '9' ("jump to mark") in replay mode
 | ||
|   (suggested by Oliver Endriss).
 | ||
| - Made cOsdMenu::Display() virtual, which allows plugins to do some additional
 | ||
|   processing after calling the base class function (suggested by Jan Rieger).
 | ||
| - Updated 'ca.conf' (thanks to Marco Franceschetti).
 | ||
| 
 | ||
| 2003-09-17: Version 1.2.5
 | ||
| 
 | ||
| - Updated 'channels.conf.cable' (thanks to Stefan Hu<48>feldt).
 | ||
| 
 | ||
| 2003-10-17: Version 1.2.6pre1
 | ||
| 
 | ||
| - Updated the required driver version in INSTALL (thanks to Jens Groth for
 | ||
|   reporting this one).
 | ||
| - Fixed missing channel info after an incomplete channel group switch (thanks
 | ||
|   to Andreas Trauer).
 | ||
| - Fixed handling a channels.conf that contains a ":@nnn" line as its last entry
 | ||
|   (thanks to Ralf Klueber).
 | ||
| - Fixed detecting the /dev/videoN devices for GRAB in case there are others
 | ||
|   before the DVB devices (thanks to Andreas Kool).
 | ||
| - Updated 'channels.conf.terr' for Berlin (thanks to Markus Hardt).
 | ||
| - Fixed handling rc key learning in case cRemote::Initialize() returns 'false'
 | ||
|   (thanks to Oliver Endriss).
 | ||
| - Fixed initializing the highlight area in cDvbSpuDecoder (thanks to Sven Goethel).
 | ||
| - Now trying to get a timer's channel without RID when loading 'timers.conf'
 | ||
|   (thanks to Thomas Rausch).
 | ||
| - Removed the unused 0x73 (TOT) filter in eit.c (thanks to Andreas Trauer).
 | ||
| - Fixed extracting the ES data in cDvbDevice::StillPicture() (thanks to Stefan
 | ||
|   Huelswitt).
 | ||
| - Added MPEG1 handling to cDvbDevice::StillPicture() (thanks to Thomas
 | ||
|   Heiligenmann).
 | ||
| - Changed the default "Lifetime" to 99, which means that recordings will
 | ||
|   never be deleted automatically in case the disk runs full (suggested by
 | ||
|   Oliver Endriss). Note that in an existing VDR installation the current
 | ||
|   value as set in 'setup.conf' will still be used - this change only affects
 | ||
|   new VDR installations.
 | ||
| - Edited recordings will now never be deleted automatically if the disk runs
 | ||
|   full (suggested by Emil Naepflein).
 | ||
| - Channel IDs are now checked when reading 'channels.conf' to avoid later
 | ||
|   problems with timers.
 | ||
| 
 | ||
| 2003-10-19: Version 1.2.6pre2
 | ||
| 
 | ||
| - Improved cDvbDevice::StillPicture() (thanks to Thomas Heiligenmann).
 | ||
| 
 | ||
| 2003-10-24: Version 1.2.6pre3
 | ||
| 
 | ||
| - Improved cDvbDevice::StillPicture() (thanks to Oliver Endriss).
 | ||
| - Continuing learning remote control keys in case one rc fails (thanks to
 | ||
|   Oliver Endriss).
 | ||
| - Fixed handling comments in editing marks.
 | ||
| 
 | ||
| 2003-10-26: Version 1.2.6pre4
 | ||
| 
 | ||
| - Fixed handling CAM menus in case the CAM connection fails while the menu
 | ||
|   is being presented (thanks to Thomas v. Keller for reportign this one).
 | ||
| - Added missing 'const' to some cChannel member functions (thanks to Torsten
 | ||
|   Herz).
 | ||
| 
 | ||
| 2003-11-08: Version 1.2.6pre5
 | ||
| 
 | ||
| - Added cDevice::GetSTC() (suggested by Sven Goethel).
 | ||
| - Added Asia-Pacific satellites to 'sources.conf' (thanks to Richard Scobie).
 | ||
| - Added North American satellites to 'sources.conf' (thanks to Luke Jenkins).
 | ||
| - Fixed getting the list of recordings in case VDR is started from a directory
 | ||
|   where it doesn't have access to (thanks to Dirk Mueller).
 | ||
| 
 | ||
| 2003-11-09: Version 1.2.6pre6
 | ||
| 
 | ||
| - Fixed handling Priority -1 in cDvbDevice::ProvidesChannel() (thanks to
 | ||
|   Torsten Herz).
 | ||
| - Fixed processing EPG data in case there is no title (thanks to Torsten Herz).
 | ||
| 
 | ||
| 2003-11-14: Version 1.2.6
 | ||
| 
 | ||
| - Final release of version 1.2.6.
 | ||
| 
 | ||
| 2004-01-04: Version 1.3.0
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2004-01-11: Version 1.3.1
 | ||
| 
 | ||
| - 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.
 | ||
| 
 | ||
| 2004-01-18: Version 1.3.2
 | ||
| 
 | ||
| - 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).
 | ||
| 
 | ||
| 2004-01-25: Version 1.3.3
 | ||
| 
 | ||
| - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Added ISO639LanguageDescriptor to 'libsi'.
 | ||
| - Changed the 'languageCode' members in the descriptor classes of 'libsi' to
 | ||
|   'char[4]' and setting the 4th byte to 0 for easier handling.
 | ||
| - Fixed frequency handling when setting the CA descriptors in cDvbTuner::Action()
 | ||
|   (thanks to Jan Ekholm for reporting and helping to debug this one).
 | ||
| - Now setting CA descriptors even if "Setup/DVB/Update channels" is less than 2.
 | ||
| - There can now be up to 32 audio and Dolby PIDs (however, currently still only
 | ||
|   the first two are used throughout the rest of the program).
 | ||
| - The audio and Dolby PIDs in 'channels.conf' now can have an optional language
 | ||
|   code (see man vdr(5)). Currently this is only stored and not yet used otherwise.
 | ||
| - Added a call to cStatus::MsgOsdCurrentItem() to cMenuEditItem::SetValue()
 | ||
|   (thanks to Martin Hammerschmid).
 | ||
| 
 | ||
| 2004-02-08: Version 1.3.4
 | ||
| 
 | ||
| - Fixed handling language codes in case there is no audio or Dolby PID.
 | ||
| - Fixed handling CA ids (was broken in 1.3.3).
 | ||
| - Fixed the SVDRP command 'STAT DISK' to avoid a 'division by 0' in case the
 | ||
|   disk is full (thanks to Jens Rosenboom).
 | ||
| - Fixed handling bitmap indexes for 256 color mode (thanks to Andreas Regel).
 | ||
| - Now handling "linked services" (based on the 'autopid' patch from Andreas
 | ||
|   Schultz). Linked channels are detected and added to 'channels.conf', but
 | ||
|   currently they are not yet presented to the user other than being in the
 | ||
|   normal channel list (this will come later).
 | ||
| - Preliminary fix for the "Unknown picture type error" (thanks to Sascha
 | ||
|   Volkenandt for his support in debugging this one). This may slow down switching
 | ||
|   between channels on different transponders for now, but a better solution will
 | ||
|   come later.
 | ||
| - Fixed the validity check for channel IDs, because some providers use TIDs with
 | ||
|   value 0 (thanks to Thomas Bergwinkl).
 | ||
| - Enabled switching to a channel even if it has no Vpid or Apid set, because these
 | ||
|   might be automatically set when tuned to that transponder.
 | ||
| - No longer closing the Channels menu after trying to switch to a channel that
 | ||
|   is currently not available.
 | ||
| - Removed the now obsolete CaCaps stuff. The Setup/CICAM menu now displays the
 | ||
|   actual CAM type as reported by the CAM. The 'ca.conf' file has been stripped
 | ||
|   down to the values 0..4.
 | ||
| 
 | ||
| 2004-02-29: Version 1.3.5
 | ||
| 
 | ||
| - Fixed reading the EPG preferred language parameter from 'setup.conf'.
 | ||
| - Fixed switching to a visible programme in case the current channel has neither
 | ||
|   a video nor an audio PID.
 | ||
| - Fixed editing channels (SID now range checked) and creating new channels (NID,
 | ||
|   TID and RID are now set to 0).
 | ||
| - Fixed transponder handling to make it work with satellites that provide two
 | ||
|   transponders on the same frequency, with different polarization, like Hispasat
 | ||
|   at S30.0W (thanks to Thomas Bergwinkl for pointing this out). See man vdr(5)
 | ||
|   for details about the enhanced channel ID format.
 | ||
| - Since there appears to be no general solution for the UPT error yet, a recording
 | ||
|   now initiates an "emergency exit" if the number of UPT errors during one
 | ||
|   recording exceeds 10 (suggested by Gregoire Favre). Since the UPT error doesn't
 | ||
|   happen on my system, this has not been explicitly tested.
 | ||
|   The "preliminary fix" for the UPT error in VDR/dvbdevice.c has been disabled
 | ||
|   by default, since it makes channel switching unpleasently slow. If you want
 | ||
|   to have that workaround back, you can uncomment the line
 | ||
|   //#define WAIT_FOR_LOCK_AFTER_TUNING 1
 | ||
|   in VDR/dvbdevice.c.
 | ||
| - Adapted the 'sky' plugin to use the actual channel IDs, and to fetch EPG data
 | ||
|   from www.bleb.org.
 | ||
| - Limited automatic retuning to devices that actually provide the transponder
 | ||
|   (necessary for the 'sky' plugin).
 | ||
| - Fixed handling receivers in the 'sky' plugin, so that a recording on the same
 | ||
|   channel won't interrupt an ongoing Transfer Mode.
 | ||
| - Added subtable ID and TSDT handling to 'libsi' (thanks to Marcel Wiesweg).
 | ||
| - Fixed some Russian OSD texts (thanks to Vyacheslav Dikonov).
 | ||
| - Added the 'running status' to the EPG events. This is necessary for implementing
 | ||
|   the VPS function for recording.
 | ||
| - Removed the obsolete 'present' and 'following' handling from the EPG data.
 | ||
| - The EPG data is now always kept sorted chronologically in the internal data
 | ||
|   structures. This also means that any EPG data retrieved through the SVRDP
 | ||
|   command LSTE is guaranteed to be sorted by start time.
 | ||
| - Now using the 'running status' in the channel display, so that a programme
 | ||
|   that has an end time that is before the current time, but is still running,
 | ||
|   will still be shown in the display (provided the broadcasters handle the
 | ||
|   'running status' flag correctly). This also applies to programmes that have
 | ||
|   a start time that is in the future, but are already running.
 | ||
| - Implemented an "EPG linger time", which can be set to have older EPG information
 | ||
|   still displayed in the "Schedule" menu (thanks to Jaakko Hyv<79>tti).
 | ||
| - Added PDCDescriptor handling to 'libsi'.
 | ||
| - Implemented handling the VPS timestamps (aka "Programme Identification Label")
 | ||
|   for full VPS support for timers (provided the tv stations actually broadcast
 | ||
|   this information). The VPS time is displayed in the event info page if it exists
 | ||
|   and is different than the event's start time.
 | ||
| - Extended the SVDRP command LSTE to allow limiting the listed data to a given
 | ||
|   channel, the present or following events, or events at a given time (thanks to
 | ||
|   Thomas Heiligenmann).
 | ||
| - Fixed a typo in libsi/si.h (thanks to St<53>phane Est<73>-Gracias).
 | ||
| - Timers can now be set to use the VPS information to control recording a programme.
 | ||
|   The new setup options "Recording/Use VPS" and "Recording/VPS margin", as well as
 | ||
|   the "VPS" option in the individual timers, can be used to control this feature
 | ||
|   (see MANUAL for details). 
 | ||
|   Note that this feature will certainly need a lot of testing before it can be
 | ||
|   called "safe"!
 | ||
| - The "Schedule" and "What's on now/next?" menus now have an additional column
 | ||
|   which displays information on whether there is a timer defined for an event,
 | ||
|   whether an event has a VPS time that's different than its start time, and
 | ||
|   whether an event is currently running (see MANUAL under "The "Schedule" Menu"
 | ||
|   for details).
 | ||
| 
 | ||
| 2004-03-14: Version 1.3.6
 | ||
| 
 | ||
| - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed some descriptor handling in 'libsi' (thanks to St<53>phane Est<73>-Gracias).
 | ||
| - Fixed handling the current menu item (thanks to Marc Hoppe).
 | ||
| - Fixed assigning events to timers (they no longer get "stuck").
 | ||
| - Added log entries whenever the running status of an event changes (currently
 | ||
|   only logging the first 30 channels).
 | ||
| - Fixed handling timers in VPS margin if the EPG scan is turned on (the EPG scan
 | ||
|   switched the device away from the channel, so it wouldn't see the change of
 | ||
|   the running status).
 | ||
| - Fixed handling "itemized" texts in EPG data (thanks to St<53>phane Est<73>-Gracias
 | ||
|   for pointing out this problem, and Marcel Wiesweg for improving 'libsi').
 | ||
| - Fixed handling VPS times at year boundaries.
 | ||
| - Avoiding too many consecutive "ring buffer overflow" messages (which only
 | ||
|   slowed down performance even more).
 | ||
| - Taking the Sid into account when detecting version changes in processing the
 | ||
|   PMT (thanks to St<53>phane Est<73>-Gracias for pointing out this problem).
 | ||
| - Completed the Russian OSD texts (thanks to Vyacheslav Dikonov).
 | ||
| - Any newline characters in the 'description' of EPG events are now preserved
 | ||
|   to allow texts to be displayed the way the tv stations have formatted them.
 | ||
|   This was also necessary to better display itemized texts.
 | ||
| - Fixed detecting the running status in case an empty EPG event is broadcast (thanks
 | ||
|   to Michael Pennewi<77> for pointing this out).
 | ||
| - Improved performance when paging through very long menu lists.
 | ||
| - Removed cSchedule::GetEventNumber() and cSchedule::NumEvents(). There is now
 | ||
|   cSchedule::Events() that returns the list of events directly.
 | ||
| - Avoiding occasional bad responsiveness to user interaction caused by assigning
 | ||
|   events to timers.
 | ||
| - Now explicitly turning on the LNB power at startup, because newer drivers don't
 | ||
|   do this any more (thanks to Oliver Endriss for pointing this out).
 | ||
| 
 | ||
| 2004-05-16: Version 1.3.7
 | ||
| 
 | ||
| - 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 prameters 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!).
 | ||
| 
 | ||
| 2004-05-23: Version 1.3.8
 | ||
| 
 | ||
| - Fixed a crash when switching the skin and having selected a non-default theme
 | ||
|   that is not available for the newly selected skin (thanks to Sascha Volkenandt
 | ||
|   for reporting this one).
 | ||
| - Fixed some issues with gcc 3.4 (thanks to Prakash K. Cheemplavam and Marcel
 | ||
|   Wiesweg).
 | ||
| - Added a hint to PLUGINS.html about how to name a plugin that implements a skin.
 | ||
| - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Single shot timers and events now show the day of week (adopted with some changes
 | ||
|   from the "elchi" patch, orginally introduced by Oskar Signell). Plugins that use
 | ||
|   cEvent::GetDateString() should note that this function now returns a longer
 | ||
|   string, including the day of week. The new function const char *WeekDayName(time_t t)
 | ||
|   can be called with a time_t value to get the day of week for that time.
 | ||
| - When processing XPM data, the color name "None" is now mapped to #00000000, which
 | ||
|   is "fully transparent" (suggested by Sascha Volkenandt).
 | ||
| - Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting
 | ||
|   this one and helping to test the fix).
 | ||
| - Fixed freezing picture when a recording starts on a system that always uses
 | ||
|   'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one).
 | ||
| - Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg).
 | ||
| - Added a few missing initializations (thanks to Marcel Wiesweg).
 | ||
| - Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins.
 | ||
|   It now also has a SetText() function that can be used to dynamically set the text
 | ||
|   in an already existing cMenuText (both suggested by Stefan Huelswitt).
 | ||
| - Added play mode pmVideoOnly (thanks to Marcel Wiesweg).
 | ||
| - Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
 | ||
|   (thanks to Oliver Endriss).
 | ||
| - No longer displaying unused color buttons in the "Classic VDR" skin (thanks to
 | ||
|   Oliver Endriss for reporting this one).
 | ||
| - Added some missing cStatus::MsgOsdTextItem() calls (thanks to Oliver Endriss for
 | ||
|   reporting this one).
 | ||
| 
 | ||
| 2004-05-31: Version 1.3.9
 | ||
| 
 | ||
| - Completed Croatian language texts (thanks to Drazen Dupor).
 | ||
| - New iso8859-2 font to fix the problem with program freezes (thanks to Drazen Dupor).
 | ||
| - Implemented a default cRemote::Initialize() that waits 10 seconds for a keypress
 | ||
|   in order to prevent a "hangup" in case, e.g., the LIRC driver is not loaded (thanks
 | ||
|   to Helmut Auer).
 | ||
| - Updated 'channels.conf.terr' for Hannover (thanks to Peter Waechtler).
 | ||
| - cBitmap::DrawBitmap() now also resets the palette if the entire bitmap area is
 | ||
|   covered (suggested by Sascha Volkenandt).
 | ||
| - Fixed setting the title in the replay display of the "Classic VDR" skin in case
 | ||
|   a shorter title is set after a longer one (thanks to Stefan Huelswitt for
 | ||
|   reporting this one).
 | ||
| - Now using more separate areas in the "ST:TNG Panels" skin to allow a theme to
 | ||
|   use more independent clrMenu* colors.
 | ||
| - Fixed removing the "scanning recordings..." message in case the video directory
 | ||
|   is empty (thanks to Andreas Regel for reporting this one).
 | ||
| - Added SetMessage() functions to the Replay and Channel skin functions. Plugins
 | ||
|   that implement skins will need to implement these functions. This fixes a missing
 | ||
|   "Editing process finished" message (thanks to Oliver Endriss for reporting this
 | ||
|   one).
 | ||
| - Fixed the height of the channel display in the "Classic VDR" skin.
 | ||
| - Fixed handling descriptor loops in 'libsi', which had sometimes caused invalid
 | ||
|   CA ids to be added to the channel definitions (thanks to Wayne Keer for reporting
 | ||
|   this one, and Marcel Wiesweg for fixing it).
 | ||
| - Fixed handling colors in cDvbSpuPalette::yuv2rgb() (thanks to Marco Schl<68><6C>ler).
 | ||
| - Made some functions of cFont virtual to allow implementing dummy fonts for the
 | ||
|   'curses' skin.
 | ||
| - The new plugin 'skincurses' re-implements the functionality that was previously
 | ||
|   available by compiling VDR with DEBUG_OSD. Some things may not yet work as they
 | ||
|   should, but it's a starting point.
 | ||
| 
 | ||
| 2004-06-06: Version 1.3.10
 | ||
| 
 | ||
| - Fixed some default parameters in 'skincurses'.
 | ||
| - Fixed cBitmap::DrawPixel(), which messed with other bitmaps' palettes in case
 | ||
|   the pixel coordinates were outside this bitmap (thanks to Sascha Volkenandt for
 | ||
|   reporting this one).
 | ||
| - The cBitmap::DrawText() function now doesn't set any background pixels if the
 | ||
|   given background color is clrTransparent. This allows drawing "transparent"
 | ||
|   texts (suggested by Sascha Volkenandt).
 | ||
| - The cBitmap::SetXpm() function now ignores unused "none" color entries, which
 | ||
|   some broken graphics tools write into XPM files (suggested by Sascha Volkenandt).
 | ||
| - No longer setting lnb voltage if the frontend is not DVB-S (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - Fixed displaying the current channel when switching via the SVDRP command CHAN
 | ||
|   (thanks to J<>rgen Schmitz for reporting this one).
 | ||
| - Fixed missing audio after replaying a DVD (thanks to Marco Schl<68><6C>ler).
 | ||
| - Added a note about the default assignment of the color keys to MANUAL.
 | ||
| - Added a note about NPTL ("Native Posix Thread Library") to the INSTALL file
 | ||
|   (apparently the "fix" in version 1.3.0 didn't really fix this).
 | ||
| - Modified 'libsi' to require callers to state the buffer sizes when getting
 | ||
|   strings in order to avoid buffer overflows (thanks to Philip Lawatsch for
 | ||
|   debugging a buffer overflow in eit.c).
 | ||
| 
 | ||
| 2004-06-19: Version 1.3.11
 | ||
| 
 | ||
| - In order to avoid problems on NPTL systems, VDR now checks for the presence
 | ||
|   of NPTL at program start, and if it is, exits and tells the user to do
 | ||
|   'export LD_ASSUME_KERNEL=2.4.1' before starting VDR.
 | ||
| - Revisited the "Fixed missing audio after replaying a DVD" change because it
 | ||
|   introduced a sound disturbance when switching between channels on the same
 | ||
|   transponder (thanks to Marco Schl<68><6C>ler).
 | ||
| - In order to avoid problems on UTF-8 systems, VDR now checks for the presence
 | ||
|   of UTF-8 at program start, and if it is, exits and tells the user to turn off
 | ||
|   UTF-8 before starting VDR (thanks to Ludwig Nussel for pointing out a problem
 | ||
|   with systems that are set to use UTF-8). There are also problems in case the
 | ||
|   video partition is mounted with "iocharset=utf8" (thanks to J<>rg Knitter for
 | ||
|   reporting this one).
 | ||
|   Please also read the "IMPORTANT NOTES" section in the INSTALL file!
 | ||
| - Some changes to the SPU decoder interface (thanks to Sven Goethel).
 | ||
| - Some improvements in cOsd creation (thanks to some suggestions by Jouni Karvo).
 | ||
| - Fixed calculating the OSD width and height (thanks to Olaf Henkel for reporting
 | ||
|   a problem with long event texts in the "Classic VDR" skin).
 | ||
| - Fixed switching channels while an encrypted channel is being recorded, because the
 | ||
|   channel was switched if the new channel was on the same transponder and was
 | ||
|   a radio channel or an unencrypted channel (thanks to Martin Dauskardt for reporting
 | ||
|   this one).
 | ||
| - No longer using the external 'find' command to scan the video directory for
 | ||
|   recordings (based on a suggestion by Mirko D<>lle).
 | ||
| - The list of recordings is now kept statically in memory to avoid long delays
 | ||
|   when opening the "Recordings" menu. As a side effect, external modifications to
 | ||
|   the video directory are no longer immediately reflected in the "Recordings" menu.
 | ||
|   If a plugin manipulates the video directory in any way, it can call the function
 | ||
|   Recordings.TriggerUpdate() to trigger an update of the list of recordings.
 | ||
|   If some external tool manipulates the video directory, it can touch the file
 | ||
|   '.update' in the video directory to trigger an update of the list of recordings.
 | ||
| - Fixed a memory leak in theme description handling (thanks to Sascha Volkenandt).
 | ||
| - Added cDevice::Flush() to make sure that all data in the video card's buffers
 | ||
|   has been processed (thanks to Reinhard Nissl). Currently this is not yet actually
 | ||
|   implemented for FF DVB cards.
 | ||
| - Fixed handling the color button texts in cMenuEditStrItem (thanks to Maynard
 | ||
|   Cedric for reporting this one).
 | ||
| - Fixed the description of cRingBufferLinear (thanks to Ludwig Nussel for pointing
 | ||
|   out this one).
 | ||
| - Fixed cRingBufferLinear::Get() in case the buffer wraps around (thanks to Ludwig
 | ||
|   Nussel for reporting this one).
 | ||
| 
 | ||
| 2004-07-18: Version 1.3.12
 | ||
| 
 | ||
| - Removed all error messages from cRecordings::ScanVideoDir() and just skipping
 | ||
|   entries that cause errors in order to avoid failure in case of things like
 | ||
|   broken links etc.
 | ||
| - The function cTimers::SetEvents() now immediately returns if there is some user
 | ||
|   input.
 | ||
| - Fixed handling menu status messages when the list contents is scrolled (thanks to
 | ||
|   Alfred Zastrow for reporting this one).
 | ||
| - Fixed checking the last area for misalignment in cOsd::CanHandleAreas() (thanks
 | ||
|   to Reinhard Nissl for reporting this one).
 | ||
| - No longer adding section filters to the list of filters if they can't be opened
 | ||
|   (thanks to Marco Schl<68><6C>ler for pointing this out).
 | ||
| - Fixed handling error case '-1' when polling section filters (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - Fixed handling error case '-1' when polling CAM connections.
 | ||
| - Making sure the OSD reports oeWrongAlignment errors before any oeAreasOverlap
 | ||
|   error (suggested by Reinhard Nissl).
 | ||
| - Avoiding flashing effects in the OSD of full featured DVB cards by explicitly
 | ||
|   clearing the OSD windows before opening them (suggested by Marco Schl<68><6C>ler).
 | ||
| - Experimental support for NVOD channels. Currently these channels are detected
 | ||
|   and linked to their "base" channels using the same mechanisms as for the
 | ||
|   "linked services" (let's see if this is useful). Thanks to Mike parker for
 | ||
|   helping to test this. Also used some input from the 'autopid' patch by Andreas
 | ||
|   Schultz).
 | ||
| - Now storing the name of the service provider (aka "bouquet") in the channel
 | ||
|   name, separated by a semicolon (see man vdr(5) for details). Explicit usage
 | ||
|   of the various parts of the channel name is yet to come.
 | ||
| - The 'radio' channel icon is now only displayed in the ST:TNG skin if the channel
 | ||
|   actually has an APID.
 | ||
| 
 | ||
| 2004-10-17: Version 1.3.13
 | ||
| 
 | ||
| - 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<68>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<68><6C>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<68><6C>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<68><6C>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<68><6C>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).
 | ||
| 
 | ||
| 2004-10-24: Version 1.3.14
 | ||
| 
 | ||
| - Fixed detecting transponder lock in cDvbTuner (based on a patch from Stefan
 | ||
|   Meyknecht).
 | ||
| - What was previously marked with WAIT_FOR_LOCK_AFTER_TUNING is now permanently
 | ||
|   active and uses a cCondVar to signal when a transponder is locked.
 | ||
| - Added some missing 'const' to cChannel.
 | ||
| - Added a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
 | ||
|   (thanks to Oliver Endriss).
 | ||
| - Fixed attaching a cPlayer to a cDevice, so that 'Operation not permited'
 | ||
|   errors don't occur any more (thanks to Marco Schl<68><6C>ler).
 | ||
| - Fixed a case where the resultBuffer in cRemux ran full before getting a sync.
 | ||
| - Removed the usleep() call from cDvbPlayer::Action() to make VDR run on NPTL
 | ||
|   systems (thanks to Alfred Zastrow). The NPTL check at startup has also been
 | ||
|   removed.
 | ||
| - Taking the complete size of available data into account when deciding whether
 | ||
|   to clear the transfer buffer to avoid overflows (thanks to Reinhard Nissl).
 | ||
| - Updated Romanian language texts and the iso8859-2 fonts (thanks to Lucian Muresan).
 | ||
| - Now actually using the iso8859-15 fonts (thanks to Lucian Muresan).
 | ||
| - Some minor code cleanups (thanks to Prakash K. Cheemplavam).
 | ||
| - Fixed missing cleanup at program exit in case there is a problem with a plugin
 | ||
|   (thanks to Mattias Gr<47>nlund for pointing this out).
 | ||
| - Increased the required free buffer space in the resultBuffer of cRemux to
 | ||
|   2 * IPACKS to avoid a buffer overflow in case a cTS2PES writes one complete
 | ||
|   packet and then (within processing the same TS packet) wants to write another
 | ||
|   small packet.
 | ||
| - Removed the signal handler and WakeUp() call from cThread (it is no longer
 | ||
|   needed).
 | ||
| - Added some checks when canceling a thread and removed the usleep() in
 | ||
|   cThread::Start() (suggested by Ludwig Nussel). Also removed 'running' from
 | ||
|   cThread and using only childTid to indicate whether a thread is actually
 | ||
|   running.
 | ||
| - Added cCondWait::Sleep() and using it to replace all usleep() calls (based
 | ||
|   on a suggestion by Werner Fink).
 | ||
| - Only assigning events to timers if the related schedule has actually been
 | ||
|   modified.
 | ||
| - When searching for the present event, the running status is now only taken
 | ||
|   into account if the event has been "seen" within the past 30 seconds.
 | ||
|   This avoids shortly seeing the wrong events in the channel display when
 | ||
|   switching to a channel that hasn't been tuned to in a while.
 | ||
| 
 | ||
| 2004-11-01: Version 1.3.15
 | ||
| 
 | ||
| - 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<68><6C>ler for reporting this one).
 | ||
| - Now calling pthread_cond_broadcast() in the desctructor 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<68><6C>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).
 | ||
| 
 | ||
| 2004-11-14: Version 1.3.16
 | ||
| 
 | ||
| - Fixed cChannel::SetName() in case only the ShortName or Provider has changed
 | ||
|   (thanks to Sascha Volkenandt for reporting this one).
 | ||
| - Added Danish language texts (thanks to Mogens Elneff).
 | ||
| - Reactivated the NPTL check at startup because there appear to be still
 | ||
|   unsolved problems when running on NPTL systems.
 | ||
| - Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() (thanks
 | ||
|   to Joachim Wilke for reporting this one, and Andreas Regel for additional
 | ||
|   input).
 | ||
| - Fixed the cDvbSpuDecoder (thanks to Marco Schl<68><6C>ler).
 | ||
| - Fixed handling of pmAudioOnlyBlack (thanks to Stefan Huelswitt).
 | ||
| - Fixed a short glitch when starting a recording on the primary device while
 | ||
|   in replay or transfer mode (thanks to Marco Schl<68><6C>ler).
 | ||
| - Added missing initialization of cEvent::seen.
 | ||
| - Checking PID language codes for ISO 639 compliance to avoid problems with
 | ||
|   funny characters. Invalid language codes will be stored as "???".
 | ||
| - The '0' key now toggles the "Day" item in the "Timers" menu between "single
 | ||
|   shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
 | ||
|   days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the
 | ||
|   '0' key in the "Day" item of the "Timers" menu.
 | ||
| 
 | ||
| 2004-11-21: Version 1.3.17
 | ||
| 
 | ||
| - 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<68><6C>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<68><6C>ler).
 | ||
| 
 | ||
| 2004-12-18: Version 1.3.18
 | ||
| 
 | ||
| - 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 '<27>' characters in the man pages (thanks to Darren Salt for
 | ||
|   pointing this out).
 | ||
| - Completed the Italian OSD texts (thanks to Sean Carlos).
 |