mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			4741 lines
		
	
	
		
			268 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4741 lines
		
	
	
		
			268 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 preceded 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 parameters are now in pixel (as opposed to formerly characters).
 | ||
|   When reading a 'setup.conf' file from an older version of VDR, the OSDwidth
 | ||
|   and OSDheight values will be converted to pixel automatically.
 | ||
| - The OSD is now fully device independent. See the comments in VDR/osd.h and the
 | ||
|   description in PLUGINS.html for information on how a plugin can implement an OSD
 | ||
|   display on arbitrary hardware.
 | ||
| - The OSD (actually its cBitmap class) can now handle XPM files. There are several
 | ||
|   XPM files in the VDR/symbols directory which can be used by skins (some of these
 | ||
|   have been taken from the "elchi" patch). See VDR/skinsttng.c for examples on how
 | ||
|   to use these.
 | ||
| - Due to the changes in the OSD handling the DEBUG_OSD option for a textual OSD
 | ||
|   has been dropped. There will be a plugin that implements a skin with this
 | ||
|   functionality later.
 | ||
| - The entire OSD display can now be implemented via "skins". See VDR/skins.[hc],
 | ||
|   VDR/skinclassic.[hc], VDR/skinsttng.[hc] and PLUGINS.html for information on how
 | ||
|   a plugin can implement its own skin. By default VDR comes with a "Classic" skin
 | ||
|   that implements the OSD display known from previous versions, and the new skin
 | ||
|   named "ST:TNG Panels", which is also the default skin now. The actual skin can
 | ||
|   be selected through "Setup/OSD/Skin".
 | ||
| - The colors used in a skin can now be configured using "themes". See PLUGINS.html
 | ||
|   for information on how a skin can make use of themes, and man vdr(5) for the
 | ||
|   structure of a theme file. The actual theme to use can be selected through
 | ||
|   "Setup/OSD/Theme".
 | ||
| - Added Croatian language texts (thanks to Drazen Dupor).
 | ||
|   NOTE: there is apparently a problem with the newly introduced iso8859-2 font,
 | ||
|   because as soon as Setup/OSD/Language is set to Croatian (currently the last one
 | ||
|   in the list) everything freezes and the vdr processes have to be killed with -9
 | ||
|   and the driver needs to be reloaded. Maybe somebody else can find out what's
 | ||
|   going wrong here...
 | ||
| - Added missing NULL checks when accessing sectionHandler in device.c (thanks to
 | ||
|   Pekka Virtanen).
 | ||
| - Fixed setting the time from the DVB data stream (thanks to Helmut Auer for
 | ||
|   pointing out a frequency/transponder handling mixup). This now also takes the
 | ||
|   actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and
 | ||
|   set the "Set system time" and "Use time from transponder" parameters accordingly
 | ||
|   (this is necessary even if you have already set them before!).
 | ||
| 
 | ||
| 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 permitted'
 | ||
|   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 destructor of cCondWait and
 | ||
|   cCondVar to make sure any sleepers will wake up (suggested by Werner Fink).
 | ||
|   Also using pthread_cond_broadcast() instead of pthread_cond_signal() in
 | ||
|   cCondWait, in case there is more than one sleeper.
 | ||
| - Making sure that timers and channels are only saved together, in a consistent
 | ||
|   manner (thanks to Mirko D<>lle for reporting a problem with inconsistent
 | ||
|   channel and timer lists).
 | ||
| - Now handling the channel name, short name and provider separately. cChannel
 | ||
|   therefore has two new functions, ShortName() and Provider(). ShortName()
 | ||
|   can be used to display a short version of the name (in case such a version
 | ||
|   is available). The optional boolean parameter of ShortName() can be set to
 | ||
|   true to make it return the name, if no short name is available.
 | ||
|   The sequence of 'name' and 'short name' in the channels.conf file has been
 | ||
|   swapped (see man vdr(5)).
 | ||
| - Added the 'portal name' to cChannels (thanks to Marco Schl<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).
 | ||
| 
 | ||
| 2005-01-09: 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).
 | ||
| - Fixed setting 'synced' in cRemux when recording radio channels (thanks to
 | ||
|   Laurence Abbott).
 | ||
| - Removed the LOCK_THREAD from the LIRC thread (thanks to Ludwig Nussel).
 | ||
| - Fixed genfontfile.c (sometimes the character width was wrong, and the codes were
 | ||
|   shifted one too far to the left).
 | ||
| - Fixed the character width and shifted the codes one to the right in all font
 | ||
|   files.
 | ||
| - Renamed font???.c to font???-iso8859-1.c for symmetry.
 | ||
| - Switched the character set to iso8859-15 for English, German and Finnish (thanks
 | ||
|   to Andreas Brugger for reporting the missing Euro sign in iso8859-1).
 | ||
| - Added 'channels.conf.terr' entries for L<>beck (thanks to Stefan Hu<48>feldt).
 | ||
| - Fixed a race condition in starting a thread (thanks to Reinhard Nissl for
 | ||
|   reporting this one).
 | ||
| - Replaced non-threadsafe library functions with their threadsafe versions (thanks
 | ||
|   to Rainer Zocholl for pointing this out).
 | ||
| - Other non-threadsafe functions have been replaced by threadsafe classes that hide
 | ||
|   the actual buffering. In particular these are:
 | ||
|   readdir() -> cReadDir
 | ||
|   readline() -> cReadLine
 | ||
| - Several formerly non-threadsafe functions now have a return type of cString:
 | ||
|   cChannel::ToText()
 | ||
|   tChannelID::ToString()
 | ||
|   cEvent::GetDateString()
 | ||
|   cEvent::GetTimeString()
 | ||
|   cEvent::GetEndTimeString()
 | ||
|   cEvent::GetVpsString()
 | ||
|   cMark::ToText()
 | ||
|   cTimer::ToText()
 | ||
|   cSource::ToString()
 | ||
|   cTimer::PrintDay()
 | ||
|   cTimer::PrintFirstDay()
 | ||
|   PrefixVideoFileName()
 | ||
|   IndexToHMSF()
 | ||
|   ChannelString()
 | ||
|   strescape()
 | ||
|   AddDirectory()
 | ||
|   itoa()
 | ||
|   WeekDayName()
 | ||
|   DayDateTime()
 | ||
|   When using these functions in a 'const char *' context there is nothing special
 | ||
|   to consider, except that you can no longer have a pointer to the return value,
 | ||
|   as in
 | ||
|   const char *date = DayDateTime();
 | ||
|   Although this will compile without error message, the resulting 'date' will not
 | ||
|   be valid after this line. Use this instead:
 | ||
|   cString date = DayDateTime();
 | ||
|   In a 'const void *' context (as in printf() etc.) the result needs to be
 | ||
|   dereferenced with a '*', as in
 | ||
|   printf("%s", *DayDateTime());
 | ||
|   to make it a 'const char *'.
 | ||
| - Removed delay_ms(), using cCondWait::SleepMs() instead.
 | ||
| - Replaced time_ms() with a threadsafe and non-overflowing cTimeMs (thanks to Rainer
 | ||
|   Zocholl for pointing out this problem).
 | ||
| - Added cDevice::mutexReceiver to avoid a race condition when attaching/detaching
 | ||
|   receivers from different threads.
 | ||
| - The new remote control button "Audio" can be used to switch between different
 | ||
|   audio tracks. The "Green" button in the "Main" menu has been changed from "Language"
 | ||
|   to "Audio", since it now also controls switching between normal and Dolby Digital
 | ||
|   audio tracks (see MANUAL for details).
 | ||
| - The description of the audio tracks is now taken from the "component descriptors"
 | ||
|   that are broadcast in the EPG data. However (as no big surprise), not all channels
 | ||
|   actually provide useful data here, so there are now some additional EPG bugfixes,
 | ||
|   which can be activated by setting the "EPG bugfix level" to 3.
 | ||
| - The format of the 'epg.data' files has been extended by the new tag 'X', which
 | ||
|   contains the stream components of an event (see man vdr(5) for details).
 | ||
| - The cStatus class now has the new member function SetAudioTrack(), which can be
 | ||
|   used to get notified when the audio track has been switched, and the new member
 | ||
|   function SetAudioChannel() which is called when the audio channel is changed.
 | ||
| - Skins need to implement the new cSkinDisplayTrack class to display the audio
 | ||
|   track menu.
 | ||
| - The ST:TNG skin now displays the current audio track description (if any) at the
 | ||
|   botton left side.
 | ||
| - The new setup option "DVB/Audio languages" can be used to control which audio
 | ||
|   language shall be selected in case a channel broadcasts in different languages
 | ||
|   (see MANUAL for details).
 | ||
| - The "Left" and "Right" keys in the "Audio" menu can be used to switch between
 | ||
|   the left and right stereo channels in case there are different audio tracks
 | ||
|   in these channels (see MANUAL for details).
 | ||
| - Fixed a possible race condition in cDevice::Action() (thanks to Mattias Gr<47>nlund).
 | ||
| - Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
 | ||
|   Gleichmann).
 | ||
| - Fixed deleting a menu item in case the next item is not selectable (thanks to
 | ||
|   Dino Ravnic).
 | ||
| - Implemented displaying mandatory subtitles in the SPU decoder (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - The setup option "Recording/Record Dolby Digital" has been renamed and moved to
 | ||
|   "DVB/Use Dolby Digital". It now controls whether Dolby Digital is recorded and
 | ||
|   whether an available DD audio track will appear in the "Audio" menu.
 | ||
| - Added support for circular polarization (thanks to Jonan Santiago).
 | ||
| - Thanks to Werner Fink, Reinhard Nissl, Sascha Volkenandt and Bj<42>rnar Nilsen for
 | ||
|   their support in testing and fine tuning this version.
 | ||
| 
 | ||
| 2005-01-23: Version 1.3.19
 | ||
| 
 | ||
| - Making sure at least the default skin is available at program start in case a
 | ||
|   plugin needs to issue an error message (thanks to Achim Tuffentshammer for
 | ||
|   reporting a crash in such a case). Also checking if there is a current skin
 | ||
|   in cSkins::Message().
 | ||
| - Completed the Finnish OSD texts and fixed internationalization of the text
 | ||
|   for "Setup/DVB/Audio language(s)" (thanks to Rolf Ahrenberg).
 | ||
| - Completed the Estonian OSD texts and switched to iso8859-13 character set
 | ||
|   (thanks to Arthur Konovalov).
 | ||
| - Made cCondWait::SleepMs() sleep at least 3ms to avoid a possible busy wait.
 | ||
| - Fixed canceling the LIRC thread (thanks to Marco Schl<68><6C>ler for pointing out
 | ||
|   this one).
 | ||
| - The "Green" button in the "Main" menu is now always "Audio", since the audio
 | ||
|   channel might be changed even if there is only one actual audio PID.
 | ||
| - Fixed handling the '-E' option which was broken in version 1.3.18 (thanks to
 | ||
|   Christian Jacobsen for reporting this one).
 | ||
| - Added 'channels.conf.terr' entries for Mainz (thanks to Michael Heyse).
 | ||
| - Implemented cDolbyRepacker for better handling of Dolby Digital PES packets
 | ||
|   (thanks to Reinhard Nissl).
 | ||
| - Fixed playing files with PES packets longer than 2048 byte through the full
 | ||
|   featured DVB card (thanks to Marco Kremer for reporting this one and providing
 | ||
|   a test sample).
 | ||
| - Recording and Transfer Mode now handle more than 2 audio PIDs. For this the
 | ||
|   interfaces of the following functions have been changed:
 | ||
|   cTransferControl::cTransferControl()
 | ||
|   cTransfer::cTransfer()
 | ||
|   cRecorder::cRecorder()
 | ||
|   cReceiver::cReceiver()
 | ||
|   cRemux::cRemux()
 | ||
| - Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action()
 | ||
|   (thanks to Stefan Huelswitt).
 | ||
| - Extended some buffer sizes to allow handling HDTV streams (thanks to Reinhard
 | ||
|   Nissl).
 | ||
| - Added 'channels.conf.terr' entries for D<>sseldorf and K<>ln (thanks to Walter Koch).
 | ||
| - Falling back to 'stereo' when switching channels in case the user had switched
 | ||
|   to 'left' or 'right' (suggested by Rolf Groppe).
 | ||
| - Completed the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Recording and Transfer Mode can now handle up to 8 Dolby Digital tracks (thanks
 | ||
|   to Marco Schl<68><6C>ler for a patch that implements substream handling into
 | ||
|   cDevice::PlayPesPacket(), and Reinhard Nissl for adding substream handling to
 | ||
|   cDolbyRepacker).
 | ||
| - Added PlayPes(NULL, 0) to cTransfer::Action() when clearing the transfer buffer
 | ||
|   to avoid overflows (thanks to Marco Schl<68><6C>ler for pointing this out).
 | ||
| 
 | ||
| 2005-02-06: Version 1.3.20
 | ||
| 
 | ||
| - Fixed displaying the "Audio" menu with the "Green" button from the "Main" menu
 | ||
|   in case there is only one audio track (thanks to Sascha Volkenandt for reporting
 | ||
|   this one).
 | ||
| - Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown()
 | ||
|   to avoid problems in case other threads access it (thanks to Wolfgang Rohdewald for
 | ||
|   pointing this out).
 | ||
| - Fixed a buffer overflow in case a station defines all 32 audio PIDs (thanks to
 | ||
|   Christian Jacobsen for reporting this one).
 | ||
| - Fixed masking SubStreamType in cDevice::PlayPesPacket() (thanks to Werner Fink
 | ||
|   for pointing out this one).
 | ||
| - The new function cPlugin::Stop() shall be used to stop any background activities
 | ||
|   of a plugin. Previously this was done in the plugin's destructor, but it is
 | ||
|   better to do this in a dedicated function that can be called early when shutting
 | ||
|   down.
 | ||
| - Moved the call to SetAudioChannel(0) into cDevice::ClrAvailableTracks() to have it
 | ||
|   executed also when starting a replay.
 | ||
| - Completed the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Completed the French OSD texts (thanks to Olivier Jacques).
 | ||
| - The new setup option "OSD/Channel info time" can be used to define the time after
 | ||
|   which the channel display is removed if no key has been pressed (thanks to
 | ||
|   Olivier Jacques).
 | ||
| - Modified cDolbyRepacker to make sure PES packets don't exceed the requested length
 | ||
|   (thanks to Reinhard Nissl).
 | ||
| - Fixed several memory leaks that were introduced through the use of cString (thanks
 | ||
|   to Stefan Huelswitt for reporting these).
 | ||
| - Added CMD_SPU_CHG_COLCON to cDvbSpuDecoder::setTime() (thanks to Marco Schl<68><6C>ler).
 | ||
| - Making sure the current audio track is actually one of the ones available in a
 | ||
|   recording (thanks to Sascha Volkenandt for reporting a problem when starting
 | ||
|   replay of a recording that has no Dolby Digital audio after switching to a channel
 | ||
|   that has DD and selecting the DD audio track).
 | ||
| - Removed 'flags' from tTrackId (thought we would need this, but apparently we don't).
 | ||
| - Making sure the "Mute" and "Volume+/-" keys don't interfere with digital audio.
 | ||
| - Fixed the "pre 1.3.19" compatibility mode for old Dolby Digital recordings (thanks
 | ||
|   to Werner Fink for pointing out that this can be triggered in the default branch).
 | ||
| - Calling pesAssembler->Reset() in cDevice::AttachPlayer() to avoid problems with
 | ||
|   residual data in replay and Transfer Mode (thanks to Werner Fink for pointing this
 | ||
|   out).
 | ||
| - Added MPEG1 replay capability to cPesAssembler (thanks to Stefan Huelswitt).
 | ||
| 
 | ||
| 2005-02-13: Version 1.3.21
 | ||
| 
 | ||
| - Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
 | ||
|   back to live mode if a recording is currently active on the primary device.
 | ||
| - Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function
 | ||
|   permanently returns 0 (thanks to Reinhard Nissl and Olaf Titz).
 | ||
| - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Restricted the "setting audio track" log message to automatic changes during replay.
 | ||
| - Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for
 | ||
|   reporting this one).
 | ||
| - Fixed handling symbolic links in cRecordings::ScanVideoDir() (thanks to Stefan
 | ||
|   Huelswitt).
 | ||
| - Completed the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Forcing a new resync after a call to cRemux::Clear() (suggested by Marco Schl<68><6C>ler).
 | ||
| - The cAudio::Play() function now has an additional parameter 'uchar Id' which tells
 | ||
|   the function the substream id of the given audio packet, so that a plugin can
 | ||
|   take the right action for the various kinds if audio data - which now also includes
 | ||
|   "normal" audio with ids 0xC0...0xDF (based on suggestions by Werner Fink and Macro
 | ||
|   Schl<68><6C>ler).
 | ||
| - Removed the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since this
 | ||
|   is now done when attaching the player to the device (thanks to Marco Schl<68><6C>ler).
 | ||
| - Making sure the buffer reserve in cTransfer::Action() is re-established after
 | ||
|   clearing the buffer.
 | ||
| - Added DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
 | ||
|   (thanks to Marco Schl<68><6C>ler).
 | ||
| - Fixed a typo in detecting UTF-8 (thanks to Reinhard Nissl).
 | ||
| - Now using twice the buffer reserve in cTransfer if the primary DVB card is an
 | ||
|   unmodified version with only 2MB of SDRAM, to avoid audio stuttering when
 | ||
|   playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad
 | ||
|   Flynt for suggestions and experiments in that area).
 | ||
