mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			6676 lines
		
	
	
		
			378 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			6676 lines
		
	
	
		
			378 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 system 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
 | 
						||
  permission 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 Portuguese 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 altogether).
 | 
						||
  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 with 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 occurred.
 | 
						||
- 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.tvdr.de/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 modified 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 semantics 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.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.
 | 
						||
- 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 considered 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 considered 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 artifacts 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 considered 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 Catalan 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 entries 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 this one).
 | 
						||
- Some corrections to the Catalan 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
 | 
						||
  this 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 reporting 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 unpleasantly 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, originally 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
 | 
						||
  bottom 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 queuing 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 been 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 '2' - 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-28: 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).
 | 
						||
- Modified the device selection to better handle timer conflicts (reported by
 | 
						||
  Christian Wieninger).
 | 
						||
- Avoiding a compiler warning in libsi's TypeLoop::operator[].
 | 
						||
- Now processing the "frequency list descriptor" (based on a patch from Anssi Hannula).
 | 
						||
- Improved the repeat function for LIRC remote controls (thanks to Joerg Riechardt).
 | 
						||
- Fixed moving channels, which sometimes stopped the current replay session
 | 
						||
  (reported by Mirko D<>lle).
 | 
						||
- Fixed deleting channels in case the current channel's number changes (reported
 | 
						||
  by Mirko D<>lle).
 | 
						||
 | 
						||
2006-06-04: Version 1.4.0-3
 | 
						||
 | 
						||
- Fixed the PremiereContentTransmissionDescriptor in 'libsi' (thanks to Stefan
 | 
						||
  Huelswitt).
 | 
						||
- Removed all the compatibility '#if APIVERSNUM...' stuff and instead increased
 | 
						||
  the API version number - plugins will have to be recompiled.
 | 
						||
- Removed the call to pthread_setschedparam(childTid, SCHED_RR, 0) in thread.c,
 | 
						||
  because it caused a compiler warning with post-2.4 glibc (reported by Ville Skytt<74>).
 | 
						||
  Since the third parameter has to be non-null to have any effect, the call was
 | 
						||
  presumably a NOP, anyway.
 | 
						||
- Fixed the 'clean-plugins' target in the Makefile to also remove additional
 | 
						||
  plugin libraries (thanks to Wayne Keer).
 | 
						||
- Applied the fixes to moving and deleting channels from version 1.4.0-2 to the
 | 
						||
  SVDRP commands MOVC and DELC as well.
 | 
						||
- Fixed handling the display of the '*' indicator in the "What's on now/next?"
 | 
						||
  menu, so that events that haven't been "seen" in the data stream within 30
 | 
						||
  seconds won't be shown as "running".
 | 
						||
- Fixed handling tabbed item display in 'skincurses'.
 | 
						||
- Increased the column spacing in the "Recordings" menu (was too small for the
 | 
						||
  'skincurses' plugin).
 | 
						||
- When the 'skincurses' plugin is loaded, it automatically sets the 'curses'
 | 
						||
  skin as the current one. This doesn't modify the Setup.OSDSkin parameter, so
 | 
						||
  that after using 'skincurses' (for instance for debugging) the previously
 | 
						||
  selected skin will be used again.
 | 
						||
- Added some log messages when setting the current skin.
 | 
						||
- Only making a second attempt to set the current skin at startup if the first
 | 
						||
  attempt has failed.
 | 
						||
- Now switching to non-VPS timers' channels 60 seconds before the timer starts
 | 
						||
  (if a free device is available), to allow for the updating of EPG data and CA
 | 
						||
  descriptors before the actual recording starts.
 | 
						||
 | 
						||
2006-06-11: Version 1.4.1
 | 
						||
 | 
						||
- Changed the log messages when grabbing an image from 'isyslog()' to 'dsyslog()'
 | 
						||
  so that they can be suppressed in normal operation mode to avoid clogging the
 | 
						||
  log file in case this function is used frequently (suggested by Helmut Auer).
 | 
						||
 | 
						||
2006-06-18: Version 1.4.1-1
 | 
						||
 | 
						||
- Added "-fPIC" to the compiler options in Make.config.template when compiling
 | 
						||
  plugins (thanks to Udo Richter). If you use your own Make.config file, you may
 | 
						||
  want to add these lines there, too.
 | 
						||
- Added some comment to cDevice::GetDevice() to explain how the individual
 | 
						||
  conditions are put together to make a decision on which device to use.
 | 
						||
- Updated 'S13E' in 'sources.conf' (thanks to Antti Hartikainen).
 | 
						||
- Now making sure VPS timers don't get stuck with outdated events, and that the
 | 
						||
  actual device isn't used for updating a VPS timer's event as long as other
 | 
						||
  free devices are available.
 | 
						||
- Modified rcu.c to better handle RC5 codes.
 | 
						||
- Added a missing variable initialization in cRingBufferLinear::cRingBufferLinear()
 | 
						||
  (thanks to Prakash Punnoor).
 | 
						||
- Fixed handling relative link targets in the ReadLink() function (reported by
 | 
						||
  Patrick Cernko).
 | 
						||
- Now making sure a VPS timer has a schedule in case the epg.data file didn't
 | 
						||
  contain one when VDR was started.
 | 
						||
 | 
						||
2006-07-23: Version 1.4.1-2
 | 
						||
 | 
						||
- Fixed the Makefile of the 'servicedemo' plugin, so that it defines the
 | 
						||
  PLUGIN macro, which allows the Make.config file to react properly when
 | 
						||
  compiling the plugin (reported by Bernd Melcher).
 | 
						||
  Note to all plugin developers: a plugin's Makefile *must* define the PLUGIN
 | 
						||
  macro, even if it doesn't use it itself!
 | 
						||
- Added a comment regarding the PLUGIN macro to the 'newplugin' script.
 | 
						||
- Added '--vfat' to the vdr.1 man page (reported by Udo Richter).
 | 
						||
- Removed a double fdopen() in cPipe::Open() (reported by Stefan Huelswitt).
 | 
						||
- Fixed handling the running status of EPG events before the currently running one,
 | 
						||
  in case they are added after the current event.
 | 
						||
- cEIT::cEIT() now calls pSchedule->SetPresentSeen() even if OnlyRunningStatus is
 | 
						||
  true.
 | 
						||
- Newlines in title and short text of an EPG event are now changed into blanks only
 | 
						||
  after all other fixes, because a short text might become a description.
 | 
						||
- Fixed handling network masks in the svdrphosts.conf file (thanks to Patrick
 | 
						||
  Maier).
 | 
						||
- Fixed handling relative volume settings in the call to cStatus::MsgSetVolume()
 | 
						||
  (reported by Norbert Wentz).
 | 
						||
- Added a missing initialization of 'mutex' in cCiMenu::cCiMenu() and removed
 | 
						||
  some superfluous semicolons in ci.c (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed handling client side termination of SVDRP connections (thanks to Frank
 | 
						||
  Schmirler).
 | 
						||
- cDevice::GetDevice() now prefers any device that's already receiving and doesn't
 | 
						||
  require detaching receivers (suggested by Anssi Hannula).
 | 
						||
- Fixed handling numeric keys in the channel display after switching channel groups
 | 
						||
  (thanks to Andreas Regel).
 | 
						||
- Menu items derived from cMenuEditIntItem now loop though their values if they
 | 
						||
  have a dedicated minimum or maximum limit (suggested by Andy Grobb). Looping is
 | 
						||
  only done for normal keypresses, not for repeated ones. This allows the user to
 | 
						||
  scroll the value all the way to the limit by keeping the key pressed.
 | 
						||
 | 
						||
2006-08-06: Version 1.4.1-3
 | 
						||
 | 
						||
- Fixed assigning schedules to channels in case there is no initial EPG information
 | 
						||
  (thanks to Frank Schmirler).
 | 
						||
- Increased the APIVERSION to allow plugins that relied on the cStatus::MsgSetVolume()
 | 
						||
  bug to react properly (suggested by Stefan Huelswitt).
 | 
						||
- Fixed cDevice::ToggleMute() (thanks to Christoph Haubrich).
 | 
						||
- Fixed deleting the last character of a string menu item in insert mode (thanks
 | 
						||
  to Udo Richter).
 | 
						||
- The /video/.update file is now touched _after_ an editing process is finished
 | 
						||
  in order to avoid excessive disk access (thanks to Artur Skawina).
 | 
						||
- Fixed handling the running status of EPG events before the currently running one,
 | 
						||
  in case they are added after the current event (cont'd from version 1.4.1-2).
 | 
						||
- Modified the shutdown mechanism, so that the shutdown script is never given a
 | 
						||
  time in the past (reported by Helmut Auer). If a timer is currently recording,
 | 
						||
  or a recording would start within the next 30 minutes (default for the "Min.
 | 
						||
  event timeout" setup parameter), and the user insists in shutting down now, the
 | 
						||
  reboot time given to the shutdown script will correspond to a time that is
 | 
						||
  "Min. event timeout" minutes (default is 30) in the future.
 | 
						||
- Avoiding shutdown message "Recording in ... minutes, shut down anyway?" with
 | 
						||
  a negative number of minutes (reported by Udo Richter).
 | 
						||
- Fixed getting the next active timer when shutting down (thanks to Udo Richter).
 | 
						||
- Modified the cSVDRP::Close() function to avoid code duplication.
 | 
						||
 | 
						||
2006-08-13: Version 1.4.1-4
 | 
						||
 | 
						||
- Fixed converting the port number in the "connect from..." log message of SVDRP
 | 
						||
  (thanks to Ville Skytt<74>).
 | 
						||
- Made the cCiSession members sessionId and resourceId uint16_t and uint32_t,
 | 
						||
  respectively, to match their types in the CI session data (thanks to Ville Skytt<74>
 | 
						||
  for reporting that there are places where ntohs() is assigned to different types).
 | 
						||
- Changed the way a device is selected for receiving in order to keep devices with
 | 
						||
  CAMs better available, even if this means recording on the primary device (reported
 | 
						||
  by J<>rn Reder; thanks to Anssi Hannula for improving handling Transfer Mode devices
 | 
						||
  in this).
 | 
						||
- No longer stopping removing empty directories if an error occurs (thanks to
 | 
						||
  Oliver Endriss).
 | 
						||
- Added a log error message to cPlugin::ConfigDirectory() in case a plugin calls it
 | 
						||
  from a separate thread (reported by Udo Richter).
 | 
						||
 | 
						||
2006-08-20: Version 1.4.1-5
 | 
						||
 | 
						||
- Replaced the "quick workaround for additional live audio PIDs" in
 | 
						||
  cDvbDevice::SetChannelDevice() with an actual solution in
 | 
						||
  cDvbDevice::SetAudioTrackDevice() in order to prevent sticky PIDs in CAMs,
 | 
						||
  which caused long switching times or completely blank screens when switching
 | 
						||
  between encrypted channels on the same transponder (reported by Tomas Berglund).
 | 
						||
- Adapted cThread::ThreadId() to recent kernels (thanks to Ville Skytt<74>).
 | 
						||
- Added --remove-destination to the 'cp' command for binaries in the Makefile to
 | 
						||
  avoid a crash in case a new version is installed on a running system (suggested
 | 
						||
  by Petri Hintukainen).
 | 
						||
- Fixed handling "Ca Info" in case the CAM sends this again if the smart card is
 | 
						||
  replaced with a different one.
 | 
						||
 | 
						||
2006-08-27: Version 1.4.2
 | 
						||
 | 
						||
- Revoked the change to cDevice::GetDevice() that was introduced in version 1.4.1-2,
 | 
						||
  which made it prefer any device that's already receiving and doesn't require
 | 
						||
  detaching receivers. This change has caused some unwanted behavior, so further
 | 
						||
  testing is necessary.
 | 
						||
 | 
						||
2006-09-03: Version 1.4.2-1
 | 
						||
 | 
						||
- Added LC_ALL to the checks for UTF-8 at startup (suggested by Matthias Schwarzott).
 | 
						||
- Fixed the cTimer::operator=() so that it won't mess up the cListObject's pointers
 | 
						||
  (reported by Alexander Rieger).
 | 
						||
- Fixed a memory leak in the cTimer::operator=() when using the 'aux' string
 | 
						||
  (reported by Alexander Rieger).
 | 
						||
- Fixed processing the PDCDescriptor in 'libsi' on big endian systems (thanks to
 | 
						||
  Martin Ostermann).
 | 
						||
- Fixed handling relative volume settings that unmute the audio in the call to
 | 
						||
  cStatus::MsgSetVolume() (reported by Oliver Endriss).
 | 
						||
 | 
						||
2006-09-09: Version 1.4.2-2
 | 
						||
 | 
						||
- Fixed cTimer::operator=() in case a cTimer variable is assigned to itself (thanks
 | 
						||
  to Alexander Rieger).
 | 
						||
- Implemented a copy constructor for cTimer (thanks to Udo Richter for reporting that
 | 
						||
  an assignment in svdrp.c didn't use the cTimer::operator=()).
 | 
						||
 | 
						||
2006-09-17: Version 1.4.2-3
 | 
						||
 | 
						||
- Added --remove-destination to the 'cp' command for binaries in the Makefiles of
 | 
						||
  the plugins (thanks to Rolf Ahrenberg).
 | 
						||
- The 'skincurses' plugin now adjusts the size of the OSD to the size of the console
 | 
						||
  window.
 | 
						||
- Fixed deleting expired VPS timers (under certain conditions a timer could have been
 | 
						||
  deleted before it even started recording).
 | 
						||
- Updated the Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten).
 | 
						||
- Fixed handling video directory updates in case the timestamp of the .update file
 | 
						||
  is in the future (thanks to Petri Hintukainen).
 | 
						||
 | 
						||
2006-09-23: Version 1.4.3
 | 
						||
 | 
						||
- Official release.
 | 
						||
 | 
						||
2006-10-08: Version 1.4.3-1
 | 
						||
 | 
						||
- The function cThread::Cancel() now only sets 'running' to false and does not
 | 
						||
  actually kill the thread if the special value -1 is given (suggested by Udo Richter).
 | 
						||
- Changed the I18nNormalizeLanguageCode() check to also allow blanks (and all other
 | 
						||
  printable characters) in the language codes (thanks to Boguslaw Juza for reporting
 | 
						||
  that there are stations that use blanks in these codes). Blanks are replaced with
 | 
						||
  underlines, so that all parts of VDR that rely on language codes to be one word
 | 
						||
  (without blanks) work as expected.
 | 
						||
- Now clearing an event's Title, ShortText and Description if there is no
 | 
						||
  ShortEventDescriptor or ExtendedEventDescriptor, respectively (thanks to Boguslaw
 | 
						||
  Juza for reporting that events without an ExtendedEventDescriptor may get
 | 
						||
  duplicate information in their ShortText through the EPG bugfixes in case they
 | 
						||
  are received again).
 | 
						||
- Fixed handling video directory updates in case an other process has touched the
 | 
						||
  .update file after the last NeedsUpdate() check (thanks to Petri Hintukainen).
 | 
						||
- Fixed handling language codes and descriptions of recorded audio tracks on channels
 | 
						||
  with multiple tracks where not all of them appear in the event data (reported by
 | 
						||
  Boguslaw Juza).
 | 
						||
 | 
						||
2006-10-15: Version 1.4.3-2
 | 
						||
 | 
						||
- Fixed clearing an event's Title, ShortText and Description in case the data comes
 | 
						||
  from an external source.
 | 
						||
- Updated the Hungarian language texts (thanks to Guido Josten).
 | 
						||
- Fixed a possible crash if cPluginManager::GetPlugin() is called with a NULL
 | 
						||
  pointer (thanks to Petri Hintukainen).
 | 
						||
- Fixed displaying the error log message in case an unknown plugin was requested
 | 
						||
  in a key macro (thanks to Petri Hintukainen).
 | 
						||
- Keys from expanded key macros are now put into the front of the key queue to
 | 
						||
  avoid problems if the queue is not empty at that time (based on a patch from
 | 
						||
  Petri Hintukainen).
 | 
						||
- cKeyMacro now has an explicit counter for the number of keys it contains.
 | 
						||
- cRemote::PutMacro() now sets a lock while it expands the macro (thanks to
 | 
						||
  Petri Hintukainen).
 | 
						||
- Fixed handling plugins from cRemote::PutMacro() and cRemote::CallPlugin()
 | 
						||
  (based on a patch from Petri Hintukainen).
 | 
						||
- Increased the size of the key queue to avoid problems with long key macros.
 | 
						||
 | 
						||
2006-10-22: Version 1.4.3-3
 | 
						||
 | 
						||
- Fixed setting audio track descriptions after a replay has been stopped (reported
 | 
						||
  by Ulf Kiener, thanks to Marco Schl<68><6C>ler for pointing out what caused the problem).
 | 
						||
 | 
						||
2006-10-29: Version 1.4.3-4
 | 
						||
 | 
						||
- Fixed deleting EPG events that have a running status of "pausing" or higher.
 | 
						||
- Fixed handling NITs with more than one delivery system descriptor tag for the
 | 
						||
  same transponder.
 | 
						||
 | 
						||
2006-11-04: Version 1.4.4
 | 
						||
 | 
						||
- Fixed displaying the replay mode symbol in case of "Multi speed mode" (reported
 | 
						||
  by Marco Schl<68><6C>ler).
 | 
						||
 | 
						||
2006-12-03: Version 1.4.4-1
 | 
						||
 | 
						||
- Some improvements to the man pages (thanks to Ville Skytt<74>).
 | 
						||
- Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter).
 | 
						||
- Made the getskyepg.pl script of the 'sky' plugin send a user agent message to
 | 
						||
  the server, according to the rules at http://bleb.org/tv/data/listings.
 | 
						||
  If your version of 'wget' doesn't support the -U option to set the user agent,
 | 
						||
  use the new option -U of getskyepg.pl to have the information added to the URL
 | 
						||
  as a query string.
 | 
						||
- The getskyepg.pl script now replaces "&" with "&".
 | 
						||
- Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl).
 | 
						||
- Fixed a typo in the change to the "Use small font" setup option in version 1.3.47
 | 
						||
  in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger).
 | 
						||
- Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas
 | 
						||
  Brugger). This required the APIVERSION to be increased, so plugins will have to
 | 
						||
  be recompiled.
 | 
						||
- Now calling cPluginManager::Active() only if VDR is really trying to shut down,
 | 
						||
  and waiting for 5 minutes before calling it again (thanks to J<>rg Wendel for
 | 
						||
  reporting that cPlugin::Active() was called too often, and to Udo Richter for
 | 
						||
  some hints on how to improve this).
 | 
						||
- Replaced 'unsigned long' with 'uint32_t' and 'uint64' with 'uint64_t' to
 | 
						||
  avoid problems on 64-bit machines.
 | 
						||
 | 
						||
2006-12-03: Version 1.4.4-2
 | 
						||
 | 
						||
- Added '#include <stdint.h>' to font.h (reported by Peter Pinnau).
 | 
						||
- Added a compatibility define for 'uint64' to tools.h, so that existing
 | 
						||
  plugins don't need to be modified immediately (reported by Suur Karu).
 | 
						||
  This will be removed in version 1.5.
 | 
						||
 | 
						||
2007-01-05: Version 1.4.4-3
 | 
						||
 | 
						||
- Fixed a possible segfault if VDR gets terminated while a message is displayed
 | 
						||
  (thanks to Udo Richter).
 | 
						||
- Fixed the INSTALL section on retrying shutdown later (reported by Udo Richter).
 | 
						||
- When entering text via the numeric keys, the characters are now checked against
 | 
						||
  the allowed characters (thanks to Frank Schmirler).
 | 
						||
- Added a missing break statement in cCiHandler::OpenSession().
 | 
						||
 | 
						||
2007-01-07: Version 1.4.5
 | 
						||
 | 
						||
- Official release.
 | 
						||
 | 
						||
2007-01-07: Version 1.5.0
 | 
						||
 | 
						||
- The CAM handling has been refactored. Instead of a cCiHandler per device there
 | 
						||
  is now an abstract cCiAdapter and a cCamSlot. This allows each slot to be
 | 
						||
  accessed individually.
 | 
						||
- The general 15 seconds workaround time before opening the CAM menu has been
 | 
						||
  removed. If the CAM menu doesn't open within a timeout, the enter menu command
 | 
						||
  is now sent again.
 | 
						||
- If a CAM is reset or pulled and reinserted, it now automatically starts
 | 
						||
  decrypting the current channel again.
 | 
						||
- The Setup/CAM menu now dynamically refreshes its items and displays whether
 | 
						||
  a CAM is present or ready. The 'Reset' function no longer leaves the menu.
 | 
						||
- The CAM menu will now be opened when pressing the Ok key on a slot entry.
 | 
						||
- The CAM menu now stays within the current menu context and doesn't close and
 | 
						||
  reopen the menu every time an option is selected.
 | 
						||
- When an encrypted channel is switched to for the first time, VDR now checks
 | 
						||
  explicitly whether a CAM can actually decrypt that channel. If there is more
 | 
						||
  than one CAM in the system that claims to be able to decrypt the channel,
 | 
						||
  they are all tried in turn.
 | 
						||
  To make this possible, an encrypted channel needs to be received in Transfer
 | 
						||
  Mode when it is switched to for the first time, so that VDR can determine
 | 
						||
  whether the TS packets are actually decrypted. Once a channel is known to
 | 
						||
  be decrypted by a particular CAM, the next time it is switched to it will
 | 
						||
  be shown in normal live viewing mode.
 | 
						||
- A cDevice now automatically detaches all cReceiver objects that receive PIDs
 | 
						||
  that can't be decrypted with the current CAM. A plugin that attaches a cReceiver
 | 
						||
  to a device should therefore watch the receiver's IsAttached() function to
 | 
						||
  see if it is still attached to the device.
 | 
						||
- The cReceiver constructor no longer takes an 'int Ca' as its first parameter,
 | 
						||
  but rather a 'tChannelID ChannelID'. This is necessary for the device to be
 | 
						||
  able to determine which CAM a particular channel can be decrypted with. If the
 | 
						||
  channel is known to be unencrypted, or a plugin doesn't want to provide the
 | 
						||
  channel id for other reasons, an invalid tChannelID() can be given.
 | 
						||
- The cThread::Start() function now waits until a previous incarnation of this
 | 
						||
  thread has actually stopped. Before this it could happen that a thread's
 | 
						||
  Cancel(-1) function was called and immediately after that it was started again,
 | 
						||
  but the Start() function still found it to be 'active'.
 | 
						||
- The parameter NeedsDetachReceivers in cDevice::GetDevice(const cChannel *Channel, ...)
 | 
						||
  has been removed. A call to this function will automatically detach all receivers
 | 
						||
  from the device if it returns a non-NULL pointer.
 | 
						||
- The cTimeMs class now accepts an initial timeout value in its constructor.
 | 
						||
- A CAM is now explicitly instructed to stop decrypting when switching away from
 | 
						||
  an encrypted channel.
 | 
						||
- If the CAM in use can decrypt several channels at the same time, VDR can
 | 
						||
  now make use if this capability. Whether or not a CAM can decrypt more
 | 
						||
  than one channel is determined by sending it an initial empty QUERY command
 | 
						||
  and testing whether it replies to it.
 | 
						||
- Ca values in the range 0...F in channels.conf can still be used to assign a channel
 | 
						||
  to a particular device, but this will no longer work with encrypted channels because
 | 
						||
  without valid CA ids VDR can't decide which CAM slot to use. However, since VDR now
 | 
						||
  automatically determines which CAM can decrypt which channel, setting fixed
 | 
						||
  channel/device relations should no longer be necessary.
 | 
						||
  IF AN ENCRYPTED CHANNEL CAN'T BE DECRYPTED AND YOU HAVE A CA VALUE IN THE RANGE
 | 
						||
  0...F FOR THAT CHANNEL, SET IT TO 0 (FTA) AND TUNE TO THE CHANNEL AGAIN.
 | 
						||
 | 
						||
2007-01-28: Version 1.4.5-1
 | 
						||
 | 
						||
- Fixed i18n characters for the Hungarian texts (thanks to Thomas G<>nther).
 | 
						||
- Now using cPipe instead of popen() in cCommand::Execute() to avoid problems
 | 
						||
  with open file handles when starting background commands (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
 | 
						||
2007-02-24: Version 1.4.5-2
 | 
						||
 | 
						||
- Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache).
 | 
						||
- Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich).
 | 
						||
- Fixed handling error status in cDvbTuner::GetFrontendStatus() (thanks to
 | 
						||
  Reinhard Nissl).
 | 
						||
 | 
						||
2007-03-03: Version 1.4.6
 | 
						||
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
 | 
						||
2007-02-25: Version 1.5.1
 | 
						||
 | 
						||
- Added cDevice::HasCi() so that devices with Common Interface can be avoided
 | 
						||
  when tuning to an FTA channel, thus preserving the CAM resources even on budget
 | 
						||
  DVB cards (suggested by Petri Helin).
 | 
						||
- Fixed i18n characters for the Hungarian texts (thanks to Thomas G<>nther).
 | 
						||
- Now using cPipe instead of popen() in cCommand::Execute() to avoid problems
 | 
						||
  with open file handles when starting background commands (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
- Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache).
 | 
						||
- Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich).
 | 
						||