| - Making sure the first audio packet is not dropped when switching to "pre 1.3.19
 | ||
|   Dolby Digital compatibility mode".
 | ||
| - The 'plugins-clean' target of the Makefile now only deletes the actual plugin
 | ||
|   library files from this version of VDR (suggested by Andreas Brachold).
 | ||
| - Added a missing 'resultSkipped = 0' to cRemux::Clear() (thanks to Marco Schl<68><6C>ler
 | ||
|   for reporting this one).
 | ||
| - The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by
 | ||
|   plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice
 | ||
|   from starting Transfer Mode in order to replay DD over the DVB device.
 | ||
| - Added missing reset of the 'repacker' to cTS2PES::Clear() (thanks to Marco
 | ||
|   Schl<68><6C>ler for reporting this one).
 | ||
| 
 | ||
| 2005-02-27: Version 1.3.22
 | ||
| 
 | ||
| - Removed some unneeded code and fixed access to unallocated memory in
 | ||
|   cEvent::FixEpgBugs() (thanks to Wolfgang Rohdewald).
 | ||
| - Avoiding unnecessary calls to SetPid() in cDvbDevice::SetAudioTrackDevice()
 | ||
|   (thanks to Marco Schl<68><6C>ler).
 | ||
| - No longer calling EnsureAudioTrack() in cDevice::SetChannel() if a Transfer Mode is
 | ||
|   started, to avoid setting the audio PID on the primary device (thanks to Marco
 | ||
|   Schl<68><6C>ler for pointing this out).
 | ||
| - Replaced the call to system("sync") in SpinUpDisk() with fdatasync(f) to avoid
 | ||
|   problems on NPTL systems (thanks to Chris Warren for pointing this out).
 | ||
| - Increased POLLTIMEOUTS_BEFORE_DEVICECLEAR in transfer.c to 6 to avoid problems
 | ||
|   with the larger buffer reserve (thanks to Marco Schl<68><6C>ler).
 | ||
| - Fixed the call to SetVideoFormat() in cDvbDevice::cDvbDevice() (parameter is _bool_).
 | ||
| - Added support for setting the video display mode (thanks to Marco Schl<68><6C>ler).
 | ||
| - The new setup option "DVB/Video display format" can be used to define which display
 | ||
|   format to use for playing wide screen video on a 4:3 tv set.
 | ||
| - Changed MAXDPIDS to 16 (8xAC3 + 8xDTS) (thanks to Werner Fink for pointing this out).
 | ||
| - Completed Dutch language texts (thanks to Hans Dingemans).
 | ||
| - Added 'smi' to the Finnish language codes (thanks to Rolf Ahrenberg).
 | ||
| - Fixed ensuring there is a current audio track in case there is only one track
 | ||
|   (thanks to Werner Fink for reporting this one).
 | ||
| - Improved automatic audio track selection.
 | ||
| - Keeping the track language codes and descriptions in Transfer Mode (thanks to
 | ||
|   Luca Olivetti).
 | ||
| - Fixed handling repeated kAudio keys.
 | ||
| - Improved displaying the the current audio track in the ST:TNG channel display.
 | ||
| 
 | ||
| 2005-03-20: Version 1.3.23
 | ||
| 
 | ||
| - The setup option "DVB/Video display format" is now only available if "Video format"
 | ||
|   is set to "4:3" (suggested by Mikko Salo).
 | ||
| - Updated the Russian OSD texts (thanks to Vyacheslav Dikonov).
 | ||
| - Dropped CA support for the old '-icam' firmware.
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Updated the Swedish OSD texts (thanks to Tomas Prybil).
 | ||
| - Fixed a few French OSD texts that were in the wrong place.
 | ||
| - Improved matching timers to EPG events, especially in case there are several events
 | ||
|   with the same VPS time.
 | ||
| - Fixed cDolbyRepacker to allow recording ProSieben HD broadcasts (thanks to Reinhard
 | ||
|   Nissl).
 | ||
| - Fixed cDvbDevice::SetVideoDisplayFormat() in case of 16:9 (thanks to Marco Schl<68><6C>ler).
 | ||
| - The running status of a VPS event is now only taken seriously if that event has been
 | ||
|   seen within the last 30 seconds - otherwise recording is done as if no VPS was
 | ||
|   available.
 | ||
| - The day of a timer is now stored as a full date in ISO notation ("YYYY-MM-DD") in
 | ||
|   'timers.conf' and for the result of the SVDRP command LSTT (based in parts on a
 | ||
|   patch by Roman Krenick<63>).
 | ||
| - Some fixes to avoid compiler warnings in gcc 4.0 (thanks to Ville Skytt<74> for reporting
 | ||
|   these).
 | ||
| - Single shot timers are now reliably deleted when they have expired.
 | ||
| - Fixed setting the colored button help after deleting a recording in case the next
 | ||
|   menu entry is a directory (thanks to Steffen Beyer).
 | ||
| - Improved falling back to normal recording if the VPS data hasn't been seen for more
 | ||
|   than 30 seconds.
 | ||
| - Added a missing cMutexLock to cRemote::HasKeys() (thanks to Wolfgang Rohdewald).
 | ||
| - All log entries regarding timers now contain a short description of the timer.
 | ||
| 
 | ||
| 2005-05-08: Version 1.3.24
 | ||
| 
 | ||
| - Now including the optional user defined Make.config from the 'libsi' Makefile
 | ||
|   (thanks to Ville Skytt<74>).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Fixed a memory leak in tComponent (thanks to Stefan Huelswitt and Daniel Thompson).
 | ||
| - Fixed a memory leak in cDvbPlayer (thanks to Stefan Huelswitt).
 | ||
| - Added missing text internationalization for "Starting EPG scan" (thanks to
 | ||
|   Matthias L<>tzke).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed handling transparent areas in cDvbSpuBitmap (thanks to Marco Schl<68><6C>ler).
 | ||
| - Now also considering the "EPG linger time" when saving the EPG data to file or
 | ||
|   listing it via LSTE (thanks to Roman Krenick<63>).
 | ||
| - Fixed handling fragments of less than 4 byte in cPesAssembler (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Fixed a bug in libsi's SubtitlingDescriptor::getLength() (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - When reading the channels.conf file, duplicate channels (i.e. ones that have
 | ||
|   the same channel ID) are now automatically deleted and only the first one is
 | ||
|   actually stored.
 | ||
| - Fixed handling lifetime when deciding whether to delete a recording (thanks to
 | ||
|   Udo Richter).
 | ||
| - Fixed timeout handling in cRwLock::Lock() (thanks to Sascha Volkenandt for reporting
 | ||
|   this one).
 | ||
| - Since there are several places in thread.c where a timeout value is calculated,
 | ||
|   this has been put into a separate function.
 | ||
| - The timer status now has a new bit that is set when that timer is currently
 | ||
|   recording (suggested by Matthias Schniedermeyer). See man vdr(5) for details.
 | ||
| - Removed scaling coordinates in letterbox mode from cDvbSpu - the DVD plugin, which
 | ||
|   was the only one needing this, doesn't need it any more (thanks to Marco Schl<68><6C>ler).
 | ||
| - No longer retuning or restarting a recording if only the language code of an
 | ||
|   audio or Dolby PID changes.
 | ||
| - Now preferring budget cards when selecting a DVB device for recording.
 | ||
| - Recordings now avoid zero sized video data files (thanks to Wolfgang Fitz).
 | ||
| - Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems
 | ||
|   (thanks to Reinhard Nissl).
 | ||
| - Fixed a wrong inheritance in libsi's SubtitlingDescriptor::Subtitling (thanks to
 | ||
|   Marco Schl<68><6C>ler).
 | ||
| 
 | ||
| 2005-05-29: Version 1.3.25
 | ||
| 
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Some cable providers don't mark short channel names according to the standard,
 | ||
|   but rather go their own way and use "name>short name". VDR now splits at this
 | ||
|   character for cable channels (thanks to Gerhard Steiner for reporting this one).
 | ||
| - Added a check for Setup.DiSEqC in cDvbDevice::ProvidesTransponder(), otherwise
 | ||
|   the EPG scan didn't work on systems that don't use DiSEqC (thanks to Michael
 | ||
|   Reinelt for reporting this one).
 | ||
| - Made the Makefile patch friendlier (thanks to Ludwig Nussel).
 | ||
| - Made cOsd::isOpen an integer counter to avoid problems with messages when a
 | ||
|   cOsdObject uses the raw OSD (thanks to Andreas Regel for reporting this one).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - The file 'summary.vdr' has been replaced with 'info.vdr' and now contains the
 | ||
|   information about a recording, in the same format as the events are stored in
 | ||
|   'epg.data' (see man vdr(5) for details). Existing summary files can be converted
 | ||
|   to the new format by running the Perl script 'summary2info.pl', as in
 | ||
| 
 | ||
|   summary2info.pl /video
 | ||
| 
 | ||
|   (the parameter given has to be the video directory). If there is no 'info.vdr'
 | ||
|   file for a recording, an attempt is made to read a 'summary.vdr'.
 | ||
| - The "Summary" button in the "Recordings" menu has been renamed to "Info", and
 | ||
|   the page it brings up now shows the recording's information, much like the EPG
 | ||
|   event page. Therefore it now no longer uses the skin's SetText() function, but
 | ||
|   rather the SetRecording() function. Skin plugins may need to adjust that function
 | ||
|   accordingly (see skinsttng.c, for instance).
 | ||
| - The SVDRP command LSTR now lists the recording information in the same tagged
 | ||
|   format as the LSTE command lists the EPG data.
 | ||
| - The audio track menu now contains track descriptions when replaying (provided
 | ||
|   such descriptions were available in the EPG data when the recording was made,
 | ||
|   and are stored in the info.vdr file).
 | ||
| - Avoiding extra blanks at the end of names of instant recordings.
 | ||
| - Removed converting byte order on big endian systems from cDvbOsd::Flush(),
 | ||
|   which, according to Johannes Stezenbach and Paavo Hartikainen, is wrong.
 | ||
| - Added cPlayer::DeviceSetVideoDisplayFormat() (thanks to Marco Schl<68><6C>ler).
 | ||
| - No longer saving the setup in case of a fatal error, to keep the volume level
 | ||
|   from being set to a wrong value (thanks to Marco Schl<68><6C>ler).
 | ||
| - Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp()
 | ||
|   is waiting (thanks to Marco Schl<68><6C>ler).
 | ||
| - The SVDRP command DELR no longer deletes recordings that are currently being
 | ||
|   written to by a timer (thanks to Sascha Volkenandt for pointing out this one).
 | ||
| - Pressing the "Play" key in live viewing mode now resumes a previous replay
 | ||
|   session (thanks to Mirko D<>lle).
 | ||
| - Now dropping EPG events that have a zero start time or duration (thanks to
 | ||
|   Oliver Endriss).
 | ||
| - No longer stopping Transfer Mode or replay immediately when the Power button
 | ||
|   is pressed (thanks to Rolf Ahrenberg).
 | ||
| - Moved the NPTL and UTF-8 checks after the version and help output (thanks to
 | ||
|   Andreas Kool for pointing out that 'vdr --version' failed on an UTF-8 system).
 | ||
| - Made tChannelID::operator==() inline for better performance (thanks to Georg
 | ||
|   Acher).
 | ||
| - Introduced cListBase::count for better performance (thanks to Georg Acher).
 | ||
| - cEvent no longer stores the channelID directly, but rather has a pointer to
 | ||
|   the schedule it is in.
 | ||
| - Now using hash tables to speed up cSchedule::GetEvent() (partially based on
 | ||
|   a patch from Georg Acher).
 | ||
| - Avoiding unnecessary calls to getLength() in libsi/si.c, and avoiding the
 | ||
|   '& 0xff' in CRC32::crc32() of libsi/util.c (thanks to Georg Acher).
 | ||
| - Speeded up deleting duplicate channels.
 | ||
| - Fixed listing recordings with empty episode names in the LSTR command (thanks
 | ||
|   to Stefan Huelswitt for pointing this out).
 | ||
| - Added cThread::SetPriority() and using it in cSectionHandler::Action() to
 | ||
|   reduce the priority of the section handler threads (as suggested by Georg Acher).
 | ||
| 
 | ||
| 2005-06-12: Version 1.3.26
 | ||
| 
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed handling 'summary.vdr' files with more than two empty lines (thanks to
 | ||
|   Christian Jacobsen for reporting this one).
 | ||
| - Improved resetting CAM connections (thanks to Marco Schl<68><6C>ler).
 | ||
| - Implemented cVideoRepacker in remux.c to make sure every PES packet contains
 | ||
|   only data from one frame (thanks to Reinhard Nissl).
 | ||
|   NOTE: currently this doesn't work with MPEG1, so if you use MPEG1 you may want
 | ||
|   to change line 1158 in remux.c to
 | ||
| 
 | ||
|   ts2pes[numTracks++] = new cTS2PES(VPid, resultBuffer, IPACKS);
 | ||
| 
 | ||
|   as it was before.
 | ||
| - EPG events without a title now display "No title" instead of "(null)" (thanks
 | ||
|   to Rolf Ahrenberg).
 | ||
| - A device can now detach all receivers for a given PID, as is necessary, e.g.,
 | ||
|   for the bitstreamout plugin (thanks to Werner Fink).
 | ||
| - Added the year (two digits) to recording dates in LSTR, and thus also in menus
 | ||
|   (suggested by Jan Ekholm).
 | ||
| - Fixed the call to Channels.Unlock() in cEITScanner::Process() (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Fixed handling timers with a day given as MTWTF--@6, i.e. a repeating timer with
 | ||
|   first day not as full date, but just day of month (thanks to Henrik Niehaus for
 | ||
|   reporting this one).
 | ||
| - Removed an unnecessary #include from osd.c (thanks to Wolfgang Rohdewald).
 | ||
| - Fixed dropping EPG events that have a zero start time or duration, in case it's
 | ||
|   an NVOD event (thanks to Chris Warren).
 | ||
| - Fixed handling page up/down in menu lists in case there are several non selectable
 | ||
|   items in a row (thanks to Udo Richter for reporting this one).
 | ||
| - Added cOsdMenu::SetCols() to allow adjusting the menu columns.
 | ||
| - Modified cEITScanner::Process() so that it works on systems with only budget cards
 | ||
|   or a mix of DVB-S, DVB-C or DVB-T cards.
 | ||
| 
 | ||
| 2005-06-19: Version 1.3.27
 | ||
| 
 | ||
| - Fixed handling 'page down', which was broken in version 1.3.26 (thanks to Udo
 | ||
|   Richter).
 | ||
| - Modified page scrolling behaviour (based on a suggestion by Patrick Gleichmann).
 | ||
| - The new setup option "OSD/Scroll wraps" can be used to activate wrapping around
 | ||
|   in menu lists (based on a suggestion by Patrick Gleichmann).
 | ||
| - Removed the NPTL check at startup, since several users have reported that VDR
 | ||
|   now runs fine with NPTL.
 | ||
| - Fixed handling VPS timers, so that they only record if the event they are assigned
 | ||
|   to actually has the given VPS time.
 | ||
| - Disabled cVideoRepacker in remux.c, because it has caused several problems
 | ||
|   during recording. If you want to test (and maybe debug) it, activate the line
 | ||
| 
 | ||
|   //#define TEST_cVideoRepacker
 | ||
| 
 | ||
|   in remux.c.
 | ||
| - When drawing a bitmap to the OSD, the existing palette of the target can now be
 | ||
|   replaced with the new one instead of adding the new entries (thanks to Andreas
 | ||
|   Regel).
 | ||
| 
 | ||
| 2005-08-07: Version 1.3.28
 | ||
| 
 | ||
| - Added a sleep in cDvbPlayer::Action() in case there is no data to send to the
 | ||
|   device, which avoids a busy loop on very fast machines (thanks to Martin Wache).
 | ||
| - Modified the description of cDevice::Poll() to avoid misunderstandings.
 | ||
| - Updated Croatian language texts (thanks to Drazen Dupor).
 | ||
| - cDvbPlayer::Goto() now appends a Sequence End Code to get the image shown
 | ||
|   immediately with softdevices (thanks to Reinhard Nissl).
 | ||
| - Reactivated cVideoRepacker in remux.c after some fixes (thanks to Reinhard Nissl).
 | ||
| - Removed the fix for handling VPS timers, so that they only record if the event
 | ||
|   they are assigned to actually has the given VPS time. This has caused repeating
 | ||
|   VPS timers to stop recording prematurely.
 | ||
| - Avoiding duplicate components in EPG events when reading epg.data or in the
 | ||
|   PUTE SVDRP command (thanks to Olaf Titz for reporting this one).
 | ||
| - Added the command line options '--lirc', '--rcu' and '--no-kbd' to allow setting
 | ||
|   the remote control at runtime (based on a patch by Darren Salt).
 | ||
| - Now checking whether timers or channels are currently being edited via the menu
 | ||
|   before making changes through SVDRP (thanks to Andreas Brugger for reporting a
 | ||
|   problem with this).
 | ||
| - Files and directories are now created with rights according to the shell's
 | ||
|   umask settings (thanks to Andreas Brachold).
 | ||
| - Fixed the cChannel copy constructor (thanks to Marcel Wiesweg for pointing out
 | ||
|   a problem with it).
 | ||
| - Fixed an out-of-bounds memory access with audio language ids (thanks to
 | ||
|   Matthias Lenk for reporting, and Udo Richter for suggesting a fix).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Added missing storing of the MenuScrollPage parameter (thanks to Frank Kr<4B>mmelbein).
 | ||
| - Added cRemux::SetTimeouts() for better use of cRemux in a single thread (thanks
 | ||
|   to Udo Richter for reporting a problem with this).
 | ||
| - Modified cEITScanner::Process() so that it uses the primary device if it is
 | ||
|   replaying and is the only device that provides the given transponder, and that
 | ||
|   a forced EPG scan works even if EPG scan timeout is set to 0 (thanks to
 | ||
|   Bernhard Stegmaier for reporting a problem with this).
 | ||
| - Fixed cDvbSpuBitmap::putPixel() (thanks to Reinhard Nissl).
 | ||
| - Fixed setting system time to avoid time jumps in case of faulty data (thanks
 | ||
|   to Andreas B<>ttger).
 | ||
| - Fixed a memory leak in the SVDRP command LSTE (thanks to Stefan Huelswitt).
 | ||
| 
 | ||
| 2005-08-15: Version 1.3.29
 | ||
| 
 | ||
| - Fixed a race condition in cTransfer (thanks to Klaus Heppenheimer for reporting this one).
 | ||
|   In doing so, the 'active' variables used by the actual derived cThread classes
 | ||
|   have been replaced by the cThread::Running() function.
 | ||
|   Plugin authors may want to check their derived cThread classes and replace any 'active'
 | ||
|   variables the same way as, for instance, done in transfer.c.
 | ||
| - Fixed handling EPG data for time shifted events (thanks to Marco Schl<68><6C>ler).
 | ||
| - Increased the default value for 'Min. user inactivity' to 300 minutes (suggested
 | ||
|   by Helmut Auer).
 | ||
| - Now storing the channel id in the info.vdr file even if there is no EPG info
 | ||
|   available (thanks to Andreas Brachold for reporting that there are empty info.vdr
 | ||
|   files created in that case).
 | ||
| - Added some 'mkdir -p' to the Makefile's 'install' target (thanks to Wayne Keer).
 | ||
| - Changed the title of the recording info menu (thanks to Rolf Ahrenberg).
 | ||
| - Fixed handling the frame number display if '7' is pressed before the first editing
 | ||
|   mark, or '9' after the last one (thanks to Thomas G<>nther).
 | ||
| - Now discarding any previous numerical input to switch channels if Up, Down, Channel+,
 | ||
|   Channel-, Left or Right is pressed (thanks to Wolfgang Rohdewald for reporting a
 | ||
|   problem with this).
 | ||
| - Pressing Ok while entering a channel number now immediately switches to that
 | ||
|   channel, without waiting for further input.
 | ||
| - Avoiding unnecessary OSD draw operations caused by the audio track description
 | ||
|   display in the ST:TNG skin's channel display (thanks to Oliver Endriss for reporting
 | ||
|   this).
 | ||
| - Removed the VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES stuff from
 | ||
|   cDvbDevice::StillPicture(), since apparently the VIDEO_STILLPICTURE call works.
 | ||
| 
 | ||
| 2005-08-21: Version 1.3.30
 | ||
| 
 | ||
| - Improved responsiveness inside CAM menus.
 | ||
| - Added handling of the 'Close MMI' tag to avoid error log messages with CAMs
 | ||
|   that actually use it.
 | ||
| - Now waiting at startup until all DVB devices are ready. This includes having
 | ||
|   all CAMs initialized and ready to decrypt, so that no more "channel not
 | ||
|   available" happens if VDR is started with the current channel being an encrypted
 | ||
|   one, or a timer on such a channel hits right after starting VDR.
 | ||
| - Fixed cVideoRepacker to better handle errors in data (thanks to Reinhard Nissl).
 | ||
| - Fixed cDvbTuner to avoid lockups on NPTL systems (thanks to Marcel Wiesweg).
 | ||
| - Added 'Service' functions to the plugin interface (thanks to Udo Richter).
 | ||
|   See PLUGINS.html, section "Custom services" for details.
 | ||
| - Replaced the get/put_unaligned() macros from <asm/unaligned.h> with own inline
 | ||
|   functions to avoid problems on platforms that don't provide these (thanks to
 | ||
|   David Woodhouse for his help).
 | ||
| 
 | ||
| 2005-08-28: Version 1.3.31
 | ||
| 
 | ||
| - Added missing German OSD texts for 'Audio language'.
 | ||
| - The Setup/CICAM menu now only contains the devices that actually have a CI and
 | ||
|   dynamically detects the number of slots a CI provides.
 | ||