- Adapted 'libsi' to DVB-S2 (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed handling error status in cDvbTuner::GetFrontendStatus() (thanks to
 | 
						||
  Reinhard Nissl).
 | 
						||
- Shutdown handling has been rewritten (thanks to Udo Richter).
 | 
						||
- Plugins can now implement the new function WakeupTime() to request VDR to wake
 | 
						||
  up at a particular time (thanks to Udo Richter).
 | 
						||
- The HUP signal now forces a restart of VDR (thanks to Udo Richter).
 | 
						||
- cThread::EmergencyExit() has been replaced by ShutdownHandler.RequestEmergencyExit().
 | 
						||
- Several references to "button" in a remote control context have been changed
 | 
						||
  to "key" (based on a report from Marko M<>kel<65> regarding the "Menu button closes"
 | 
						||
  text). The "MenuButtonCloses" parameter in 'setup.conf' has therefore been
 | 
						||
  renamed to "MenuKeyCloses", accordingly. This will result in an "unknown config
 | 
						||
  parameter: MenuButtonCloses" error message in the log file, so you may want to
 | 
						||
  remove that entry from your 'setup.conf' file.
 | 
						||
- Simplified the error handling in cDvbTuner::GetFrontendStatus() (based on a
 | 
						||
  discussion with Reinhard Nissl).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Increased the maximum number of DVB devices to 8 (thanks to Rolf Ahrenberg).
 | 
						||
- The new Setup parameter "Channel entry timeout" can be used to customize the time
 | 
						||
  since the last keypress until a numerically entered channel number is considered
 | 
						||
  complete, and the channel is switched (suggested by Helmut Auer). Setting this
 | 
						||
  parameter to 0 turns off the automatic channel switching, and the user will
 | 
						||
  have to confirm the entry by pressing the "Ok" key.
 | 
						||
 | 
						||
2007-04-22: Version 1.5.2
 | 
						||
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed handling user activity for shutdown, which I had messed when adopting Udo's
 | 
						||
  original patch (thanks to Udo Richter).
 | 
						||
- Added Turkish language texts (thanks to Oktay Yolge<67>en).
 | 
						||
- Added missing rules for generating iso8859-13 font to Makefile.
 | 
						||
- 'libsi' now converts the incoming strings into the system's character set
 | 
						||
  according to the DVB standard. The system's character set is determined from
 | 
						||
  the LANG environment variable. If no recognizable setting can be found, no
 | 
						||
  conversion will take place. Note that currently only the strings received from the
 | 
						||
  SI data stream are converted, there have not been any changes regarding displaying
 | 
						||
  UTF-8 characters on the OSD, yet - this will follow in one of the next steps.
 | 
						||
  With this conversion, it should now be safe to run VDR on a UTF-8 file system,
 | 
						||
  because all incoming characters are converted to UTF-8. This will most likely
 | 
						||
  result in wrong characters being displayed on the OSD (because there UTF-8 is
 | 
						||
  not known, yet), but the file names should be ok (haven't tested this myself,
 | 
						||
  though, because I don't do UTF-8 - so please be very careful when testing!).
 | 
						||
  There's one piece of bad news here: the German pay-tv broadcaster Premiere
 | 
						||
  apparently encodes all EPG strings as ISO8859-1, but fails to correctly mark
 | 
						||
  these strings as such. Therefore 'libsi' (following the DVB standard) considers
 | 
						||
  the strings to be encoded in the default ISO6937 and converts them to whatever
 | 
						||
  the system's character set is. This, of course, results in wrong umlauts.
 | 
						||
  On its old transponder, the ProSieben/SAT.1 channels also had their EPG data
 | 
						||
  wrongly encoded, but apparently on the new transponder they started broadcasting
 | 
						||
  on this month, they got it right.
 | 
						||
 | 
						||
2007-04-30: Version 1.4.6-1
 | 
						||
 | 
						||
- Fixed a busy loop in fast forward if the next video data file is missing
 | 
						||
  (thanks to Reinhard Nissl).
 | 
						||
- Fixed handling frequencies in NitFilter::Process() (thanks to Anssi Hannula).
 | 
						||
- Fixed handling ChannelUp/Down keys if there is currently a replay running
 | 
						||
  (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Increased the maximum number of CA system ids to cope with the AlphaCrypt
 | 
						||
  CAM's version 3.11 firmware.
 | 
						||
 | 
						||
2007-05-12: Version 1.4.7
 | 
						||
 | 
						||
- Official release.
 | 
						||
 | 
						||
2007-06-10: Version 1.5.3
 | 
						||
 | 
						||
- Fixed some spelling errors in 'newplugin' (thanks to Ville Skytt<74>).
 | 
						||
- Fixed a busy loop in fast forward if the next video data file is missing
 | 
						||
  (thanks to Reinhard Nissl).
 | 
						||
- Fixed handling frequencies in NitFilter::Process() (thanks to Anssi Hannula).
 | 
						||
- Fixed a race condition with signal handlers at program exit (thanks to Udo
 | 
						||
  Richter).
 | 
						||
- Non-primary devices in Transfer mode are now also used for recording (thanks
 | 
						||
  to Anssi Hannula).
 | 
						||
- Fixed handling ChannelUp/Down keys if there is currently a replay running
 | 
						||
  (thanks to Marco Schl<68><6C>ler).
 | 
						||
- The new SVDRP command REMO can be used to turn VDR's remote control off and
 | 
						||
  on in case other programs need to be controlled (based on patches from Krzysztof
 | 
						||
  Parma and Helmut Auer).
 | 
						||
- Increased the maximum number of CA system ids to cope with the AlphaCrypt
 | 
						||
  CAM's version 3.11 firmware.
 | 
						||
- Fixed getting the code setting from the locale (thanks to Matthias Schwarzott).
 | 
						||
- Implemented support for Freetype fonts (based on a patch from Alexander Riedel).
 | 
						||
  The font names and sizes can be adjusted in the "Setup/OSD" menu.
 | 
						||
  Note that VDR now requires freetype fonts to be installed in
 | 
						||
  /usr/share/fonts/truetype.
 | 
						||
- If the OSD device in use has at least 8bpp bitmap depth and this is also
 | 
						||
  used by the current skin, Freetype fonts are displayed "anti-aliased".
 | 
						||
  The new setup parameter "OSD/Anti-alias" can be used to turn this off.
 | 
						||
- The new function cOsd::SetAntiAliasGranularity() can be used to help the OSD
 | 
						||
  in managing the available color palette entries when doing anti-aliasing.
 | 
						||
  Skins that use 8bpp bitmaps can call this function with the maximum number
 | 
						||
  of colors used, and the maximum number of color combinations. The OSD will
 | 
						||
  then evenly split the available palette entries between the various colors
 | 
						||
  combinations, so that fonts can be "anti-aliased". By default a total of
 | 
						||
  10 colors and 10 combinations is assumed.
 | 
						||
- The pixel fonts have been completely removed from the VDR source.
 | 
						||
- VDR is now "UTF-8 aware". It handles strings according to the character
 | 
						||
  encoding used on the user's system. All internationalization strings and
 | 
						||
  incoming SI data are converted to the system encoding.
 | 
						||
- Plugins that handle strings need to be aware that on systems with UTF-8
 | 
						||
  encoding a "character symbol" may consist of more than a single byte in
 | 
						||
  memory. The functions and macros named Utf8...() can be used to handle
 | 
						||
  strings without needing to care about the underlying character encoding
 | 
						||
  (see tools.h for details).
 | 
						||
- Even though the weekdays of repeating timers are presented to the user as UTF-8
 | 
						||
  characters in the OSD, the timers.conf file and the SVDRP timer commands still
 | 
						||
  use single byte characters ("MTWTFSS") to make sure this information is handled
 | 
						||
  correctly between systems with different character encodings.
 | 
						||
- Added a missing i18n string for "CAM" in the Turkish OSD texts.
 | 
						||
- Improved editing strings that are too long to fit into the editable area.
 | 
						||
- Changes to the OSD settings in the "Setup/OSD" menu now immediately take effect
 | 
						||
  when the "Ok" key is pressed.
 | 
						||
 | 
						||
2007-06-17: Version 1.5.4
 | 
						||
 | 
						||
- Increased APIVERSION (forgot to do that in 1.5.2 and 1.5.3).
 | 
						||
- Fixed a crash in i18n character set conversion (thanks to Alexander Riedel,
 | 
						||
  Jose Alberto Reguero and Christian Wieninger for patches that cured part of
 | 
						||
  the problem).
 | 
						||
- Adjusted the 'skincurses' plugin to UTF-8 handling.
 | 
						||
- Using nl_langinfo(CODESET) to determine the local codeset to use (thanks to
 | 
						||
  Thomas G<>nther). The codeset names in 'libsi/si.c' have been changed to the
 | 
						||
  canonical spelling with '-' (thanks to Ludwig Nussel for pointing this out).
 | 
						||
- Modified handling invalid characters in VFAT mode.
 | 
						||
- Replaced strn0cpy() with Utf8Strn0Cpy() where necessary.
 | 
						||
- Now using 'fontconfig' to determine which fonts to use (thanks to Anssi Hannula
 | 
						||
  for code and hints on how to do this).
 | 
						||
- If no fonts are installed, VDR now uses a dummy font that doesn't actually draw
 | 
						||
  any text, and logs an error message.
 | 
						||
- The new function cFont::CreateFont() can be used by plugins to create and use
 | 
						||
  fonts of their own, independent of VDR's standard fonts.
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Changed the parameter "OSD font" to "Default font" in "Setup/OSD" (suggested
 | 
						||
  by Rolf Ahrenberg).
 | 
						||
- Fixed handling detached processes in SystemExec() (thanks to Udo Richter).
 | 
						||
- The info.vdr file now also stores the name of the channel, and the new function
 | 
						||
  cRecordingInfo::ChannelName() returns this information if available (based on
 | 
						||
  a patch from Alexander Hans).
 | 
						||
- The new function cOsd::SetOsdPosition() can be used to dynamically change the
 | 
						||
  position and size of the OSD (based on a request from Christoph Haubrich).
 | 
						||
  Plugins that implement skins should no longer use Setup.OSDWidth etc. directly,
 | 
						||
  but should rather use cOsd::OsdWidth() etc. instead.
 | 
						||
  Currently a change to the OSD position will only apply to newly opened OSDs.
 | 
						||
 | 
						||
2007-06-23: Version 1.5.5
 | 
						||
 | 
						||
- Fixed a name clash between skincurses.c and the new cOsd position functions.
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Changed the parameter "OSD font size" to "Default font size" in "Setup/OSD".
 | 
						||
- Fixed handling address masks in SVDRP host settings (thanks to Frank Schmirler).
 | 
						||
- Fonts can now be created with a width that overwrites the default width (thanks
 | 
						||
  to Andreas Mair).
 | 
						||
- Added full weekday names to i18n.c for plugins to use (thanks to Patrice Staudt).
 | 
						||
  The new function WeekDayNameFull() can be used to get these names from integer
 | 
						||
  values (just like the abbreviated weekday names).
 | 
						||
- Fixed stripping i18n stuff from font names (reported by Anssi Hannula).
 | 
						||
- Improved performance of the SVDRP commands LSTC and CHAN when used with a
 | 
						||
  channel name.
 | 
						||
 | 
						||
2007-07-22: Version 1.5.6
 | 
						||
 | 
						||
- Fixed a buffer overflow in initializing the system character table (thanks
 | 
						||
  to Marco Schl<68><6C>ler).
 | 
						||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | 
						||
- Fixed handling single byte characters >0x7F in Utf8ToArray() (thanks to Udo
 | 
						||
  Richter).
 | 
						||
- Improved numdigits(), isnumber() and strreplace() (thanks to Tobias Bratfisch).
 | 
						||
- Fixed clearing color buttons in the 'curses' skin (thanks to Udo Richter).
 | 
						||
- Fixed a typo in the function name of cOsd::SetOsdPosition() and added a range
 | 
						||
  check to it (thanks to Christoph Haubrich).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Improved cControl::Launch() to keep 'control' from pointing to uninitialized
 | 
						||
  memory (thanks to Rolf Ahrenberg).
 | 
						||
- Made skipspace() an inline function (suggested by Tobias Bratfisch) and changed
 | 
						||
  it to handle the most common case of 'no leading space' very fast, and avoid
 | 
						||
  calling isspace(), which made the whole function a lot faster.
 | 
						||
- Fixed detection of Premiere NVOD channel links (thanks to Markus Hahn).
 | 
						||
- Added a table of the used trick speed values to the description of
 | 
						||
  cDevice::TrickSpeed() (suggested by Martin Dauskardt).
 | 
						||
- Added a missing 'P' to vdr.c's SHUTDOWNCANCELROMPT macro (reported by Marco
 | 
						||
  Schl<68><6C>ler).
 | 
						||
 | 
						||
2007-08-12: Version 1.5.7
 | 
						||
 | 
						||
- All logging now goes to LOG_ERR, because some systems split error, info and
 | 
						||
  debug messages into separate files, which repeatedly caused extra efforts to
 | 
						||
  find out when incomplete log excerpts were attached to problem reports in
 | 
						||
  the past.
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- Fixed a problem with characters >0x7F in the modified version of skipspace()
 | 
						||
  (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed a bug I introduced when simplifying the original patch for detecting
 | 
						||
  Premiere NVOD channel links (crash reported by Malte Schr<68>der).
 | 
						||
- Internationalization is now done with 'gettext' (following a suggestion by
 | 
						||
  Lucian Muresan). Plugin authors may want to use the Perl script
 | 
						||
  'i18n-to-gettext.pl' to convert their internationalized texts to the gettext
 | 
						||
  format (see the instructions inside that script file). The function
 | 
						||
  cPlugin::RegisterI18n() is still present for compatibility, but doesn't
 | 
						||
  have any more functionality. So plugins that don't convert their texts to
 | 
						||
  the gettext format will only present English texts.
 | 
						||
  See PLUGINS.html, section "Internationalization", for instructions on how
 | 
						||
  to make strings in arrays translatable.
 | 
						||
  See README.i18n for information on how to create new or maintain existing
 | 
						||
  translations.
 | 
						||
- The three letter language codes and their aliases are stored in i18n.c, and
 | 
						||
  each translation file only contains one of them to link that language name
 | 
						||
  to the code.
 | 
						||
- The 'newplugin' script has been extended to generate the Makefile section
 | 
						||
  for i18n support.
 | 
						||
- The parameter OSDLanguage in 'setup.conf' is now a string and holds the locale
 | 
						||
  code of the selected OSD language (e.g. en_US). If Setup.OSDLanguage is not
 | 
						||
  set to a particular locale that is found in VDR's locale directory, the
 | 
						||
  locale as defined in the system environment is used by default.
 | 
						||
- The list of tracks given in cStatus::SetAudioTrack() is now NULL terminated,
 | 
						||
  so that plugins can actually use all the strings in the list, not just the
 | 
						||
  one pointed to by Index (thanks to Alexander Rieger).
 | 
						||
- Fixed handling kLeft in the calls to cStatus::MsgOsdTextItem() (thanks to
 | 
						||
  Alexander Rieger).
 | 
						||
- Added the "...or (at your option) any later version" phrase to the license
 | 
						||
  information of all plugins, and also the 'newplugin' script (suggested by
 | 
						||
  Ville Skytt<74>). Plugin authors may want to consider doing the same.
 | 
						||
- Fixed the link to the GPL2 at http://www.gnu.org in vdr.c (thanks to Ville
 | 
						||
  Skytt<74>).
 | 
						||
- cBitmap::SetXpm() now checks whether the given Xpm pointer is not NULL, to
 | 
						||
  avoid a crash with files that only contain "/* XPM */" (suggested by Andreas
 | 
						||
  Mair).
 | 
						||
- Added a debug error message to cReceiver::~cReceiver() in case it is still
 | 
						||
  attached to a device (thanks to Reinhard Nissl).
 | 
						||
 | 
						||
2007-08-19: Version 1.5.8
 | 
						||
 | 
						||
- Added missing install-i18n to the install target in the Makefile (reported
 | 
						||
  by Joachim Wilke).
 | 
						||
- Fixed a faulty comment in Make.config.template (reported by Marco Schl<68><6C>ler).
 | 
						||
- Improved i18n-to-gettext.pl (thanks to Matthias Schwarzott).
 | 
						||
- Moved the "all" target in plugin Makefiles before the "Implicit rules",
 | 
						||
  so that a plain "make" will compile everything (suggested by Matthias
 | 
						||
  Schwarzott). The "newplugin" script has been changed accordingly.
 | 
						||
  Plugin authors may want to change their Makefiles, too.
 | 
						||
- Added DESTDIR and PREFIX handling to the Makefile (thanks to Matthias
 | 
						||
  Schwarzott).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Added internationalization to the "skincurses" plugin (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Checking the string for NULL in I18nTranslate().
 | 
						||
- Updated the French OSD texts (thanks to Bruno Roussel).
 | 
						||
- Some optimizations in cDvbDevice::SetChannelDevice() (thanks to Tobias Bratfisch).
 | 
						||
- Optimized cMenuEditChrItem::Set() (thanks to Tobias Bratfisch).
 | 
						||
- Optimized cNitFilter::Process() (thanks to Tobias Bratfisch).
 | 
						||
- Reduced the number of time(NULL) calls in vdr.c's main loop to a single call
 | 
						||
  (thanks to Tobias Bratfisch).
 | 
						||
- Changed cBitmap::DrawText() to always draw the background unless ColorBg
 | 
						||
  is clrTransparent (thanks to Christoph Haubrich).
 | 
						||
- The "Setup/OSD/Language" menu now only shows those languages that actually
 | 
						||
  have a locale (suggested by Anssi Hannula).
 | 
						||
- Now using setenv() instead of setlocale() to set the language for gettext()
 | 
						||
  (suggested by Anssi Hannula; thanks also to Ludwig Nussel for a hint on using
 | 
						||
  _nl_msg_cat_cntr).
 | 
						||
- When scanning the locale directory, VDR now explicitly looks for a file named
 | 
						||
  vdr.mo. Text files for plugins are now named "vdr-name.mo", when "name" is the
 | 
						||
  name of the plugin. The "newplugin" script has been changed accordingly, and
 | 
						||
  plugin authors should change their Makefiles, too.
 | 
						||
 | 
						||
2007-08-26: Version 1.5.9
 | 
						||
 | 
						||
- Fixed handling locale directories with a large number of entries (thanks to
 | 
						||
  Anssi Hannula).
 | 
						||
- Updated Turkish language texts (thanks to Oktay Yolge<67>en).
 | 
						||
- Fixed stripping the context in I18nTranslate() (reported by Christian
 | 
						||
  Wieninger).
 | 
						||
- Fixed detecting whether a particular locale is actually supported.
 | 
						||
- Added a note about LANG having to be set to a valid locale in INSTALL
 | 
						||
  (suggested by Matthias Fechner).
 | 
						||
- Fixed some compiler warnings with gcc-4.2.0 (thanks to Matthias Schwarzott).
 | 
						||
- Fixed setting the locale file name in i18n-to-gettext.pl (thanks to Matthias
 | 
						||
  Schwarzott).
 | 
						||
- Changed the default for LOCDIR in Makefile and Make.config.template to
 | 
						||
  "./locale", so that internationalization works by default when running VDR
 | 
						||
  from within its source directory (suggested by Anssi Hannula).
 | 
						||
- Added the new i18n macro trVDR(), which can be used by plugins to mark
 | 
						||
  texts they want to reuse from VDR's core translations (suggested by Matthias
 | 
						||
  Becker).
 | 
						||
- VDR now uses the default configuration directory as defined in the CONFDIR
 | 
						||
  variable in the Makefile (thanks to Thomas Schmidt).
 | 
						||
- The SVDRP command LSTC can now list the channels with group separators if the
 | 
						||
  option ':groups' is given (thanks to Andreas Mair).
 | 
						||
- Added a missing error report to cCuttingThread::Action() (thanks to Udo
 | 
						||
  Richter).
 | 
						||
- There can now be more than one OSD at the same time. At any given time,
 | 
						||
  however, only one of them can be active (and thus visible). This is to
 | 
						||
  allow displaying things like subtitles in an easy way. A cOsd therefore
 | 
						||
  now has a "Level", and only the OSD with the smallest level will be
 | 
						||
  displayed. The level 0 OSD is special, and there can only be one with
 | 
						||
  this level. If there is more than one OSD with a particular level, only
 | 
						||
  the one that was created first will be displayed.
 | 
						||
  Plugins that provide an OSD need to adjust their cOsdProvider::CreateOsd()
 | 
						||
  function to hand through the Level.
 | 
						||
- Fixed checking for ttDolbyLast in cDevice::SetCurrentAudioTrack() (thanks
 | 
						||
  to Marco Schl<68><6C>ler).
 | 
						||
 | 
						||
2007-10-14: Version 1.5.10
 | 
						||
 | 
						||
- Implemented handling DVB subtitles (thanks to Marco Schl<68><6C>ler, and also to
 | 
						||
  Pekka Virtanen for writing the subtitle plugin, which helped in implementing
 | 
						||
  subtitle handling in VDR).
 | 
						||
- The new remote control key "Subtitles" can be used to bring up the list
 | 
						||
  of available subtitles.
 | 
						||
- The new setup option "DVB/Subtitle languages" can be used to define the
 | 
						||
  preferred languages for subtitles.
 | 
						||
- Fixed selecting the audio track when pressing Ok in the Audio menu (thanks
 | 
						||
  to Marco Schl<68><6C>ler).
 | 
						||
- Implemented display of DVB subtitles in live viewing mode.
 | 
						||
- Implemented subtitle track selection.
 | 
						||
- Implemented bitmap color reduction and shrinking to display subtitles even
 | 
						||
  on devices that can't display the necessary number of colors.
 | 
						||
- Added compatibility mode for playback of recordings made with the subtitles
 | 
						||
  plugin (with some help from Rolf Ahrenberg).
 | 
						||
- The new setup option "DVB/Subtitle offset" can be used to shift the location
 | 
						||
  of the subtitles in the vertical direction.
 | 
						||
- The new setup options "DVB/Subtitle foreground/background transparency"
 | 
						||
  define an additional level of transparency for the foreground and background
 | 
						||
  color of subtitles.
 | 
						||
- Existing recordings made with the subtitle plugin can be given an 'X' record
 | 
						||
  in their info.vdr file, so that subtitles can be automatically selected upon
 | 
						||
  replay, according to the preferred language setup, as in
 | 
						||
  X 3 03 ger deutsch
 | 
						||
  (see vdr.5). Note that these entries need to be added in the proper sequence,
 | 
						||
  so that they correspond with the actual track languages in the recording.
 | 
						||
- Now generating translation files without line numbers to avoid unnecessarily
 | 
						||
  large diffs. Plugin authors may want to replace the -F option with
 | 
						||
  --no-location in the xgettext and msgmerge calls in their Makefiles.
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Added a missing Channels.SetModified(true) call when deleting or moving a
 | 
						||
  channel in the Channels menu (reported by Halim Sahin).
 | 
						||
- Fixed a missing '-' at the next to last line of SVDRP help texts (reported by
 | 
						||
  Denis Knauf).
 | 
						||
- Added a missing SetVolumeDevice() call in cDevice::SetPrimaryDevice() (reported
 | 
						||
  by Reinhard Nissl).
 | 
						||
- Fixed a crash when pressing Left while at the first character of a cMenuEditStrItem
 | 
						||
  (thanks to Christian Wieninger).
 | 
						||
- Only creating a new cDvbOsdProvider in cDvbDevice::MakePrimaryDevice() if 'On'
 | 
						||
  is true (i.e. this device is being made the primary device).
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Fixed handling reallocated memory in cCharSetConv::Convert() (reported by Udo
 | 
						||
  Richter).
 | 
						||
- Fixed a new[]/delete mismatch in cMenuEditStrItem::LeaveEditMode() (thanks to
 | 
						||
  Udo Richter).
 | 
						||
- Implemented sending all frames to devices that can handle them in fast forward
 | 
						||
  trick speeds (thanks to Timo Eskola).
 | 
						||
- Updated the Hungarian language texts (thanks to Thomas G<>nther).
 | 
						||
- Fixed description of DeviceSetAvailableTrack() and cReceiver(), and added an
 | 
						||
  example ~cMyReceiver() in PLUGINS.html (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Improved the description of where logging goes in the INSTALL file (thanks to
 | 
						||
  Elias Luttinen).
 | 
						||
- Added a note about how to initiate internationalization support to the
 | 
						||
  README.i18n file. The Makefile generated by the 'newplugin' script now has the
 | 
						||
  'i18n' target automatically create an initial 'po/pluginname.pot' file.
 | 
						||
  Plugin authors may want to add the '$(I18Npot)' dependency to the 'i18n'
 | 
						||
  target in their Makefiles, as in
 | 
						||
  i18n: $(I18Npot) $(I18Nmo)
 | 
						||
  (based on a suggestion by Torsten Kunkel).
 | 
						||
- Removed a duplicate ',' from the ca_ES.po file (thanks to Thomas G<>nther).
 | 
						||
- Added the '<27>' character to the "allowed characters" in the de_DE.po file
 | 
						||
  (suggested by Thomas G<>nther).
 | 
						||
- Made the default copy ctor of cRecording private (thanks to Markus Hahn).
 | 
						||
  Same for the assign operator.
 | 
						||
- Added cRecording::Undelete() (based on a patch from Markus Hahn).
 | 
						||
- Added cDevice::CloseFilter() to allow a device to have complete control over
 | 
						||
  both opening and closing section filters (thanks to Rolf Ahrenberg).
 | 
						||
- Some fixes to PLUGINS.html (thanks to Rolf Ahrenberg).
 | 
						||
 | 
						||
2007-11-04: Version 1.5.11
 | 
						||
 | 
						||
- Fixed checking compatibility mode for old subtitles plugin (thanks to Marco
 | 
						||
  Schl<68><6C>ler).
 | 
						||
- Updated the French OSD texts (thanks to Michael Nival).
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- The "Play" key now starts replay of the selected recording in the Recordings
 | 
						||
  menu (thanks to Ville Skytt<74>);
 | 
						||
- Improved shutdown handling (thanks to Udo Richter).
 | 
						||
- Housekeeping now waits for a while after a replay has ended (thanks to Udo Richter).
 | 
						||
- Added more special characters to the list of allowed characters when entering
 | 
						||
  strings (thanks to Thomas G<>nther).
 | 
						||
- Added Ukrainian language texts (thanks to Yarema Aka Knedlyk).
 | 
						||
- Added a workaround for recovering from wrongfully interpreted "pre 1.3.19 PS1 packets".
 | 
						||
- Fixed a possible blocking in replay when subtitles are active.
 | 
						||
- Fixed displaying subtitles in live mode.
 | 
						||
- Fixed handling CONFDIR (thanks to Rolf Ahrenberg).
 | 
						||
- Added some missing 'const' keywords (thanks to Sascha Volkenandt).
 | 
						||
- The 'Allowed' parameter in cMenuEditStrItem() is now NULL by default, which results
 | 
						||
  in using tr(FileNameChars) (suggested by Thomas G<>nther).
 | 
						||
- Added a missing '.' to the date returned by DayDateTime() (thanks to Lauri Nurmi).
 | 
						||
- Improved the 'i18n' target in the Makefile to avoid unnecessary work (thanks to
 | 
						||
  Stefan Huelswitt). The 'newplugin' and 'i18n-to-gettext.pl' scripts have been
 | 
						||
  changed accordingly. Plugin authors may want to adjust the 'i18n' target
 | 
						||
  of their Makefiles.
 | 
						||
- Fixed a crash if no fonts are found (thanks to Mario Ivankovits and Clemens
 | 
						||
  Kirchgatterer).
 | 
						||
- Fixed decoding filename characters in case there are not two hex digits after
 | 
						||
  the '#' (reported by Helmut Auer).
 | 
						||
 | 
						||
2007-11-18: Version 1.5.12
 | 
						||
 | 
						||
- Fixed assembling PS1 packets in cTS2PES::instant_repack() (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | 
						||
- Fixed handling small PES packets that caused subtitles to be displayed late
 | 
						||
  in live mode (based on a patch from Reinhard Nissl).
 | 
						||
- Fixed stopping live subtitles when a player is attached to the device.
 | 
						||
- Fixed suddenly stopping subtitles in live mode.
 | 
						||
 | 
						||
2008-01-13: Version 1.5.13
 | 
						||
 | 
						||
- Fixed the declaration of cSubtitleObject::Decode8BppCodeString() (thanks to
 | 
						||
  Gregoire Favre).
 | 
						||
- The new setup option "Miscellaneous/Emergency exit" can be used to turn off
 | 
						||
  the automatic restart of VDR in case a recording fails for some reason.
 | 
						||
- The kInfo key is now propagated to any open menu, so that it can react to it
 | 
						||
  in a context sensitive manner (suggested by Andreas Brugger). If there is
 | 
						||
  no menu open it will show the info of the current broadcast or replay.
 | 
						||
- cTimeMs now uses the monotonic clock, if available (thanks to Petri Hintukainen).
 | 
						||
- Fixed cVector::Clear() and cStringList::Clear().
 | 
						||
- Added cString::Truncate().
 | 
						||
- Fixed the "i18n:" target in the "newplugin" script, so that it can create the
 | 
						||
  initial *.pot file.
 | 
						||
- Fixed handling the '-l' option.
 | 
						||
- Fixed error handling in cCuttingThread::Action() (thanks to Udo Richter).
 | 
						||
- Fixed a loss of the date display in the "classic" skin's main menu (reported by
 | 
						||
  Andreas Brugger).
 | 
						||
- Added a missing setting of lastFreeMB in cMenuMain::Update() (reported by
 | 
						||
  Andreas Brugger).
 | 
						||
- Added '-Wno-parentheses' to the compiler options in order to avoid silly compiler
 | 
						||
  warnings for expressions like 'a || b && c', where GCC 4.3 wants to force the
 | 
						||
  programmer to write 'a || (b && c)', while everybody knows that '&&' links
 | 
						||
  stronger than '||' (reported by Tobias Grimm).
 | 
						||
- Updated the Hungarian language texts (thanks to Istv<74>n F<>ley).
 | 
						||
- Fixed displaying weekday names in the Schedule menu if the system uses UTF-8
 | 
						||
  (reported by Jiri Dobry).
 | 
						||
- The new plugin "pictures" implements a simple picture viewer.
 | 
						||
  See PLUGINS/src/pictures/README for details.
 | 
						||
- The automatic shutdown is now suppressed if the remote control is currently
 | 
						||
  disabled (suggested by Helmut Auer, implemented by Udo Richter).
 | 
						||
- Added a section about "Logging" to PLUGINS.html (suggested by Torsten Kunkel).
 | 
						||
- Enhanced the SVDRP command CLRE to allow clearing the EPG data of a particular
 | 
						||
  channel (thanks to Benjamin Hess).
 | 
						||
 | 
						||
2008-01-27: Version 1.5.14
 | 
						||
 | 
						||
- Fixed the Play function in the pictures plugin.
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Updated the Makefile of the skincurses plugin (thanks to Rolf Ahrenberg).
 | 
						||
- The new option --localedir can be used to set the locale directory at runtime
 | 
						||
  (based on a patch from Stefan Huelswitt).
 | 
						||
- Fixed finding new transponders (thanks to Winfried K<>hler).
 | 
						||
- Implemented handling of DVB-S2 (thanks to Marco Schl<68><6C>ler and Reinhard Nissl
 | 
						||
  for a patch that was used to implement this). VDR now requires the "multiproto"
 | 
						||
  DVB driver, e.g. from http://jusst.de/hg/multiproto.
 | 
						||
- Removed switching to the next higher or lower channel if the current channel
 | 
						||
  is not available, in order to allow staying on an encrypted channel that takes
 | 
						||
  a while for the CAM to start decrypting.
 | 
						||
 | 
						||
2008-02-17: Version 1.5.15
 | 
						||
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Added option -i to the pictures plugin's pic2mpg to ignore unknown file types.
 | 
						||
- Revoked the switch to the "multiproto" driver in order to make a new stable
 | 
						||
  version before making this big switch and forcing all users to install a
 | 
						||
  driver that is not yet in the kernel source. The removed code will reappear
 | 
						||
  in version 1.7.0.
 | 
						||
  Note that you may need to switch back to an older version of your channels.conf
 | 
						||
  file if you have already used version 1.5.14, because it introduced new parameters.
 | 
						||
- Added the new command line option --userdump to enable core dumps in case VDR
 | 
						||
  is run as root with option -u (thanks to Hans-Werner Hilse).
 | 
						||
- Speeded up anti-aliased font rendering by caching the blend indexes (based on
 | 
						||
  a suggestion by Martin Wache).
 | 
						||
- Fixed setting the OSD area in the pictures plugin.
 | 
						||
- Ignoring "repeat" and "release" keys in the time search entry mode during replay,
 | 
						||
  to avoid inadvertently leaving it in case a key is pressed too long (suggested
 | 
						||
  by Andreas Brugger).
 | 
						||
- Improved sending all frames to devices that can handle them in fast forward
 | 
						||
  trick speeds, including subtitles (thanks to Timo Eskola).
 | 
						||
- The section handler is now stopped before the device is destroyed, to avoid
 | 
						||
  accessing file handles after they have become invalid (thanks to Reinhard
 | 
						||
  Nissl for reporting an invalid access when ending VDR, and to Deti Fliegl for
 | 
						||
  a patch that was used to implement StopSectionHandler()).
 | 
						||
- Fixed setting the date in the channel display of the classic and sttng skins,
 | 
						||
  to avoid unnecessary OSD access (thanks to Marco Schl<68><6C>ler).
 | 
						||
- The free disk space is now also displayed in the title of the "Recordings"
 | 
						||
  menu (suggested by Walter Koch).
 | 
						||
- Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because
 | 
						||
  it applies to non-VPS recordings as well.
 | 
						||
- Fixed a loss of a timer's 'recording' flag after modifying it via MODT.
 | 
						||
- Fixed detecting directories in cFileNameList::Load().
 | 
						||
- Running the thread that removes deleted recordings at a low priority to (maybe)
 | 
						||
  avoid stuttering replay in case the thread is run during replay.
 | 
						||
- Limiting the length of the recording name in timers in case VDR is run with
 | 
						||
  --vfat, in order to avoid names that are too long for Windows (suggested by Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Using cString::sprintf() instead of asprintf() (thanks to Wolfgang Rohdewald
 | 
						||
  for pointing out a possible problem if the return value is not checked).
 | 
						||
  Plugin authors may want to consider doing the same. For convenience there is now
 | 
						||
  an additional version of cString::sprintf() that accepts a va_list parameter.
 | 
						||
- When deleting the recording that is currently replayed, the replay is now
 | 
						||
  stopped immediately (thanks to Mikko Matilainen for reporting a possible crash
 | 
						||
  if the Info key is pressed after deleting the currently replayed recording).
 | 
						||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | 
						||
- When determining the amount of free disk space, any deleted (but not yet removed)
 | 
						||
  recordings on different file systems (that are mounted under the video directory)
 | 
						||
  are no longer taken into account.
 | 
						||
- When running out of disk space during a recording, only such deleted or old
 | 
						||
  recordings are removed, that actually are on the video directory file system(s).
 | 
						||
  This prevents VDR from accidentally deleting recordings on other file systems,
 | 
						||
  which would not add any free space to the video directory.
 | 
						||
- Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks
 | 
						||
  in plugins (thanks to Petri Hintukainen).
 | 
						||
- Added cStatus::TimerChange() to inform plugins about changes to the list of timers
 | 
						||
  (based on a patch from Benedikt Elser).
 | 
						||
- Added new cStatus functions to the 'status' plugin.
 | 
						||
- Added missing #include <limits.h> to epg.c and menuitems.h (thanks to Ville Skytt<74>).
 | 
						||
- The new function cSkin::SetScrollbar() can be implemented by skins to display
 | 
						||
  a scrollbar in every list menu. The 'classic' and 'sttng' skins have been
 | 
						||
  changed accordingly, as well as the 'skincurses' plugin.
 | 
						||
- Introduced 'operator const void * ()' in cString to catch cases where operator*()
 | 
						||
  should be used.
 | 
						||
- Fixed calculating the scrollbar sizes in the skins.
 | 
						||
 | 
						||
2008-02-24: Version 1.5.16
 | 
						||
 | 
						||
- Fixed setting the current subtitle track in Transfer-Mode (reported by Petri Helin,
 | 
						||
  thanks to Reinhard Nissl for pointing out that cDevice::Transferring() doesn't
 | 
						||
  return the right value in the early stage of channel switching).
 | 
						||
- Updated the Danish OSD texts (thanks to Mogens Elneff).
 | 
						||
- Updated the Dutch OSD texts (thanks to Carel Willemse).
 | 
						||
- Fixed various spelling errors and improved PLUGINS.html (thanks to Ville Skytt<74>).
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Fixed the format in cRemote::Put() to use "%016llX" instead of "%016LX" (thanks
 | 
						||
  to Ludwig Nussel for pointing this out).
 | 
						||
- Revised the fix of calculating the scrollbar height in the skins. The scrollbar
 | 
						||
  handle now always has a height that is at least the width of the scrollbar.
 | 
						||
- When switching the device that's used for live viewing away from the current
 | 
						||
  transponder in favor of an upcoming recording, an attempt is now made to stay
 | 
						||
  on the current channel by possibly going into 'Transfer Mode'.
 | 
						||
- The CAM menu now stays open as long as it is automatically updated, even without
 | 
						||
  pressing a remote control key. This is important when updating the CAM firmware
 | 
						||
  from the transponder.
 | 
						||
- No longer trying to switch to an available channel if the primary device has
 | 
						||
  no valid programme and a menu is open (avoids interference with the CAM in
 | 
						||
  case a CAM menu is open).
 | 
						||
- Increased the valid range of the "Subtitle offset" setup option to -100...100
 | 
						||
  (thanks to Rolf Ahrenberg).
 | 
						||
- Added the backslash ('\') to the list of characters that need to be escaped
 | 
						||
  when executing external commands (thanks to Peter Bieringer for reporting this one).
 | 
						||
 | 
						||
2008-03-02: Version 1.5.17
 | 
						||
 | 
						||
- Updated the Swedish OSD texts (thanks to Tomas Berglund).
 | 
						||
- Made the 'pic2mpg' script of the 'pictures' plugin work with uppercase filename
 | 
						||
  extensions and relative paths (thanks to Stefan Wagner for reporting this one).
 | 
						||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
 | 
						||
- Updated the Dutch OSD texts (thanks to Johan Schuring).
 | 
						||
- Stripping control codes 0x86 and 0x87 from SI strings.
 | 
						||
- Updated French language texts (thanks to Jean-Claude Repetto).
 | 
						||
- Fixed handling 3 and 4 byte UTF-8 symbols in Utf8CharGet() (thanks to Andreas
 | 
						||
  Mair).
 | 
						||
- Fixed a crash in cFreetypeFont::DrawText() if an unknown symbol is encountered
 | 
						||
  (thanks to Tobias Grimm). Unknown symbols are replaced with a '?'.
 | 
						||
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
 | 
						||
- Updated the Czech OSD texts (thanks to Vladim<69>r B<>rta and Jiri Dobry).
 | 
						||
- Updated the Turkish OSD texts (thanks to Oktay Yolge<67>en).
 | 
						||
- The 'plugins' target in the Makefile now returns an error exit code if one of the
 | 
						||
  plugins failed to compile (suggested by Tobias Grimm).
 | 
						||
- Rendering the non-breaking space symbol as a blank (thanks to Tobias Grimm).
 | 
						||
- Changed the default character set for SI data from ISO6937 (as required by the DVB
 | 
						||
  standard ETSI EN 300 468) to ISO-8859-9, in order to work around the stupidity of
 | 
						||
  some providers, who actually use ISO-8859-9, but fail to correctly announce that.
 | 
						||
 | 
						||
2008-03-16: Version 1.5.18
 | 
						||
 | 
						||
- Added a missing reset of maxNumber in cChannels::Renumber() (reported by Sundararaj
 | 
						||
  Reel).
 | 
						||
- Revoked the fixed change of the default character set for SI data and introduced
 | 
						||
  an environment variable to control it (thanks to Ales Jurik for reporting broken
 | 
						||
  SI data on the Czech/Slovak channels, which actually do follow the standard).
 | 
						||
  Users who want to set the default character set to something different can do this
 | 
						||
  by setting the environment variable VDR_CHARSET_OVERRIDE to something like
 | 
						||
  ISO-8859-9.
 | 
						||
- Fixed a signed character used as index in cBase64Encoder::NextLine() (thanks
 | 
						||
  to Tobias Grimm).
 | 
						||
- Updated the Spanish and Catalan OSD texts (thanks to Luca Olivetti).
 | 
						||
- Fixed automatically selecting the preferred subtitle language (based on a patch
 | 
						||
  from Rolf Ahrenberg).
 | 
						||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Updated the Polish OSD texts (thanks to Michael Rakowski).
 | 
						||
- Fixed formatting the name section in the VDR man pages (thanks to Tobias Grimm).
 | 
						||
- Updated the Swedish OSD texts (thanks to Magnus Andersson).
 | 
						||
- Added Russian translations to the 'skincurses' and 'pictures' plugins (thanks
 | 
						||
  to Alexander Gross).
 | 
						||
- Fixed displaying the free disk space when entering the recordings menu where the
 | 
						||
  last replayed recording was in a subdirectory, and pressing Back (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Fixed tuning to a live channel after a recording has been stopped using the
 | 
						||
  'Back' key.
 | 
						||
- Resetting a timer's 'pending' flag when it has ended.
 | 
						||
 | 
						||
2008-03-23: Version 1.6.0
 | 
						||
 | 
						||
- Updated the Croatian language texts (thanks to Adrian Caval).
 | 
						||
- Added Chinese language texts (thanks to Nan Feng).
 | 
						||
- Updated the Portuguese language texts.
 | 
						||
- Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file.
 | 
						||
 | 
						||
2008-04-13: Version 1.7.0
 | 
						||
 | 
						||
- Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was
 | 
						||
  revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now
 | 
						||
  requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto.
 | 
						||
  Note that the channels.conf file now supports additional parameters, so you may
 | 
						||
  want to make sure you have a backup of this file in case you need to go back to
 | 
						||
  the previous version of VDR!
 | 
						||
- Fixed displaying transponder data when it is modified (thanks to Reinhard Nissl).
 | 
						||
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
- Improved logging system time changes to avoid problems on slow systems under
 | 
						||
  heavy load (suggested by Helmut Auer).
 | 
						||
- Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
 | 
						||
  Andreas Mair).
 | 
						||
- Fixed setting the OSD level in the 'osddemo' example (thanks to Wolfgang Rohdewald).
 | 
						||
- Increased the time between checking the CAM status to 500ms to avoid problems
 | 
						||
  with some CAMs (reported by Arthur Konovalov).
 | 
						||
 | 
						||
2008-04-13: Version 1.6.0-1
 | 
						||
 | 
						||
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
- Improved logging system time changes to avoid problems on slow systems under
 | 
						||
  heavy load (suggested by Helmut Auer).
 | 
						||
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
 | 
						||
  Andreas Mair).
 | 
						||
- Increased the time between checking the CAM status to 500ms to avoid problems
 | 
						||
  with some CAMs (reported by Arthur Konovalov).
 | 
						||
 | 
						||
2008-09-06: Version 1.7.1
 | 
						||
 | 
						||
- Adapted the tuning code to the new DVBFE_SET_DELSYS API (thanks to Reinhard Nissl).
 | 
						||
  VDR now uses the driver from http://jusst.de/hg/multiproto_plus.
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Removed obsolete $(NCURSESLIB) from the Makefile.
 | 
						||
- Implemented handling the standard component descriptor for AC3 (stream=4), as it
 | 
						||
  will soon be used by the German ARD channels (thanks to Michael Pennewi<77> for
 | 
						||
  advance information about this change). The previously used "Premiere pseudo
 | 
						||
  standard" (stream=2, type=5) still works, but has apparently been wrongfully used
 | 
						||
  by broadcasters from the beginning.
 | 
						||
- Added missing description of the 'S' channel parameter to vdr.5 (reported by
 | 
						||
  Reinhard Nissl).
 | 
						||
- The SVDRP signon message now indicates the character encoding in use, as in
 | 
						||
  "220 video SVDRP VideoDiskRecorder 1.7.1; Fri May  2 16:17:10 2008; ISO-8859-1".
 | 
						||
  This may be useful for instance for external tools that provide EPG data, so that
 | 
						||
  they can correctly encode the strings.
 | 
						||
- No longer calling FcFini() to avoid problems with older (broken) versions of
 | 
						||
  fontconfig (suggested by Edgar Toernig).
 | 
						||
- Removed the compile time option VFAT to allow users of precompiled binary
 | 
						||
  distributions to have full control over whether or not to use the --vfat option
 | 
						||
  at runtime (suggested by Michael Nork).
 | 
						||
- First step towards switching to TS (Transport Stream) as recording format:
 | 
						||
  + The new function cDevice::PlayTs() is used to play TS packets.
 | 
						||
  + The new functions cDevice::PlayTsVideo() and cDevice::PlayTsAudio()
 | 
						||
    are used to play video and audio TS packets, respectively.
 | 
						||
  + The new function cAudio::PlayTs() is used to play audio TS packets.
 | 
						||
  + The new class cPatPmtGenerator is used to generate a PAT/PMT pair that precedes
 | 
						||
    the TS data in Transfer Mode.
 | 
						||
  + The new class cPatPmtParser is used by cDevice to parse the PAT/PMT data in a
 | 
						||
    TS in order to find out which streams it contains.
 | 
						||
  + The new class cTsToPes is used to convert TS packets to a PES packet.
 | 
						||
  + cTransfer no longer uses cRemux, and doesn't run a separate thread any more.
 | 
						||
    It just generates a PAT/PMT and sends all received TS packets to the primary
 | 
						||
    device's PlayTs().
 | 
						||
  + Live subtitle display no longer uses a ring buffer and separate thread.
 | 
						||
  + cPesAssembler has been removed. Old VDR recordings only contain complete PES
 | 
						||
    packets.
 | 
						||
  + Since a TS needs to have a PAT/PMT, which requires the video stream type to
 | 
						||
    be explicitly given, the format of the VPID field in the channels.conf file
 | 
						||
    and the SVDRP commands NEWC/MODC/LSTC has been extended. The video stream type
 | 
						||
    now follows the VPID and optional PPID, separated by an '=' sign.
 | 
						||
- Updated the sources.conf file (thanks to Oleg Roitburd).
 | 
						||
- Fixed a possible integer overflow in GetAbsTime() (thanks to Alexander Rieger).
 | 
						||
- Fixed a problem with calling isyslog() from within the SignalHandler() (thanks
 | 
						||
  to Udo Richter).
 | 
						||
- Replaced the Finnish language code "smi" with "suo" (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed wrong value for TableIdBAT in libsi/si.h (thanks to Winfried K<>hler).
 | 
						||
- Errors in config files no longer keep VDR from starting.
 | 
						||
- Removed unneeded include files <linux/dvb/dmx.h> and <time.h> from remux.h
 | 
						||
  (reported by Tobias Grimm).
 | 
						||
 | 
						||
2008-09-06: Version 1.6.0-2
 | 
						||
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- The SVDRP signon message now indicates the character encoding in use, as in
 | 
						||
  "220 video SVDRP VideoDiskRecorder 1.7.1; Fri May  2 16:17:10 2008; ISO-8859-1".
 | 
						||
  This may be useful for instance for external tools that provide EPG data, so that
 | 
						||
  they can correctly encode the strings.
 | 
						||
- No longer calling FcFini() to avoid problems with older (broken) versions of
 | 
						||
  fontconfig (suggested by Edgar Toernig).
 | 
						||
- Updated the sources.conf file (thanks to Oleg Roitburd).
 | 
						||
- Fixed a possible integer overflow in GetAbsTime() (thanks to Alexander Rieger).
 | 
						||
- Fixed a problem with calling isyslog() from within the SignalHandler() (thanks
 | 
						||
  to Udo Richter).
 | 
						||
- Replaced the Finnish language code "smi" with "suo" (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed wrong value for TableIdBAT in libsi/si.h (thanks to Winfried K<>hler).
 | 
						||
- Removed unneeded include files <linux/dvb/dmx.h> and <time.h> from remux.h
 | 
						||
  (reported by Tobias Grimm).
 | 
						||
 | 
						||
2008-12-14: Version 1.7.2
 | 
						||
 | 
						||
- Added a note about 'Id' being obsolete to the description of cDevice::PlayAudio().
 | 
						||
- Switched to the new S2API driver API, which was decided to become the official
 | 
						||
  DVB API in the kernel (based on patches from Igor M. Liplianin, Niels Wagenaar
 | 
						||
  and Edgar Hucek). VDR now uses the S2API driver from http://linuxtv.org/hg/v4l-dvb.
 | 
						||
  In order to correctly detect DVB-S2 capable devices, you need to apply the patch
 | 
						||
  from ftp://ftp.tvdr.de/vdr/Developer/v4l-dvb-s2api-add-s2-capability.diff to
 | 
						||
  the driver source, because the S2API doesn't provide a way of telling whether a
 | 
						||
  device can handle DVB-S2 transponders.
 | 
						||
- The cDvbTuner::IsTunedTo() function now also checks the symbol rate in case of
 | 
						||
  DVB-S and DVB-C.
 | 
						||
- Improved handling PES video packets with zero length when converting from TS to PES.
 | 
						||
  For good replay in Transfer Mode on full featured DVB cards you may want to apply
 | 
						||
  the patch from ftp://ftp.tvdr.de/vdr/Developer/av7110_v4ldvb_api5_audiobuf_test_1.diff
 | 
						||
  to the driver (thanks to Oliver Endriss).
 | 
						||
 | 
						||
2009-01-06: Version 1.7.3
 | 
						||
 | 
						||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
 | 
						||
- Fixed handling the 'pointer field' in generating and parsing PAT/PMT (thanks to
 | 
						||
  Frank Schmirler).
 | 
						||
- Fixed handling modulation types for DVB-S transponders when processing the NIT.
 | 
						||
- Changed cDvbDevice::GrabImage() to use V4L2 (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Added a poll to cDvbDevice::PlayVideo() and cDvbDevice::PlayAudio() to avoid
 | 
						||
  excessive CPU load (this is just a makeshift solution until the FF DVB cards
 | 
						||
  can play TS directly).
 | 
						||
- The recording format is now Transport Stream. Existing recordings in PES format
 | 
						||
  can still be replayed and edited, but new recordings are done in TS.
 | 
						||
  All code for recording in PES has been removed.
 | 
						||
  The following changes were made to switch to TS recording format:
 | 
						||
  + The index file format has been changed to support file sizes of up to 1TB
 | 
						||
    (previously 2GB), and up to 65535 separate files per recording (previously
 | 
						||
    255).
 | 
						||
  + The recording file names are now of the form 00001.ts (previously 001.vdr).
 | 
						||
  + The frame rate is now detected by looking at two subsequent PTS values.
 | 
						||
    The "frames per second" is stored in the "info" file using the new tag F
 | 
						||
    (thanks to Artur Skawina for helping to get the IndexToHMSF() calculation
 | 
						||
    right).
 | 
						||
  + Several functions now have an additional parameter FramesPerSecond.
 | 
						||
  + Several functions now have an additional parameter IsPesRecording.
 | 
						||
  + The functionality of cFileWriter was moved into cRecorder, and cRemux is
 | 
						||
    now obsolete. This also avoids one level of data copying while recording.
 | 
						||
  + cRemux, cRingBufferLinearPes, cTS2PES and all c*Repacker classes have been
 | 
						||
    removed.
 | 
						||
  + A PAT/PMT is inserted before every independent frame, so that no extra
 | 
						||
    measures need to be taken when editing a recording.
 | 
						||
  + The directory name for a recording has been changed from
 | 
						||
    YYYY-MM-DD-hh[.:]mm.pr.lt.rec (pr=priority, lt=lifetime) to
 | 
						||
    YYYY-MM-DD-hh.mm.ch-ri.rec (ch=channel, ri=resumeId).
 | 
						||
    Priority and Lifetime are now stored in the "info" file with the new
 | 
						||
    tags P and L (if no such file exists, the maximum values are assumed by
 | 
						||
    default, which avoids inadvertently deleting a recording if disk space
 | 
						||
    is low). No longer storing Priority and Lifetime in the directory name
 | 
						||
    avoids starting a new recording if one of these is changed in the timer
 | 
						||
    and the recording is re-started for some reason.
 | 
						||
    Instead of Priority and Lifetime, the directory name now contains the
 | 
						||
    channel number from which the recording was made, and the "resume id" of
 | 
						||
    this instance of VDR. This avoids problems if several VDR instances record
 | 
						||
    the same show on different channels, or even on the same channel.
 | 
						||
    The '-' between channel number and resumeId prevents older versions of
 | 
						||
    VDR from "seeing" these recordings, which makes sure they won't even try
 | 
						||
    to replay them, or remove them in case the disk runs full.
 | 
						||
  + The semantics of PlayTs*() have been changed. These functions are now
 | 
						||
    required to return the given Length (which is TS_SIZE) if they have
 | 
						||
    processed the TS packet.
 | 
						||
  + The files "index", "info", "marks" and "resume" within a TS recording
 | 
						||
    directory are now created without the ".vdr" extension.
 | 
						||
  + The "resume" file is no longer a binary file, but contains tagged lines
 | 
						||
    to be able to store additional information, like the selected audio or
 | 
						||
    subtitle track.
 | 
						||
  + cDevice::StillPicture() will now be called with either TS or PES data.
 | 
						||
  + cDvbPlayer::Goto() no longer appends a "sequence end code" to the data.
 | 
						||
    If the output device needs this, it has to take care of it by itself.
 | 
						||
- Fixed cPatPmtParser::ParsePmt() to reset vpid and vtype when switching from
 | 
						||
  a video to an audio channel (thanks to Reinhard Nissl).
 | 
						||
- cDvbDevice now uses the FE_CAN_2G_MODULATION flag to determine whether a device
 | 
						||
  can handle DVB-S2. The #define is still there to allow people with older drivers
 | 
						||
  who don't need DVB-S2 to use this version without patching.
 | 
						||
 | 
						||
2009-01-25: Version 1.7.4
 | 
						||
 | 
						||
- Removed the '#define FE_CAN_2ND_GEN_MODULATION', since it was wrong and the
 | 
						||
  flag is now in the driver, anyway.
 | 
						||
- The full-featured DVB cards are now given the TS data directly for replay
 | 
						||
  (thanks to Oliver Endriss for enhancing the av7110 driver to make it replay
 | 
						||
  TS data). The patch from ftp://ftp.tvdr.de/vdr/Developer/av7110_ts_replay__1.diff
 | 
						||
  implements this change in the driver.
 | 
						||
  The patch av7110_v4ldvb_api5_audiobuf_test_1.diff mentioned in version 1.7.2
 | 
						||
  is still necessary to avoid audio and video glitches on some channels.
 | 
						||
- Added a typecast in cUnbufferedFile::Write() to avoid an error message when
 | 
						||
  compiling on 64 bit systems.
 | 
						||
- Added some missing 'const' statements to cBitmap (thanks to Andreas Regel).
 | 
						||
- Fixed returning complete PES packets in cTsToPes::GetPes() (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
- Added a missing Detach() in cTransfer::Activate() (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Added clearing the TS buffers in cDevice::Detach() (thanks to Marco Schl<68><6C>ler).
 | 
						||
- Fixed incrementing the continuity counter in cPatPmtGenerator::GetPmt() (thanks
 | 
						||
  to Johann Friedrichs).
 | 
						||
- Fixed removing deleted recordings in case there is a problem. Once a recording
 | 
						||
  caused a problem with removing, no others were removed any more and an ongoing
 | 
						||
  recording could fill up the disk and cause other recordings to be deleted
 | 
						||
  automatically (reported by Reinhard Nissl).
 | 
						||
- Added "DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
 | 
						||
  to Make.config.template (thanks to Johann Friedrichs for pointing this out).
 | 
						||
  Plugin authors should add this line to their Makefile or Make.config if they use
 | 
						||
  file access functions that need special versions for 64 bit offsets.
 | 
						||
- The new command line option -i can be used to set an "instance id", which will
 | 
						||
  be used to distinguish recordings of the same broadcast made by different instances
 | 
						||
  of VDR (suggested by Frank Schmirler). This replaces the use of the "resume id"
 | 
						||
  that was introduced in version 1.7.3.
 | 
						||
- Added checking mutexCurrentAudioTrack to cDevice::PlayTs() (thanks to Reinhard
 | 
						||
  Nissl for pointing this out).
 | 
						||
- Fixed handling the pointer field in cPatPmtParser::ParsePmt() (thanks to Frank
 | 
						||
  Schmirler - sorry I swapped two lines when adopting the original patch).
 | 
						||
- Checking the remaining packet length after processing the pointer field in
 | 
						||
  cPatPmtParser::ParsePat() and cPatPmtParser::ParsePmt() (suggested by Frank
 | 
						||
  Schmirler).
 | 
						||
- Checking the pointer field in cPatPmtParser::ParsePmt() only in 'payload start'
 | 
						||
  packets (suggested by Frank Schmirler).
 | 
						||
- Changed cPatPmtGenerator to make sure the PMT pid doesn't collide with any of
 | 
						||
  the actual pids of the channel.
 | 
						||
- Fixed cDevice::PlayTsAudio() and made cDevice::PlayTsVideo() return 0 if
 | 
						||
  PlayVideo() didn't play anything.
 | 
						||
- Added an 'int' typecast to calculations involving FramesPerSecond() to avoid
 | 
						||
  compiler warnings (reported by Winfried Koehler).
 | 
						||
- Fixed detecting frames for pure audio recordings.
 | 
						||
- Fixed editing PES recordings. The frame type in the index.vdr file generated for
 | 
						||
  the edited PES recording is set to 1 for I-frames and 2 for all others (P- and
 | 
						||
  B-frames). The exact frame type doesn't matter for VDR, it only needs to know if
 | 
						||
  it's an I-frame or not.
 | 
						||
- The PAT/PMT is now only processed if its version changes (reported by Reinhard
 | 
						||
  Nissl).
 | 
						||
- Fixed handling the maximum video file size (reported by Udo Richter).
 | 
						||
- Improved fast-forward/-rewind for audio recordings. The actual data is now sent
 | 
						||
  to the output device, so that it can be replayed and thus cause the proper delay.
 | 
						||
  For pure audio recordings the audio is no longer muted in fast-forward/-rewind
 | 
						||
  mode, so that some orientation regarding the position within the recording is
 | 
						||
  possible. There may still be some offset in the replay position displayed by the
 | 
						||
  progress indicator when switching from fast-forward/-rewind to play mode, as well
 | 
						||
  as in the current position during normal play mode. This is due to the various
 | 
						||
  buffers between the player and the output device and will be addressed later.
 | 
						||
  Note the new function cDevice::IsPlayingVideo(), which is used to inform the
 | 
						||
  player whether there is video data in the currently replayed stream. If a derived
 | 
						||
  cDevice class reimplements PlayTs() or PlayPes(), it also needs to make sure this
 | 
						||
  new function works as expected.
 | 
						||
 | 
						||
2009-04-12: Version 1.7.5
 | 
						||
 | 
						||
- Fixed a hangup when replaying a TS recording with subtitles activated (reported
 | 
						||
  by Timo Helkio).
 | 
						||
- Fixed handling the 'new' indicator in the recordings menu for TS recordings
 | 
						||
  (thanks to Derek Kelly).
 | 
						||
- Added cap_sys_nice to the capabilities that are not dropped (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Added cRecordingInfo::GetEvent() (thanks to Marcel Unbehaun).
 | 
						||
- Improved synchronizing the progress display, trick modes and subtitle display
 | 
						||
  to the actual audio/video. This now works independent of any buffer sizes the
 | 
						||
  output device might use.
 | 
						||
  + The cBackTrace class has been replaced with cPtsIndex, which keeps track
 | 
						||
    of the PTS timestamps of recently played frames.
 | 
						||
  + cDevice::GetSTC() is now required to deliver the STC even in trick modes.
 | 
						||
    It is sufficient if it returns the PTS of the most recently presented
 | 
						||
    audio/video frame.
 | 
						||
  + The full-featured DVB cards need an improved firmware in order to return
 | 
						||
    proper STC values in trick modes (thanks to Oliver Endriss for enhancing the
 | 
						||
    av7110 firmware).
 | 
						||
- Adapted cFrameDetector::Analyze() to HD NTSC broadcasts that split frames over
 | 
						||
  several payload units (thanks to Derek Kelly for reporting this and helping in
 | 
						||
  testing).
 | 
						||
- Modified cFrameDetector::Analyze() to make it process whole frames at once, so
 | 
						||
  that file I/O overhead is minimized during recording (reported by G<>nter
 | 
						||
  Niedermeier).
 | 
						||
- Added command line help for the '-i' option.
 | 
						||
- Fixed cDvbPlayer::NextFile() to handle files larger than 2GB (thanks to Jose
 | 
						||
  Alberto Reguero).
 | 
						||
- Improved replay at the begin and end of a recording. The very first and very last
 | 
						||
  frame is now sent to the output device repeatedly until GetSTC() reports that it
 | 
						||
  has been played. cDvbPlayer::Action() no longer calls DeviceFlush() (thanks to
 | 
						||
  Reinhard Nissl for making sure vdr-xine no longer needs this).
 | 
						||
- Added missing '[]' to the delete operator in cMenuEditStrItem::~cMenuEditStrItem().
 | 
						||
- Added missing virtual destructor to cPalette.
 | 
						||
- Now freeing configDirectory before setting it to a new value in
 | 
						||
  cPlugin::SetConfigDirectory().
 | 
						||
- Fixed a crash when jumping to an editing mark in an audio recording.
 | 
						||
- Fixed the 'VideoOnly' condition in the PlayPes() and PlayTs() calls in
 | 
						||
  cDvbPlayer::Action() (thanks to Reinhard Nissl).
 | 
						||
- cDevice::PlayTs() now plays as many TS packets as possible in one call.
 | 
						||
- Making sure any floating point numbers written use a decimal point (thanks to
 | 
						||
  Oliver Endriss for pointing out a problem with the F record in the info file of
 | 
						||
  a recording).
 | 
						||
- Fixed detecting the frame rate for radio recordings.
 | 
						||
- Added missing AUDIO_PAUSE/AUDIO_CONTINUE calls to cDvbDevice (thanks to Oliver
 | 
						||
  Endriss).
 | 
						||
- No longer writing the video type into channels.conf if VPID is 0 (thanks to
 | 
						||
  Oliver Endriss for reporting this).
 | 
						||
- Improved efficiency of cEIT::cEIT() (thanks to Tobias Bratfisch).
 | 
						||
 | 
						||
2009-04-26: Version 1.7.6
 | 
						||
 | 
						||
- cDevice::PlayTs() now syncs on the TS packet sync bytes.
 | 
						||
- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets.
 | 
						||
- No longer resetting the patPmtParser in cDevice::PlayTs(), because this
 | 
						||
  caused the selected audio and subtitle tracks to fall back to the default.
 | 
						||
- The SVDRP command PUTE now supports reading the EPG data from a given file
 | 
						||
  (thanks to Helmut Auer).
 | 
						||
- Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
 | 
						||
  (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed the MEGABYTE() macro to make it correctly handle parameters resulting in
 | 
						||
  values larger than 2GB.
 | 
						||
- Added cDevice::NumProvidedSystems() to PLUGINS.html (was missing since it had
 | 
						||
  been implemented).
 | 
						||
- Fixed distortions when switching to the next file during replay.
 | 
						||
- Fixed detecting the frame rate for streams with PTS distances of 1800, which
 | 
						||
  apparently split one frame over two payload units.
 | 
						||
- Added missing 'const' to cRecording::FramesPerSecond() (thanks to Joachim Wilke).
 | 
						||
- Any TS packets in the first "frame" after a cut in an edited recording that don't
 | 
						||
  belong to a payload unit that started in that frame now get their TEI flag set,
 | 
						||
  so that a decoder will ignore them together with any PES data collected for that
 | 
						||
  PID so far (thanks to Oliver Endriss for reporting chirping sound disturbances at
 | 
						||
  editing points in TS recordings).
 | 
						||
- cDvbPlayer::Empty() subtracts 1 from readIndex, because Action() will first
 | 
						||
  increment it.
 | 
						||
- Only storing non-zero Pts values in ptsIndex.
 | 
						||
- Added a note to the INSTALL file about using subdirectories to split a large
 | 
						||
  disk into separate areas for VDR's video data and other stuff (suggested by
 | 
						||
  Udo Richter).
 | 
						||
 | 
						||
2009-05-03: Version 1.7.7
 | 
						||
 | 
						||
- The new function cDevice::GetVideoSize() returns the size and aspect ratio
 | 
						||
  of the video material currently displayed. This function is used to determine
 | 
						||
  the proper size of the OSD. Plugin authors should implement this function in
 | 
						||
  classes derived from cDevice, if they are able to replay video.
 | 
						||
- The OSD and font sizes are now defined in percent of the actual video display
 | 
						||
  size. The maximum OSD size has been raised to 1920x1080, to allow full
 | 
						||
  screen OSD on HD systems.
 | 
						||
- The OSD size is now automatically adjusted to the actual video display
 | 
						||
  (provided the output device implements the GetVideoSize() function).
 | 
						||
- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
 | 
						||
  Oliver Endriss for reporting broken index generation after a buffer overflow).
 | 
						||
 | 
						||
2009-06-13: Version 1.7.8
 | 
						||
 | 
						||
- The name of the function cDevice::GetVideoSize() wasn't very well chosen
 | 
						||
  for its purpose of defining the optimum size of the OSD for the current
 | 
						||
  output device. Therefore a new function named cDevice::GetOsdSize() has
 | 
						||
  been introduced (suggested by Rolf Ahrenberg). Plugin authors should
 | 
						||
  implement this function in classes derived from cDevice, if they are able
 | 
						||
  to replay video. cDevice::GetVideoSize() still exists and should return the
 | 
						||
  actual size of the video material that is currently replayed. Note that
 | 
						||
  because of the many possible aspect ratios for video material, the type
 | 
						||
  of the Aspect parameter of GetVideoSize() has been changed to 'double',
 | 
						||
  and the Aspect parameter in both functions is named differently, because
 | 
						||
  it returns different values (suggested by Reinhard Nissl).
 | 
						||
  Thanks to Oliver Endriss for his input on calculating the Aspect factor in
 | 
						||
  GetOsdSize().
 | 
						||
- Fixed the way the OSD size is determined on full featured DVB cards (thanks
 | 
						||
  to Oliver Endriss).
 | 
						||
- Increased MAXOSDHEIGHT to 1200 (suggested by Nicolas Huillard).
 | 
						||
- Removed limitation to PAL resolution from SPU handling.
 | 
						||
- Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on
 | 
						||
  systems with no real primary replay device (reported by Martin Neuditschko).
 | 
						||
- Added a note to cTsToPes::GetPes() about having to call it repeatedly, once
 | 
						||
  it has returned a non-NULL value.
 | 
						||
- Added MPEG 1 handling to remux.c (thanks to Ales Jurik).
 | 
						||
- Fixed use of time_t in cEIT::cEIT() (thanks to Tobias Bratfisch).
 | 
						||
- Added missing update of lastOsdSizeUpdate.
 | 
						||
- EIT events are now only processed if a plausible system time is available, to
 | 
						||
  avoid wrong handling of PDC descriptors (thanks to Tobias Bratfisch).
 | 
						||
- Removed unused 'synced' member from cTsToPes (reported by Christoph Haubrich).
 | 
						||
- Added a note to cTsToPes about all TS packets having to belong to the same PID,
 | 
						||
  and that for video data GetPes() may only be called if the next TS packet that
 | 
						||
  will be given to PutTs() has the "payload start" flag set (suggested by Christoph
 | 
						||
  Haubrich).
 | 
						||
- Added a note about the meaning of PERCENTAGEDELTA in cRingBuffer::UpdatePercentage()
 | 
						||
  (thanks to Rolf Ahrenberg).
 | 
						||
- The new setup option "Recording/Pause key handling" can be used to define
 | 
						||
  what happens if the Pause key on the remote control is pressed during
 | 
						||
  live tv (thanks to Timo Eskola).
 | 
						||
- Added a note about cFont::GetFont() not being thread-safe.
 | 
						||
- Fixed generating PAT/PMT version numbers in case the PIDs change during
 | 
						||
  recording (reported by Reinhard Nissl).
 | 
						||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
 | 
						||
- Fixed a memory leak when reaching the end of a recording during replay (reported
 | 
						||
  by Reinhard Nissl).
 | 
						||
- Fixed calling close(-1) in cUnbufferedFile::Close() (reported by Reinhard Nissl).
 | 
						||
- Added a workaround for the broken linux-dvb driver header files (based on a patch
 | 
						||
  from Tobias Grimm).
 | 
						||
- Fixed handling the length of DiSEqC command sequences (reported by Reinhard Nissl).
 | 
						||
- Fixed cOsdMenu::Display() in case the menu size has changed (thanks to
 | 
						||
  Reinhard Nissl).
 | 
						||
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
 | 
						||
  (thanks to Ville Skytt<74> and Ludwig Nussel).
 | 
						||
- Modified cSVDRP::CmdGRAB() to avoid writing into const data (reported by
 | 
						||
  Ludwig Nussel).
 | 
						||
- Fixed calculating menu colum widths in case the font has a size other than the
 | 
						||
  default size (reported by Reinhard Nissl).
 | 
						||
- Added a plausibility check for the OSD percentage parameters
 | 
						||
  to avoid problems in case the values are stored in the setup.conf
 | 
						||
  file in a wrong way.
 | 
						||
- Fixed variable types in cIndexFile (reported by Udo Richter).
 | 
						||
 | 
						||
2009-08-23: Version 1.7.9
 | 
						||
 | 
						||
- Fixed storing the current OSD size in case the device has
 | 
						||
  changed it in its setup menu (reported by Reinhard Nissl).
 | 
						||
- Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the
 | 
						||
  buffer has been accepted by the device (reported by Udo Richter).
 | 
						||
- Changed the EIT filter setup to save a few handles on devices that do hardware
 | 
						||
  filtering.
 | 
						||
- Fixed deleting expired timers if they have the VPS flag set, but the event they
 | 
						||
  are assigned to doesn't have a VPS tag.
 | 
						||
- Fixed handling file name length on VFAT systems in case they
 | 
						||
  contain UTF-8 characters (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed generating CaPmts in case audio and video are encrypted using different
 | 
						||
  ECM pids.
 | 
						||
- Updated vdr.1 to use the new file names in recording directories.
 | 
						||
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
 | 
						||
  (thanks to Matthias Schwarzott).
 | 
						||
- Increased the value of MAXFRAMESIZE to better suit HD recordings (thanks to
 | 
						||
  Reinhard Nissl).
 | 
						||
- Implemented full handling of subtitling descriptors (thanks to Mikko Tuumanen).
 | 
						||
 | 
						||
2009-11-22: Version 1.7.10
 | 
						||
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Fixed wrong bracketing in cChannel::SubtitlingType() etc.
 | 
						||
  (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed not logging changes for channels that have no number
 | 
						||
  (reported by Timothy D. Lenz).
 | 
						||
- Changed the project's URLs and email to tvdr.de.
 | 
						||
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
 | 
						||
- Updated Chinese language texts (thanks to Nan Feng).
 | 
						||
- Only checking DVB_API_VERSION to be >=5 in order to stay compileable in case
 | 
						||
  the DVB API version number is increased (the API claims to always be backward
 | 
						||
  compatible).
 | 
						||
- Fixed saving terminal settings when running in background (thanks to Manuel
 | 
						||
  Reimer).
 | 
						||
- Fixed cFrameDetector::Analyze() to handle video streams where the frame type
 | 
						||
  is not detectable from the first TS packet of a frame.
 | 
						||
- Fixed writing the PCR pid into the PMT in cPatPmtGenerator::GeneratePmt()
 | 
						||
  (reported by Rene van den Braken).
 | 
						||
- Added Slovakian language texts (thanks to Milan Hrala).
 | 
						||
- Fixed EntriesOnSameFileSystem() to avoid using f_fsid, which may be 0 (thanks
 | 
						||
  to Frank Schmirler).
 | 
						||
- Fixed starting a recording at an I-frame.
 | 
						||
- Fixed generating the index for recordings from channels that put a whole
 | 
						||
  GOP into one payload unit.
 | 
						||
- The index file for TS recordings is now regenerated on-the-fly if a
 | 
						||
  recording is replayed that has no index. This can also be used to
 | 
						||
  re-create a broken index file by manually deleting the index file and then
 | 
						||
  replaying the recording (at least until the index file has been generated).
 | 
						||
- The cRingBufferLinear::Read() function now returns -1 and sets errno to
 | 
						||
  EAGAIN if the buffer is already full.
 | 
						||
- Fixed handling DVB subtitles for PES recordings (thanks to Rolf Ahrenberg).
 | 
						||
- Added the audio id to the call of PlayAudio() in cDevice::PlayTsAudio()
 | 
						||
  (thanks to Andreas Schaefers).
 | 
						||
- Fixed references to old *.vdr file names in MANUAL (reported by Arthur Konovalov).
 | 
						||
- Reverted "Removed limitation to PAL resolution from SPU handling" because it
 | 
						||
  cause nothing but trouble. Besides, the core VDR doesn't use this, anyway.
 | 
						||
- Fixed the default value for "Pause key handling" in the MANUAL (reported by
 | 
						||
  Diego Pierotto).
 | 
						||
 | 
						||
2010-01-06: Version 1.7.11
 | 
						||
 | 
						||
- Fixed resetting the file size when regenerating the index file.
 | 
						||
- The new function cDevice::PatPmtParser() can be used in derived devices to access
 | 
						||
  the PAT/PMT of the currently replayed material.
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in
 | 
						||
  cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid.
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- The 'sky' plugin is no longer part of the VDR source.
 | 
						||
- Improved SPU handling on devices with limited OSD capabilities (thanks to
 | 
						||
  Matthieu Castet).
 | 
						||
- Several code modifications to avoid compiler warnings (thanks to Winfried K<>hler).
 | 
						||
- Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() (thanks to Johann
 | 
						||
  Friedrichs).
 | 
						||
- Removed debug output of '-' from cTransfer::Receive().
 | 
						||
- Added defines for large files to the 'newplugin' script (reported by Udo Richter).
 | 
						||
- Removed the workaround for short channel names of "Kabel Deutschland", because
 | 
						||
  apparently they now have their data according to the DVB standard (thanks to
 | 
						||
  Johann Friedrichs).
 | 
						||
- Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs).
 | 
						||
- Fixed a busy loop when moving editing marks (thanks to Johann Friedrichs).
 | 
						||
- Updated sources.conf (thanks to Derek Kelly).
 | 
						||
- Modified cCharSetConv so that it can be used to convert from "whatever VDR uses"
 | 
						||
  to a given code (thanks to Joachim Wilke).
 | 
						||
- Channel names containing commas are now handled correctly in channels.conf.
 | 
						||
  If a channel's short name contains a comma, it is replaced with a '.'.
 | 
						||
- cDevice now logs the device number when a new device is created.
 | 
						||
- Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt().
 | 
						||
- cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids.
 | 
						||
- cPatFilter::Process() now only stores CA descriptors for video and audio pids
 | 
						||
  (thanks to Francesco Saverio Schiavarelli for reporting a problem with channels
 | 
						||
  that have some encrypted components that VDR doesn't use).
 | 
						||
- cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas
 | 
						||
  Regel).
 | 
						||
- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel).
 | 
						||
- cPatPmtParser now also stores the audio stream types.
 | 
						||
- The support for full featured DVB cards of the TT/FuSi design has been moved
 | 
						||
  into the new plugin 'dvbsddevice'. On systems that use such a card as their
 | 
						||
  primary device, this plugin now needs to be loaded when running VDR in order
 | 
						||
  to view live or recorded video. If the plugin is not loaded, the card will
 | 
						||
  be treated like a budget DVB card, and there will be no OSD or viewing
 | 
						||
  capability.
 | 
						||
- Fixed handling the "CA PMT" generation (revised a change not mentioned in version
 | 
						||
  1.7.9's changes, which caused a malfunction with Conax and Viaccess CAMs).
 | 
						||
- Fixed stopping subtitle display when switching the primary device (thanks to
 | 
						||
  Anssi Hannula).
 | 
						||
  IMPORTANT NOTE TO PLUGIN AUTHORS: a plugin that implements a derived cDevice
 | 
						||
  class that can replay video must now call the MakePrimaryDevice() function of
 | 
						||
  its base class.
 | 
						||
- Fixed compiler warnings "format not a string literal and no format arguments"
 | 
						||
  in some syslog calls (thanks to Rolf Ahrenberg).
 | 
						||
- The new command line options --edit and --genindex can be used to edit a
 | 
						||
  recording or generate its index without actually starting the entire VDR
 | 
						||
  (based on a patch from Helmut Auer).
 | 
						||
- Improved the description of the transponder parameters in vdr.5 (thanks to
 | 
						||
  Winfried K<>hler).
 | 
						||
- Avoiding setting the video stream type to 2 if the vpid is 0 (problem reported
 | 
						||
  by Arthur Konovalov).
 | 
						||
- Implemented handling the "Content Descriptor" (based on a patch from Rolf
 | 
						||
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the textual
 | 
						||
  representation of the content descriptors as "genre". The epg.data file stores
 | 
						||
  the genre using the tag character 'G'.
 | 
						||
- Implemented handling the "Parental Rating Descriptor" (based on a patch from Rolf
 | 
						||
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the parental
 | 
						||
  rating (if given) in their event displays. The epg.data file stores
 | 
						||
  the parental rating using the tag character 'R'.
 | 
						||
  IMPORTANT NOTE: if VDR doesn't display a parental rating, this does not
 | 
						||
  necessarily mean that the given programme is suitable for all audiences!
 | 
						||
- Rearranged cEvent members to minimize memory waste.
 | 
						||
- After a CLRE command, no further EPG processing is now done for 10 seconds,
 | 
						||
  so that data sent with subsequent PUTE commands doesn't interfere with data
 | 
						||
  from the broadcasters (suggested by Helmut Auer).
 | 
						||
- Added support for DVB cards with multiple fontends. Note that this only
 | 
						||
  works for DVB cards where each frontend can be used independently of all
 | 
						||
  the others on the same adapter.
 | 
						||
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
 | 
						||
  Anssi Hannula).
 | 
						||
 | 
						||
2010-01-31: Version 1.7.12
 | 
						||
 | 
						||
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- The "Edit timer" menu can now set the folder for the recording from a list of
 | 
						||
  folders stored in "folders.conf".
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- If svdrphosts.conf contains only the address of the local host, the SVDRP port
 | 
						||
  is opened only for the local host (thanks to Manuel Reimer).
 | 
						||
- Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR
 | 
						||
  in 'make install' (thanks to Martin Dauskardt).
 | 
						||
- Added plain text error messages to log entries from cOsd::SetAreas() (suggested
 | 
						||
  by Rolf Ahrenberg).
 | 
						||
- cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved
 | 
						||
  cDvbSpuBitmap::getMinBpp() (thanks to Matthieu Castet and Johann Friedrichs).
 | 
						||
- The new setup option "Miscellaneous/Channels wrap" controls whether the current
 | 
						||
  channel wraps around the beginning or end of the channel list when zapping (thanks
 | 
						||
  to Matti Lehtim<69>ki).
 | 
						||
- Fixed determining the frame duration on channels where the PTS deltas jitter by
 | 
						||
  +/-1 around 1800.
 | 
						||
- The PCR pid in generated PMTs is now set to the channel's PCR pid again.
 | 
						||
- Fixed determining the frame duration on channels where the PTS deltas jitter by
 | 
						||
  +/-1 around 3600.
 | 
						||
- The PCR pid is now recorded for channels where this is different from the video
 | 
						||
  PID. To facilitate this, the interfaces of cTransfer, cTransferControl, cRecorder
 | 
						||
  and cReceiver have been modified, so that the PIDs are no longer given in separate
 | 
						||
  parameters, but rather the whole channel is handed down for processing. The old
 | 
						||
  constructor of cReceiver is still available, but it is recommended to plugin authors
 | 
						||
  that they switch to the new interface as soon as possible.
 | 
						||
  When replaying such a recording, the PCR packets are sent to PlayTsVideo().
 | 
						||
- The files "commands.conf" and "reccmd.conf" can now contain nested lists of
 | 
						||
  commands. See vdr.5 for information about the new file format.
 | 
						||
  This obsoletes the CMDSUBMENU patch.
 | 
						||
 | 
						||
2010-02-28: Version 1.7.13
 | 
						||
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Changed the position of Sirius 4 to S4.8E in sources.conf (thanks to Alexander Gross).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Moved the declaration of cMenuCommands to menu.h, so that plugins can use it.
 | 
						||
- Added a note to the MANUAL, saying that adding new transponders only works if the
 | 
						||
  "EPG scan" is active (suggested by Halim Sahin).
 | 
						||
- Improved handling frames at the beginning and end of a recording in cDvbPlayer for
 | 
						||
  devices with large buffers (thanks to Reinhard Nissl).
 | 
						||
- Implemented cDeviceHook to allow plugins more control over which device can
 | 
						||
  provide which transponder (thanks to Reinhard Nissl).
 | 
						||
- Implemented cDevice::GetCurrentlyTunedTransponder() (thanks to Reinhard Nissl).
 | 
						||
- Moved strictly necessary Makefile options into Make.global, which is included
 | 
						||
  by all plugins (thanks to Paul Menzel). The Makefiles of existing plugins should be
 | 
						||
  modified like this:
 | 
						||
 | 
						||
  ------------------------------------------------------------
 | 
						||
  --- PLUGINS/src/hello/Makefile  2009/10/18 14:00:07      2.1
 | 
						||
  +++ PLUGINS/src/hello/Makefile  2010/02/06 14:50:03      2.2
 | 
						||
  @@ -18,7 +18,7 @@
 | 
						||
   ### The C++ compiler and options:
 | 
						||
 | 
						||
   CXX      ?= g++
 | 
						||
  -CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
 | 
						||
  +CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
 | 
						||
 | 
						||
   ### The directory environment:
 | 
						||
 | 
						||
  @@ -26,6 +26,10 @@
 | 
						||
   LIBDIR = ../../lib
 | 
						||
   TMPDIR = /tmp
 | 
						||
 | 
						||
  +### Make sure that necessary options are included:
 | 
						||
  +
 | 
						||
  +include $(VDRDIR)/Make.global
 | 
						||
  +
 | 
						||
   ### Allow user defined options to overwrite defaults:
 | 
						||
 | 
						||
   -include $(VDRDIR)/Make.config
 | 
						||
  ------------------------------------------------------------
 | 
						||
- Added device definitions to the diseqc.conf file format, so that certain satellite
 | 
						||
  positions can be limited to a given list of devices.
 | 
						||
  This obsoletes the SOURCECAPS patch.
 | 
						||
- Keeping subtitles visible when pausing replay (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed adding new transponders in case there is only a single channel in the
 | 
						||
  channel list (reported by Halim Sahin).
 | 
						||
- The file name in the "Timers" menu now shows only the base name of the recording
 | 
						||
  without the folder path (if any). Otherwise with long folder paths the actual
 | 
						||
  recording name was not visible at all.
 | 
						||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
 | 
						||
- Exported some libsi functions (thanks to Lucian Muresan).
 | 
						||
- Improved scalability of the default skins.
 | 
						||
- Fixed the German translation of "Folder name must not contain '%c'!" (thanks to
 | 
						||
  Frank Schmirler).
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- Plugins can now define new sources. In order to implement this, the following
 | 
						||
  changes were made:
 | 
						||
  + The transponder parameter string is no longer interpreted by cChannel, but rather
 | 
						||
    stored as is and used only by the respective device. That way plugins can use a
 | 
						||
    channel's parameter string to store arbitrary data (see vdr.5).
 | 
						||
  + The new class cSourceParam can be used by plugins to define new sources, and to
 | 
						||
    implement OSD items that will be used in the channel editor for editing the source
 | 
						||
    specific parameters of a channel (see dvbdevice.c for an example of how this is
 | 
						||
    done for the default DVB devices).
 | 
						||
  + Purely numerical values are no longer accepted in the 'source' parameter of a
 | 
						||
    channel.
 | 
						||
  This obsoletes the PLUGINPARAM patch.
 | 
						||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
 | 
						||
- cSafeFile::Close() now flushes the file (suggested by Stephan Austerm<72>hle).
 | 
						||
- The option "Setup/DVB/Use Dolby Digital" now only controls whether Dolby Digital
 | 
						||
  tracks appear in the "Audio" menu. Dolby Digital is always recorded.
 | 
						||
  This obsoletes the DOLBYINREC patch.
 | 
						||
 | 
						||
2010-03-12: Version 1.7.14
 | 
						||
 | 
						||
- Fixed handling empty strings in cSource::FromString().
 | 
						||
- Assigned the source character 'I' to "IPTV" (suggested by Rolf Ahrenberg).
 | 
						||
- Assigned the source character 'V' to "Analog Video" (suggested by Lars Hanisch).
 | 
						||
  This obsoletes the ANALOGTV patch.
 | 
						||
- Added support for ATSC devices (thanks to Alex Lasnier).
 | 
						||
  This obsoletes the ATSC patch.
 | 
						||
- The "Source" item in the "Edit channel" menu now wraps around the list of sources
 | 
						||
  (suggested by Halim Sahin).
 | 
						||
- Fixed editing channel parameters.
 | 
						||
- The new setup option "Recording/Delete timeshift recording" controls whether a timeshift
 | 
						||
  recording is automatically deleted after viewing it.
 | 
						||
  This obsoletes the DELTIMESHIFTREC patch.
 | 
						||
  Note that the meaning of the values for this option is different from the DELTIMESHIFTREC
 | 
						||
  patch: 0 means timeshift recordings are not automatically deleted (the default behavior
 | 
						||
  as in previous versions), while 1 means to ask the user whether the recording shall be
 | 
						||
  deleted.
 | 
						||
- Added cChannel::IsSourceType() to test if a channel's source is of a given type.
 | 
						||
- Changed the polarization characters in cDvbSourceParam::GetOsdItem() to uppercase.
 | 
						||
- The full timer file name is now displayed if it ends with "TITLE" or "EPISODE"
 | 
						||
  (pointed out by Udo Richter).
 | 
						||
- Fixed "attempt to drop wrong frame from ring buffer" when skipping +/- one minute
 | 
						||
  during replay.
 | 
						||
- The new setup option "Folders in timer menu" controls whether the file names in
 | 
						||
  the timer menu are shown with their full folder path.
 | 
						||
 | 
						||
2010-06-06: Version 1.7.15
 | 
						||
 | 
						||
- Added Macedonian language texts (thanks to Dimitar Petrovski).
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Added handling of EnhancedAC3DescriptorTag (thanks to Eric Valette).
 | 
						||
- The default SVDRP port is now 6419 (registered with ICANN/IANA by Christian Tramnitz).
 | 
						||
  Use '-p 2001' to switch back to the old port if necessary.
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- cDvbDevice::ProvidesTransponder() now checks the modulation capabilities of the
 | 
						||
  device (as far as the driver allows this).
 | 
						||
- Fixed cFrameDetector::Analyze() in case part of the data has been processed and
 | 
						||
  there is less than MIN_TS_PACKETS_FOR_FRAME_DETECTOR left (reported by Derek Kelly).
 | 
						||
- Added a note about not deleting cDeviceHook objects to device.h.
 | 
						||
- Added user defined key kUser0 (suggested by Ulf Kiener).
 | 
						||
- Include paths are no longer overwritten in the Makefile (thanks
 | 
						||
  to Paul Menzel).
 | 
						||
- The various modulation types are now taken into account when selecting a device for
 | 
						||
  a recording or live viewing, so that devices that provide more capabilities are
 | 
						||
  spared.
 | 
						||
- Fixed generating PMT language descriptors for multi language PIDs (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Transponders that use "8psk turbo fec" (a non-standard mode used by North American
 | 
						||
  providers) are now identified by assuming that all 8psk transponders on DVB-S use
 | 
						||
  "turbo fec". In order to determine whether a certain device can handle "turbo fec",
 | 
						||
  the new driver flag FE_CAN_TURBO_FEC is checked. If your device can handle "turbo
 | 
						||
  fec", and your driver doesn't have that flag, yet, you can apply the patch from
 | 
						||
  ftp://ftp.tvdr.de/vdr/Developer/v4l-dvb-add-FE_CAN_TURBO_FEC.diff. A temporary
 | 
						||
  macro in dvbdevice.c defines the flag for all those who don't need this in the
 | 
						||
  driver, so that they can continue using an unmodified driver.
 | 
						||
  Thanks to Derek Kelly for testing this.
 | 
						||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
 | 
						||
- Fixed handling "none" color entries in XPM files (thanks to Thomas G<>nther).
 | 
						||
- Fixed a crash when creating a new channel if the channel list is empty (reported
 | 
						||
  by Halim Sahin).
 | 
						||
- Updated the Czech OSD texts (thanks to Radek Stastny).
 | 
						||
- Fixed a possible out of buffer memory access in case of bad TS data (reported
 | 
						||
  by Rolf Ahrenberg).
 | 
						||
- Implemented handling of HD resolution subtitles according to v1.3.1 of
 | 
						||
  ETSI EN 300 743, chapter 7.2.1 (thanks to Rolf Ahrenberg).
 | 
						||
- The EPG data now handles stream components 5 (H.264-video) and 6 (HEAAC-audio).
 | 
						||
- Fixed a problem with external Dolby Digital processing via the '-a' option in live
 | 
						||
  mode and with TS recordings (reported by Christopher Reimer).
 | 
						||
- Added handling MPEG audio types "ISO/IEC 14496-3 Audio with LATM transport syntax"
 | 
						||
  and "ISO/IEC 13818-7 Audio with ADTS transport syntax" (suggested by Luis Fernandes).
 | 
						||
  See man vdr(5) on how the APID section of channels has been extended to store
 | 
						||
  this information.
 | 
						||
- Added detecting channels that use service type 0x16.
 | 
						||
- Added full handling of the stream types of Dolby Digital pids
 | 
						||
  (thanks to Jose Alberto Reguero).
 | 
						||
- The new setup option "OSD/Number keys for characters" can be used to control whether
 | 
						||
  the number keys can be used to enter characters in a text input field (suggested
 | 
						||
  by Stefan Huskamp).
 | 
						||
 | 
						||
2010-09-19: Version 1.7.16
 | 
						||
 | 
						||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
 | 
						||
- Added missing Dtypes for ATSC (thanks to Alex Lasnier).
 | 
						||
- Updated the Portuguese language texts (thanks to Cristiano A. Silva).
 | 
						||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
 | 
						||
- Fixed the array size of Atypes in cPatFilter::Process() (thanks to
 | 
						||
  Rolf Ahrenberg).
 | 
						||
- Added locking to the cCutter functions to avoid a crash in case CutRecording()
 | 
						||
  is called from a plugin (reported by Andreas Mair).
 | 
						||
- Fixed DDS detection for HD resolution subtitles (thanks to Reinhard Nissl).
 | 
						||
- Fixed following symbolic links in RemoveFileOrDir().
 | 
						||
- Added support for languages that are written right-to-left (based on a patch
 | 
						||
  from Osama Alrawab). See INSTALL for information on how to turn this on.
 | 
						||
- Added Arabian language texts (thanks to Osama Alrawab).
 | 
						||
 | 
						||
2011-03-12: Version 1.7.17
 | 
						||
 | 
						||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
 | 
						||
- Fixed following symbolic links in RemoveFileOrDir() (cont'd) (thanks to
 | 
						||
  Steffen Barszus).
 | 
						||
- Changed the description of cDevice::GetSTC() to make it mandatory for devices
 | 
						||
  that can replay.
 | 
						||
- Removed the check for positive STC values from cDvbSubtitleConverter::Action().
 | 
						||
- Added cString::operator=(const char *String) (suggested by Antti Sepp<70>l<EFBFBD>).
 | 
						||
- Some spelling fixes (thanks to Ville Skytt<74>).
 | 
						||
- Passing package name and version to xgettext (thanks to Ville Skytt<74>).
 | 
						||
- Made 'dist' target dependent on up to date *.po (thanks to Ville Skytt<74>).
 | 
						||
- Added Language and fixed Language-Team header of *.po (thanks to Ville Skytt<74>).
 | 
						||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
 | 
						||
- Fixed detecting frames on channels that broadcast with 50 or 60 fps.
 | 
						||
  This avoids artifacts during fast forward/rewind when replaying recordings from such
 | 
						||
  channels. To fix the index of existing recordings from such channels, just delete the
 | 
						||
  'index' file of the recording and VDR will generate a new one the next time you play it.
 | 
						||
  You should also change the line "F 25" to "F 50" in the 'info' file of that recording.
 | 
						||
- Added support for "registration descriptor" to 'libsi' and using it in pat.c (thanks
 | 
						||
  to Rolf Ahrenberg).
 | 
						||
- Fixed unjustified log entries about changed channel pids (reported by Derek Kelly).
 | 
						||
- Added an include of VDR's 'Make.global' to libsi's Makefile (thanks to Rolf
 | 
						||
  Ahrenberg).
 | 
						||
- Removed displaying the "contents" information from the "Classic VDR" and
 | 
						||
  "ST:TNG Panels" skins, because it is often wrong and nothing but irritating.
 | 
						||
- Added typecasts to avoid gcc 4.5 warnings in switch statements on eKeys
 | 
						||
  variables where additional 'k_...' flags are used.
 | 
						||
- Fixed inclusion of <stdarg.h> (thanks to Henning Heinold).
 | 
						||
- Changed "frame duration" to "frame rate" in vdr.5 (reported by Tobias Grimm).
 | 
						||
- Removing a cRemote from the Remotes list in case its initialization failed (thanks
 | 
						||
  to Dominik Strasser).
 | 
						||
- Added LDFLAGS to the linker calls in the Makefiles (thanks to Joerg Bornkessel and
 | 
						||
  Paul Menzel).
 | 
						||
- Now updating the 'frames per second' data in the list of recordings when a new
 | 
						||
  recording is started that has a frame rate other than the default.
 | 
						||
- The include path to the freetype2 header files is now retrieved via a call to
 | 
						||
  'pkg-config --cflags freetype2' (suggested by Andreas Oberritter).
 | 
						||
- The OSD now has full TrueColor support. There can be several "pixmaps" that can
 | 
						||
  be overlayed with alpha blending. All existing skins should work out of the box
 | 
						||
  with the TrueColor OSD - the only exception being cOsd::GetBitmap(). Since the
 | 
						||
  TrueColor OSD doesn't use bitmaps, this function will return a dummy bitmap, which
 | 
						||
  may not be what the plugin expects. As long as this bitmap is only used for setting
 | 
						||
  the palette, there is no problem. However, any other operations on this bitmap will
 | 
						||
  have no effect. See the description of the cPixmap functions in osd.h for details
 | 
						||
  about the new functionalities.
 | 
						||
  The "ST:TNG Panels" skin has been enhanced to automatically use the TrueColor OSD
 | 
						||
  if available.
 | 
						||
  The "osddemo" plugin has been extended to show some of the possibilities of the
 | 
						||
  TrueColor OSD if it is run on a system that actually provides TrueColor support.
 | 
						||
  Thanks to Reinhard Nissl for some valuable input, help with debugging, and an
 | 
						||
  implementation of the AlphaBlend() function.
 | 
						||
- Updated the Slovakian language texts (thanks to Milan Hrala).
 | 
						||
- Added Serbian language texts (thanks to Milan Cvijanovic).
 | 
						||
- Fixed reallocating memory in the "pictures" plugin (reported by Paul Menzel, with
 | 
						||
  input from Oliver Endriss).
 | 
						||
- Fixed reallocating memory in cTsToPes::PutTs() (suggested by Oliver Endriss).
 | 
						||
- Now checking the result of all realloc() calls.
 | 
						||
- Fixed setting up the 'Recordings' menu in case there are several recordings
 | 
						||
  with exactly the same name (reported by Marcus Hilbrich).
 | 
						||
- Setting the audio type of language descriptors to 0x00 in the PAT/PMT generator
 | 
						||
  (thanks to Anssi Hannula).
 | 
						||
- Changed the compiler optimization flag to -O3, which gives quite a performance
 | 
						||
  boost in the AlphaBlend() function.
 | 
						||
- While replaying, the editing marks are now updated every 10 seconds (based on a
 | 
						||
  patch from Manuel Reimer).
 | 
						||
- Now reducing the thread and I/O priority cCuttingThread::Action() to make the
 | 
						||
  foreground process more responsive (suggested by Frank Neumann).
 | 
						||
- Removed checking for minimum line length of 21 characters in the LIRC receiver code
 | 
						||
  (reported by Gerald Dachs).
 | 
						||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
 | 
						||
- Now storing the original display size when handling DVB subtitles (thanks to
 | 
						||
  Reinhard Nissl).
 | 
						||
- The original display size of subtitles is now used to scale them properly when
 | 
						||
  displaying them on an HD OSD.
 | 
						||
 | 
						||
2011-04-17: Version 1.7.18
 | 
						||
 | 
						||
- Changed -O2 to -O3 in Make.config.template (reported by Matti Lehtim<69>ki).
 | 
						||
- Added a missing 'default' case in cPixmapMemory::DrawEllipse().
 | 
						||
- Fixed some direct comparisons of double values.
 | 
						||
- Fixed detecting frames on channels that broadcast with separate "fields" instead
 | 
						||
  of complete frames.
 | 
						||
- Made updating the editing marks during replay react faster in case the marks
 | 
						||
  file has just been written (with a patch from Udo Richter).
 | 
						||
- Fixed horizontal scaling of subtitles (reported by Reinhard Nissl).
 | 
						||
- Stripped the note "The data returned by this function is only used for informational
 | 
						||
  purposes (if any)" from the description of cDevice::GetVideoSize(). The VideoAspect
 | 
						||
  is now used to properly scale subtitles.
 | 
						||
- Fixed cUnbufferedFile::Seek() in case it is compiled without USE_FADVISE (thanks
 | 
						||
  to Juergen Lock).
 | 
						||
- Fixed the Language header of the Serbian translation file (thanks to Ville Skytt<74>).
 | 
						||
- Added anti-aliasing when upscaling bitmaps, which improves the display of SD subtitles
 | 
						||
  when replayed on an HD OSD (thanks to Reinhard Nissl for his help in debugging).
 | 
						||
- Renamed cBitmap::Scale() to Scaled(), because it doesn't modify the bitmap itself,
 | 
						||
  but rather returns a scaled copy.
 | 
						||
- Fixed the description of cReceiver in PLUGINS.html, regarding detaching a receiver
 | 
						||
  from its device before deleting it (reported by Winfried K<>hler). This change in
 | 
						||
  behavior was introduced in version 1.5.7.
 | 
						||
- Fixed scaling subtitles in case the OSD size is exactly the same as the display
 | 
						||
  size of the subtitles.
 | 
						||
- Added a missing initialization to sDvbSpuRect (reported by Sergiu Dotenco).
 | 
						||
- Replaced "%lld" and "%llX" print format specifiers with "PRId64" and "PRIX64" to
 | 
						||
  avoid compiler warnings with gcc 4.5.2 (thanks to Sergiu Dotenco).
 | 
						||
  On a personal note: I find it a step in the totally wrong direction that there
 | 
						||
  have been macros introduced to work around this problem in the first place. There
 | 
						||
  should have been "real" format specifiers defined that address this. These macros
 | 
						||
  are nothing but an ugly workaround.
 | 
						||
- Added Cancel(3) to ~cTrueColorDemo() in the "osddemo" plugin (thanks to Reinhard Nissl).
 | 
						||
- Added a missing font deletion in cTrueColorDemo::Action() in the "osddemo" plugin
 | 
						||
  (thanks to Reinhard Nissl).
 | 
						||
- Fixed a buffer overflow in cFont::Bidi() (thanks to Reinhard Nissl).
 | 
						||
- Added HD stream content identifiers to vdr.5 (thanks to Christoph Haubrich).
 | 
						||
- Made cRecordingInfo::Read(FILE *f) private to avoid calls to it from outside
 | 
						||
  cRecordingInfo or cRecording (reported by Mika Laitio).
 | 
						||
- The dvbhddevice plugin is now part of the VDR distribution archive (thanks to
 | 
						||
  Andreas Regel).
 | 
						||
- Removed an obsolete local variable in dvbsdffosd.c (thanks to Paul Menzel).
 | 
						||
- Fixed a possible NULL pointer dereference in osddemo.c (reported by Paul Menzel).
 | 
						||
- Now using pkg-config to get fribidi, freetype and fontconfig cflags and libs (thanks
 | 
						||
  to Ville Skytt<74>).
 | 
						||
- The Makefile now also installs the include files (thanks to Ville Skytt<74>).
 | 
						||
- Added handling of "ANSI/SCTE 57" descriptors (thanks too Rolf Ahrenberg).
 | 
						||
- Avoiding an unecessary call to Recordings.ResetResume() (thanks to Reinhard
 | 
						||
  Nissl).
 | 
						||
 | 
						||
2011-06-19: Version 1.7.19
 | 
						||
 | 
						||
- Fixed cString's operator=(const char *String) in case the given string is the
 | 
						||
  same as the existing one (thanks to Dirk Leber).
 | 
						||
- Avoiding a gcc 4.6 compiler error in the skincurses plugin (thanks to Tobias Grimm).
 | 
						||
- TsGetPayload() now checks if there actually is a payload in the given TS packet
 | 
						||
  (reported by Dirk Leber).
 | 
						||
- Now sorting the source file names in the call to xgettext, to make sure the results
 | 
						||
  are not dependent on the sequence of the files.
 | 
						||
  Plugin authors may want to change the line containing the xgettext call in their
 | 
						||
  Makefile accordingly by changing "$^" to "`ls $^`".
 | 
						||
- The primary device is now only avoided for recording if it is an old SD full
 | 
						||
  featured card. This is done through the new function cDevice::AvoidRecording().
 | 
						||
- Subtitle PIDs are now also decrypted (thanks to Reinhard Nissl).
 | 
						||
- Fixed a possible race condition in cDiseqc::Execute() (reported by Marco G<>benich).
 | 
						||
  The return value of cDiseqcs::Get() is now const, so plugin authors may need to
 | 
						||
  adjust their code if they use this function.
 | 
						||
- The new functions cDevice::SignalStrength() and cDevice::SignalQuality() can be
 | 
						||
  used to determine the signal strength and quality of a given device (thanks to
 | 
						||
  Rolf Ahrenberg for some input on how to use BER and UNC values to generate a
 | 
						||
  "quality" value).
 | 
						||
- The 'sttng' skin now displays two colored bars at the bottom of the channel display,
 | 
						||
  indicating the strength (upper bar) and quality (lower bar) of the received signal.
 | 
						||
  The number to the left of these bars indicates the actual device the current
 | 
						||
  channel is being received with.
 | 
						||
- Fixed detecting frames in case the Picture Start Code or Access Unit Delimiter
 | 
						||
  extends over TS packet boundaries (reported by Johan Andersson).
 | 
						||
  In order to fix this, the semantics of cFrameDetector had to be changed a little.
 | 
						||
  See cRecorder::Action() and cIndexFileGenerator::Action() on how to use the new
 | 
						||
  cFrameDetector::NewPayload() function.
 | 
						||
- The frame detector now only starts collecting PTS values after it has seen the
 | 
						||
  first I-frame, otherwise it might get MaxPtsValues values and stop analyzing
 | 
						||
  even though the incoming data is still garbage (reported by Derek Kelly).
 | 
						||
- The info file of a recording is now only overwritten with a new fps value if
 | 
						||
  that new value is not the default value (thanks to Derek Kelly for reporting a
 | 
						||
  problem with the fps value being overwritten in case a recording was interrupted
 | 
						||
  and resumed, and the fps value could not be determined after resuming recording).
 | 
						||
- The initial channel is now stored by the channel ID in the setup.conf file, in
 | 
						||
  order to avoid problems in case channels are reordered or deleted (reported by
 | 
						||
  Lars Bl<42>ser).
 | 
						||
- Added support for "content identifier descriptor" and "default authority descriptor"
 | 
						||
  to 'libsi' (thanks to Dave Pickles).
 | 
						||
 | 
						||
2011-08-07: Version 1.7.20
 | 
						||
 | 
						||
- Added some missing 'const' to tChannelID (reported by Sundararaj Reel).
 | 
						||
- The isnumber() function now checks the given pointer for NULL (thanks to Holger
 | 
						||
  Dengler).
 | 
						||
- Now checking Setup.InitialChannel for NULL before using it (reported by
 | 
						||
  Christoph Haubrich).
 | 
						||
- cSkins::Message() now blocks calls from background threads (thanks to Michael
 | 
						||
  Eiler for reporting a crash in such a scenario).
 | 
						||
- Fixed the return value of the svdrpsend.pl script in case of an error (thanks to
 | 
						||
  Jonas Diemer).
 | 
						||
- Increased MAXCAIDS to 12 (thanks to Jerome Lacarriere).
 | 
						||
- Fixed handling DiSEqC codes (thanks to Mark Hawes for reporting the bug, and
 | 
						||
  Udo Richter for suggesting the fix).
 | 
						||
- Added a mechanism to defer timer handling in case of problems (reported by
 | 
						||
  Frank Niederwipper).
 | 
						||
- Fixed distortions that happened when splitting recording into several files
 | 
						||
  (was a side effect of "Fixed detecting frames in case the Picture Start Code or
 | 
						||
  Access Unit Delimiter extends over TS packet boundaries" in version 1.7.19).
 | 
						||
  cRecorder::Action() now buffers TS packets in case the frame type is
 | 
						||
  not yet known when a new payload starts. This adds no overhead for channels
 | 
						||
  that broadcast the frame type within the first TS packet of a payload; it only
 | 
						||
  kicks in if that information is not in the first TS packet.
 |