| - Implemented cAudioRepacker for better handling of audio PES packets (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Modified handling of audio packets for radio channels in remux.c (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Fixed the EPG scan, so that it doesn't use the primary device if that is
 | ||
|   currently in Transfer-Mode from itself (thanks to Marcus Hilbrich for a bug
 | ||
|   report that lead to this).
 | ||
| - Removed the TUNER_LOCK_TIMEOUT in cDevice::AttachReceiver() since it caused more
 | ||
|   trouble than it fixed.
 | ||
| - Fixed detecting short channel names for "Kabel Deutschland", who uses a comma
 | ||
|   as delimiter (thanks to Marco Schl<68><6C>ler).
 | ||
| - Moved cMenuEditTimer and cMenuEvent to menu.h so that plugins can use it (suggested
 | ||
|   by Thomas G<>nther).
 | ||
| - The new static function cString::sprintf() can be used to easily create a formatted
 | ||
|   string.
 | ||
| - Plugins can now implement their own SVDRP commands (based on a patch from Hardy
 | ||
|   Flor). See PLUGINS.html, section "SVDRP commands" for details. The SVDRP commands
 | ||
|   of a plugin are accessed through the new SVDRP command PLUG.
 | ||
|   See PLUGINS/src/svdrpdemo for an example of how to use this feature.
 | ||
| - The new SVDRP command PLAY can be used to start replaying a recording (thanks to
 | ||
|   Hardy Flor).
 | ||
| - The new SVDRP command EDIT can be used to start the editing process of a recording
 | ||
|   (based on the CUTR patch by Harald Milz).
 | ||
| 
 | ||
| 2005-09-11: Version 1.3.32
 | ||
| 
 | ||
| - Added some missing braces in remux.c (thanks to Wayne Keer for reporting this one).
 | ||
| - Removed unused MAINMENUENTRY from svdrpdemo.c (thanks to Udo Richter for reporting
 | ||
|   this one).
 | ||
| - Fixed appending sequence end code in cDvbPlayer::Goto() (thanks to Reinhard Nissl).
 | ||
| - Fixed syncing in cRepacker (thanks to Reinhard Nissl).
 | ||
| - Now always using stream id 0xE0 for the video stream, to avoid problems with
 | ||
|   post processing tools that choke on different ids (suggested by Reinhard Nissl).
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Fixed cDvbPlayer::SkipFrames() to properly handle radio recordings (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Updated the Swedish OSD texts (thanks to Tomas Prybil).
 | ||
| - Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Made LIRC command parsing more robust (thanks to Ville Skytt<74>).
 | ||
| - Introduced a separate 'plugins-install' target in the Makefile (thanks to Daniel
 | ||
|   Thompson).
 | ||
| - Re-introduced the code that waits for a tuner lock in VDR/device.c, since
 | ||
|   apparently some users actually need it. It's not active by default, you'll have
 | ||
|   to define the WAIT_FOR_TUNER_LOCK macro in that file if you need it (suggested
 | ||
|   by Malcolm Caldwell).
 | ||
| - Adjusted the Makefile to the dvb-kernel driver on kernel 2.6 and up (thanks to
 | ||
|   Lauri Tischler).
 | ||
| - Repeat keys are now ignored when waiting for a keypress to cancel an operation
 | ||
|   (thanks to Marko M<>kel<65>).
 | ||
| - The main menu function of a plugin can now be activated through a key macro of
 | ||
|   the form "@plugin" even if that plugin doesn't have a main menu entry (using
 | ||
|   part of a patch by Hardy Flor, which originally implemented calling plugins from
 | ||
|   SVDRP).
 | ||
| - The menu timeout handling is now done centrally in the main program loop.
 | ||
| - Added missing help for the 'help' keyword in the SVDRP command PLUG.
 | ||
| - The main menu function of a plugin can now be called programmatically through
 | ||
|   the static function cRemote::CallPlugin().
 | ||
| - The SVDRP command PLUG now has a new option 'main' which can be used to initiate
 | ||
|   a call to the main menu function of a plugin (using part of a patch by Hardy Flor).
 | ||
| - The new command line option '--vfat' can be used to make VDR encode special
 | ||
|   characters in recording file names, even if it wasn't compiled with VFAT=1
 | ||
|   (suggested by Peter Bieringer). The compile time option VFAT still exists and
 | ||
|   creates a VDR that always behaves as if it were called with '--vfat'.
 | ||
| - Replaced the ':' delimiter between hour and minute in recording file names with
 | ||
|   a '.' under Linux, too. Existing recordings with ':' as delimiter will still work.
 | ||
| - Implemented the SVDRP command MOVC (thanks to Andreas Brachold).
 | ||
| - Added support for multiple audio language codes in ISO639LanguageDescriptors to
 | ||
|   'libsi' (thanks to Marcel Wiesweg).
 | ||
| - Changed the audio PID language codes to hold up to two 3 letter codes, separated
 | ||
|   by '+', to store separate languages broadcast in two channel audio mode.
 | ||
| - If the preferred audio language is broadcast on a PID that has two different
 | ||
|   languages in the two stereo channels, the audio channel is now properly set when
 | ||
|   switching to such a channel (thanks to Mogens Elneff for his help in testing this).
 | ||
| - Fixed some typos in MANUAL (thanks to Ville Skytt<74>).
 | ||
| - Fixed the default value for "Setup/EPG bugfix level" (thanks to Ville Skytt<74> for
 | ||
|   reporting this one).
 | ||
| - Fixed defining timers that only differ in the day of week (thanks to Patrick
 | ||
|   Rother for reporting this one).
 | ||
| - Fixed converting summary.vdr files that would result in a very long 'short text'
 | ||
|   (thanks to Carsten Koch).
 | ||
| - Implemented a hash for the channels to reduce the system load in the EIT scanning
 | ||
|   thread (based on a patch by Georg Acher).
 | ||
| 
 | ||
| 2005-09-25: Version 1.3.33
 | ||
| 
 | ||
| - Fixed two errors in 'newplugin' (thanks to Alexander Rieger).
 | ||
| - Fixed converting arbitrarily formatted summary.vdr files (thanks to Thomas G<>nther).
 | ||
| - Fixed handling color buttons in cMenuEditStrItem (thanks to Alexander Rieger).
 | ||
| - Added cChannel::LinkChannels() and cChannel::RefChannel() (suggested by Helmut Auer).
 | ||
|   Note that VDR itself doesn't actually use the linked channels, yet, so there is
 | ||
|   no guarantee that this really works under all circumstances.
 | ||
| - Added a missing include statement to the 'sky' plugin (thanks to Alfred Zastrow
 | ||
|   for reporting this one).
 | ||
| - Fixed handling key macros with keys after @plugin (thanks to Rolf Ahrenberg for
 | ||
|   reporting this one).
 | ||
| - Fixed error handling in cCiTransportConnection::RecvTPDU() (thanks to Georg Acher
 | ||
|   for reporting this one).
 | ||
| - Removed obsolete 'shift' code in device.[hc].
 | ||
| - The SVDRP command DELR no longer triggers a complete reload of the global Recordings
 | ||
|   list, but rather deletes that particular entry.
 | ||
| - The list of recordings is now read in a separate thread, resulting in a faster
 | ||
|   startup if there are a great many of recordings, or the disk(s) have to spin up.
 | ||
|   If the Recordings menu is opened while the list of recordings is still being read,
 | ||
|   the menu will be updated accordingly.
 | ||
|   Plugins that access the global Recordings variable should lock the thread
 | ||
|   by putting something like
 | ||
| 
 | ||
|     cThreadLock RecordingsLock(&Recordings);
 | ||
| 
 | ||
|   into the respective code block. Thanks to Carsten Koch for his help in testing
 | ||
|   and debugging this.
 | ||
| - The 'new' indicator in the Recordings menu is now kept up-to-date (thanks to
 | ||
|   Thomas G<>nther).
 | ||
| - Updated the Romanian OSD texts (thanks to Lucian Muresan).
 | ||
| - Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | ||
| - The '.update' file in the video directory is now touched when a recording is
 | ||
|   added or deleted, so that other VDR instances can update their lists (thanks to
 | ||
|   Alexander Rieger).
 | ||
| - Made the function ExchangeChars() public (suggested by Lucian Muresan).
 | ||
| 
 | ||
| 2005-10-03: Version 1.3.34
 | ||
| 
 | ||
| - Fixed a leftover 'summary.vdr' in vdr.5 (thanks to Peter Bieringer for reporting
 | ||
|   this one).
 | ||
| - Fixed opening recording folders in case the last replayed recording no longer
 | ||
|   exists (reported by Udo Richter).
 | ||
| - Fixed an unjustified "Error while accessing recording!" after deleting a recording
 | ||
|   from a subfolder.
 | ||
| - Fixed handling the '.update' file in case the video directory is not at the default
 | ||
|   location (reported by Jon Burgess).
 | ||
| - Fixed a crash in cConfig::Load() when compiling on the PPC (thanks to Sascha
 | ||
|   Volkenandt).
 | ||
| - Fixed the FATALERRNO macro to check for a non-zero errno value (reported by Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - Added a check against MAXOSDAREAS in cOsd::CanHandleAreas() (reported by Udo
 | ||
|   Richter).
 | ||
| - Fixed setting current menu item if the first one is non-selectable.
 | ||
| - cOsdItem::cOsdItem() now has a 'Selectable' parameter.
 | ||
| - Improved displaying 'sub-title' and 'bottom text' in the CAM menu.
 | ||
| - Added status message "Resetting CAM..." for an immediate feedback when the CAM
 | ||
|   reset has been triggered.
 | ||
| - The CAM menu now automatically updates itself in case of a progress display (as
 | ||
|   used, for instance, when updating the firmware via satellite).
 | ||
| - Now skipping some funny characters sent by some CAMs at the beginning of strings.
 | ||
| - The CAM menu is now completely closed when pressing the Menu key while inside
 | ||
|   a sub menu.
 | ||
| - Reduced MAX_CONNECT_RETRIES in ci.c to 2 (waiting too long made the whole thing
 | ||
|   appear hanging).
 | ||
| - Added status message "Opening CAM menu..." for an immediate feedback when the CAM
 | ||
|   menu has been requested.
 | ||
| - Speeded up initial opening of the CAM menu.
 | ||
| - Fixed handling of menus with no selectable items.
 | ||
| - The character 0x8A in CAM menu strings is now mapped to a real newline.
 | ||
| - The 'sub-title' and 'bottom text' in the CAM menu can now consist of several lines.
 | ||
| - Improved the CAM enquiry menu.
 | ||
| 
 | ||
| 2005-10-31: Version 1.3.35
 | ||
| 
 | ||
| - Updated 'sources.conf' (thanks to Philip Prindeville).
 | ||
| - Now using daemon() instead of fork() to run VDR in daemon mode (thanks to
 | ||
|   Enrico Scholz).
 | ||
| - Fixed a possible endless loop in a menu with no selectable items if
 | ||
|   Setup.MenuScrollWrap is true (thanks to Enrico Scholz).
 | ||
| - Making sure no item is displayed as "current" if Up, Down, Left or Right is
 | ||
|   pressed in a menu with no selectable items.
 | ||
| - Added '__attribute__' to functions that use printf() like parameters (thanks
 | ||
|   to Darren Salt).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns).
 | ||
| - Added more error messages and line numbers when reading EPG data and info.vdr
 | ||
|   (thanks to Peter Bieringer).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported
 | ||
|   by Marco Schl<68><6C>ler).
 | ||
| - Fixed lock handling in CAM communication to avoid problems with multiple CAMs
 | ||
|   per device or CAMs with more than one smart card.
 | ||
| - Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
 | ||
| - Updated the French OSD texts (thanks to Nicolas Huillard).
 | ||
| - Fixed the cFilter example in PLUGINS.html (reported by Patrick Fischer).
 | ||
| - The new class cUnbufferedFile is used for the recording files to avoid
 | ||
|   trashing the file system cache (based on a patch by Ralf M<>ller).
 | ||
| 
 | ||
| 2005-11-06: Version 1.3.36
 | ||
| 
 | ||
| - Fixed a NULL pointer access with the cUnbufferedFile when a replay session runs
 | ||
|   all the way until the end of the recording (thanks to Joachim Wilke).
 | ||
| - A menu is no longer automatically closed when a replay ends (reported by
 | ||
|   Marko M<>kel<65>).
 | ||
| - Removed '\n' from several syslog() calls (reported by Sascha Volkenandt).
 | ||
| - Fixed missing '&' in the SetAreas() example in PLUGINS.html (reported by
 | ||
|   Sascha Volkenandt).
 | ||
| - Fixed a memory leak in cString::operator=() (reported by Sascha Volkenandt).
 | ||
| - Updated the Dutch OSD texts (thanks to Maarten Wisse).
 | ||
| - cReadLine now dynamically allocates its buffer, so that it can handle lines
 | ||
|   of any length.
 | ||
| - Changed cConfig::Load() to use cReadLine instead of a fixed buffer (thanks
 | ||
|   to Andreas Mair for reporting a problem with extremely long summary fields
 | ||
|   in timers).
 | ||
| - cSVDRP now dynamically allocates its command buffer in order to handle
 | ||
|   commands of any length. The MAXPARSEBUFFER macro is now obsolete and has
 | ||
|   been removed. If a plugin has used that macro, it should either define
 | ||
|   a buffer size of its own, or use cReadLine when reading files.
 | ||
| - Fixed a race condition in the SPU decoder (thanks to Marco Schl<68><6C>ler).
 | ||
| - The EPG scan no longer disturbs players that have also set live PIDs
 | ||
|   (reported by Stefan Huelswitt).
 | ||
| - Fixed setting the help key display in the Recordings menu in case of several
 | ||
|   layers of subdirectories.
 | ||
| - Removed EPG bugfix #0, because it removed actually important data.
 | ||
| 
 | ||
| 2005-11-27: Version 1.3.37
 | ||
| 
 | ||
| - Added compiler options "-fPIC -g" to all plugins (thanks to Rolf Ahrenberg).
 | ||
| - Fixed initializing the day index when editing the weekday parameter of a
 | ||
|   repeating timer (thanks to Marco Schl<68><6C>ler).
 | ||
| - No longer removing superfluous hyphens in EPG data - would become too
 | ||
|   language dependent to handle all kinds of exceptions.
 | ||
| - Modified switching to Dolby Digital audio in live mode, if the driver
 | ||
|   and firmware can handle live DD without the need of a Transfer Mode (thanks
 | ||
|   to Werner Fink). Live DD mode requires a full featured DVB card and a
 | ||
|   LinuxDVB driver with firmware version 0x2622 or higher. Older versions will
 | ||
|   use Transfer Mode just like before.
 | ||
| - Implemented handling of the "CA PMT Reply" for CAMs (thanks to Marco
 | ||
|   Schl<68><6C>ler for figuring out some obscure length bytes in the CA PMT Reply
 | ||
|   data of AlphaCrypt CAMs).
 | ||
| - Some preparations for being able to record several encrypted channels from
 | ||
|   the same transponder at the same time (or record and view different encrypted
 | ||
|   channels), provided the CAM in use can handle this. This is work in progress
 | ||
|   and isn't actively used, yet.
 | ||
| - Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported
 | ||
|   by Stefan Huelswitt).
 | ||
| - Added a copy constructor to cString and fixed its assignment operator
 | ||
|   (thanks to Holger Brunn).
 | ||
| - The new function Skins.QueueMessage() can be called from a background thread
 | ||
|   to queue a message for display. See VDR/skins.h for details.
 | ||
| - The SVDRP command MESG uses the new message queueing facility, so MESG
 | ||
|   commands may now be executed at any time, and the message will be displayed
 | ||
|   (no more "pending message").
 | ||
| 
 | ||
| 2006-01-08: Version 1.3.38
 | ||
| 
 | ||
| - Fixed handling second audio and Dolby Digital PIDs for encrypted channels
 | ||
|   (was broken in version 1.3.37).
 | ||
| - Improved TS/PES conversion to better handle lost TS packets (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Limited the frequency of log messages from the cRepackers.
 | ||
| - Now using the gettid() syscall to get a thread's pid, so that we get a
 | ||
|   useful value on NPTL systems (suggested by Johannes Stezenbach).
 | ||
| - Fixed the RCU remote control handling to avoid problems with NPTL (thanks
 | ||
|   to Andreas Share for reporting a lockup with the RCU on NPTL systems).
 | ||
| - When displaying the amount of free disk space, the space consumed by
 | ||
|   recordings that have been "deleted" but not yet actually "removed" is now
 | ||
|   taken into account (suggested by Christian Vogt).
 | ||
| - Now avoiding unnecessary disk access when checking if there are deleted
 | ||
|   recordings that need to be removed (reported by Carsten Koch).
 | ||
| - Fixed handling the DELETEDLIFETIME when removing deleted recordings. Now
 | ||
|   a deleted recording is retained at least DELETEDLIFETIME seconds before
 | ||
|   actually removing it.
 | ||
|   The value of DELETEDLIFETIME has been changed to 300. So after (possibly
 | ||
|   inadvertently) deleting a recording, there will be at least 5 minutes
 | ||
|   in which it can be recovered (unless a new recording immediately requires
 | ||
|   the disk space). The count starts again at 0 every time VDR is started.
 | ||
| - Fixed a possible crash when displaying the "Low disk space!" message from
 | ||
|   a background thread (thanks to Christof Steininger).
 | ||
| - Fixed handling OSD areas that have invalid sizes (thanks to Marco Schl<68><6C>ler).
 | ||
| - Added a mutex to AssertFreeDiskSpace() to make sure calls from foreground
 | ||
|   and background threads won't interfere.
 | ||
| - The main menu now dynamically updates its contents in case an instant
 | ||
|   recording or replay stops, etc.
 | ||
| - The version number of EPG events is now also stored in the epg.data file
 | ||
|   (thanks to Kendy Kutzner).
 | ||
| - EPG events that are no longer in the currently broadcasted data stream are
 | ||
|   now automatically deleted.
 | ||
| - Removed an invalid access to Event->schedule in cSchedule::DelEvent().
 | ||
| - Modified cSchedule::Cleanup() (events are always sorted by time).
 | ||
| - Schedules are now cleaned up once every hour (not only at 05:00).
 | ||
| - The "Schedule" and "What's on now/next?" menus are now updated if a timer
 | ||
|   is set or modified.
 | ||
| - cTimer no longer has its own 'schedule' member, it rather uses that of the
 | ||
|   event it has been set to.
 | ||
| - The "Red" button in the "Schedule", "What's on now/next?" and "Event" menus
 | ||
|   now immediately creates a timer for the selected event and marks it with 'T'.
 | ||
|   If the event is already marked with 'T', the "Red" button opens the "Edit
 | ||
|   timer" menu for that timer.
 | ||
| - Removing deleted recordings is now done in a separate thread.
 | ||
| - Dropped the unused "stop recording on primary interface" stuff.
 | ||
| - Converting a grabbed image to JPEG is now done with the new function
 | ||
|   RgbToJpeg() (see tools.h).
 | ||
| - The SVDRP command GRAB now determines the image type (JPEG or PNM) from the
 | ||
|   extension (".jpg", ".jpeg" or ".pnm") of the given file name. The explicit
 | ||
|   'jpeg' or 'pnm' parameter is still accepted for backward compatibility, but
 | ||
|   has no meaning any more.
 | ||
| - The function cDevice::GrabImage() no longer writes the grabbed image to a
 | ||
|   file, but rather returns a pointer to the image in memory. The wrapper
 | ||
|   function cDevice::GrabImageFile() can be used to write the grabbed image
 | ||
|   directly to a file. Plugins that used the old version of cDevice::GrabImage()
 | ||
|   need to be adapted to the new interface.
 | ||
| - The new class cBase64Encoder (see tools.h) can be used to encode data in
 | ||
|   base64 (thanks to Bob Withers for publishing his Base64 class).
 | ||
| - The SVDRP command GRAB now writes the image data to the SVDRP connection
 | ||
|   (encoded in base64) if the given file name consists of only the file
 | ||
|   extension (".jpg", ".jpeg" or ".pnm"), or if only "-" is given as file
 | ||
|   name (based on a suggestion from Darren Salt).
 | ||
|   A simple way of viewing a grabbed image on a remote host is:
 | ||
| 
 | ||
|   svdrpsend.pl -d <hostname> 'grab -' | sed -n -e 's/^216-//p' -e '1ibegin-base64 644 -' -e '$a====' | uudecode | display -
 | ||
| 
 | ||
| - The new command line option '-g' must be given if the SVDRP command GRAB
 | ||
|   shall be allowed to write image files to disk. The parameter to this option
 | ||
|   must be the full path name of an existing directory, without any "..", double
 | ||
|   '/' or symlinks. By default, or if "-g- is given, grabbing to files is
 | ||
|   not allowed any more because of potential security risks.
 | ||
| - Modified the way the SVDRP command GRAB writes the grabbed image to a file
 | ||
|   to avoid a security hole (CAN-2005-0071, reported by Javier Fern<72>ndez-Sanguino
 | ||
|   Pe<50>a):
 | ||
|   + The file handle is now opened in a way that it won't follow symbolic links
 | ||
|     (suggested by Darren Salt).
 | ||
|   + The given file name is now canonicalized, so that it won't contain any
 | ||
|     ".." or symlinks (suggested by Darren Salt).
 | ||
|   + Grabbing to files is limited to the directory given in the the command
 | ||
|     line option '-g'. By default grabbing to files is not allowed any more.
 | ||
| - Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
 | ||
| - Changed all "illegal" to "invalid" in error messages (there's nothing "illegal"
 | ||
|   in VDR ;-).
 | ||
| - When started as user 'root' VDR now switches to a lesser privileged user id,
 | ||
|   keeping the capability to set the system time (based on a patch from Ludwig
 | ||
|   Nussel). By default the user id 'vdr' is used, which can be changed through
 | ||
|   the new command line option '-u'. Note that for security reasons VDR will no
 | ||
|   longer run as user 'root' (unless you explicitly start it with '-u root',
 | ||
|   but this is not recommended!). The 'runvdr' script has been changed to
 | ||
|   use the '-u' option.
 | ||
| - Changed the API of the functions cStatus::Recording() and cStatus::Replaying(),
 | ||
|   so that they can provide the full file name of the recording. Plugins that use
 | ||
|   these (or the related cStatus::Msg...() functions) need to be adapted
 | ||
|   (suggested by Andreas Brugger).
 | ||
| - The DVB devices now retune (and, if applicable, resend the DiSEqC data) if
 | ||
|   the lock is lost (based on a patch from Reinhard Nissl).
 | ||
| - Fixed handling multi byte key sequences in cKbdRemote (based on a patch from
 | ||
|   J<>rgen Schneider).
 | ||
| - Removed unused variables in skinclassic.c and skinsttng.c (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - Made the static cControl functions thread safe (thanks to Patrick Fischer).
 | ||
| - Fixed initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid
 | ||
|   warnings with g++ 4.1.0 (thanks to Ville Skytt<74>).
 | ||
| - Fixed incrementing the 'state' variables in the repacker classes in remux.c
 | ||
|   to avoid warnings with g++ 4.1.0 (reported by Ville Skytt<74>).
 | ||
| - The Makefile now reports a summary of failed plugins (thanks to Udo Richter).
 | ||
| - The cTimer constructor can now take an optional cChannel (suggested by
 | ||
|   Patrick Fischer).
 | ||
| - Fixed setting the main thread id if VDR is running as a daemon.
 | ||
| - Fixed handling TS packets in cTS2PES (thanks to Reinhard Nissl).
 | ||
| - Added cTimer::SetPriority() to set a timer's priority (suggested by Kendy Kutzner).
 | ||
| - Added cMenuEditStrItem::InEditMode() (suggested by Christian Wieninger).
 | ||
| - Now using FE_READ_STATUS to read the current frontend status (suggested by
 | ||
|   Holger W<>chtler).
 | ||
| - The "Menu" key now behaves consistently. If there is anything on the OSD, it
 | ||
|   is closed when the "Menu" key is pressed, and if there is nothing on the OSD,
 | ||
|   the "Menu" key opens the main menu (suggested by Luca Olivetti).
 | ||
| - The new option "Setup/OSD/Timeout requested channel info" can be used to turn
 | ||
|   off the automatic timeout of the channel display in case it was invoked by
 | ||
|   a press of the "Ok" key (suggested by Thiemo Gehrke).
 | ||
| - A message is now given when an instant recording is started (suggested by
 | ||
|   Helmut Auer). Actually the code was already there, just commented out - don't
 | ||
|   remember why it wasn't active...
 | ||
| - Removed an obsolete "Summary" text from i18n.c and preceded all key definition
 | ||
|   texts with "Key$" to avoid duplicates (reported by Lucian Muresan).
 | ||
| - Preceded all button texts with "Button$".
 | ||
| - Removed obsolete "Eject", "Language" and "scanning recordings..." texts.
 | ||
| - Added missing #include "thread.h" to dvbspu.c (reported by Gavin Hamill).
 | ||
| - Disabled the use of "fadvise" in cUnbufferedFile because there have been
 | ||
|   several reports that it causes more problems than it solves (suggested by
 | ||
|   Petri Hintukainen). If you want to use "fadvise", you can activate the line
 | ||
|   //#define USE_FADVISE
 | ||
|   in tools.c.
 | ||
| - Removed unused 'offset' member from cOsdItem.
 | ||
| - In the "Channels" menu the numeric keys now position the cursor to the channel
 | ||
|   with the given number (see MANUAL, section "Remote Control Keys", note (3) for
 | ||
|   details).
 | ||
| - The "Mark/Move" function in the "Channels" menu now also works in the non-numeric
 | ||
|   sort modes.
 | ||
| - The default cOsdObject::Show() now automatically calls cOsdMenu::Display() if
 | ||
|   this is a menu.
 | ||
| - The new "Info" key brings up information on the currently viewed programme
 | ||
|   or recording. For a live programme this is the same as "Schedule/Ok", i.e. the
 | ||
|   description of the current EPG event. For a recording this is the same as shown
 | ||
|   by the "Info" button in the "Recordings" menu. Plugins that implement players
 | ||
|   can overwrite their cControl::GetInfo() function to show their own info (see
 | ||
|   PLUGINS.html for details). Pressing the "Info" key again while the info is
 | ||
|   displayed will close the OSD. In order to assign this new key to an existing
 | ||
|   remote control setup, the remote.conf file needs to be deleted and VDR has
 | ||
|   to be restarted to go through the process of learning the remote control keys.
 | ||
| - Any cReceivers still attached to a cDevice when that device switches to a
 | ||
|   different transponder are now automatically detached (suggested by Patrick
 | ||
|   Fischer).
 | ||
| - The "flags" of a timer are now handled as an unsigned integer value. In order
 | ||
|   to do this, the interface of cMenuEditBitItem also had to be changed.
 | ||
| - In string entry fields (like, e.g., the file name of a recording) the characters
 | ||
|   can now be entered by pressing the numeric keys, the same way as on a
 | ||
|   telephone keypad (based on the "Easy Input" patch from Marcel Schaeben).
 | ||
| - Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch
 | ||
|   from "single shot" to "weekly", followed by the "Right" key (reported by
 | ||
|   Andreas B<>ttger).
 | ||
| - The file 'ca.conf' is obsolete and has been removed.
 | ||
| - Revised all descriptions regarding CICAM.
 | ||
| - Adapted c(Dvb)Device::ProvidesCa() to the dynamic CA handling.
 | ||
| - Added a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack()
 | ||
|   (thanks to Reinhard Nissl).
 | ||
| - Added a SleepMs() in cRecorder::Action() to avoid a busy loop (thanks to Ingo
 | ||
|   Schneider).
 | ||
| - Cleaned up some trailing white space.
 | ||
| 
 | ||
| 2006-01-15: Version 1.3.39
 | ||
| 
 | ||
| - The SVDRP command LSTT now accepts the new option 'id' to have the channels
 | ||
|   of the timers listed with their unique channel ids instead of their numbers
 | ||
|   (suggested by Matthias Schniedermeyer).
 | ||
| - Added a missing #include <linux/unistd.h> to thread.c (thanks to Ville Skytt<74>).
 | ||
| - Fixed the "plugins-clean" and "plugins-install" targets in the Makefile (thanks
 | ||
|   to Andreas Brachold).
 | ||
| - Fixed handling "more than 3 byte" key sequences in cKbdRemote::ReadKeySequence()
 | ||
|   (thanks to Peter Bieringer). If you are using the PC keyboard as remote control
 | ||
|   input you may need to make VDR newly learn the keys by removing the remote.conf
 | ||
|   file.
 | ||
| - To avoid problems with access rights when VDR shall run as 'root' it now skips
 | ||
|   all SetCaps() and SetUser() calls when it is started as 'root' and "-u root"
 | ||
|   is given.
 | ||
| - Added missing i18n entry for the "Timer" button (thanks to Ville Skytt<74>)
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Making the "Menu" key behave consistently has not been well received by several
 | ||
|   users, so the new option "Setup/OSD/Menu button closes" can be used to get the
 | ||
|   old behavior back (which also is the default value of this option).
 | ||
| - Dropped the default vdr user. The program now always runs under the user id
 | ||
|   it was started from, unless the '-u' option is given and it was started from
 | ||
|   the 'root' user. If you want to have a default vdr user, you can activate and
 | ||
|   adjust the "VDR_USER = vdr" line in your Make.config file (from the original
 | ||
|   patch by Ludwig Nussel).
 | ||
| - Key macros can now be defined for all non-modeless keys (suggested by Mirko D<>lle).
 | ||
| - Adjusted the "KEY MACROS" section of vdr.5 to the new plugin calling mechanism
 | ||
|   introduced in version 1.3.32.
 | ||
| - Removed the now obsolete "ca.conf" section from vdr.1 (thanks to Ville Skytt<74>).
 | ||
| - Added missing description of L and R circular polarization to 'diseqc.conf'.
 | ||
| - Added a note about "modprobe capability" to INSTALL (suggested by Patrick Cernko).
 | ||
| - Fixed canonicalizing the file name in the SVDRP command GRAB to allow full path
 | ||
|   names (thanks to Stefan Huelswitt).
 | ||
| - Added a missing '-' to the example for viewing a grabbed image on a remote host
 | ||
|   (reported by Philippe Gramoull<6C>).
 | ||
| - Made the "What's on now/next?" menus a lot faster by storing a pointer to each
 | ||
|   channel's schedule in the cChannel data.
 | ||
| - Made the log messages regarding lost lock of devices "info" instead of "error"
 | ||
|   (suggested by Andreas Brachold).
 | ||
| - The SVDRP command GRAB allows file names without extension again (suggested by
 | ||
|   Stefan Huelswitt).
 | ||
| - Pressing '0' in the "Schedule" menu now rotates through displaying "This event on
 | ||
|   this channel", "This event on all channels" and "All events on all channels".
 | ||
|   This can be used to find reruns of a given show, or the episodes of a series.
 | ||
|   Note that if there are many channels in your channels.conf, displaying the
 | ||
|   "All events on all channels" page may take a while.
 | ||
| - The status markers in the "Schedule" menu are now only updated if a submenu is
 | ||
|   closed in which a timer has been modified, which speeds up closing submenus.
 | ||
| - Now only writing Dolby Digital tracks into the 'info.vdr' file of a recording
 | ||
|   if Setup.UseDolbyDigital is true (suggested by Andr<64> Weidemann).
 | ||
| - Added a leading '0' to the day in the DayDateTime() function (thanks to Rolf
 | ||
|   Ahrenberg).
 | ||
| - No longer displaying color buttons in the recording info menu if it has been
 | ||
|   invoked from a player (reported by J<>rgen Schilling).
 | ||
| 
 | ||
| 2006-01-22: Version 1.3.40
 | ||
| 
 | ||
| - Fixed a second place where a message should be given when an instant recording
 | ||
|   is started (reported by Jesus Bravo Alvarez).
 | ||
| - Modified logging so that even on NPTL systems each line in the log file shows
 | ||
|   the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski).
 | ||
| - Fixed a problem with @plugin in keymacros.conf in case the named plugin is not
 | ||
|   loaded (reported by Franz Gangkofer).
 | ||
| - Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule'
 | ||
|   pointers from cChannel objects (reported by Malte Schr<68>der).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Improved NULL checking in strreplace().
 | ||
| - Fixed a crash in the Schedule menu with events that have no title (reported by
 | ||
|   Rolf Ahrenberg). cEvent::FixEpgBugs() now assigns a "No title" string to events
 | ||
|   that have no title.
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Recordings are now only started if there is at least 300MB free disk space
 | ||
|   (suggested by Markus Hahn).
 | ||
| - When entering text via the numeric keys, the cursor now automatically advances
 | ||
|   (based on a patch from Rolf Ahrenberg).
 | ||
| - Updated the Polish OSD texts and the fontosd-iso8859-2.c file (thanks to Jaroslaw
 | ||
|   Swierczynski).
 | ||
| - Disabled the "buffer reserve" in Transfer Mode. Last chance to complain if you
 | ||
|   really need it - it will be completely removed in the next version. If you are
 | ||
|   experiencing problems with a/v running out of sync, try the latest driver and
 | ||
|   firmware (if you are using a full featured DVB card).
 | ||
| - Switching channels with the Up/Down or Channel+/Channel- keys now works a lot
 | ||
|   faster when the repeat function kicks in, by not actually switching the
 | ||
|   channel every time, but rather only displaying the channel info and doing
 | ||
|   the final switch when the key is released.
 | ||
| - The channel display is now updated _before_ the channel is switched.
 | ||
| - Added a missing initialization of 'timeout' in the cDisplayChannel constructor.
 | ||
| - Fixed detecting if there can be any useful further input when entering channel
 | ||
|   numbers (thanks to Thomas Bergwinkl).
 | ||
| - Updated the Spanish OSD texts (thanks to Jesus Bravo Alvarez).
 | ||
| - Fixed handling the '0' key for switching between the last two channels (thanks
 | ||
|   to Thomas Bergwinkl).
 | ||
| 
 | ||
| 2006-01-29: Version 1.3.41
 | ||
| 
 | ||
| - EPG events from epg.data or SVDRP's PUTE command now have their Title set to
 | ||
|   "No Title" if none was set.
 | ||
| - Fixed checking toFile in cCuttingThread::Action() (found in a larger patch from
 | ||
|   Artur Skawina).
 | ||
| - Fixed a crash when pressing '0' in the "Schedule" menu on a channel that doesn't
 | ||
|   have any EPG data (reported ny Alexander Hans).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Fixed a missing ',' in the Greek OSD texts (thanks to Arthur Konovalov).
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Fixed handling the tfRecording flag when reading timers (bug reported by Andreas
 | ||
|   Mair).
 | ||
| - Now checking whether the channel exists before setting the PMT filter in
 | ||
|   cPatFilter::Process() (thanks to Thomas Bergwinkl).
 | ||
| - Now trying to reestablish the connection to the LIRC daemon in case it breaks
 | ||
|   (thanks to Ville Skytt<74>).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed channel switching with the Down (Up) key in case the current channel is
 | ||
|   already the first (last) in the list (reported by Frank Kr<4B>mmelbein).
 | ||
| - Removed the "buffer reserve" in Transfer Mode - it's no longer necessary with
 | ||
|   recent driver/firmware versions.
 | ||
| - The epg.data file is now written when VDR exits (suggested by Daniel Karsubka).
 | ||
| - Fixed cTimers::GetNextActiveTimer() so that it won't return an expired timer
 | ||
|   (reported by Rolf Ahrenberg).
 | ||
| - Changed DVBS_TUNE_TIMEOUT and DVBC_TUNE_TIMEOUT to 9000ms to avoid problems with
 | ||
|   channels that have low symbol rates (reported by Suur Karu).
 | ||
| - Fixed displaying the current audio track in the channel display.
 | ||
| - When reading epg.data (or data from PUTE), the version number of events with
 | ||
|   table IDs smaller than 0x50 is now ignored because otherwise the current
 | ||
|   running status would not be set after a restart of VDR.
 | ||
| - Implemented a timeout for remote controls that don't deliver "repeat" keypresses
 | ||
|   very fast (based on a suggestion by Luca Olivetti; problem with the new handling
 | ||
|   of k_Repeat keypresses in channel switching reported by Udo Richter).
 | ||
| - When looking for the present or following EPG event, the running status is now
 | ||
|   always taken into account.
 | ||
| - Now initializing the channels' schedule pointers when reading the epg.data file,
 | ||
|   so that the first WhatsOn menu will come up faster.
 | ||
| - If a shutdown is requested, but the shutdown script doesn't actually halt the
 | ||
|   system, it is now tried again after 5 minutes (suggested by Helmut Auer).
 | ||
| - Separated the 'install' target into several individual targets; renamed the
 | ||
|   'plugins-install' target to 'install-plugins' (thanks to Helmut Auer).
 | ||
| 
 | ||
| 2006-02-05: Version 1.3.42
 | ||
| 
 | ||
| - Removed leftover 'needsBufferReserve' variable from cTransfer (thanks to Marco
 | ||
|   Schl<68><6C>ler).
 | ||
| - Fixed setting "No title" for broken event data (reported by Ronny Kornexl).
 | ||
| - Fixed channel up/down switching on single card systems (reported by Stefan
 | ||
|   Huelswitt).
 | ||
| - Fixed handling "pending" timers that blocked others that actually could record
 | ||
|   (reported by Thomas Koch).
 | ||
| - Speeded up cVideoRepacker (thanks to Reinhard Nissl).
 | ||
| - Added an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier
 | ||
|   process the audio data (thanks to Marco Schl<68><6C>ler).
 | ||
| - Added Czech language texts (thanks to Vladim<69>r B<>rta).
 | ||
|   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 21
 | ||
|   different OSD languages, so please make sure you have 21 versions for each of
 | ||
|   your texts.
 | ||
| - Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
 | ||
| - Fixed auto advance in string entry fields when pressing Up/Down in insert mode
 | ||
|   (reported by Udo Richter).
 | ||
| - Fixed handling the "Setup/OSD/Menu button closes" option when set to 'yes' in
 | ||
|   case a replay is active (thanks to Udo Richter).
 | ||
| - Improved cUnbufferedFile; USE_FADVISE is now defined in tools.c by default, so
 | ||
|   if you don't want to use "fadvise" you need to comment out that line (thanks to
 | ||
|   Artur Skawina).
 | ||
| - Fixed a missing ',' in the Swedish OSD texts (thanks to Arthur Konovalov).
 | ||
| - cDevice::Transferring() can now be used to determine whether the (primary)
 | ||
|   device is currently playing in Transfer Mode (based on a suggestion by
 | ||
|   Reinhard Nissl).
 | ||
| - The 'runvdr' script no longer uses the $VDRUSR environment variable to set
 | ||
|   the user id under which 'vdr' shall run. Just add the '-u username' option
 | ||
|   when you call 'runvdr'.
 | ||
| - Fixed multiple entries of the same subdirectory in the "Recordings" menu
 | ||
|   (reported by Christian Jacobsen).
 | ||
| - Enabled generating a core dump if VDR is run with a different user id (thanks
 | ||
|   to Ville Skytt<74>).
 | ||
| - Fixed handling the "Blue" key in the "Schedule" menu for the current channel
 | ||
|   (thanks to Rolf Ahrenberg).
 | ||
| - Renamed the Makefile target 'plugins-clean' to 'clean-plugins' (suggested by
 | ||
|   Sebastian Frei).
 | ||
| - Made all font and image data 'const' (thanks to Darren Salt).
 | ||
| - Fixed scrolling with Up/Down in case there are non-selectable items at the
 | ||
|   beginning or end of the menu (reported by Helmut Auer).
 | ||
| - Added cSkin::GetTextAreaWidth() and cSkin::GetTextAreaFont(), so that a plugin
 | ||
|   that wants to do special text formatting can do so (thanks to Alexander Rieger).
 | ||
| 
 | ||
| 2006-02-19: Version 1.3.43
 | ||
| 
 | ||
| - Removed an unnecessary toFile->SetReadAhead() from cutter.c (thanks to Artur
 | ||
|   Skawina).
 | ||
| - The "Back" key now restores the original string when pressed while editing a
 | ||
|   string item (suggested by Markus Hahn).
 | ||
| - Now stopping scanning the video directory if there are too many levels of
 | ||
|   symbolic links, which might indicate a recursive link loop (based on a patch
 | ||
|   from Helmut Auer).
 | ||
| - Improved OSD area handling in cDvbSpuDecoder (thanks to Marco Schl<68><6C>ler).
 | ||
| - Now logging the description (if present) in case a thread is canceled (suggested
 | ||
|   by Marco Schl<68><6C>ler).
 | ||
| - cMenuText now uses the given font (thanks to Rolf Ahrenberg).
 | ||
| - The ST:TNG skin now uses the fixed font if requested when displaying texts.
 | ||
| - Fixed some typos in the CONTRIBUTORS file (thanks to Frank Kr<4B>mmelbein).
 | ||
| - Changed offset and size handling in 'libsi' from 'unsigned' to 'signed', so that
 | ||
|   overflows can be better detected (thanks to Marcel Wiesweg).
 | ||
| - Checking data size in CaDescriptor::Parse() and LinkageDescriptor::Parse() of
 | ||
|   'libsi' to avoid crashes with invalid data (thanks to Marcel Wiesweg).
 | ||
| - Made CharArray::DataOwnData::assign() in 'libsi' more robust against invalid
 | ||
|   data (suggested by Oliver Endriss). Also changed CharArray::DataOwnData::Delete()
 | ||
|   so that it sets 'size' and 'data' to 0.
 | ||
| - Now resetting the channel number if the number entered through the numeric keys
 | ||
|   exceeds the maximum channel number (thanks to Rolf Ahrenberg).
 | ||
| - The language code in the 'X' component records of EPG data can now consist of
 | ||
|   two codes, separated by '+'.
 | ||
| - If a recording starts and there is no EPG data available for the recorded channel,
 | ||
|   the 'X' audio component records for the 'info.vdr' file are now generated from the
 | ||
|   channel's PID data.
 | ||
| - Externally provided EPG data (with table ID 0x00) now gets its component
 | ||
|   descriptors set from the broadcast data, so that language codes and descriptions
 | ||
|   are available (suggested by Andreas Brugger).
 | ||
| - When setting the audio track descriptions, the language codes are now also set
 | ||
|   in case this is a replay session (based on a patch from Rolf Ahrenberg).
 | ||
| - If a recording starts and the channel's audio PID data has more language code
 | ||
|   information than the EPG's component data, the code from the channel is taken.
 | ||
| - Fixed handling DPID when deciding whether to switch to 'Transfer Mode' (thanks
 | ||
|   to Marco Schl<68><6C>ler).
 | ||
| - Fixed replaying recordings of radio channels with many audio tracks (thanks to
 | ||
|   Reinhard Nissl).
 | ||
| - Added a comment to tChannelID::nid, explaining that is is actually the "original"
 | ||
|   network id.
 | ||
| 
 | ||
| 2006-02-26: Version 1.3.44
 | ||
| 
 | ||
| - Fixed setting the audio language codes in 'Transfer-Mode' (reported by Rolf
 | ||
|   Ahrenberg). The actual problem was the call to the Transferring() function in
 | ||
|   cDevice::AttachPlayer() before assigning the player.
 | ||
| - Fixed removing the '-' when entering a channel number where there is no other
 | ||
|   one that fits the input (thanks to Joachim Wilke).
 | ||
| - Fixed the 'libsi' function CharArray::checkSize(), which made a previous workaround
 | ||
|   in libsi/descriptor.c obsolete (thanks to Marcel Wiesweg).
 | ||
| - The "Ok" key in the "Jump" mode of the replay progress display now confirms the
 | ||
|   jump instead of closing the display (thanks to Christoph Haubrich).
 | ||
| - The 'summary' field of a timer definition has been renamed to 'aux', and is now
 | ||
|   only used for external applications to store auxiliary information with a timer,
 | ||
|   which has no meaning whatsoever to VDR itself.
 | ||
|   The contents of the 'aux' field of a timer is copied into the recording's
 | ||
|   'info.vdr' file, using the tag character '@'.
 | ||
| - The description of a recording is now taken exclusively from its related EPG
 | ||
|   data. If an application wants to use a different description it needs to set
 | ||
|   it with SVDRP/PUTE and use table ID 0x00, so that it won't be overwritten (as
 | ||
|   a side effect, however, this also disables VPS for such an event).
 | ||
| - There is no more "Summary" menu when pressing "Ok" in the "Timers" menu.
 | ||
|   The "Ok" key now always opens the "Edit timer" menu.
 | ||
| - The upper 16 bit of a timer's "flags" are no longer treated specially when a timer
 | ||
|   is modified in the "Edit timer" menu. If an external application needs to know if
 | ||
|   a timer was modified, it has to keep a copy of the timer's data and compare that
 | ||
|   to the actual data.
 | ||
| - The new function cRecordingInfo::ChannelID() can be used to retrieve the ID of
 | ||
|   the channel a recording was made from.
 | ||
| - The 'info.vdr' file of a recording now also contains the 'E' and 'V' records of
 | ||
|   the EPG event used when creating it.
 | ||
| - The option "Setup/OSD/Sort timers" has been removed. Timers are always sorted
 | ||
|   by their start time and priority.
 | ||
| - The "Blue" key in the "Timers" menu now displays the EPG info of the event the
 | ||
|   selected timer will record (if available). The "On/Off" function has been shifted
 | ||
|   to the "Red" button. Editing a timer is done by pressing "Ok".
 | ||
| - When determining which event a timer is going to record, all available events
 | ||
|   in the future are now taken into account (no more limit to 4 hours in the
 | ||
|   future). This has been done so that the event info is available in the "Timers"
 | ||
|   menu when pressing the "Blue" button. In order to avoid unnecessary work, each
 | ||
|   timer now has its own timestamp to control whether its schedule has changed
 | ||
|   since the last time its event has been set.
 | ||
| - Fixed setting events to timers in case a non-VPS event has expired.
 | ||
| - There is now a log message "timer ... set to event ..." when defining a timer
 | ||
|   from the EPG menu.
 | ||
| - Lines tagged with '#' in the 'info.vdr' file of a recording are now silently
 | ||
|   ignored when reading that file (suggested by Peter Bieringer). Such lines can
 | ||
|   be used by external tools to store arbitrary information.
 | ||
| - The 'event id' in EPG data has been extended to 32 bit, so that external tools
 | ||
|   can generate ids that don't collide with those from the DVB data stream
 | ||
|   (suggested by Matthias Schniedermeyer).
 | ||
| - The DrawBitmap() function now has a new parameter 'Overlay' that allows a bitmap
 | ||
|   to be drawn with a transparent background (thanks to Alexander Hans).
 | ||
| - Fixed cSchedule::GetFollowingEvent() in case there is currently no present event
 | ||
|   running (thanks to Pekka Mauno).
 | ||
| 
 | ||
| 2006-03-26: Version 1.3.45
 | ||
| 
 | ||
| - Fixed updating the "Info" button in the "Timers" menu.
 | ||
| - Reduced the number of events to actually check when setting events to timers.
 | ||
| - cMenuEditIntItem now checks the given value and forces it to be between the
 | ||
|   given min and max limits.
 | ||
| - The status changes of EPG events are now logged for all channels that have timers.
 | ||
| - Removed the log message "deleting plugin: ..." when shutting down VDR (thanks to
 | ||
|   Christoph Haubrich for reporting that this is irritating when calling "vdr --help").
 | ||
| - Fixed cReadLine::Read() for lines that end with the infamous "\r\n" (thanks to
 | ||
|   Rolf Ahrenberg).
 | ||
| - Fixed cDvbDevice::SetAudioBypass() in case setTransferModeForDolbyDigital is false
 | ||
|   (thanks to Werner Fink).
 | ||
| - Updated 'sources.conf' (thanks to Oleg Roitburd).
 | ||
| - Fixed the shutdown timeout (thanks to Alexander Wenzel).
 | ||
| - Only calling RemoveEmptyVideoDirectories() once in case a recording has been
 | ||
|   deleted (reported by Hardy Flor).
 | ||
| - Fixed deleting recordings that have been removed externally when running out of
 | ||
|   disk space (reported by Jan Lenz).
 | ||
| - Fixed handling repeating VPS timers (they stopped recording too early).
 | ||
| - Timer log messages now show "VPS" if this is a VPS timer.
 | ||
| - Fixed getting the present EPG event in case none is currently 'running' (it
 | ||
|   then returns the one that just ended).
 | ||
| - Fixed calling a plugin's main menu function while a message is being displayed
 | ||
|   (reported by Helmut Auer).
 | ||
| - Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | ||
| - Made cMenuRecordings::GetRecording() 'protected' (suggested by Marius Heidenstecker).
 | ||
| - Speeded up cRemux::ScanVideoPacket() (thanks to Reinhard Nissl).
 | ||
| - Enhanced logging EPG event data.
 | ||
| - Fixed format string handling (thanks to Darren Salt).
 | ||
| - The new function cDevice::ForceTransferMode() can be used to force the primary
 | ||
|   device into transfer mode (thanks to Reinhard Nissl).
 | ||
| - The 'version' of EPG events is now ignored when reading EPG data from 'epg.data'
 | ||
|   or via SVDRP/PUTE to avoid problems with double EPG events.
 | ||
| - The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning
 | ||
|   for events before the present event.
 | ||
| - Fixed some #include sequences.
 | ||
| - Single shot VPS timers are now only considered 'expired' if their associated
 | ||
|   EPG event has been explicitly set to SI::RunningStatusNotRunning.
 | ||
| - The check for timers to be deleted is now done only every 30 seconds.
 | ||
| 
 | ||
| 2006-04-09: Version 1.3.46
 | ||
| 
 | ||
| - Fixed handling broken PMT records (thanks to Marcel Wiesweg for pointing out how
 | ||
|   to detect these).
 | ||
| - Added a missing "Button$" for the Timer button and "Key$" in skinclassic.c
 | ||
|   (thanks to Rolf Ahrenberg).
 | ||
| - Fixed broken entry 'A111.1W' in sources.conf (reported by Luca Olivetti).
 | ||
| - Replaced the obsolete entry 'S21.5E' in the default 'diseqc.conf' with 'S13.0E'
 | ||
|   (reported by Ville Skytt<74>).
 | ||
| - Fixed learning keys when VDR is already running (thanks to Jurij Retzlaff).
 | ||
| - Fixed handling the system time transponder setting in the Setup/EPG menu, which
 | ||
|   was broken by the min/max fix in cMenuEditIntItem.
 | ||
| - VPS timers now record only events that have exactly the given start time.
 | ||
|   This fix also implements recording several subsequent events that have the
 | ||
|   same VPS time (like a sports event with intermittent news breaks).
 | ||
| - When checking for timers that have entered the "VPS margin", any free devices are
 | ||
|   now used to switch to the needed transponder. This improves cases where more than
 | ||
|   one VPS timer is about to start.
 | ||
| - Fixed handling the VPS margin in case the event's duration is shorter than the
 | ||
|   margin.
 | ||
| - Fixed handling VPS timers in case the primary device needs to switch to the
 | ||
|   timer's transponder.
 | ||
| - Now avoiding the 'actual' device when starting a recording, so that a Transfer
 | ||
|   Mode for live tv isn't interrupted.
 | ||
| - Fixed a typo in skins.h (thanks to Alexander Rieger).
 | ||
| - cSkins::QueueMessage() called from a background thread with an empty message
 | ||
|   now clears all messages that have been previously queued by that thread and have
 | ||
|   not yet beed displayed (thanks to Alexander Rieger).
 | ||
| - Fixed handling the color button texts when switching from the 'Schedule' menu of
 | ||
|   a channel without EPG info to the 'What's on now' menu (reported by Rolf
 | ||
|   Ahrenberg).
 | ||
| - cMenuEditIntItem and cMenuEditChanItem can now be given strings to label the
 | ||
|   minimum and maximum values, and the case that no channel has been selected,
 | ||
|   respectively.
 | ||
| - The initial channel and volume can now be defined in the "Setup/Miscellaneous"
 | ||
|   menu (based on a patch from Thomas Keil).
 | ||
| - When hitting the end of a recording in fast forward mode, VDR no longer switches
 | ||
|   back to normal speed if the recording is already finished (thanks to Reinhard
 | ||
|   Nissl).
 | ||
| - No longer calling cPlugin::ProcessArgs() if VDR is run with the --help or
 | ||
|   --version option, to avoid error messages from plugins (reported by Udo Richter).
 | ||
| - Now checking whether there is any text before calling cStatus::MsgOsdTextItem()
 | ||
|   (reported by Joachim Wilke).
 | ||
| 
 | ||
| 2006-04-17: Version 1.3.47
 | ||
| 
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Fixed a crash when setting the time transponder in the Setup menu, caused by the
 | ||
|   new 'noneString' in cMenuEditChanItem (reported by Thomas G<>nther).
 | ||
| - Added NULL checks to some strdup() calls in menuitems.c (suggested by Darren
 | ||
|   Salt).
 | ||
| - Removed the unnecessary 'value' member from cMenuEditItem.
 | ||
| - Fixed the initial setting of the time transponder setup parameter (reported
 | ||
|   by Thomas G<>nther).
 | ||
| - Fixed unnecessary Set() calls in cMenuEditIntItem::ProcessKey().
 | ||
| - Allowing a tolerance for symbol rate values that are off by one (thanks to
 | ||
|   Richard Lithvall).
 | ||
| - Added VBITeletextDescriptorTag, TeletextDescriptorTag, LocalTimeOffsetDescriptorTag
 | ||
|   and PremiereContentTransmissionDescriptor to 'libsi' (thanks to Marco Schl<68><6C>ler).
 | ||
| - Using geteuid() to check whether VDR is running as user 'root' (suggested by
 | ||
|   Tobias Grimm).
 | ||
| - Added a missing "Key$" in skincurses.c (reported by Darren Salt).
 | ||
| - Reintroduced the log message "deleting plugin: ..." when shutting down VDR (upon
 | ||
|   request by Ville Skytt<74>, as in the initial patch from Christoph Haubrich).
 | ||
| - Fixed the vdr.1 man page (a single DVB card can record and do live tv).
 | ||
| - The preferred audio language is now automatically selected when starting replay.
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - The new function cPlugin::Active() can be used by a plugin to indicate that it
 | ||
|   is still busy and the system should not shut down or restart (based on a patch
 | ||
|   from Sascha Volkenandt). See PLUGINS.html for details.
 | ||
| - Fixed setting the 'Delta' parameter when calling the shutdown script with
 | ||
|   no active timer (reported by Helge Lenz).
 | ||
| - In order to make sure that plugins are compiled with the same DVB driver header
 | ||
|   files as VDR itself, the definition of DVBDIR has been removed from the VDR
 | ||
|   Makefile. If you are using a driver version that has its header files at a location
 | ||
|   other than /usr/include/linux/dvb, you can define DVBDIR in the Make.config
 | ||
|   file (see also INSTALL). Note that if you already have a Make.config file of your
 | ||
|   own, you should add the lines
 | ||
| 
 | ||
|   ifdef DVBDIR
 | ||
|   INCLUDES += -I$(DVBDIR)/include
 | ||
|   endif
 | ||
| 
 | ||
|   to its end, as in the new Make.config.template.
 | ||
|   Any reference to DVBDIR should be removed from all plugins' Makefiles, like this:
 | ||
| 
 | ||
|   ------------------------------------------------------------
 | ||
|   --- PLUGINS/src/hello/Makefile  2005/11/11 13:20:14     1.10
 | ||
|   +++ PLUGINS/src/hello/Makefile  2006/04/15 11:58:46     1.11
 | ||
|   @@ -20,7 +20,6 @@
 | ||
| 
 | ||
|    ### The directory environment:
 | ||
| 
 | ||
|   -DVBDIR = ../../../../DVB
 | ||
|    VDRDIR = ../../..
 | ||
|    LIBDIR = ../../lib
 | ||
|    TMPDIR = /tmp
 | ||
|   @@ -40,7 +39,7 @@
 | ||
| 
 | ||
|    ### Includes and Defines (add further entries here):
 | ||
| 
 | ||
|   -INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
 | ||
|   +INCLUDES += -I$(VDRDIR)/include
 | ||
| 
 | ||
|    DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
 | ||
|   ------------------------------------------------------------
 | ||
| 
 | ||
|   Thanks to Marco Schl<68><6C>ler for pointing out this problem.
 | ||
| - Implemented kNext and kPrev keys (based on a patch from Peter Juszack).
 | ||
|   See MANUAL for details.
 | ||
| - Implemented kChanPrev (from a patch from Darren Salt).
 | ||
| - The "Update channels" parameter in the "Setup/DVB" menu has been extended to
 | ||
|   allow updating only the PIDs (see MANUAL for details). When updating to this
 | ||
|   version of VDR, please verify that the setting is as you want it to be, because
 | ||
|   the values have been shifted.
 | ||
| - The new APIVERSION (see config.h) now allows existing compiled plugins to be
 | ||
|   used with newer versions of VDR, as long as there have been no changes to the
 | ||
|   VDR header files since the last APIVERSION. Existing plugins' Makefiles should
 | ||
|   have all references to VDRVERSION changed to APIVERSION, like this:
 | ||
| 
 | ||
|   ------------------------------------------------------------
 | ||
|   --- PLUGINS/src/hello/Makefile  2006/04/15 11:58:46     1.11
 | ||
|   +++ PLUGINS/src/hello/Makefile  2006/04/16 09:03:50     1.12
 | ||
|   @@ -28,9 +28,9 @@
 | ||
| 
 | ||
|    -include $(VDRDIR)/Make.config
 | ||
| 
 | ||
|   -### The version number of VDR (taken from VDR's "config.h"):
 | ||
|   +### The version number of VDR's plugin API (taken from VDR's "config.h"):
 | ||
| 
 | ||
|   -VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
 | ||
|   +APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
 | ||
| 
 | ||
|    ### The name of the distribution archive:
 | ||
| 
 | ||
|   @@ -67,7 +67,7 @@
 | ||
| 
 | ||
|    libvdr-$(PLUGIN).so: $(OBJS)
 | ||
|           $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
 | ||
|   -       @cp $@ $(LIBDIR)/$@.$(VDRVERSION)
 | ||
|   +       @cp $@ $(LIBDIR)/$@.$(APIVERSION)
 | ||
| 
 | ||
|    dist: clean
 | ||
|           @-rm -rf $(TMPDIR)/$(ARCHIVE)
 | ||
|   ------------------------------------------------------------
 | ||
| - If a timer is newly created from within the "Schedule" menu, and its event is
 | ||
|   already running or has its start time within the next two minutes, it now goes
 | ||
|   directly into the "Edit timer" menu in order to allow the user to make further
 | ||
|   changes to timer parameters before the actual recording starts (inspired by
 | ||
|   Christian Wieninger's "epgsearch" plugin).
 | ||
| - Added format check to syslog_with_tid().
 | ||
| - Updated the INSTALL file's section about non-VDR files in the video directory
 | ||
|   (since version 1.3.38 disk access is done in a separate thread, so the watchdog
 | ||
|   timer won't hit).
 | ||
| - Changed the behaviour of the "Use small font" setup option to *always* use the small
 | ||
|   font if set to '3' - even if it would have been a fixed font (suggested by Ronny
 | ||
|   Kornexl).
 | ||
| - No longer using characters 0x01 and 0x02 for mapping single quote and slash in
 | ||
|   recording names (thanks to Patrick Fischer for reporting that this was a problem
 | ||
|   with XML). The single quote is not mapped at all, and the slash is interchanged
 | ||
|   with the tilde. Existing recordings will be handled like before, so there is
 | ||
|   no need to actually rename them.
 | ||
| - The cRemote::CallPlugin() function now has a boolean return value that tells
 | ||
|   the caller whether initiating the plugin call was successful (suggested by
 | ||
|   Reinhard Nissl). If it returns false, another plugin call is currently pending
 | ||
|   and the caller should try again later. This also means that the SVDRP command
 | ||
|   PLUG can now return an error code is the call fails.
 | ||
| - The new function cPlugin::MainThreadHook() can be used by plugins to perform
 | ||
|   actions in the context of the main program thread. Use this function with great
 | ||
|   care and only of you absolutely have to! See also PLUGINS.html.
 | ||
| 
 | ||
| 2006-04-23: Version 1.3.48
 | ||
| 
 | ||
| - Updated the GPL copies (thanks to Ville Skytt<74>).
 | ||
| - Fixed several spelling errors (thanks to Ville Skytt<74>).
 | ||
| - Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
 | ||
| - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | ||
| - Updated the French OSD texts (thanks to Pierre Briec).
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| - Updated the Romanian OSD texts (thanks to Lucian Muresan).
 | ||
| - Updated the Danish OSD texts (thanks to Mogens Elneff).
 | ||
| - Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | ||
| - Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
 | ||
| - Fixed wrong credits for the patch that was used to implement cPlugin::Active().
 | ||
| - Simplified the 'grep|awk|sed' command to retrieve the VDR/APIVERSION to a single
 | ||
|   'sed' call.
 | ||
| - Updated the Swedish OSD texts (thanks to Tomas Prybil).
 | ||
| - Modified the German OSD texts to be "less technical" (thanks to Andreas Brachold).
 | ||
| - Extended the version number reported with the '-V' option to also show the
 | ||
|   current APIVERSION (suggested by Thomas G<>nther).
 | ||
| - Fixed handling empty titles in cEvent::FixEpgBugs() (reported by Rolf Ahrenberg).
 | ||
| - Fixed some missing '-' in the German OSD texts (thanks to Walter Koch).
 | ||
| - Added an error message about plugins that don't honor APIVERSION in their Makefile
 | ||
|   (based on a suggestion by Udo Richter).
 | ||
| - Fixed a format string in recording.c to avoid a compiler warning on 64bit systems
 | ||
|   (thanks to Christian Wieninger for reporting, and Werner Schweer for pointing out
 | ||
|   that the 'z' modifier should be used here).
 | ||
| - Ignoring k_Repeat when deciding whether the same key has been pressed in string
 | ||
|   input fields (based on a patch from Marko M<>kel<65>).
 | ||
| 
 | ||
| 2006-04-28: Version 1.3.49
 | ||
| 
 | ||
| - Fixed initializing 'noapiv' in the Makefile (reported by Ronny Kornexl).
 | ||
| - Fixed extracting APIVERSION to work with older versions of 'sed' (reported by
 | ||
|   Oliver Endriss; thanks also to Udo Richter for a shorter version of the 'sed'
 | ||
|   expression).
 | ||
| - Fixed broken APIVERSION extraction line in 'newplugin' (thanks to Oliver Endriss).
 | ||
| - Fixed entering '0' in a cMenuEditIntItem (reported by Mirko D<>lle).
 | ||
| - Updated the Italian OSD texts (thanks to Nino Gerbino).
 | ||
| - Added a note about adding 'INCLUDES += -I$(DVBDIR)/include' to an existing
 | ||
|   Make.config (problem reported by Markus Ehrnsperger).
 | ||
| - Fixed handling the cPluginManager::Active() result when pressing the "Power" key
 | ||
|   (reported by Werner F<>rber).
 | ||
| - Added a hint about commenting out the line '#define USE_FADVISE' in tools.c in
 | ||
|   case of problems with replaying in fast forward mode if the video directory is
 | ||
|   mounted via a Samba share (reported by Andy Grobb).
 | ||
| - Changed the "Really restart?" prompt in the call to cPluginManager::Active() in
 | ||
|   menu.c to "restart anyway?" (suggested by Rolf Ahrenberg).
 | ||
| - Removed the obsolete "'1' for encrypted radio channels" part from the description
 | ||
|   of the VPID in vdr.5 (reported by Alexander Hans).
 | ||
| - Fixed tuning to the channel of a VPS timer if the device is the actual device.
 | ||
| 
 | ||
| 2006-04-30: Version 1.4.0
 | ||
| 
 | ||
| - Fixed handling the "Power" key in case a recording is going on and no plugin
 | ||
|   is active (thanks to Udo Richter; bug reported by Dominique Simon).
 | ||
| - Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
 | ||
| - Fixed a memory leak in handling external EPG data (thanks to Tobias Grimm).
 | ||
| - Fixed a memory leak in closing the video file during replay (thanks to Tobias Grimm).
 | ||
| - Updated the Italian OSD texts (thanks to Nino Gerbino and Antonio Ospite).
 | ||
| - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | ||
| 
 | ||
| 2006-05-14: Version 1.4.0-1
 | ||
| 
 | ||
| - Updated 'S110W' in 'sources.conf'.
 | ||
| - Adjusted the 'runvdr' script so that the user can fill in the functions to
 | ||
|   detect, load and unload the necessary driver modules (thanks to M. Kiesel for
 | ||
|   reporting that it still used DVBDIR).
 | ||
| - Added 'eval' to the $VDRCMD call in 'runvdr' to avoid problems with quoting
 | ||
|   (suggested by Udo Richter).
 | ||
| - Fixed missing ',' in the Italian and Polish OSD texts (thanks to Marko M<>kel<65>).
 | ||
| - Updated the Czech OSD texts (thanks to Vladim<69>r B<>rta).
 | ||
| - Fixed handling the "Power" key in case a timer is about to start recording
 | ||
|   (thanks to Udo Richter).
 | ||
| - Fixed the character 'r' in fontosd and fontsml for iso8859-2 (thanks to Vladim<69>r
 | ||
|   B<>rta).
 | ||
| - When checking whether a VPS timer has entered the "VPS margin", the event's start
 | ||
|   time is now used instead of the timer's start time, because otherwise events that
 | ||
|   start way off of their VPS time wouldn't be recorded correctly.
 | ||
| - If VPS timers are active, their events are now being kept up to date if there
 | ||
|   are any free devices available.
 | ||
| - Fixed the character #207 in fontosd for iso8859-2 (thanks to Vladim<69>r B<>rta).
 | ||
| - Fixed handling unknown codes when learning LIRC remote control codes (reported
 | ||
|   by Helmut Auer).
 | ||
| - Since some channels (especially the Austrian ORF) randomly change the ids of their
 | ||
|   EPG events, VDR now gives the start time precedence when searching for existing
 | ||
|   events.
 | ||
| - Fixed automatically updating the CAM menu in case the whole operation (for
 | ||
|   instance a firmware update) takes longer than the menu timeout.
 | ||
| 
 | ||
| 2006-05-26: Version 1.4.0-2
 | ||
| 
 | ||
| - Removed leftover LSMOD=... line from 'runvdr'.
 | ||
| - Modified the Makefile to copy additional libraries a plugin might provide (suggested
 | ||
|   by Wayne Keer). See PLUGINS.html for details.
 | ||
| - Fixed handling Transfer Mode when replaying Dolby Digital audio and the option
 | ||
|   '-a' was given (based on a patch from Werner Fink). To avoid having to increment
 | ||
|   the API version, several #if checks have been introduced around this. These will
 | ||
|   be removed once the API version actually needs to be incremented.
 | ||
| - Fixed deleting the 'skinDescriptions' in cMenuSetupOSD::~cMenuSetupOSD() (thanks
 | ||
|   to Tobias Grimm).
 | ||
| - Fixed calculating the start time of repeated timers with "first day" (thanks to
 | ||
|   Udo Richter).
 | ||
| - Now setting a timer's cached start time to 0 after a call to Skip() (thanks to
 | ||
|   Udo Richter).
 | ||
| - Fixed handling the running status of EPG events in case the "Schedule" menu is
 | ||
|   currently open (i.e. a write lock on the schedules data can't be achieved).
 | ||
| - Fixed handling VPS timers in case the EPG event hasn't been 'seen' in a while.
 | ||
| - Fixed calculating the cache size in cUnbufferedFile::Read() (thanks to Artur Skawina).
 | ||
| - Removed -fPIC from VDR's and libsi's Makefile (suggested by Prakash Punnoor).
 | ||
| - Modifed the device selection to better handle timer conflicts (reported by
 | ||
|   Christian Wieninger).
 |