mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
9643 lines
562 KiB
Plaintext
9643 lines
562 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.conf.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
|
||
thrashing 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 K<>hler).
|
||
- 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 Slovak 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
|
||
caused 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 Arabic 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 Slovak 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 to Rolf Ahrenberg).
|
||
- Avoiding an unnecessary 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-15: 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 a 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.
|
||
- Fixed handling the channelID in cMenuEditChanItem (thanks to Udo Richter).
|
||
- cStringList::Sort() can now be called with a boolean parameter that controls
|
||
case insensitive sorting (suggested by Sundararaj Reel).
|
||
- Now scanning new transponders before old ones, to make sure transponder changes
|
||
are recognized (thanks to Reinhard Nissl).
|
||
- Implemented static cIndexFile::IndexFileName().
|
||
- The length (as number of frames) of a recording's index file can now be determined
|
||
by a call to cIndexFile::GetLength() (suggested by Christoph Haubrich).
|
||
- Fixed some crashes in subtitle display (thanks to Rolf Ahrenberg).
|
||
- Made DELETENULL() thread safe (reported by Rolf Ahrenberg).
|
||
- The pic2mpg script of the 'pictures' plugin now generates HD images (thanks to
|
||
Andre Weidemann for his support in using convert/ffmpeg). The old SD version is
|
||
still available as pic2mpg-sd.
|
||
- Added a mutex to protect cOsd::Osds from simultaneous access from different threads
|
||
(reported by Rolf Ahrenberg).
|
||
- The cutter now sets the 'broken link' flag for MPEG2 TS recordings (thanks to
|
||
Oliver Endriss).
|
||
- Fixed language code entry for Portuguese.
|
||
- The new command line options --filesize (suggested by Marco G<>benich) and --split
|
||
can be used together with --edit to set the maximum video file size and turn on
|
||
splitting edited files at the editing marks. These options must be given before
|
||
--edit to have an effect.
|
||
- cTimeMs is no longer initialized to the current time if the value given to the
|
||
constructor is negative (avoids the "cTimeMs: using monotonic clock..." log message
|
||
before VDR's starting log message).
|
||
|
||
2011-09-04: Version 1.7.21
|
||
|
||
- Fixed detecting frames for channels that split frames into several payloads
|
||
(reported by Derek Kelly).
|
||
- Now initializing Setup.InitialChannel to an empty string to avoid problems in
|
||
case there is no setup.conf.
|
||
- The start time of an edited recording is now set to the time of the first
|
||
editing mark (thanks to Udo Richter).
|
||
This obsoletes the CUTTIME patch.
|
||
- Direct access to the members start, priority, lifetime, and deleted of cRecording
|
||
as well as to position and comment of cMark is now deprecated. Plugin authors
|
||
should switch to the new access functions for these members. For now the macro
|
||
__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS is defined in recording.h, which
|
||
exposes these members, so that existing plugins will still compile. Comment out
|
||
this #define to check whether a particular plugin needs to be modified.
|
||
This #define may be removed in a future version.
|
||
- The new functions cRecording::NumFrames() and cRecording::LengthInSeconds() return
|
||
the number of frames and length (in seconds) of a recording (suggested by Steffen
|
||
Barszus).
|
||
- The subtitle PIDs are now stored in the channels.conf file as an extension to the
|
||
TPID field (thanks to Rolf Ahrenberg).
|
||
- The new function cDevice::ProvidesEIT() is used to determine whether a device can
|
||
provide EIT data and will thus be used in cEITScanner::Process() to receive EIT
|
||
data from the channels it can receive (suggested by Rolf Ahrenberg). Note that by
|
||
default it is assumed that a device can't provide EIT data, and only the builtin
|
||
cDvbDevice returns true from this function.
|
||
- The Audio and Subtitles options are now available through the Green and Yellow
|
||
keys in the Setup/DVB menu (thanks to Rolf Ahrenberg). This is mainly for remote
|
||
controls that don't have dedicated keys for these functions.
|
||
- The SVDRP command HITK now accepts multiple keys (up to 31).
|
||
- The Recordings menu now displays the length (in hours:minutes) of each recording
|
||
(thanks to Rolf Ahrenberg). Note that the "new" indicator has been moved from the
|
||
recording time to the length column. This new format is also used by the SVDRP
|
||
command LSTR, so in case you have an application that parses the LSTR output,
|
||
you will need to adjust it to the new format.
|
||
- The dvbsddevice plugin now supports the new option --outputonly, which disables
|
||
receiving on SD FF devices and uses the device only for output (thanks to Udo
|
||
Richter).
|
||
- Fixed detecting frames on radio channels (reported by Chris Mayo).
|
||
- Revoked the changes to cFrameDetector that have been introduced in version 1.7.19.
|
||
Detecting frames in case the Picture Start Code or Access Unit Delimiter
|
||
extends over TS packet boundaries is now done by locally skipping TS packets
|
||
in cFrameDetector.
|
||
|
||
2011-12-04: Version 1.7.22
|
||
|
||
- Fixed scaling subtitles in case the primary device's GetVideoSize() function doesn't
|
||
return actual values (thanks to Luca Olivetti).
|
||
- The DiSEqC codes are now copied in the call to cDiseqc::Execute().
|
||
- VDR now supports "Satellite Channel Routing" (SCR) according to EN50494 (based on
|
||
the "unicable" patch from Lars Hanisch).
|
||
Since "Unicable" is a registered trademark and stands for only one of many
|
||
implementations of SCR, the following changes have been made compared to the patch,
|
||
which need to be taken into account by people who have set up their system using
|
||
the patch:
|
||
- The 'U' parameter in the diseqc.conf file has been changed to 'S' ("Scr").
|
||
- The configuration file name has been changed from "unicable.conf" to "scr.conf".
|
||
- Updated sources.conf (thanks to Arthur Konovalov).
|
||
- The SVDRP command LSTC now also accepts channel IDs (thanks to Dominic Evans).
|
||
- Fixed handling DVB subtitles and implemented decoding textual DVB subtitles (thanks
|
||
to Rolf Ahrenberg).
|
||
- Added cap_net_raw to the capabilities that are not dropped (thanks to Dominic Evans).
|
||
- Fixed setting the start time of an edited recording (thanks to Christoph Haubrich).
|
||
- Temporarily switching free devices to transponders in order to have their running
|
||
status updated is now done by marking the devices as "occupied" for a certain
|
||
amount of time.
|
||
- The new setup options "LNB/Device n connected to sat cable" can be used to define
|
||
which DVB-S devices are connected to the same sat cable and are therefore "bonded".
|
||
This obsoletes the LNBSHARE patch. Users of the LNBSHARE patch will need to newly
|
||
set up their sat devices with the above options.
|
||
- Fixed a crash when deleting a recording while cutting it (thanks to Ville Skytt<74>).
|
||
- Fixed several spelling errors (thanks to Ville Skytt<74>).
|
||
- The new SVDRP command UPDR can be used to trigger an update of the list of
|
||
recordings (thanks to Lars Hanisch).
|
||
- Added generating a pkg-config file to the Makefile (thanks to Ville Skytt<74>).
|
||
- Removed the '.pl' suffix from all scripts (thanks to Ville Skytt<74>).
|
||
- Changed the default location for the LIRC socket to /var/run/lirc/lircd (thanks
|
||
to Ville Skytt<74>).
|
||
- Added file name and line number to LOG_ERROR_STR() (thanks to Rolf Ahrenberg).
|
||
- Replaced all calls to sleep() with cCondWait::SleepMs() (thanks to Rolf Ahrenberg).
|
||
- Fixed a crash with malformed SI data (patch from vdr-portal).
|
||
|
||
2012-01-15: Version 1.7.23
|
||
|
||
- Removed the '.pl' suffix from svdrpsend.pl (sorry, I missed that one).
|
||
- Fixed bonding more than two devices.
|
||
- Fixed handling symbolic links in cRecordings::ScanVideoDir() (reported by
|
||
Sundararaj Reel).
|
||
- Fixed a memory leak in cRecordings::ScanVideoDir() in case there are too many
|
||
link levels (reported by Sundararaj Reel).
|
||
- Removed redundant memset() in the ctor of cSatCableNumbers (triggered by
|
||
Ville Skytt<74> pointing out that the argument sequence in the call was wrong).
|
||
- Removed a redundant NULL check in cDvbSpuDecoder::setTime() (thanks to Ville Skytt<74>).
|
||
- Added HasSnr to the DEBUG_SIGNALQUALITY output in cDvbTuner::GetSignalQuality()
|
||
(triggered by Ville Skytt<74> pointing out that the variable HasSnr was unused).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Added support for HbbTV to libsi (thanks to Christoph Haubrich).
|
||
- Added support for devices with more than one delivery system per frontend.
|
||
This requires a DVB driver with version 5.5 or higher that can handle the
|
||
DTV_ENUM_DELSYS call. With older drivers it will fall back to one delivery
|
||
system per frontend.
|
||
- Updated the Hungarian language texts (thanks to Istv<74>n F<>ley).
|
||
- cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands
|
||
at any given time (reported by Frank Neumann).
|
||
- cEvent::FixEpgBugs() now replaces any newline characters in stream component
|
||
descriptions with blanks (thanks to Torsten Lang for reporting a problem with
|
||
EPG data from BSkyB's "MTV MUSIC", S28.2E-2-2010-7012).
|
||
- Fixed cDvbSubtitleConverter::SetOsdData() (thanks to Rolf Ahrenberg).
|
||
- Fixed cListBase::Move() in case From and To are equal (reported by Sundararaj
|
||
Reel).
|
||
- Added support for DVB-T2 to libsi (thanks to Rolf Ahrenberg).
|
||
- Added support for handling DVB-T2 transponders. This requires a DVB driver
|
||
with version 5.3 or higher that can handle the DTV_DVBT2_PLP_ID call (thanks
|
||
to Rolf Ahrenberg).
|
||
- Fixed cConfig::Load() for g++ version 4.7.0 (thanks to Ville Skytt<74>).
|
||
- Fixed a possible memory corruption in cTsToPes::GetPes() in case of broken
|
||
TS packets, e.g. when switching channels.
|
||
- Fixed the SVDRP command CLRE for a single channel in case there are events
|
||
that have a timer (thanks to Timo Eskola).
|
||
- BIDI support now checks at runtime whether the system runs with UTF-8 (suggested
|
||
by Torsten Lang).
|
||
- Added member functions Adapter() and Frontend() to cDvbDevice (suggested by
|
||
Rolf Ahrenberg).
|
||
- The parameters that are only used by "second generation" delivery systems (DVB-S2
|
||
and DVB-T2) are no longer written into channels.conf for "first generation"
|
||
delivery systems (DVB-S and DVB-T).
|
||
- Changed IndexToHMSF() so that it can handle negative Index values.
|
||
- Added option -N to the msgmerge call in the Makefile, because fuzzy translation
|
||
mostly resulted in useless strings.
|
||
- The new setup option "Replay/Show remaining time" can be used to switch between
|
||
showing the total length or the remaining time of the recording that is currently
|
||
replayed.
|
||
- Fixed wrongfully displaying the length of a recording in the title of the replay
|
||
progress display.
|
||
- Fixed frozen live view with device bonding in case the bonded master is used for
|
||
live viewing (reported by Uwe Scheffler).
|
||
|
||
2012-02-14: Version 1.6.0-3
|
||
|
||
- Changed cDvbDevice::GrabImage() to use V4L2
|
||
(backport from version 1.7.3, thanks to Ralf Schueler).
|
||
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
|
||
(backport from version 1.7.8, thanks to Ralf Schueler).
|
||
- Modified cSVDRP::CmdGRAB() to avoid writing into const data
|
||
(backport from version 1.7.8, thanks to Ralf Schueler).
|
||
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
|
||
(backport from version 1.7.9, thanks to Ralf Schueler).
|
||
|
||
2012-02-19: Version 1.7.24
|
||
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed a high load in case a transponder can't be received.
|
||
- Improved the way DVB_API_VERSION is checked.
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed asserting there is a live programme if the primary device is bonded with
|
||
a device that starts a recording on a different band.
|
||
- Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html.
|
||
- Fixed a crash in a plugin using cDeviceHook when VDR ends (reported by Oliver Endriss).
|
||
- Some improvements to the Makefiles (thanks to Christian Ruppert).
|
||
- Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full
|
||
minutes (thanks to Christoph Haubrich).
|
||
- Symbolic links are no longer resolved in cRecordings::ScanVideoDir() (thanks to
|
||
Sundararaj Reel).
|
||
- The epg.data file is now read in a separate thread to make the startup process
|
||
faster in case the file is very large (suggested by Helmut Auer).
|
||
- Fixed selecting the primary device for receiving the live viewing channel in
|
||
case it is bonded with an other device and has no receiver attached to it.
|
||
- Fixed a possible crash when canceling VDR while displaying subtitles, and the
|
||
primary device is no longer available.
|
||
- Improved handling subtitles of BBC channels.
|
||
- No longer using tabs as delimiter in the EPG bugfix log (they were garbled in the
|
||
log file).
|
||
- Added a missing '.' after the month in VPS strings.
|
||
- Added some missing 'const' to cDevice (thanks to Joachim Wilke).
|
||
- Fixed handling the PrimaryLimit when requesting a device for live viewing
|
||
(reported by Uwe Scheffler).
|
||
- Removed superfluous calls to SetVideoFormat() from device constructors. This
|
||
function is called in cDevice::SetPrimaryDevice(), anyway.
|
||
- An ongoing editing process is now canceled if either the original or the edited
|
||
version of the recording is deleted from the Recordings menu.
|
||
- The SVDRP command DELR now won't delete a recording that is currently being edited.
|
||
- Removed code stub for obsolete SVDRP command MOVT.
|
||
- The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory
|
||
instead of looping through adapter/frontend numbers. This allows for "holes" in the
|
||
device numbering.
|
||
- cReadDir::Next() now skips directory entries "." and "..".
|
||
- Fixed a possible deadlock in time shift mode.
|
||
- Fixed switching into time shift mode when pausing live video (thanks to Reinhard
|
||
Nissl for helping to debug this one).
|
||
|
||
2012-03-03: Version 1.7.25
|
||
|
||
- The fps value for channels where it differs from the default is now set correctly
|
||
when pausing live video.
|
||
- Increased the average character estimate for calculating tab positions in skins,
|
||
to better suit wide fonts (reported by Rudi Hofer).
|
||
- Fixed getting the subsystem ids of DVB devices in case they have been rearranged
|
||
via udev rules.
|
||
- Added several cTimer::Set...() functions (suggested by Alexander Rieger).
|
||
- Changed the return value of cTimer::SetFile() to 'void'.
|
||
- Revoked "Fixed a possible deadlock in time shift mode" because it caused trouble with
|
||
output on vdr-xine and dxr3, and also short glitches when replaying on any output
|
||
device.
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed handling subtitle color palettes on channels where subtitles appear
|
||
"word by word" (thanks to Rolf Ahrenberg).
|
||
- Fixed upscaling cBitmaps with anti-aliasing (thanks to Rolf Ahrenberg for reporting
|
||
a problem with color palettes in subtitles).
|
||
- Fixed getting the video aspect ratio for scaling subtitles.
|
||
- Removed the "PrimaryLimit". Old "full featured" DVB cards can be run with the
|
||
--outputonly option to avoid problems with recording high bandwidth channels.
|
||
Besides, with HDTV becoming ever more popular those cards are pretty much obsolete
|
||
by now (the TT S2-6400 has no problems recording and replaying high bandwidth
|
||
channels simultaneously). And, last but not least, people using software players
|
||
won't notice this change, anyway.
|
||
- Since cReceivers can have priorities between -99 and 99, the priority
|
||
for an unused device has been changed from -1 to -100.
|
||
- If the first event in a schedule has a table id of 0x00, any incoming EIT data for
|
||
that schedule from the DVB stream will be completely ignored. This way an external
|
||
EPG source can fill the schedules with EPG data that will not be messed up with
|
||
that from the DVB data stream. Note, though, that this means VDR can not do VPS
|
||
controlled recordings with such events!
|
||
- Added some typecasts to silence gcc compiler warnings (thanks to Rolf Ahrenberg).
|
||
- Fixed handling overlapping timers in case a VPS timer with higher priority needs
|
||
to interrupt a timer with lower priority.
|
||
- The code for the RCU remote control unit has been moved into a separate plugin
|
||
named "rcu".
|
||
The REMOTE=RCU option in the 'make' call for VDR is now obsolete.
|
||
The command line option --rcu is now obsolete. Use -Prcu instead. If you have
|
||
used --rcu with a device path, use -P"rcu -d<device>".
|
||
- Added support for automatically selecting subtitles when playing old PES
|
||
recordings made with the subtitles plugin (thanks to Anssi Hannula).
|
||
- Revised priority handling to allow receivers with a priority that is lower than
|
||
that of live viewing (with suggestions from Frank Schmirler):
|
||
+ An idle device (one that is not used for live viewing and has no receiver
|
||
attached to it) now has priority IDLEPRIORITY (-100).
|
||
+ An unused CAM slot now has priority IDLEPRIORITY.
|
||
+ The default priority of a cReceiver is now MINPRIORITY (-99).
|
||
+ A device that is used only for live viewing (no matter whether it's in Transfer
|
||
Mode or real live mode) now has priority TRANSFERPRIORITY (-1).
|
||
+ The function cDevice::Receiving() now returns true if there is any receiver
|
||
attached to the device. Its boolean parameter has no meaning any more.
|
||
+ The default value for the Priority parameter of the function cDevice::ProvidesChannel()
|
||
has been changed to IDLEPRIORITY.
|
||
- Added a Query parameter to cDevice::GetDevice(), so that devices can be queried
|
||
without side effects when zapping.
|
||
- Replaced min(max()) calls with the new function constrain().
|
||
- Fixed handling OSD color button texts in case a menu item has texts of its own
|
||
(reported by Rolf Ahrenberg). If a plugin creates derived cMenuEditItems that set
|
||
color button texts, these should not set the texts directly by calling
|
||
cSkinDisplay::Current()->SetButtons(), but rather call the new member function
|
||
cMenuEditItem::SetHelp().
|
||
- Moved the call to cStatus::MsgChannelSwitch(this, 0) to the beginning of
|
||
cDevice::SetChannel(), so that any receivers that have been attached to the
|
||
device by plugins may be detached before the final call to GetDevice().
|
||
This actually reverts "Only calling cStatus::MsgChannelSwitch() if a channel
|
||
is actually going to be switched or has actually been switched successfully"
|
||
which was made in version 1.1.10, so please report if this has any unwanted
|
||
side effects.
|
||
|
||
2012-03-10: Version 1.7.26
|
||
|
||
- Now checking for NULL in cOsd::AddPixmap() (suggested by Christoph Haubrich).
|
||
- Fixed the German translation of "VDR will shut down in %s minutes" (thanks to
|
||
Frank Neumann).
|
||
- The replay progress display is now turned on whenever a mark is toggled (not
|
||
only when one is set).
|
||
- Toggling a mark now restarts the timeout of the replay progress display.
|
||
- Fixed a possible race condition with the SVDRP commands CLRE and PUTE, where
|
||
EPG data from the transponder could be handled even though it shouldn't be
|
||
handled for 10 seconds.
|
||
- Added some missing member initializations in cBitmap.
|
||
- Improved displaying the play mode in the ST:TNG skin.
|
||
- Made the ST:TNG skin the default in case the user selected skin is not available.
|
||
- Improved displaying signal strength and quality in the ST:TNG skin's channel
|
||
display.
|
||
- Fixed switching devices to the transponders of VPS recordings in case there
|
||
are only bonded devices. The cDevice's "avoid device" mechanism has been replaced
|
||
by using "occupied".
|
||
- Fixed selecting devices for the EPG scan in case the primary device is bonded
|
||
with an other one.
|
||
- Removed the calls to EITScanner.UsesDevice(this) from dvb[hs]ddevice.c, because
|
||
the code following these calls is only executed if LiveView is true, which is
|
||
never the case when the EITScanner switches to a channel.
|
||
- Removed the obsolete function cEITScanner::UsesDevice(). If a plugin has used this
|
||
function to find out whether a call to its cStatus::ChannelSwitch() function was
|
||
due to a live channel switch, it can use that function's new parameter LiveView.
|
||
Any plugins that implement cStatus::ChannelSwitch() need to add the parameter
|
||
'bool LiveView' to that function.
|
||
- Fixed parsing channel data in case the audio pid is 0. On channels that only
|
||
broadcast Dolby Digital audio there were sometimes log entries like
|
||
"changing pids of channel ... from ... to ..." with no apparent difference
|
||
between the old and new set of pids.
|
||
- Fixed checking pids in case a channel has only Dolby Digital audio.
|
||
- The Green button in the "Edit timer" menu can now be used to toggle between single
|
||
shot and repeating timers. This is the same as pressing '0' when the "Day" field
|
||
is selected, but it works at any time (and is more obvious).
|
||
- Revoked "If the first event in a schedule has a table id of 0x00, any incoming EIT data for
|
||
that schedule from the DVB stream will be completely ignored".
|
||
- Added a new plugin interface for implementing EPG handlers.
|
||
+ A plugin can implement an EPG handler by creating an object derived from
|
||
cEpgHandler and implementing the necessary member functions.
|
||
+ The special handling of events with table id 0x00 has been dropped.
|
||
For backwards compatibility EPG events with table ids lower than 0x4E will
|
||
be treated as if they had a table id of 0x4E, and the new plugin 'epgtableid0'
|
||
can be used to have them handled like in previous versions.
|
||
+ The default table id for a newly created cEvent has been changed to 0xFF,
|
||
which is higher than any normal table id that is broadcast in the EIT data.
|
||
See PLUGINS.html, section "Electronic Program Guide" for more information.
|
||
|
||
2012-03-25: Version 1.7.27
|
||
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Changed the Green button in the "Edit timer" menu from "Once" to "Single"
|
||
(suggested by Rolf Ahrenberg).
|
||
- Fixed some typos in HISTORY and CONTRIBUTORS (thanks to Ville Skytt<74>).
|
||
- The channel name column in the "What's on now/next" menu now adjusts its width
|
||
to display the full short name of each channel (suggested by Dominic Evans).
|
||
- Dropped the meanwhile obsolete script 'i18n-to-gettext'.
|
||
- Removed the obsolete function cPlugin::RegisterI18n().
|
||
- Removed the obsolete typedef tI18nPhrase.
|
||
- Adapted menu column widths of 'skincurses' to the wider HD OSD sizes.
|
||
- Deactivated definition of __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS (recording.h)
|
||
and LEGACY_CRECEIVER (receiver.h) to trigger an error for any plugin that still
|
||
uses the respective code. You can reactivate these to quickly make your plugin
|
||
compile again, but beware that these code parts will be removed in one of the next
|
||
versions.
|
||
- Made the "overloaded-virtual" warning an error to detect hidden overloaded
|
||
virtual functions (thanks to Anssi Hannula for pointing out -Werror=...).
|
||
Plugin authors may want to change -Woverloaded-virtual to -Werror=overloaded-virtual
|
||
in their Makefiles.
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Improved fast forwarding to the end of a timeshift recording.
|
||
- The new function cDevice::DeviceName() returns a string identifying the name of
|
||
the given device.
|
||
- When toggling a timer between "Single" and "Repeating", the previous setting is now
|
||
retained in case the user toggles back to the original value.
|
||
- When estimating the remaining disk space (in hours), the average data rate of all
|
||
existing recordings is now taken into account. If this value can't be determined,
|
||
the previous value of 25.75 MB/min is taken.
|
||
- No longer using GetFont() (which is not thread safe) in the 'osddemo' plugin.
|
||
- No longer using GetFont() (which is not thread safe) in cSubtitleRegion::UpdateTextData().
|
||
- Fixed a memory leak in cSubtitleRegion::UpdateTextData().
|
||
- Moved setting LC_NUMERIC further up to make sure any floating point numbers use a
|
||
decimal point (suggested by Tobias Grimm).
|
||
- Added missing channel locking to cEIT.
|
||
- Fixed reduced bpp support for DVB subtitles (thanks to Rolf Ahrenberg).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Reverted some improvements to Make.config.template (thanks to Christian Ruppert).
|
||
- Fixed handling IDLEPRIORITY in cDvbDevice::ProvidesChannel() (thanks to Frank
|
||
Schmirler).
|
||
|
||
2012-06-03: Version 1.7.28
|
||
|
||
- Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4.
|
||
- Fixed getting the maximum short channel name length in case there are no short names
|
||
at all (reported by Derek Kelly).
|
||
- The new function cDevice::DeviceType() returns a string identifying the type of
|
||
the given device.
|
||
- Now limiting the number of characters of a channel's (short) name to 16 in the
|
||
schedules menus, to keep that column from getting overly wide in case there is
|
||
a channel with a very long name that has no short name.
|
||
- Fixed EPG scan on systems with only a single DVB device that use software output
|
||
(reported by Juergen Lock).
|
||
- Skins can now inquire the menu category for which their cSkinDisplayMenu is currently
|
||
being used. This can be done either through a call to cSkinDisplayMenu::MenuCategory()
|
||
or by reimplementing cSkinDisplayMenu::SetMenuCategory(). This information allows a
|
||
skin to use special icons or decorations for the various types of menus in VDR.
|
||
- The new setup option "DVB/Standard compliance" can be used to switch between different
|
||
variations of the DVB standard (thanks to Rolf Ahrenberg). Currently there is "DVB"
|
||
(for the original DVB standard) and "ANSI/SCTE", which is used to properly handle
|
||
certain private stream types.
|
||
- The disk usage is no longer automatically added to the title of the main and
|
||
"Recordings" menus. This has always been a mekeshift solution and it is now up
|
||
to the individual skin if, where and how it wants to display this information.
|
||
A skin can use the new cVideoDiskUsage class to implement such a display. For
|
||
compatibility, the default skins "Classic VDR", "ST:TNG Panels" and "Text mode"
|
||
(i.e. curses) have been changed to behave like before. Other skins may want to
|
||
display the disk usage in totally different ways.
|
||
- A cOsdMenu can now handle skins that display different numbers of items in the
|
||
various menu categories.
|
||
- OSD and skin are now reinitialized after a plugin setup page has been confirmed,
|
||
to have them react immediately in case any change to a plugin's setup parameter
|
||
has an effect on the OSD.
|
||
- The Timers list is now marked as modified whenever a recording starts or ends.
|
||
- Fixed cDevice::StillPicture(), making sure it doesn't call the derived class's
|
||
function if no buffer has been allocated (reported by Marcus Roscher).
|
||
- Fixed the SVDRP command UPDR, which didn't update the global recordings list
|
||
(reported by Lars Hanisch).
|
||
- cControl::Control() now has an additional boolean parameter, which can be set to
|
||
true to get the current player control even if it is hidden.
|
||
- The new functions cControl::GetRecording() and cControl::GetHeader() can be used
|
||
to retrieve information about what the current player is playing.
|
||
- Fixed a possible high CPU load when pausing replay (thanks to Reinhard Nissl).
|
||
- Fixed character comparisons in cSubtitleObject::DecodeCharacterString() (reported
|
||
by Reinhard Mantey).
|
||
- Renamed the function cString::sprintf(const char *fmt, va_list &ap) to vsprintf(),
|
||
because it might inadvertently be called with a 'char *' as the second argument on
|
||
some compilers and cause a crash (reported by Sundararaj Reel).
|
||
- Removed the "bondedMasterFailed" mechanism from cDvbTuner, because it caused
|
||
problems with the EPG scan in case a transponder is not receivable in a setup with
|
||
bonded devices (reported by Michael Schneider).
|
||
- Making sure setup strings don't contain any newline characters (thanks to Joachim
|
||
Wilke).
|
||
- The new member function cSkinDisplayReplay::SetRecording() allows a skin to display
|
||
more information about the currently played recording.
|
||
- Fixed a mismatched 'delete' in cSchedules::SetEpgDataFileName() (thanks to Reinhard
|
||
Mantey).
|
||
- The DrawText() functions of the OSD now accept the new alignment flag taBorder,
|
||
which triggers keeping a proper distance from the edge that taLeft or taRight
|
||
aligns to.
|
||
- Fixed checking for UTF-8 support in cFont::Bidi() (reported by Torsten Lang).
|
||
- If a recording has no info file, the 'title' of the recording's info is now set
|
||
to the recording's name.
|
||
- cVector::Clear() now reinitializes any previously used members.
|
||
- Fixed resetting CAMs (thanks to Marco Skambraks).
|
||
- The new function RgbShade() (include osd.h) can be used to generate a brighter or
|
||
darker version of a given color.
|
||
- The new class cSortedTimers can be used to quickly get a list of all timers, sorted
|
||
by their start time.
|
||
- The new skin "LCARS" is an enhanced version of the "ST:TNG" skin (which is still
|
||
there in its original layout, for those who don't like the LCARS skin, or can't use
|
||
it due to OSD limitations). The LCARS skin utilizes the new "menu category" feature
|
||
to display additional information on the main menu page. It shows upcoming timers
|
||
and the system's devices, as well as which device is recording which timers. The
|
||
upper pane of the main menu displays the programme data in live and replay mode,
|
||
and a progress bar. An indicator on the right side of the device list shows which
|
||
device is currently used for live viewing, and whether it is in transfer mode.
|
||
The individual device displays show the device number, the device type, which CAM
|
||
(if any ) is currently assigned to the device, and the signal strength and quality.
|
||
On the left side of the OSD there is a permanent display of the current date and
|
||
time, the disk usage and the system load.
|
||
"LCARS" is the new default skin of VDR. It requires at least a 4bpp (16 color) full
|
||
screen OSD, but you can still operate it if your OSD can handle only fewer colors
|
||
(in which case you may want to switch to the "ST:TNG" or "Classic VDR" skin).
|
||
- Finally removed the code marked with __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS
|
||
and LEGACY_CRECEIVER.
|
||
- Now making sure that the "small font" is never larger than the "osd font".
|
||
- Fixed font handling with fontconfig 2.9.0 or newer (thanks to Joerg Bornkessel).
|
||
- Extended the interface to the script that gets called for recordings, so that in
|
||
the "edited" case it also provides the name of the original recording (thanks to
|
||
Christian Richter).
|
||
- Added DeleteEvent() to the EPG handler interface, so that an EPG handler can trigger
|
||
deleting of an event (thanks to Christian Kaiser).
|
||
- Speeded up opening menus on systems with many (several thousands of) recordings, by
|
||
caching the information whether a recording is stored on the video directory file
|
||
system within the cRecording data (based on a patch from Torsten Lang).
|
||
|
||
2012-07-14: Version 1.7.29
|
||
|
||
- Added a missing template specification to the c'tor of cSortedTimers (thanks to Udo
|
||
Richter).
|
||
- Fixed the background color of the Transfer Mode indicator bitmap in the LCARS skin.
|
||
- The LCARS skin now only displays devices that can actually receive channels, leaving
|
||
out, for instance, pure replay devices (suggested by Reinhard Nissl).
|
||
- Now scaling down the Transfer Mode indicator bitmap in the LCARS skin in case it
|
||
doesn't fit with the selected font size (reported by Reinhard Nissl).
|
||
- Fixed making LCARS the default skin.
|
||
- Adjusted the default values for OSD and font sizes to better fit HDTV.
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed the call to ChannelString() in cSkinLCARSDisplayChannel::SetChannel() (thanks
|
||
to Rolf Ahrenberg).
|
||
- Removed DeleteEvent() from the EPG handler interface (turned out not to be useful)
|
||
and replaced it with HandledExternally() (thanks to J<>rg Wendel).
|
||
- Added SetComponents() to the EPG handler interface (thanks to Dirk Heiser).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Changed the button colors in the LCARS skin to better fit with the rest of the theme.
|
||
- Removed the gap from the main menu buttons in the LCARS skin.
|
||
- Fixed some copy&paste errors in PLUGINS.html (thanks to Winfried K<>hler).
|
||
- The LCARS skin's main menu now only displays timers that are actually activated.
|
||
- Within the "Recordings" menu, pressing the '0' key now toggles sorting between
|
||
"by time" and "by name". The selected sort mode is stored separately for each
|
||
folder (provided you have write access to that folder).
|
||
If a folder is newly created by a repeating timer, the sort mode for that
|
||
folder is initially set to "by time".
|
||
Note that in previous versions the default sort order of the top level video
|
||
directory was "by name" and all subdirectories were sorted "by time". Now the
|
||
default sort order for all directories is "by name", so if you have an existing
|
||
folder that shall be sorted "by time", press the '0' key once to achieve this.
|
||
- Fixed several spelling errors (thanks to Ville Skytt<74>).
|
||
- Fixed handling recording with more than two bonded devices.
|
||
- Fixed the type of MBperMinute in cVideoDiskUsage::HasChanged() (thanks to Andreas
|
||
Mair).
|
||
- Setting the "broken link" or "TEI" flags when cutting recordings is now suppressed
|
||
if the editing point merges two seamlessly fitting parts of the same stream (thanks
|
||
to Torsten Lang).
|
||
- Fixed displaying messages in the LCARS skin.
|
||
- Fixed checking for a visible live programme in case a menu or the channel display
|
||
is currently open.
|
||
- Changed some of the colors in the LCARS skin (you may need to delete the file
|
||
lcars-default.theme from your themes directory to see these changes).
|
||
- The new setup option "Miscellaneous/Show channel names with source" can be used to
|
||
turn on adding the source character to channel names whenever they are displayed
|
||
(suggested by Ludi Kaleni).
|
||
|
||
2012-09-09: Version 1.7.30
|
||
|
||
- Fixed sorting recordings in the top level video directory.
|
||
- Fixed handling control characters in SI data in case of UTF-8 encoded strings
|
||
(thanks to Mehdi Karamnejad for reporting a problem with garbled UTF-8 EPG data
|
||
and helping to debug it).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- When checking whether a video directory is empty, file names that start with a
|
||
dot ('.') are now ignored and will be implicitly removed if the directory contains
|
||
no other files. This fixes the leftover ".sort" files that were introduced in
|
||
version 1.7.29.
|
||
- Added IsUpdate() to the EPG handler interface (thanks to J<>rg Wendel).
|
||
- Fixed detecting transfer mode on full featured DVB cards (thanks to Stefan Huelswitt
|
||
for reporting a problem with updating CA descriptors in such cases).
|
||
- Fixed a race condition when zapping in transfer mode (reported by Reinhard Nissl).
|
||
This involves a slight change in the semantics of the cReceiver::Activate() function,
|
||
which is now called with 'false' *after* the receiver has been detached from the
|
||
device.
|
||
- The new function cDevice::ReadFilter() can be used by devices to implement their
|
||
own way of retrieving section filter data (thanks to Deti Fliegl).
|
||
- The new function cDevice::HasInternalCam() can be implemented by devices that
|
||
provide encrypted channels in an already decrypted form, without requiring explicit
|
||
handling of a CAM (thanks to Anssi Hannula).
|
||
- VDR can now be built according to the FHS ("File system Hierarchy Standard") by
|
||
activating the line
|
||
#USEFHS = 1
|
||
in a copy of the file Make.config.template (thanks to Dennis Bendlin, as well as
|
||
Christopher Reimer and Udo Richter for contributing to the patch).
|
||
- By default (without FHS support) the config directory is now set to the value
|
||
given in the -v option if only -v and no -c is given.
|
||
- Fixed a long delay at the end when replaying a recording that has stopped recording
|
||
less than an hour ago (typically time shift mode or a freshly edited recording).
|
||
- Fixed getting the file size and number of frames of ongoing recordings (only the
|
||
timestamp of the recording's directory was checked, while it should have been that
|
||
of the index file).
|
||
- Fixed sluggish response when manipulating editing marks while a cutting thread
|
||
is running (reported by Torsten Lang).
|
||
- The new setup options "OSD/Color key [0123]" can be used to adjust the sequence
|
||
of the color buttons displayed in the menus to that of the color keys on your
|
||
remote control (based on a patch from Oliver Schinagl).
|
||
Authors of plugins that implement skins may want to adapt their SetButtons()
|
||
function in order to make use of this new feature. See, for instance, the function
|
||
cSkinClassicDisplayMenu::SetButtons() in skinclassic.c for details.
|
||
|
||
2012-09-30: Version 1.7.31
|
||
|
||
- If regenerating an index file fails and no data is written to the file, VDR now
|
||
reports this error and removes the empty index file.
|
||
- The setup parameter "Recording/Instant rec. time (min)" can now be set to '0',
|
||
which means to record only the currently running event (based on a patch from Matti
|
||
Lehtim<69>ki).
|
||
- Decreased the ring buffer put/get trigger sizes from 1/3 to 1/10.
|
||
- The script given to VDR with the '-r' option is now also called whenever a
|
||
recording is deleted (thanks to Alexander Wenzel).
|
||
- Improved detecting frames in H.264 video (reported by Andrey Pridvorov).
|
||
- cPatPmtParser::ParsePmt() now also recognizes stream type 0x81 as "AC3", so that
|
||
recordings that have been converted from the old PES format to TS can be played
|
||
(suggested by Jens Vogel).
|
||
- Fixed a leftover frame counter in the LCARS skin's replay display after jumping to
|
||
an editing mark and resuming replay.
|
||
- The new class cIoThrottle is used to allow I/O intense threads to temporarily
|
||
suspend their activities in case buffers run full (suggested by Torsten Lang).
|
||
Currently the cutter thread is suspended if the TS or Recorder buffer use more
|
||
than 50% of their capacity. Plugin authors may want to participate in this
|
||
mechanism if they use intense background I/O.
|
||
- Increased the size of the TS buffer to 5MB and that of the Recorder buffer to
|
||
20MB to better handle HD recordings (suggested by Torsten Lang).
|
||
- Moved cleaning up the EPG data and writing the epg.data file into a separate
|
||
thread to avoid sluggish response to user input on slow systems (based on a patch from
|
||
S<>ren Moch).
|
||
- Fixed sorting folders before recordings in case of UTF-8 (thanks to S<>ren Moch).
|
||
- Reactivated stripping control characters from EPG texts and adapted it to UTF-8.
|
||
- Added missing decrementing of 'len' in libsi/si.c's String::decodeText() functions.
|
||
- When checking whether a video directory is empty, file names that start with a
|
||
dot ('.') are no longer automatically ignored and implicitly removed if the directory
|
||
contains no other files. Instead, RemoveEmptyDirectories() now has an additional
|
||
parameter that can be given a list of files that shall be ignored when considering
|
||
whether a directory is empty. This allows users to continue to use files such as
|
||
".keep" to prevent a directory from being deleted when it is empty. Currently the
|
||
only file name that is ignored is ".sort".
|
||
|
||
2012-11-18: Version 1.7.32
|
||
|
||
- Pressing the Play key during normal live viewing mode now opens the Recordings menu
|
||
if there is no "last viewed" recording (thanks to Alexander Wenzel).
|
||
The same behavior has been implemented for the Blue key in the main menu.
|
||
- cIoThrottle::Engaged() is now also checked in cRemoveDeletedRecordingsThread::Action(),
|
||
to suspend removing deleted recordings in case this is necessary to make room for
|
||
new, ongoing recordings (suggested by Udo Richter).
|
||
- The cThread constructor now has an additional boolean parameter that can be set to
|
||
true to have this thread run at a lower priority. Plugin authors that use low
|
||
priority threads may want to use this instead of the calls to SetPriority(19) and
|
||
SetIOPriority(7). The priority of a thread ("low" or "high") is now logged when the
|
||
thread starts.
|
||
- Changed DTV_DVBT2_PLP_ID to DTV_STREAM_ID in dvbdevice.c to adapt to an incompatible
|
||
change in DVB API 5.8 (reported by Derek Kelly).
|
||
Removed the meanwhile obsolete definition of FE_CAN_TURBO_FEC.
|
||
- Fixed some compiler warnings under gcc version 4.7.1.
|
||
- Fixed setting the video format in the dvbhdffdevice (thanks to Torsten Lang).
|
||
- Fixed 'make install' to not overwrite existing configuration files (thanks to Peter
|
||
M<>nster).
|
||
- Added including the Make.global and Make.config files to the dvbdhffdevice's
|
||
libhdffcmd/Makefile.
|
||
- Added options to build a 32-bit version of VDR on a 64-bit machine to
|
||
Make.config.template.
|
||
- Fixed handling VPS timers in case the running status of an event goes to '1' (not
|
||
running) and later goes to '4' (running).
|
||
- If a frame position in the 'marks' file of a recording doesn't point to an I-frame,
|
||
it will now be shifted towards the next I-frame, either up or down, whichever is
|
||
closer (suggested by Udo Richter).
|
||
- Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer() (reported by
|
||
Sundararaj Reel).
|
||
- Fixed handling timers in case an event is modified and "phased out" while the timer
|
||
is recording.
|
||
- Improved frame detection by parsing just far enough into the H.264 NAL units to get
|
||
the necessary information about frames and slices.
|
||
- The initial syncing of the frame detector is now done immediately after the first
|
||
complete GOP has been seen. This makes recordings and especially pausing live video
|
||
start up to twice as fast as before.
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Fixed handling the very last entry in a recording index.
|
||
- The return type of cMarks::Add() has been changed to void, since due to the sorting
|
||
of the list of marks the returned pointer might have pointed to a totally different
|
||
mark. Besides, the return value was never actually used.
|
||
- Improved editing TS recordings by
|
||
+ stripping dangling TS packets from the beginning of a sequence
|
||
+ including pending TS packets at the end of a sequence
|
||
+ fixing all timestamps and continuity counters
|
||
+ generating editing marks for the edited version in such a way that each cutting
|
||
point is marked by an "end" and "begin" mark with the same offset
|
||
+ no longer generating an editing mark at the "end" of the edited recording (this
|
||
was actually generated at the beginning of the last GOP, so that a subsequent
|
||
edit would have cut off the last GOP)
|
||
+ no longer generating any editing marks if the edited recording results in just
|
||
one single sequence
|
||
+ ignoring pairs of editing marks that are placed at exactly the same position of
|
||
a recording when actually cutting the recording
|
||
+ not doing anything if the editing marks in place would result in the edited
|
||
version being the same as the original recording
|
||
- Editing marks can now be placed directly on top of each other, in which case they
|
||
simply mark a position, but have no effect on the actual cutting process.
|
||
- When positioned at an offset where two (or more) editing marks are placed on top
|
||
of each other, the '4' key moves the first one of them to the left, while the '6'
|
||
key moves the last one of them to the right. The '7' and '9' keys handle multiple
|
||
marks at the same place as if it were one single mark.
|
||
- Modified editing marks are now written to disk whenever the replay progress display
|
||
gets hidden (thanks to Christoph Haubrich).
|
||
|
||
2012-12-08: Version 1.7.33
|
||
|
||
- In order to be able to play TS recordings from other sources, in which there is
|
||
more than one PMT PID in the PAT, 'int cPatPmtParser::PmtPid(void)' has been changed
|
||
to 'bool cPatPmtParser::IsPmtPid(int Pid)'.
|
||
- Fixed learning remote control keys with the LCARS skin.
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() (reported
|
||
by S<>ren Moch).
|
||
- Changed all occurrences of MPEG4 to H264 (pointed out by S<>ren Moch).
|
||
- Fixed getting the number of editing sequences in case the last sequence has no actual
|
||
end mark.
|
||
- The cutter now only increments the TS continuity counter for packets that have a
|
||
payload (pointed out by S<>ren Moch).
|
||
- Fixed adjusting the DTS values in the cutter, to compensate for dropped B-frames
|
||
(pointed out by S<>ren Moch).
|
||
- Fixed a typo in skins.h (thanks to Lars Hanisch).
|
||
- Simplified calculating the PTS offset in cPtsFixer::Fix() and fixed the overflow
|
||
handling of PCR values (thanks to S<>ren Moch).
|
||
- Fixed calling iconv_close() only with a valid iconv_t value (thanks to Juergen Lock).
|
||
- Fixed faulty opening of the Recordings menu when pressing the Play key during normal
|
||
live viewing mode in case there is a "last viewed" recording.
|
||
- Fixed some #include statements in plugins to use <vdr/...> instead of "vdr/..."
|
||
(thanks to Lars Hanisch).
|
||
- Fixed some spellings in osd.h and svdrp.c (thanks to Ville Skytt<74>).
|
||
- Fixed handling lowercase polarization characters in channel definitions if no DiSEqC
|
||
is used (reported by Mike Hay, actual bug pointed out by Stefan Huelswitt).
|
||
- Synchronizing system time to the transponder time is now done using adjtime() in order
|
||
to avoid discontinuities (suggested by Manuel Reimer). If the time difference is more
|
||
than 10 seconds, stime() is still used to do the initial sync.
|
||
- The '7' and '9' keys now jump to the very beginning or end, respectively, of the
|
||
recording, even if there is no mark set at that point (following a request from
|
||
Andre Weidemann).
|
||
- Now always setting the TDT EIT filter, because otherwise when turning on using the
|
||
transponder time in the Setup menu, it would only be used after the next restart
|
||
of VDR (thanks to Sundararaj Reel).
|
||
- The new functions cDevice::CanScaleVideo() and cDevice::ScaleVideo() can be used by
|
||
derived output devices to implement scaling the video to a given size and location
|
||
(based on a suggestion by Lucian Muresan).
|
||
- The SVDRP command HITK now discards any keys if the remote control is currently
|
||
turned off (thanks to Alexander Hans).
|
||
- The new remote control key "Play/Pause" can be used with remote controls that don't
|
||
have separate keys for "Play" and "Pause", but rather have a single key for both
|
||
functions (thanks to Stefan Hofmann for suggesting to implement support for such
|
||
remote controls).
|
||
- The new option "Setup/Replay/Pause on mark set" can be used to activate automatically
|
||
going into Pause mode if an editing mark is set during replay (suggested by Andre
|
||
Weidemann).
|
||
- When regenerating the index of a recording, the frame rate stored in the info file
|
||
is now automatically fixed if it differs from the value detected by the frame
|
||
detector.
|
||
- Fixed creating the edited version directory if a relative file name is given in
|
||
the call to 'vdr --edit' (the '/video' part was stripped from the given file name
|
||
even if it wasn't there).
|
||
- The new option "Setup/Replay/Progress display time" can be used to activate
|
||
automatically displaying the progress display whenever replay of a recording is
|
||
started (suggested by Stefan Blochberger).
|
||
- Changed reading and writing of floating point numbers into configuration files to
|
||
make it independent of the decimal point used in the current locale. All calls to
|
||
atof() have been replaced with the new function atod(), which makes sure the string
|
||
representation of a floating point number using a '.' as decimal point will be
|
||
handled correctly, even if the locale in use expects a ',' as the decimal point.
|
||
Plugins that read floating point numbers from their own configuration files will
|
||
also need to use atod() for this, or use a method of their own (this is not necessary
|
||
if values are stored in VDR's setup.conf file, because VDR takes care of this).
|
||
The reason for these changes is that floating point numbers presented to the user
|
||
shall be displayed in the way defined by the current locale (suggested by Stefan
|
||
Blochberger).
|
||
If you use plugins that store floating point values in configuration files of their
|
||
own and have not yet been adapted to this change, you should set
|
||
export LC_NUMERIC=C
|
||
before running VDR. Otherwise your plugin's configuration data may not be read or
|
||
written correctly.
|
||
- The new functions SetItemEvent(), SetItemTimer(), SetItemChannel() and
|
||
SetItemRecording() of the cSkinDisplayMenu class can be reimplemented by skin
|
||
plugins to display these items in a more elaborate way than just a simple line of
|
||
text.
|
||
|
||
2012-12-24: Version 1.7.34
|
||
|
||
- Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from
|
||
'int' to 'eTimerEvent' (reported by Christoph Haubrich).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Fixed cOsd::GetBitmap() to always return NULL if a non-exising area is requested.
|
||
- Added several missing "`ls $^`" in the calls to xgettext in plugin Makefiles and the
|
||
"newplugin" script.
|
||
- Fixed setting the --package-name and --package-version options in the calls to
|
||
xgettext in several plugin Makefiles.
|
||
- Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the
|
||
DEFINES in the Makefile (somehow got lost from Make.config.template in version 1.7.13).
|
||
- Removed some redundancy in the Makefile/Make.global/Make.config mechanism (suggested
|
||
by Christopher Reimer). The file Make.global is no longer used, and plugin Makefiles
|
||
don't include the file Make.config any more. Instead they now retrieve all necessary
|
||
information through calls to pkg-config.
|
||
- The plugin Makefiles now have a separate 'install' target (suggested by Christopher
|
||
Reimer). In order to still allow the normal building of VDR (with all plugins in its
|
||
./PLUGINS/src subdirectory, the plugin libraries in ./PLUGINS/lib and the i18n files in
|
||
./locale) the VDR Makefile checks the settings of LIBDIR and LOCDIR when building the
|
||
plugins from within the VDR source directory. If these macros have their default values,
|
||
then the 'install' targets of the plugins' Makefiles are called. Otherwise the 'all'
|
||
targets are called and the plugins are merely built, and will have to be installed by a
|
||
call to 'make install-plugins'. This now also allows a user to copy a plugin source to
|
||
any directory, change into that directory and do 'make' and 'make install' to have the
|
||
plugin installed to wherever the local installation of VDR expects them.
|
||
- Plugin Makefiles now use DESTDIR and the 'install' program (thanks to Christopher Reimer).
|
||
- Due to the changes to the plugin Makefiles, existing plugins will not build with this
|
||
version of VDR any more. You can either use the new 'newplugin' script to generate a
|
||
dummy plugin directory and use the Makefile from there (adapting it to your particular
|
||
plugin), or apply the patch from
|
||
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-pluginmakefile.diff
|
||
to your Makefile to make the necessary changes (see comments in that file for details).
|
||
- Added the new menu categories mcChannelEdit, mcTimerEdit, mcScheduleNow, mcScheduleNext,
|
||
mcRecordingInfo, mcPluginSetup, mcSetupOsd, mcSetupEpg, mcSetupDvb, mcSetupLnb,
|
||
mcSetupCam, mcSetupRecord, mcSetupReplay, mcSetupMisc and mcSetupPlugins.
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed replay stuttering close to the end of an ongoing recording (reported by Andreas
|
||
Regel).
|
||
- Fixed cIndexFile::GetNextIFrame() to properly handle the case where the very last frame
|
||
is an I-frame (which normally shouldn't occur).
|
||
- Fixed replaying ongoing recordings from other VDR instances.
|
||
|
||
2012-12-30: Version 1.7.35
|
||
|
||
- Making sure that plugins include the VDR header files from the actual VDR source
|
||
directory when doing "make plugins" (suggested by Christoper Reimer).
|
||
- Increased the version numbers of all plugins to reflect the recent Makefile changes.
|
||
- Removed the lines
|
||
ifdef DVBDIR
|
||
INCLUDES += -I$(DVBDIR)/include
|
||
endif
|
||
from the file Make.config.template. If set, DVBDIR is now conveyed to plugins via
|
||
the CFLAGS.
|
||
- Removed some redundancy from Make.config.template.
|
||
- Changed "==" to "=" in the Makefile to make it POSIX style.
|
||
- Added MANDIR to the vdr.pc file, so that plugins that need it can retrieve it via
|
||
MANDIR = $(DESTDIR)$(call PKGCFG,mandir).
|
||
- Using relative paths again when building plugins locally (by request of Udo Richter).
|
||
- Plugin Makefiles can now include a configuration file for compile time parameters
|
||
(requested by Reinhard Nissl). The actual name of this file can be defined in
|
||
Make.config (see "PLGCFG" in Make.config.template), and existing plugin Makefiles
|
||
that have compile time parameters should add the lines
|
||
PLGCFG = $(call PKGCFG,plgcfg)
|
||
-include $(PLGCFG)
|
||
accordingly (see the "newplugin" script for details).
|
||
- Re-enabled building plugins that still use pre-version-1.7.34 Makefiles.
|
||
The file Make.global is present again to satisfy the "include" these Makefiles do,
|
||
but the file itself contains no settings. The VDR Makefile's "plugins" target
|
||
determines whether a particular plugin uses an old style Makefile and calls it
|
||
accordingly. Note that this only works when building plugins from within the VDR
|
||
source tree, using "make plugins" in the VDR source directory.
|
||
- Removed "include" from the DVBDIR setting in the VDR Makefile (reported by Oliver
|
||
Endriss). You may need to adjust your DVBDIR setting in Make.config, in case you
|
||
use it.
|
||
- Added maximum SNR value for PCTV Systems PCTV 73ESE (thanks to Cedric Dewijs).
|
||
|
||
2013-01-20: Version 1.7.36
|
||
|
||
- Added maximum SNR value for PCTV Systems nanoStick T2 290e (thanks to Antti
|
||
Hartikainen).
|
||
- Added a remark indicating that the coordinates of Rect in a call to
|
||
cDevice::CanScaleVideo() are in the range of the width and height returned by
|
||
GetOsdSize() (suggested by Reinhard Nissl).
|
||
- Modified the Makefiles (thanks to Christopher Reimer).
|
||
By default VDR is now built according to the FHS ("File system Hierarchy Standard"),
|
||
and a plain "make" in the VDR source directory just builds everything, but doesn't
|
||
copy it to ./PLUGINS/lib and ./locale any more. You can use a Make.config file
|
||
(copied from Make.config.template) and set the parameter LCLBLD=1 to have everything
|
||
built and installed under the VDR source tree (as was the default in previous
|
||
versions). If you already have your own Make.config file, you may want to copy the
|
||
new Make.config.template and adapt it to your needs. If you don't want VDR's data
|
||
files to be spread around your system according to the FHS, you can set the
|
||
parameter ONEDIR=1 (using Make.config) to have all files in one /video directory as
|
||
before.
|
||
- Fixed the example for cReceiver in PLUGINS.html.
|
||
- Fixed sorting recordings in case two folders have the same name, but one of them
|
||
ends in an additional digit, as in "abc" and "abc2" (reported by Andreas Mair).
|
||
- Added "repeat" function when using the keyboard to control VDR (thanks to Reinhard
|
||
Nissl).
|
||
- The SVDRP command LSTR now knows the additional parameter "path", which can be
|
||
given to get the actual file name of a recording's directory (suggested by
|
||
Stefan Stolz).
|
||
- Fixed multiple occurrences of the same directory in the recordings list in case there
|
||
are directories that only differ in non-alphanumeric characters (reported by Andreas
|
||
Mair).
|
||
- Absolute jumps when replaying a recording (via the Red key) are now only performed
|
||
if an actual value has been entered (suggested by Ulf Kiener).
|
||
- The last replayed recording is now stored in setup.conf, which allows the blue
|
||
"Resume" key in the main menu to work even after a restart of VDR.
|
||
- The SVDRP command NEWT no longer checks whether a timer with the given data already
|
||
exists (suggested by Malte Forkel).
|
||
- Implemented scaling of SPU bitmaps (thanks to Johann Friedrichs).
|
||
- Improved cutting MPEG-2 video (thanks to S<>ren Moch).
|
||
- Reduced the number of retries in cTransfer::Receive() to avoid blocking recordings
|
||
in case the primary device can't handle the current live signal.
|
||
|
||
2013-02-08: Version 1.7.37
|
||
|
||
- Now also using FindHeader() in cMpeg2Fixer::AdjTref() (pointed out by S<>ren Moch).
|
||
- Added missing template for DVBDIR to Make.config.template (reported by Derek Kelly).
|
||
- The LCARS menu now also works if the OSD has only 1bpp (two colors).
|
||
- Fixed possible garbage in the remaining time of the LCARS replay display in case the
|
||
hours change from two to one digit.
|
||
- Fixed upscaling bitmaps. The last row and column of the scaled bitmap was not filled,
|
||
which resulted in empty lines between scaled subtitles.
|
||
- Fixed a leftover line in case a two line subtitle was followed by a one line
|
||
subtitle on the dvbhddevice in "high level" OSD mode.
|
||
- Returning 0 from cDvbSdFfDevice::NumProvidedSystems() if option --outputonly is given.
|
||
- The index file is now closed after initially reading it if it is older than 3600 seconds.
|
||
- Improved responsiveness during replay when close to the recording's end.
|
||
- Fixed a leftover progress display in the LCARS main menu when replay of a recording
|
||
ends while the menu is open, and the live channel has no EPG information.
|
||
- Fixed possible audio chatter when a recording is replayed to its very end.
|
||
- Added dependency on 'i18n' to 'install-i18n' in the VDR Makefile (thanks to Tobias
|
||
Grimm).
|
||
- Changed several calls to Skins.Message() in vdr.c to Skins.QueueMessage() in order to
|
||
avoid a black screen while such a message is displayed in case the channel will be
|
||
switched (reported by Uwe Scheffler).
|
||
- Updated the Slovak language texts (thanks to Milan Hrala).
|
||
- Improved LIRC timing for repeat function.
|
||
- When pausing live video, the current audio and subtitle tracks are now retained.
|
||
- Added some notes about plugin Makefiles to PLUGINS.html.
|
||
- Avoiding an extra key press event if the repeat function kicks in when controlling
|
||
VDR via the PC keyboard.
|
||
- The new options "Setup/Miscellaneous/Remote control repeat delay" and
|
||
"Setup/Miscellaneous/Remote control repeat delta" can be used to adjust the
|
||
behavior of the remote control in case a key is held pressed down for a while, so
|
||
that the repeat function kicks in (see MANUAL).
|
||
The builtin LIRC and KBD remote controls already use these parameters. It is
|
||
recommended that plugins that implement an interface to any kind of remote controls
|
||
also use the parameters Setup.RcRepeatDelay and Setup.RcRepeatDelta for the desired
|
||
purpose, and remove any setup options they might have that serve the same purpose.
|
||
- cTimer no longer does any special "VFAT" handling to shorten directory names to 40
|
||
characters. When a string is used as a directory name for a recording, the maximum
|
||
length of the directory path, as well as the individual directory names, is now
|
||
limited to the values specified by the new command line option --dirnames (see
|
||
man vdr(1) for details). For backwards compatibility the option --vfat is still
|
||
available and has the same effect as --dirnames=250,40,1.
|
||
- The macro MaxFileName is now obsolete and may be removed in future versions. Use
|
||
NAME_MAX directly instead.
|
||
- There is no more fixed limit to the maximum number of cPixmap objects an OSD can
|
||
create. However, a particular device may still be unable to create an arbitrary
|
||
number of pixmaps, due to limited resources. So it's always a good idea to use
|
||
as few pixmaps as possible.
|
||
- Fixed formatting and removed some superfluous break statements in vdr.c's command
|
||
line option switch.
|
||
|
||
2013-02-17: Version 1.7.38
|
||
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Updated the French OSD texts (thanks to Marc Perrudin, Bernard Jaulin and Peter
|
||
M<>nster).
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Fixed moving editing marks, so that they don't get overwritten with old values
|
||
through an update of the marks file.
|
||
- Removed an invalid line from channels.conf.terr (reported by Lars Hanisch).
|
||
- Fixed an unexpected k_Repeat key event after a k_Release in lirc.c.
|
||
- Fixed permissions of po/sr_SR.po (reported by Dominic Evans).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed using "Pause" and "Slow motion" near the end of a recording (replay stopped
|
||
a few seconds after the end of the recording file has been reached).
|
||
- Fixed selecting the last replayed recording in the Recordings menu in case there
|
||
are folders and plain recordings with names that differ only in non-alphanumeric
|
||
characters (reported by Andre Weidemann).
|
||
- Fixed the description of the OSD drawing functions DrawEllipse() (the values -5...-8
|
||
for the Quadrants parameter are not implemented).
|
||
- Made cOsd::DestroyPixmap() "NULL proof".
|
||
- Now deleting any previously allocated pixmaps in cOsd::SetAreas().
|
||
- Added demos of the DrawEllipse() and DrawSlope() function to the 'osddemo'
|
||
plugin (press '1' or '2', respectively).
|
||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
|
||
- The timeout for trying to switch to a valid programme is now reset immediately once
|
||
a programme has been found.
|
||
- No longer checking for EOPNOTSUPP in cDvbTuner::GetSignalQuality() to avoid breaking
|
||
this function in case the driver suddenly decides to return a different errno value
|
||
if an operation is not supported.
|
||
- Moved the definition of TIMERMACRO_TITLE and TIMERMACRO_EPISODE from recording.h to
|
||
config.h and using them to initialize Setup.NameInstantRecord (avoids having the same
|
||
information in two places).
|
||
- Fixed the return value of cOsdProvider::StoreImage() in case there is no OSD provider.
|
||
- Fixed a crash in cMenuEditChanItem::Set() when entering a channel number that
|
||
doesn't exist (reported by Mikael H<>bsch).
|
||
- Fixed displaying pending timers in "alert" mode in the LCARS skin.
|
||
- Added missing $(LDFLAGS) to the Makefile of the dvbhddevice plugin (thanks to Ville
|
||
Skytt<74>).
|
||
- Fixed some spellings in PLUGINS.html and Doxyfile (thanks to Ville Skytt<74>).
|
||
- Added '-p' to the cp command in the install-conf target of the Makefile (thanks to
|
||
Ville Skytt<74>).
|
||
- Added missing 'const' to cDevice::HasProgramme() and cDevice::HasLock().
|
||
- Fixed determining the priority of the primary device in case it is neither replaying
|
||
nor receiving a live channel (thanks to Matthias Senzel for reporting a problem with
|
||
switching back to live viewing after replay in a setup with device bonding).
|
||
- Removed all \return and \param tags from comment lines marked with "///<" for Doxygen.
|
||
There was only a rather small number of these, and I would probably always forget to
|
||
put them in place when writing future comments, so I decided to drop them entirely.
|
||
- Added Doxyfile.filter to have special characters escaped that would otherwise be
|
||
dropped by Doxygen (reported by Ville Skytt<74>).
|
||
- Using 'cat' instead of 'cp' to copy the Doxyfile to avoid problems in case Doxyfile
|
||
is write protected.
|
||
- Updated the Doxyfile with a newer version of Doxygen.
|
||
- Turned off following symlinks in the Doxyfile.
|
||
- Removed trailing whitespace.
|
||
- Expanded tabs in PLUGINS/src/dvbhddevice/setup.c.
|
||
- Some formatting fixes.
|
||
|
||
2013-03-03: Version 1.7.39
|
||
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Updated the Polish OSD texts (thanks to Marek Nazarko).
|
||
- Modified handling user inactivity in the shutdown handler to avoid a problem in case
|
||
the system time is changed after VDR has been started (thanks to Udo Richter, reported
|
||
by S<>ren Moch).
|
||
- Updated the Czech OSD texts (thanks to Ales Jurik).
|
||
- Changed the template for PLGCFG to $(CONFDIR)/plugins.mk (thanks to Ville Skytt<74>).
|
||
- Updated the Swedish OSD texts (thanks to Richard Lithvall).
|
||
- Now clearing device bondings for devices that don't provide DVB-S in the Setup/LNB
|
||
menu (reported by Juergen Lock).
|
||
- Fixed a possible deadlock in handling the tuners of bonded devices (thanks to
|
||
Juergen Lock).
|
||
- Improved working around the broken driver values for SNR in case of a "TT-budget
|
||
S2-3200" receiving DVB-S2.
|
||
- The demos in the "osddemo" plugin can now also be ended with the "Back" key.
|
||
- Fixed flashing OSD in "high level OSD" mode of the TT S2-6400 in case a menu is open
|
||
while subtitles are being displayed.
|
||
- Fixed stuttering or asynchronous audio after changing the audio track. This is done
|
||
by doing a "jump" to the current position, which clears all buffers. However, this
|
||
only works with TS recordings. With PES recordings it causes a segfault - haven't
|
||
been able to figure out why.
|
||
- Added a manual page for 'svdrpsend' (thanks to Tobias Grimm).
|
||
- Fixed immediately disappearing subtitle track menu in "high level OSD" mode of the
|
||
TT S2-6400 when selecting "No subtitles".
|
||
- Updated the French OSD texts (thanks to Bernard Jaulin).
|
||
- Updated the Dutch OSD texts (thanks to Carel Willemse).
|
||
- Removed all "fuzzy" translations from the files ar.po, hu_HU.po and sr_SR.po, because
|
||
more often than not they are just wrong.
|
||
- Now calling DeviceClear() in cTransfer::Receive() if the output device blocks, instead
|
||
of not retrying for 10 seconds (reported by Andreas Mair, with help from Oliver Endriss).
|
||
- Updated the Spanish OSD texts (thanks to Luca Olivetti).
|
||
- Updated the Hungarian language texts (thanks to Istv<74>n F<>ley).
|
||
- Changed the calls to Skins.QueueMessage() in vdr.c that are related to reporting the
|
||
status of the editing process back to Skins.Message() in order to have them appear
|
||
immediately.
|
||
- When sorting recordings by name, folders are now always at the top of the list.
|
||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
|
||
|
||
2013-03-10: Version 1.7.40
|
||
|
||
- The "Recording info" page of the skins that come with VDR now displays the name of
|
||
the channel (if available) from which this recording was taken.
|
||
- Updated the Catalan OSD texts (thanks to Luca Olivetti).
|
||
- Updated the Spanish OSD texts (thanks to Luca Olivetti).
|
||
- Added a note about the new default sort order of recordings to the release notes of
|
||
version 1.7.29 and the UPDATE-2.0.0 file (pointed out by Wolfgang Rohdewald).
|
||
- Fixed a faulty UTF-8 character in cs_CZ.po.
|
||
- Added the system's character set to the page header in the epg2html script (pointed
|
||
out by Dimitar Petrovski).
|
||
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
|
||
- The new option "Setup/OSD/Always sort folders first" can be used to control whether
|
||
folders will be always at the top of the Recordings menu, or will be interspersed
|
||
with plain recordings when sorted alphabetically.
|
||
- Updated the Swedish OSD texts (thanks to Richard Lithvall).
|
||
- Updated the Chinese OSD texts (thanks to Nan Feng).
|
||
- Updated the Slovak OSD texts (thanks to Milan Hrala).
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Updated the Dutch OSD texts (thanks to Cedric Dewijs).
|
||
- Updated the Czech OSD texts (thanks to Ales Jurik).
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Updated the French OSD texts (thanks to Dominique Plu).
|
||
- Updated the Finnish OSD texts (thanks to Matti Lehtim<69>ki).
|
||
- Updated the Arabic OSD texts (thanks to Osama Alrawab).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Renamed the "plp id" to a more general "stream id" and added support for DVB-S2
|
||
"Input Stream Identifier" (ISI) (based on a patch from Rolf Ahrenberg).
|
||
With this VDR now supports "multi streaming" on DVB-S2 and DVB-T2 transponders.
|
||
- Fixed a possible deadlock when changing the audio track while replaying a recording.
|
||
- Fixed resuming replay of PES recordings (reported by Oliver Endriss).
|
||
- Limited the Goto() call in cDvbPlayer::SetAudioTrack() to the main thread, in order
|
||
to avoid a crash when the track is automatically set from the player thread.
|
||
- The LCARS skin now calls SetAntiAliasGranularity(20, 16) in order to reserve enough
|
||
fixed colors on 8bpp displays with anti-aliasing.
|
||
- Changed the default values for the OSD size back to those before version 1.7.29,
|
||
to avoid problems with SD-FF cards in case the user switches to the "ST:TNG" or
|
||
"Classic" skin.
|
||
|
||
2013-03-16: Version 1.7.41
|
||
|
||
- Updated the Hungarian OSD texts (thanks to Istv<74>n F<>ley).
|
||
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
|
||
- Updated the Polish OSD texts (thanks to Marek Nazarko).
|
||
- Fixed using PATH_MAX and NAME_MAX (+/-1 because the first one includes the
|
||
terminating 0, while the latter doesn't).
|
||
- The 'plugins' target of the VDR Makefile now also copies files matching the wildcard
|
||
"lib$$i-*.so" (previously only "libvdr-*.so") and also descends into subdirectories
|
||
of the plugin source.
|
||
- The parameters PATH and NAME to the --dirnames command line option may now be left
|
||
empty to use the default values if only ENC shall be set (thanks to Helmut Auer for
|
||
some improvements to this change).
|
||
- Fixed a possible "Channel not available" if a recording starts on a system with
|
||
bonded devices (thanks to Siegfried Bosch).
|
||
- Fixed stopping an ongoing recording on a system with bonded devices, if a timer with
|
||
a higher priority requires a different band.
|
||
- Updated the introductory text of the vdr.1 man page.
|
||
- Added a note to the INSTALL file regarding multiple disk setup becoming deprecated
|
||
in a future version of VDR.
|
||
- When switching to a less privileged user id, VDR now sets the environment variables
|
||
HOME, USER, LOGNAME and SHELL accordingly (thanks to Manuel Reimer).
|
||
- Updated the help and man page entry about the location of the epg.data file (thanks
|
||
to Ville Skytt<74>).
|
||
- Fixed creating a new VPS timer with the SVDRP command NEWT (thanks to Johann
|
||
Friedrichs).
|
||
|
||
2013-03-23: Version 1.7.42
|
||
|
||
- Updated the Serbian OSD texts (thanks to Zoran Turalija).
|
||
- Added maximum SNR and signal strength value for TechniSat SkyStar HD2 (thanks to
|
||
Zoran Turalija).
|
||
- Renamed the language file sr_SR.po to sr_RS.po (pointed out by Zoran Turalija).
|
||
- Fixed loading the setup.conf file in case a parameter contains the '#' character
|
||
(thanks to Johann Friedrichs).
|
||
- The "Resume" button in the main menu is now only active if the respective recording
|
||
actually exists (reported by Johann Friedrichs).
|
||
- The cutter now allocates its buffers on the heap to avoid problems on systems with
|
||
limited stack space (suggested by Juergen Lock).
|
||
- Fixed formatting the channel definition example in the vdr(5) man page (thanks to
|
||
Dominic Evans).
|
||
- Updated the default channels.conf file.
|
||
|
||
2013-03-31: Version 2.0.0
|
||
|
||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
|
||
- Fixed the description of the 'M' parameter of channel definitions in vdr.5.
|
||
- Updated the French OSD texts (thanks to Dominique Plu).
|
||
- Fixed handling overlapping pending timers (reported by Matthias Senzel).
|
||
- Bumped all version numbers to 2.0.0.
|
||
- Official release.
|
||
|
||
2013-04-11: Version 2.0.1
|
||
|
||
- Fixed initializing cDevice::keepTracks.
|
||
- Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than
|
||
one character (reported by Stefan Braun).
|
||
- Added definitions for older DVB API versions, back until 5.0 (based on a patch from
|
||
Udo Richter).
|
||
- Fixed handling '/' and '~' in recording file names in case DirectoryEncoding is
|
||
used (thanks to Lars Hanisch).
|
||
- Changed cThread::SetIOPriority() from "best effort class" to "idle class" in order to
|
||
improve overall performance when an editing process is running (thanks to Jochen
|
||
Dolze).
|
||
|
||
2013-05-19: Version 2.0.2
|
||
|
||
- Fixed multiple occurrences of the same directory in the recordings list in case there
|
||
are directories that only differ in non-alphanumeric characters (was broken by
|
||
"Fixed selecting the last replayed recording in the Recordings menu in case there
|
||
are folders and plain recordings with names that differ only in non-alphanumeric
|
||
characters" in version 1.7.36).
|
||
- Fixed displaying the frame number when setting an editing mark (thanks to Thomas
|
||
G<>nther).
|
||
- Fixed no longer generating any editing marks if the edited recording results in just
|
||
one single sequence (reported by Halim Sahin).
|
||
- Fixed an error message when parsing SCR values in diseqc.conf.
|
||
- Fixed an unexpected RCS version tag in the newplugin script.
|
||
- Fixed an endless loop in the DrawEllipse() functions for very small ellipses (reported
|
||
by Stefan Braun).
|
||
- Fixed a crash in the LCARS skin's main menu in case there is no current channel
|
||
(reported by Dominique Dumont).
|
||
|
||
2013-08-25: Version 2.1.1
|
||
|
||
- Fixed initializing cDevice::keepTracks.
|
||
- Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than
|
||
one character (reported by Stefan Braun).
|
||
- Removed all "modified since version 1.6" markers from PLUGINS.html.
|
||
- Added definitions for older DVB API versions, back until 5.0 (based on a patch from
|
||
Udo Richter).
|
||
- Changed cThread::SetIOPriority() from "best effort class" to "idle class" in order to
|
||
improve overall performance when an editing process is running (thanks to Jochen
|
||
Dolze).
|
||
- Fixed handling '/' and '~' in recording file names in case DirectoryEncoding is
|
||
used (thanks to Lars Hanisch).
|
||
- Changed the sign of the satellite position value in cSource to reflect the standard
|
||
of western values being negative. The new member function cSource::Position() can be
|
||
used to retrieve the orbital position of a satellite.
|
||
- Fixed multiple occurrences of the same directory in the recordings list in case there
|
||
are directories that only differ in non-alphanumeric characters (was broken by
|
||
"Fixed selecting the last replayed recording in the Recordings menu in case there
|
||
are folders and plain recordings with names that differ only in non-alphanumeric
|
||
characters" in version 1.7.36).
|
||
- Fixed displaying the frame number when setting an editing mark (thanks to Thomas
|
||
G<>nther).
|
||
- Fixed no longer generating any editing marks if the edited recording results in just
|
||
one single sequence (reported by Halim Sahin).
|
||
- Fixed an error message when parsing SCR values in diseqc.conf.
|
||
- Fixed an unexpected RCS version tag in the newplugin script.
|
||
- Fixed an endless loop in the DrawEllipse() functions for very small ellipses (reported
|
||
by Stefan Braun).
|
||
- Fixed a crash in the LCARS skin's main menu in case there is no current channel
|
||
(reported by Dominique Dumont).
|
||
- Added basic support for positioners to control steerable satellite dishes (based on
|
||
a patch from Seppo Ingalsuo and Ales Jurik, which in turn used code from Thomas
|
||
Bergwinkl's Rotor plugin; with lots of help from Albert Danis).
|
||
+ Supports GotoN (aka "DiSEqC 1.2") and GotoX (aka "USALS").
|
||
+ The new DiSEqC command code 'P' can be used to instruct a positioner to move the
|
||
dish to the required satellite position. When a 'P' code is processed, further
|
||
execution of the remaining DiSEqC sequence (if any) is postponed until the positioner
|
||
has reached the new satellite position.
|
||
+ The new special source value of "S360E" can be used in diseqc.conf to indicate that
|
||
an entry using a positioner can move the dish to any requested position within its
|
||
range. Think of it as "full circle".
|
||
+ The devices a particular cDiseqc or cScr applies to are now stored directly in each
|
||
cDiseqc or cScr, respectively.
|
||
+ A plugin can implement a custom positioner control (see PLUGINS.html, section "Positioners").
|
||
+ The new function cSkinDisplayChannel::SetPositioner() can be implemented by skins to
|
||
show the user a progress display when the dish is being moved. The default implementation
|
||
calls SetMessage() with a string indicating the new position the dish is being moved to.
|
||
The LCARS skin shows a progress bar indicating the movement of the dish.
|
||
+ The new parameters "Site latitude", "Site longitude", "Positioner speed", and
|
||
"Positioner swing" in the "Setup/LNB" menu can be used to configure the necessary
|
||
values for a steerable dish.
|
||
+ The cDvbTuner now has a new status tsPositioning, in which it waits until a steerable
|
||
dish has reached its target position. Parsing SI data is paused until the target
|
||
position has been reached.
|
||
- The LCARS skin now shows the source value of the current channel in its channel display.
|
||
- Fixed asserting free disk space in the cutter.
|
||
- No longer trying to delete old recordings in AssertFreeDiskSpace() if the given
|
||
Priority is less than 1.
|
||
- Fixed handling LIRC events in case repeated events are lost.
|
||
- Fixed a possible crash when shutting down VDR while subtitles are being displayed
|
||
(reported by Ville Skytt<74>).
|
||
- cDevice::IsPrimaryDevice() now also checks whether the primary device actually has
|
||
a decoder and returns false otherwise. This should improve device allocation on
|
||
systems that are only used as a receiver and don't actually display anything.
|
||
- Increased the value of MAXRETRIES to 20 to reduce the probability of disturbances
|
||
in transfer mode.
|
||
- All bonded devices (except for the master) now turn off their LNB power completely
|
||
to avoid problems when receiving vertically polarized transponders (suggested by
|
||
Manfred V<>lkel and Oliver Endriss).
|
||
- Reverted the change from version 1.5.7 that made all logging go to LOG_ERR (thanks
|
||
to Christopher Reimer).
|
||
- Added Begin/EndSegmentTransfer() to the EPG handler interface (thanks to J<>rg Wendel).
|
||
- The code for distributing recordings over several video directories is now
|
||
deprecated and disabled by default.
|
||
You can re-enable this feature by removing the comment sign ('//') from the beginning
|
||
of the line
|
||
//#define DEPRECATED_DISTRIBUTED_VIDEODIR // Code enclosed with this macro is ...
|
||
in the file videodir.c. Note, though, that this can only be a temporary workaround.
|
||
This feature will be completely removed in one of the next developer versions.
|
||
Distributing the video directory over several disks was a useful feature in times
|
||
when disks were still relatively small, but it also caused serious problems in case
|
||
one of the disks failed. Nowadays hard disks come in sizes measured in terabytes,
|
||
and tools like "mhddfs" can be used to combine several disks to form one large volume.
|
||
A recommended method for a relatively safe disk setup in a VDR system is to use two
|
||
1TB (or larger) disks and use them as a RAID-1 (mirrored). That way, if one disk
|
||
fails, you can replace it without data loss.
|
||
|
||
2013-09-01: Version 2.0.3
|
||
|
||
- Fixed asserting free disk space in the cutter.
|
||
- No longer trying to delete old recordings in AssertFreeDiskSpace() if the given
|
||
Priority is less than 1.
|
||
- Fixed handling LIRC events in case repeated events are lost.
|
||
- Fixed a possible crash when shutting down VDR while subtitles are being displayed
|
||
(reported by Ville Skytt<74>).
|
||
- cDevice::IsPrimaryDevice() now also checks whether the primary device actually has
|
||
a decoder and returns false otherwise. This should improve device allocation on
|
||
systems that are only used as a receiver and don't actually display anything.
|
||
- Increased the value of MAXRETRIES to 20 to reduce the probability of disturbances
|
||
in transfer mode.
|
||
- All bonded devices (except for the master) now turn off their LNB power completely
|
||
to avoid problems when receiving vertically polarized transponders (suggested by
|
||
Manfred V<>lkel and Oliver Endriss).
|
||
- Fixed cleaning up old EPG events in case no epg data file is given (reported by
|
||
Dave Pickles).
|
||
|
||
2013-10-19: Version 2.1.2
|
||
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed displaying DVB subtitles (thanks to Rolf Ahrenberg for helping to debug and
|
||
understand subtitle page refreshes):
|
||
+ Fixed handling DVB subtitle fill region codes for 2 and 8 bpp.
|
||
+ Fixed handling pages without an explicit END_OF_DISPLAY_SET_SEGMENT.
|
||
The FINISHPAGE_HACK is no longer necessary.
|
||
+ Fixed handling "page refreshes". The data is now parsed and stored closer to the
|
||
DVB standard specs, introducing "object refs" and "region refs".
|
||
+ The debug output now goes into an HTML file named dbg-log.htm and shows the actual
|
||
bitmaps (dbg-nnn.jpg) used to display the subtitles. That way it is much easier to
|
||
see what's actually going on.
|
||
+ Fixed handling subtitles encoded as a string of characters (the very first
|
||
character was always skipped).
|
||
- Fixed wrong initialization of Setup.PositionerSwing (reported by Arthur Konovalov).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Fixed cleaning up old EPG events in case no epg data file is given (reported by
|
||
Dave Pickles).
|
||
- Unified the internal sequence of actions when pressing the Blue and the Back key,
|
||
respectively, during replay (reported by Thomas Maass).
|
||
- The Yellow button in the main menu no longer acts as "Pause" if "Pause key handling"
|
||
is set to "do not pause live video" (suggested by Ulf Kiener).
|
||
- The code for distributing recordings over several video directories has been
|
||
removed. VDR now by default assumes that the video directory is one big disk.
|
||
If you absolutely need to use several separate disks to store recordings, you can
|
||
write a plugin that uses the new cVideoDirectory API to implement the necessary
|
||
functionality (see PLUGINS.html, section "The video directory"). You can copy the
|
||
respective code from previous versions of videodir.c.
|
||
IMPORTANT NOTE: If you write a plugin that implements a distributed video directory,
|
||
=============== be sure to make cVideoDirectory::Rename() follow symbolic links!
|
||
This functionality was never implemented in VDR and it therefore
|
||
used a workaround in cutter.c. See the section marked with
|
||
// XXX this can be removed once RenameVideoFile() follows symlinks
|
||
in previous versions of cutter.c.
|
||
+ CloseVideoFile() is obsolete and has been removed.
|
||
+ The functions OpenVideoFile(), RenameVideoFile(), RemoveVideoFile(), VideoFileSpaceAvailable(),
|
||
VideoDiskSpace(), RemoveEmptyVideoDirectories(), IsOnVideoDirectoryFileSystem() and
|
||
PrefixVideoFileName() are now static members of cVideoDirectory and need to be called
|
||
with the proper prefix.
|
||
+ The name of the video directory is now available through cVideoDirectory::Name().
|
||
- Added renaming and moving recordings and folders, editing a recording's priority and
|
||
lifetime, and queueing cutting jobs (inspired by the "extrecmenu" plugin from Martin
|
||
Prochnow).
|
||
+ The "Recording info" menu now has a new Blue button named "Edit", which opens a
|
||
dialog in which several properties of the selected recording can be changed. It can
|
||
be renamed or moved into another folder and its priority and lifetime can be
|
||
modified (inspired by the "extrecmenu" plugin from Martin Prochnow).
|
||
The new blue "Edit" button in the "Recordings" menu opens a dialog in which a folder
|
||
can be renamed or moved. See MANUAL, section "Managing folders".
|
||
+ In the "Edit recording" menu the Yellow button ("Delete marks") allows you to delete
|
||
all editing marks of the selected recording.
|
||
+ cCutter is no longer a static class. Cutting requests should now be invoked by
|
||
calling RecordingsHandler.Add(ruCut, FileName). See the new cRecordingsHandler
|
||
class in recording.h.
|
||
+ Cutting jobs are now placed in a queue (together with any move or copy jobs) and
|
||
are processed one by one.
|
||
+ The new SVDRP command RENR can be used to rename a recording (suggested by Rolf
|
||
Ahrenberg).
|
||
+ Note that in several places in the source code a "copy" operation is mentioned,
|
||
however there is no user interface for this, yet.
|
||
- Changed some variable names in positioner.c to match the names used in the page with
|
||
the explanation on vdr-portal.de (suggested by Albert Danis).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed writing group separators to channels.conf that contain a comma (reported by
|
||
Eike Edener).
|
||
- Now also checking the source (in addition to the transponder) when setting the
|
||
system time from the TDT, which avoids problems in case devices are tuned to the
|
||
same transponder on different sources, and these broadcast different time data
|
||
(reported by Torsten Lang).
|
||
- Changed cRecorder::Action() to use cTimeMs instead of time() to avoid problems with
|
||
unjustified "video data stream broken" errors in case the system time is changed
|
||
while a recording is active (reported by Torsten Lang).
|
||
- Revised the section on "Learning the remote control keys" in the INSTALL file to
|
||
avoid the impression that there actually is a default remote.conf file, and to
|
||
not use any alphabetic keys for special functions, so that they remain available
|
||
for textual input.
|
||
- The function cRecordings::MBperMinute() now only takes into account recordings with
|
||
less than 5 seconds per megabyte, in an attempt to filter out radio recordings
|
||
(thanks to Harald Koenig). The result of this function was way off any realistic
|
||
value in case there are many radio recordings in the video directory.
|
||
- Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P (thanks
|
||
to Guido Cordaro).
|
||
- Fixed an inconsistent behavior between opening the Recordings menu manually via the
|
||
main menu and by pressing the Recordings key. In the latter case it automatically
|
||
opened all sub folders to position the cursor to the last replayed recording, which
|
||
is unexpected at this point (reported by Helmut Auer). You can still navigate to
|
||
the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
|
||
menu.
|
||
|
||
2013-10-23: Version 2.0.4
|
||
|
||
- Unified the internal sequence of actions when pressing the Blue and the Back key,
|
||
respectively, during replay (reported by Thomas Maass).
|
||
- The Yellow button in the main menu no longer acts as "Pause" if "Pause key handling"
|
||
is set to "do not pause live video" (suggested by Ulf Kiener).
|
||
- Fixed writing group separators to channels.conf that contain a comma (reported by
|
||
Eike Edener).
|
||
- Now also checking the source (in addition to the transponder) when setting the
|
||
system time from the TDT, which avoids problems in case devices are tuned to the
|
||
same transponder on different sources, and these broadcast different time data
|
||
(reported by Torsten Lang).
|
||
- Changed cRecorder::Action() to use cTimeMs instead of time() to avoid problems with
|
||
unjustified "video data stream broken" errors in case the system time is changed
|
||
while a recording is active (reported by Torsten Lang).
|
||
- Fixed an inconsistent behavior between opening the Recordings menu manually via the
|
||
main menu and by pressing the Recordings key. In the latter case it automatically
|
||
opened all sub folders to position the cursor to the last replayed recording, which
|
||
is unexpected at this point (reported by Helmut Auer). You can still navigate to
|
||
the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
|
||
menu.
|
||
|
||
2014-01-05: Version 2.1.3
|
||
|
||
- Changed the return value of cPositioner::HorizonLongitude() to 0 in case the
|
||
latitude of the antenna location is beyond +/-81 degrees.
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed some compiler warnings with gcc-4.6.3 (thanks to Rolf Ahrenberg).
|
||
- Changed the name of the SVDRP command RENR to MOVR (suggested by Rolf Ahrenberg).
|
||
- When cutting a recording it is now checked whether there is already an edited
|
||
version of this recording (with the same name, but starting with '%'), and the
|
||
user is prompted for confirmation to overwrite it (suggested by Rolf Ahrenberg).
|
||
- Revoked "Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P"
|
||
because it broke things for the "TechniSat AirStar 2" DVB-T card.
|
||
- The LIRC remote control now connects to the socket even if it doesn't yet exist when
|
||
VDR is started (thanks to Lars Hanisch).
|
||
- Changed the absolute latitude limit for visible satellites to 81.2 degrees.
|
||
- Added code for parsing LCN and AVC descriptors to libsi (thanks to Rolf Ahrenberg).
|
||
- In the "Select folder" menu pressing Ok now selects the folder, even if this is a
|
||
folder that contains sub folders (marked with "..."). To open such a folder you
|
||
can press the Red key.
|
||
- Fixed a possible access to uninitialized data in cEIT::cEIT() (reported by Dominik
|
||
Strasser).
|
||
- The new menu category mcRecordingEdit is now used to mark menus that edit recording
|
||
properties (suggested by Stefan Braun).
|
||
- Changes in the teletext PID no longer cause retuning (and thus interrupting a
|
||
recording).
|
||
- Removed '_' from the FileNameChars and CharMap translations in uk_UA.po.
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed a missing initialization in the c'tor of cSkinLCARSDisplayChannel (thanks to
|
||
Marko M<>kel<65>).
|
||
- Simplified some conditional expressions in skinlcars.c and skinsttng.c (suggested
|
||
by Marko M<>kel<65>).
|
||
- Fixed uninitialized item area coordinates in cSkinLCARSDisplayMenu (reported by
|
||
Marko M<>kel<65>).
|
||
- Fixed a possible crash if the recordings list is updated externally while the
|
||
Recordings menu is open (reported by Lars Hanisch).
|
||
- Added a missing closing ')' in the help and man page entry of the --vfat option
|
||
(reported by Lars Hanisch).
|
||
- Fixed setting the name of the video directory to avoid a crash when using --genindex,
|
||
and also to use the correct directory with --edit (the latter reported by Marko
|
||
M<>kel<65>).
|
||
- The Recordings menu can now be called with a cRecordingFilter, which allows the
|
||
caller to have it display only a certain subset of the recordings (thanks to Lars
|
||
Hanisch).
|
||
- Added handling UTF-8 'umlaut' characters to cKbdRemote (thanks to Lars Hanisch).
|
||
- Made it clear that the Data parameter in cDevice::StillPicture() may point to a
|
||
series of packets, not just a single one (thanks to Thomas Reufer).
|
||
- cDevice::TrickSpeed() now has an additional parameter named Forward, which indicates
|
||
the direction in which replay is being done (suggested by Thomas Reufer). This
|
||
information may be necessary for some output devices in order to properly implement
|
||
trick modes. Authors of plugins that implement output devices will need to add this
|
||
parameter to their derived cDevice class, regardless of whether they will make use
|
||
of it or not.
|
||
- Added a note to ePlayMode in device.h that VDR itself always uses pmAudioVideo when
|
||
replaying a recording (suggested by Thomas Reufer).
|
||
- Fixed some spellings in positioner.h and Doxyfile (thanks to Ville Skytt<74>).
|
||
- Changed '%a' to the POSIX compliant '%m' in all scanf() calls (thanks to Ville
|
||
Skytt<74>).
|
||
- The new function cCamSlot::Decrypt() can be used by derived classes to implement a
|
||
CAM slot that can be freely assigned to any device, without being directly inserted
|
||
into the full TS data stream in hardware. A derived class that implements Decrypt()
|
||
will also need to set the new parameter ReceiveCaPids in the call to the cCamSlot
|
||
base class constructor to true, in order to receive the CA pid TS packets that
|
||
contain data necessary for decrypting.
|
||
- Many member functions of cCamSlot have been made virtual to allow for easier
|
||
implementation of derived classes.
|
||
- cTSBuffer now provides the number of available bytes in its Get() function.
|
||
- cDvbDevice::GetTSPacket() now calls CamSlot()->Decrypt() in order to allow CAM slots
|
||
that can be freely assigned to any device access to the TS data stream.
|
||
- Added a check to avoid a possible NULL pointer dereference in cCiSession::SendData()
|
||
(reported by Ville Skytt<74>).
|
||
- Deleted a superfluous assignment in cPipe::Open() (reported by Ville Skytt<74>).
|
||
- The script given to VDR with the '-r' option is now also called after the recording
|
||
process has actually started (thanks to Christian Kaiser).
|
||
- Avoiding unnecessary pkg-config warnings in plugin Makefiles (thanks to Ville Skytt<74>).
|
||
Plugin authors may want to apply the following change to their Makefile:
|
||
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
|
||
+PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
|
||
- Eliminated MAXDVBDEVICES (suggested by Oliver Endriss).
|
||
- Channels that are no longer contained in the current SDT of a transponder are now
|
||
marked with the keyword OBSOLETE in their name and provider fields. That way you can
|
||
identify obsolete channels when you switch to them, and you can get the complete
|
||
overview of all obsolete channels by sorting the Channels list by provider (by
|
||
pressing the 0 key twice). Automatic deletion of obsolete channels may follow later.
|
||
|
||
2014-01-07: Version 2.0.5
|
||
|
||
- The LIRC remote control now connects to the socket even if it doesn't yet exist when
|
||
VDR is started (thanks to Lars Hanisch).
|
||
- Fixed a missing initialization in the c'tor of cSkinLCARSDisplayChannel (thanks to
|
||
Marko M<>kel<65>).
|
||
- Fixed uninitialized item area coordinates in cSkinLCARSDisplayMenu (reported by
|
||
Marko M<>kel<65>).
|
||
- Fixed a possible crash if the recordings list is updated externally while the
|
||
Recordings menu is open (reported by Lars Hanisch).
|
||
- Added a missing closing ')' in the help and man page entry of the --vfat option
|
||
(reported by Lars Hanisch).
|
||
- Fixed setting the name of the video directory to avoid a crash when using --genindex,
|
||
and also to use the correct directory with --edit (the latter reported by Marko
|
||
M<>kel<65>).
|
||
|
||
2014-01-26: Version 2.1.4
|
||
|
||
- Updated 'sources.conf' (thanks to Antti Hartikainen).
|
||
- cFont::CreateFont() now returns a dummy font in case there are no fonts installed.
|
||
This prevents a crash with the LCARS skin on a system that has no fonts.
|
||
- Improved locking for CAM slots and made the pure functions of cCiAdapter have
|
||
default implementations, to fix a possible crash with CI adapters and CAM slots
|
||
that are implemented in a plugin.
|
||
- Added logging the supported system ids of a CAM.
|
||
- Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 10 in order to be able to record
|
||
channels that need more than 5 TS packets for detecting frame borders (reported by
|
||
Eike Sauer).
|
||
- Fixed deleting the source recording after moving it to a different volume (reported
|
||
by Christoph Haubrich).
|
||
- Now waiting explicitly until all CAM slots are ready before switching to the
|
||
initial channel when VDR is started. This is necessary in case CI adapters are
|
||
used that are not physically connected to a dedicated device. The respective checks
|
||
in cDvbDevice have been removed to avoid redundancy.
|
||
- Fixed detecting frame borders in MPEG-2 streams that have "bottom fields" or varying
|
||
GOP structures (reported by Christian Paulick, with help from Helmut Auer).
|
||
- Now unassigning CAMs from their devices when they are no longer used.
|
||
- Now making sure the primary device goes into transfer mode for live viewing if the
|
||
CAM wants to receive the TS data.
|
||
- Fixed a wrong alignment in cCiDateTime::SendDateTime().
|
||
- Since the new cRecordingsHandler that was introduced in version 2.1.2 not only
|
||
handles "cutting", but also "moving" and "copying" recordings, the German word
|
||
"Schnitt" has been replaced with the more generic "Bearbeitung", which covers all
|
||
three variations of "editing" a recording (suggested by Christoph Haubrich).
|
||
Maintainers of translations for other languages may want to change their *.po files
|
||
accordingly.
|
||
- The new function cStatus::ChannelChange() can be implemented by plugins to be
|
||
informed about changes to the parameters of a channel that may require a retune.
|
||
This may, for instance, be useful for plugins that implement live streaming, so that
|
||
they can react on changes to a channel's PIDs or CA descriptors (problem reported
|
||
by Mariusz Bialonczyk).
|
||
- Fixed a superfluous call to the skin's SetRecording() function after renaming a
|
||
recording (reported by Christoph Haubrich).
|
||
|
||
2014-02-23: Version 2.1.5
|
||
|
||
- Now checking whether the primary device actually has a decoder before retuning the
|
||
current channel after a change in its parameters. This fixes broken recordings on
|
||
the primary device on "headless" systems.
|
||
- Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 100 and introduced counting the number
|
||
of actual video TS packets in cTsPayload in order to be able to record channels that
|
||
sometimes need even more than 10 TS packets for detecting frame borders (reported by
|
||
Oliver Endriss).
|
||
- Fixed sorting recordings by time in the Recordings menu if "Setup/OSD/Recording
|
||
directories" is set to "no".
|
||
- Fixed clearing non-editable members in the channel editor (thanks to Rolf Ahrenberg).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Further clarified the semantics of cCamSlot::Decrypt().
|
||
- Fixed flickering if subtitles are active while the OSD demo is running.
|
||
- Fixed numbering frames. Previously they were numbered starting from 1, while it
|
||
is apparently standard to number them from 0. Any existing recordings with editing
|
||
marks (which will now be off by one) can still be cut with all VDR versions from
|
||
1.7.32, because these will automatically adjust editing marks to I-frames.
|
||
Users of stable releases shouldn't notice any problems.
|
||
- Fixed a possible crash in the OSD demo (reported by Christopher Reimer).
|
||
- Fixed some compiler warnings with Clang 3.4.1 (reported by Paul Menzel).
|
||
- Added LinkageTypePremiere to libsi/si.h and eit.c to avoid a compiler warning with
|
||
Clang 3.4.1 (suggested by Tony Houghten).
|
||
- Replaced the NULL pointer assignment in ~cReceiver() to force a segfault with
|
||
a call to abort() (suggested by Tony Houghten).
|
||
- Fixed learning keyboard remote control codes (thanks to Lars Hanisch).
|
||
- Improved PAT/PMT scanning to speed up initial tuning to encrypted channels on
|
||
transponders with many PAT entries (reported by Mariusz Bialonczyk).
|
||
- Fixed the replay progress display for very long recordings.
|
||
- Fixed detecting broken video data streams when recording.
|
||
- Fixed handling frame detection buffer length (reported by Eike Sauer).
|
||
|
||
2014-03-16: Version 2.1.6
|
||
|
||
- Revoked "Fixed some compiler warnings with Clang 3.4.1" from ci.c, because this
|
||
did not compile with older versions of gcc (thanks to S<>ren Moch).
|
||
- Fixed keeping the current position in the Recordings menu if a recording was
|
||
deleted in a sub folder.
|
||
- Fixed handling transfer mode on full featured DVB cards for encrypted channels
|
||
that have no audio pid (reported by Christian Winkler).
|
||
- Fixed a possible endless loop in cH264Parser::GetGolombUe(), which caused recordings
|
||
on some HD channels to get stuck and resulted in buffer overflows.
|
||
- Fixed handling PAT packets when detecting frames, so that they can be properly
|
||
taken into account when regenerating the index of a recording.
|
||
- Fixed adding new source types in case they are already registered (reported by Rolf
|
||
Ahrenberg).
|
||
- Removed an unnecessary assignment from cMenuRecordings::~cMenuRecordings().
|
||
- The Recordings menu now remembers the last recording the cursor was positioned on,
|
||
independent of the last replayed recording. When a replay ends, however, the cursor
|
||
will initially be positioned to the last replayed recording again when the menu
|
||
is opened.
|
||
- Updated the Finnish OSD texts (thanks to Antti Hartikainen).
|
||
- Fixed drawing the live indicator in the LCARS skin in case there are no devices.
|
||
- When checking for obsolete channels, those with an RID that is not 0 are now
|
||
ignored (suggested by Oliver Endriss).
|
||
- The SDT is now only parsed *after* the NIT has been read, and it explicitly uses
|
||
the source value derived from the NIT. This should prevent new channels from being
|
||
created with the wrong source.
|
||
- Added a log message in case a receiver is detached from its device because the
|
||
assigned CAM can't decrypt the channel.
|
||
- Refactored setup parameter handling for output devices:
|
||
+ The function cDevice::GetVideoSystem() has been deprecated and will be removed
|
||
in a future version. In order to check whether a particular plugin needs to be
|
||
modified if this function is removed, you can comment out the line
|
||
#define DEPRECATED_VIDEOSYSTEM
|
||
in device.h.
|
||
+ Handling the "video (display) format" (things like 16:9, 4:3, pan&scan, letterbox
|
||
etc) shall now be done by the individual output devices, because the types and
|
||
numbers of parameters are too device specific. The Setup/DVB parameters
|
||
"Video format" and "Video display format" are still there for now and can be used
|
||
by SD devices. HD devices, however, shall not use these parameters (any more),
|
||
but rather implement their own setup menu with the necessary parameters for
|
||
controlling output.
|
||
+ The dvbhdffdevice plugin has been modified accordingly.
|
||
+ Made it clear that cDevice::SetDigitalAudioDevice() merely tells the output device
|
||
that the current audio track is Dolby Digital. This function was only used by the
|
||
original "full featured" DVB cards - do not use it for new developments!
|
||
If an output device has several ways of replaying audio (like HDMI or analog jack)
|
||
it shall implement the proper options in its plugin's SetupMenu() function.
|
||
- Added support for "Pilot", "T2-System-Id" and "SISO/MISO" parameters (thanks to
|
||
Rolf Ahrenberg).
|
||
- Now initializing the isOnVideoDirectoryFileSystem member of cRecording when
|
||
scanning the video directory, so that it won't cause a delay when opening the menu
|
||
on a system with a large number of recordings.
|
||
- Now resetting the isOnVideoDirectoryFileSystem member of a cRecording to -1 after
|
||
renaming it, so that it will be re-checked upon the next call to
|
||
IsOnVideoDirectoryFileSystem().
|
||
- Added support for systemd (thanks to Christopher Reimer). To activate this you
|
||
need to add "SDNOTIFY=1" to the 'make' call.
|
||
|
||
2014-03-22: Version 2.0.6
|
||
|
||
- Updated 'sources.conf' (thanks to Antti Hartikainen).
|
||
- cFont::CreateFont() now returns a dummy font in case there are no fonts installed.
|
||
This prevents a crash with the LCARS skin on a system that has no fonts.
|
||
- Fixed detecting frame borders in MPEG-2 streams that have "bottom fields" or varying
|
||
GOP structures (reported by Christian Paulick, with help from Helmut Auer).
|
||
- Fixed a wrong alignment in cCiDateTime::SendDateTime().
|
||
- Now checking whether the primary device actually has a decoder before retuning the
|
||
current channel after a change in its parameters. This fixes broken recordings on
|
||
the primary device on "headless" systems.
|
||
- Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 100 and introduced counting the number
|
||
of actual video TS packets in cTsPayload in order to be able to record channels that
|
||
sometimes need even more than 10 TS packets for detecting frame borders (reported by
|
||
Eike Sauer and Oliver Endriss).
|
||
- Fixed sorting recordings by time in the Recordings menu if "Setup/OSD/Recording
|
||
directories" is set to "no".
|
||
- Fixed clearing non-editable members in the channel editor (thanks to Rolf Ahrenberg).
|
||
- Fixed flickering if subtitles are active while the OSD demo is running.
|
||
- Fixed a possible crash in the OSD demo (reported by Christopher Reimer).
|
||
- Fixed learning keyboard remote control codes (thanks to Lars Hanisch).
|
||
- Fixed the replay progress display for very long recordings.
|
||
- Improved PAT/PMT scanning to speed up initial tuning to encrypted channels on
|
||
transponders with many PAT entries (reported by Mariusz Bialonczyk).
|
||
- Fixed detecting broken video data streams when recording.
|
||
- Fixed handling frame detection buffer length (reported by Eike Sauer).
|
||
- Fixed keeping the current position in the Recordings menu if a recording was
|
||
deleted in a sub folder.
|
||
- Fixed handling transfer mode on full featured DVB cards for encrypted channels
|
||
that have no audio pid (reported by Christian Winkler).
|
||
- Fixed a possible endless loop in cH264Parser::GetGolombUe(), which caused recordings
|
||
on some HD channels to get stuck and resulted in buffer overflows.
|
||
- Fixed handling PAT packets when detecting frames, so that they can be properly
|
||
taken into account when regenerating the index of a recording.
|
||
- Fixed adding new source types in case they are already registered (reported by Rolf
|
||
Ahrenberg).
|
||
- Fixed drawing the live indicator in the LCARS skin in case there are no devices.
|
||
- The SDT is now only parsed *after* the NIT has been read, and it explicitly uses
|
||
the source value derived from the NIT. This should prevent new channels from being
|
||
created with the wrong source.
|
||
- Now initializing the isOnVideoDirectoryFileSystem member of cRecording when
|
||
scanning the video directory, so that it won't cause a delay when opening the menu
|
||
on a system with a large number of recordings.
|
||
- The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
|
||
the functional modification to cFont::CreateFont().
|
||
|
||
2015-01-18: Version 2.1.7
|
||
|
||
- No longer logging an error message in DirSizeMB() if the given directory doesn't
|
||
exist. This avoids lots of log entries in case several VDRs use the same video
|
||
directory and one of them has already physically removed a recording directory,
|
||
while the others still have it in their list of deleted recordings.
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- A cCamSlot that has WantsTsData set to true in its constructor now also gets
|
||
the CAT and EMM PIDs data.
|
||
- Fixed a possible division by zero in frame rate detection.
|
||
- VDR now reads command line options from *.conf files in /etc/vdr/conf.d (thanks
|
||
to Lars Hanisch). See vdr.1 and vdr.5 for details.
|
||
- Fixed a possible crash in the LCARS skin (thanks to Thomas Reufer).
|
||
- Updated the dvbhddevice plugin source.
|
||
- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
|
||
Stefan Huelswitt).
|
||
- The pid of the PMT in which the CA descriptors of a given channel are broadcast
|
||
is now stored together with the CA descriptors and can be retrieved by calling
|
||
GetPmtPid() (this information is only required to receive encrypted channels
|
||
with the OctopusNet receiver via the 'satip' plugin).
|
||
- Channels that are not listed in the SDT are now only marked as OBSOLETE if
|
||
"Setup/DVB/Update channels" is set to a value other than "no" or "PIDs only".
|
||
- Fixed multiple OBSOLETE marks in channels that are not listed in the SDT in case
|
||
"Setup/Miscellaneous/Show channel names with source" is set to "yes".
|
||
- The new function cOsd::DrawScaledBitmap() is now used for drawing subtitles.
|
||
This function can be reimplemented by high level OSDs which may be able to do
|
||
the scaling in hardware or otherwise more efficiently (thanks to Thomas Reufer).
|
||
- Fixed detaching receivers from devices in case a CAM needs to receive the TS
|
||
(reported by Dietmar Spingler).
|
||
- Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS
|
||
(reported by Dietmar Spingler).
|
||
- Fixed (well, actually worked around) a problem with subtitles not being displayed
|
||
because the broadcaster doesn't set the data's version numbers as required by the
|
||
DVB standard (thanks to Rolf Ahrenberg).
|
||
- Fixed support for systemd (thanks to Christopher Reimer).
|
||
- Added a missing backslash to the help text of the SVDRP command MOVR (thanks to
|
||
Lars Hanisch).
|
||
- Added subsystem id support for DVB devices connected via USB (thanks to Jose
|
||
Alberto Reguero).
|
||
- Added the functions IndexOf(), InsertUnique(), AppendUnique() and RemoveElement()
|
||
to the cVector class (thanks to Stefan Schallenberg).
|
||
- Fixed a possible out-of-bounds access in cVector::Remove().
|
||
- Added functions to set and retrieve the priority of a cReceiver (suggested by
|
||
Frank Schmirler).
|
||
- Added the new parameters "Setup/Miscellaneous/Volume steps" and
|
||
".../Volume linearize" (thanks to Claus Muus). See the MANUAL for details.
|
||
- Fixed jumping to an absolute position via the Red key in case replay was paused
|
||
(reported by Dieter Ferdinand).
|
||
- Changed the German weekday names from "MonDieMitDonFreSamSon" to
|
||
"Mo.Di.Mi.Do.Fr.Sa.So." (thanks to Stefan Blochberger).
|
||
- Now handling CAT sections that consist of more than one TS packet.
|
||
- Added handling for DTS audio tracks to cPatPmtParser::ParsePmt() (thanks to
|
||
Thomas Reufer).
|
||
- Added support for PGS subtitles (thanks to Thomas Reufer).
|
||
- Use of the function cOsd::GetBitmap() outside of derived classes is now deprecated,
|
||
and it may be made 'protected' in a future version, since it doesn't work with
|
||
TrueColor OSDs. Plugin authors may want to modify their code so that it
|
||
works without this function.
|
||
- Modified the descriptions of several threads, so that the important information
|
||
(like device or frontend numbers) is within the first 15 characters of the
|
||
string, because only these are displayed in thread listings. Plugin authors may
|
||
want to do the same.
|
||
- Added the channel name to log messages that reference a channel (suggested by
|
||
Dietmar Spingler).
|
||
- Modified the CAM API so that it is possible to implement CAMs that can be freely
|
||
assigned to any devices (thanks to Jasmin Jessich).
|
||
- Plugins can now implement the function SetMenuSortMode() in their skin objects
|
||
derived from cSkinDisplayMenu, to get informed about the currently used sort
|
||
mode, if applicable (suggested by Martin Schirrmacher).
|
||
- Added cOsdProvider::OsdSizeChanged(), which plugins that implement an output device
|
||
can call to signal a change in the OSD that requires a redraw of the currently
|
||
displayed object (thanks to Thomas Reufer).
|
||
- Added a comment to cRecorder::Activate() about the need to call Detach() in the
|
||
destructor (suggested by Eike Sauer).
|
||
- Now returning from removing deleted recordings after at most 10 seconds, or if the
|
||
user presses a remote control key, to keep the system from getting unresponsive
|
||
when removing a huge number of files (reported by Dieter Ferdinand).
|
||
- Fixed generating the index file of an existing recording in case at the end of a TS file
|
||
there is less data in the buffer than needed by the frame detector. In such a case
|
||
it was possible that frames were missed, and there was most likely a distortion
|
||
when replaying that part of a recording. This is mostly a problem for recordings that
|
||
consist of more than one *.ts file. Single file recordings could only lose some
|
||
frames at their very end, which probably doesn't matter. At any rate, if you have
|
||
generated an index file with VDR version 2.0.6, 2.1.5 or 2.1.6, you may want to
|
||
do so again with this version to make sure the index is OK.
|
||
- Added the new command line option --updindex, which can be used to update an
|
||
incomplete index of a recording (based on a patch from Helmut Auer).
|
||
|
||
2015-01-20: Version 2.0.7
|
||
|
||
- Fixed a possible division by zero in frame rate detection.
|
||
- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
|
||
Stefan Huelswitt).
|
||
- Fixed jumping to an absolute position via the Red key in case replay was paused
|
||
(reported by Dieter Ferdinand).
|
||
- Now returning from removing deleted recordings after at most 10 seconds, or if the
|
||
user presses a remote control key, to keep the system from getting unresponsive
|
||
when removing a huge number of files (reported by Dieter Ferdinand).
|
||
- Fixed generating the index file of an existing recording in case at the end of a TS file
|
||
there is less data in the buffer than needed by the frame detector. In such a case
|
||
it was possible that frames were missed, and there was most likely a distortion
|
||
when replaying that part of a recording. This is mostly a problem for recordings that
|
||
consist of more than one *.ts file. Single file recordings could only lose some
|
||
frames at their very end, which probably doesn't matter. At any rate, if you have
|
||
generated an index file with VDR version 2.0.6 you may want to do so again with this
|
||
version to make sure the index is OK.
|
||
|
||
2015-02-01: Version 2.1.8
|
||
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed "warning: invalid suffix on literal" with GCC 4.8 and C++11 (thanks to Joerg
|
||
Bornkessel).
|
||
- Fixed the link to "svdrpsend (1)" in the vdr.1 man page (thanks to Chris Mayo).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Added functionality based on the "jumpplay" patch from Torsten Kunkel and Thomas
|
||
G<>nther:
|
||
+ The new option "Setup/Replay/Pause replay when jumping to a mark" can be used to
|
||
turn off pausing replay when jumping to an editing mark with the '9' key.
|
||
+ The new option "Setup/Replay/Skip edited parts" can be used to automatically skip
|
||
the edited parts of a recording during replay, without the need to actually cut
|
||
the recording.
|
||
+ The new option "Setup/Replay/Pause replay at last mark" can be used to make replay
|
||
go into Pause mode when it has reached the last "end" mark.
|
||
+ The '8' key for testing an edited sequence now also jumps to the next *end*
|
||
mark if "Setup/Replay/Skip edited parts" is active. This allows for testing edits
|
||
in recordings that have actually been cut, as well as recordings that have not
|
||
been cut, in case "Skip edited parts" is enabled.
|
||
- Added support for "Satellite Channel Routing" (SCR) according to EN50607, also
|
||
known as "JESS" (thanks to Manfred V<>lkel and Frank Neumann).
|
||
- The keys '1' and '3' can now be used in replay mode to position an editing mark
|
||
in "binary" mode (based on a patch from Rolf Ahrenberg, with modifications by Helmut
|
||
Auer). See MANUAL, section "Editing a Recording".
|
||
- The Yellow button in the "Setup/CAM" menu can now be used to put the selected
|
||
CAM into a mode where it remains assigned to a device that is tuned to the current
|
||
channel until the smart card it contains is activated and the CAM thus starts to
|
||
descramble (see MANUAL, section "Setup/CAM" for details).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Added ARGSDIR to the ONEDIR section of Make.config.template (suggested by Derek
|
||
Kelly).
|
||
- Made cRecording::GetResume() public (suggested by Stefan Braun).
|
||
- Fixed setting the read index in cDvbPlayer::Goto() in case Still is false.
|
||
- The function cDvbPlayer::Goto() now automatically calls Play() if Still is false.
|
||
- Added support for LCN (Logical Channel Numbers), which plugins may use to sort
|
||
channels (thanks to Rolf Ahrenberg).
|
||
|
||
2015-02-08: Version 2.1.9
|
||
|
||
- Fixed a memory leak in case of broken Extended Event Descriptors (thanks to Lars
|
||
Hanisch).
|
||
- Fixed the German translation of "Binary skip timeout (s)" (thanks to Matthias
|
||
Senzel).
|
||
- Fixed the German translation of "VDR will shut down later - press Power to force".
|
||
- Fixed the Finnish translation of "Binary skip timeout (s)" (thanks to Rolf
|
||
Ahrenberg).
|
||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
|
||
- Added SDNOTIFY to Make.config.template (suggested by Christian Richter). Also
|
||
added NO_KBD and BIDI.
|
||
- Added code from the "jumpplay" patch that makes the recording still be considered
|
||
unviewed when stopping replay within RESUMEBACKUP seconds of the first mark.
|
||
- The new option "Setup/Replay/Alternate behavior for adaptive skipping" can be used
|
||
to make adaptive skipping only halve the skip distance when the direction changes.
|
||
That way you can reach the desired point in a recording even if you make one too
|
||
many skips in a certain direction (see MANUAL for details).
|
||
- Fixed cCamSlot::Assign(), so that it actually ignores the value of Query if Device
|
||
is NULL (as described in the header file).
|
||
- Added a missing VDRDIR="$(CWD)" to the clean-plugins target of the Makefile, to
|
||
avoid error messages regarding the missing vdr.pc file.
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Updated the Hungarian OSD texts (thanks to Istv<74>n F<>ley).
|
||
- Fixed switching channels in the Schedule menu after going through various Now and
|
||
Schedule menus for different channels (reported by Matthias Senzel).
|
||
- Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows
|
||
"Switch" if the selected event is on a different channel.
|
||
- Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to
|
||
restrict the LCN (Logical Channel Numbers) parsing to networks that actually use
|
||
this non-standard feature (thanks to Rolf Ahrenberg).
|
||
- In the "Edit recording" menu the '0' key can now be used on the "Name:" field to
|
||
remove the name of the recording and replace it with the last element of the
|
||
recording's folder path name (suggested by Christoph Haubrich). See MANUAL, section
|
||
"Managing folders" for details.
|
||
- Updated the Italian OSD texts (thanks to Nino Gerbino).
|
||
- The "Select folder" menu now adds the folder names of all existing recordings to
|
||
any names that have been predefined in "folders.conf" (suggested by S<>ren Moch).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed the German translations of "latitude" and "longitude" (they were swapped).
|
||
- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells
|
||
(thanks to Clemens Brauers).
|
||
- Changed the German translations if the texts related to "binary skipping" (based
|
||
on a suggestion by Thomas Reufer).
|
||
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
|
||
two separate positions (thanks to Arthur Konovalov).
|
||
- Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd() (thanks to Stefan Herdler).
|
||
The behavior of these two functions is now exacly as described in the header file.
|
||
Editing marks that are placed at exactly the same offset in a recording are now
|
||
preserved in the cutting process.
|
||
- Changed the naming of "binary skip mode" to "adaptive skip mode" (suggested by
|
||
Rolf Ahrenberg and Derek Kelly).
|
||
- cDvbPlayer and cReplayControl now use the same list of editing marks. This avoids
|
||
inconsistent behavior with the "Skip edited parts" or "Pause replay at last mark"
|
||
functions when the editing marks are manipulated during replay.
|
||
- Fixed setting an empty recording name or folder to a blank in the "Edit recording"
|
||
menu (reported by Christoph Haubrich).
|
||
- Added a confirmation before renaming a recording to its folder name (suggested
|
||
by Christoph Haubrich).
|
||
- Modified EntriesOnSameFileSystem(), so that it returns 'true' if either of the given
|
||
files doesn't exist (to avoid any actions that might be triggered if files are on
|
||
different file system), and changed handling the 'error' variable in cDirCopier, so
|
||
that it is initialized to 'true' and will only be set to 'false' if the entire
|
||
copy process has been successful (problem reported by Christoph Haubrich).
|
||
- Added the UPDATE-2.2.0 file.
|
||
|
||
2015-02-11: Version 2.1.10
|
||
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Added "#REMOTE=LIRC" to Make.config.template (suggested by Martin Dauskardt).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Increased the width of the left text column in the Setup menus to avoid cutting
|
||
off German texts.
|
||
- Added an empty target to the Makefile to make sure the sub-make for libsi is always
|
||
called (thanks to S<>ren Moch).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto and Nino Gerbino).
|
||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
|
||
- The new options "Setup/Replay/Skip distance with Green/Yellow keys" and
|
||
"Setup/Replay/Skip distance with Green/Yellow keys in repeat" can be used to
|
||
configure the number of seconds to skip when pressing these keys once or pressing
|
||
and holding them (based on a patch from Matthias Senzel, originally from Tobias
|
||
Faust).
|
||
- The new option "Setup/Replay/Use Prev/Next keys for adaptive skipping" can be used
|
||
to change the behavior of these keys during replay. They normally jump between
|
||
editing marks, but with this option set to 'yes' they will do adaptive skipping.
|
||
- The new command line option --chartab can be used to set the default character
|
||
table to use for strings in the DVB data stream that don't begin with a proper
|
||
character table indicator (suggested by Christopher Reimer). The old mechanism
|
||
of using the environment variable VDR_CHARSET_OVERRIDE still works, but is now
|
||
deprecated and may be removed in a future version. The value given in the --chartab
|
||
option takes precedence over that in VDR_CHARSET_OVERRIDE.
|
||
- cOsd::RenderPixmaps() now returns a pointer to cPixmap instead of cPixmapMemory
|
||
(suggested by Thomas Reufer). This is necessary to allow plugins with derived
|
||
cPixmap implementations to use this function. Plugins that use this function
|
||
with cPixmapMemory now need to add a dynamic cast to the call, as in
|
||
|
||
cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()));
|
||
|
||
They also need to call DestroyPixmap(pm) instead of "delete pm" to properly release
|
||
the resulting pixmap after use.
|
||
The dvbhddevice plugin has been modified accordingly.
|
||
- A cPixmap with a negative layer no longer marks any portion of the OSD's view port
|
||
as "dirty" when drawing on it. This may improve performance when drawing on a
|
||
hidden pixmap, because it avoids unnecessary refreshes of the OSD.
|
||
- Added a missing initialization of "panning" to the constructor of cPixmapMemory.
|
||
- Updated the Dutch OSD texts (thanks to Erik Oomen).
|
||
- Updated the French OSD texts (thanks to R<>gis Bossut).
|
||
- Fixed the German translation of "Zap timeout" (thanks to Albert Danis).
|
||
|
||
2015-02-19: Version 2.2.0
|
||
|
||
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto and Nino Gerbino).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Updated the Swedish OSD texts (thanks to Magnus Sirwi<77>).
|
||
- Updated the Hungarian OSD texts (thanks to Istv<74>n F<>ley and Albert Danis).
|
||
- Modified the German translations of the OSD texts regarding "adaptive skipping".
|
||
- Fixed pausing replay at the last editing mark (reported by Stefan Herdler).
|
||
- Updated the Polish OSD texts (thanks to Tomasz Maciej Nowak).
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Fixed using the default sort mode in a video directory without a ".sort" file
|
||
(reported by Stefan Herdler).
|
||
- Improved the German translations of "EPG bugfix level"", "StreamId" and "T2SystemId"
|
||
(thanks to Albert Danis).
|
||
- Updated the Czech OSD texts (thanks to Ales Jurik).
|
||
- Updated the Slovak OSD texts (thanks to Milan Hrala).
|
||
- Updated sources.conf to reflect the fact that Thor 5/6 and Intelsat 10-02 are
|
||
actually in two separate positions.
|
||
- Updated the French OSD texts (thanks to R<>gis Bossut).
|
||
- Updated the Spanish OSD texts (thanks to Gabriel Bonich).
|
||
- Fixed leading/trailing/multiple blanks in the translation files.
|
||
- Bumped all version numbers to 2.2.0.
|
||
- Official release.
|
||
|
||
2015-09-14: Version 2.3.1
|
||
|
||
- The new function cOsd::MaxPixmapSize() can be called to determine the maximum size
|
||
a cPixmap may have on the current OSD. The 'osddemo' example has been modified
|
||
accordingly. Plugin authors may want to use this function in case they use pixmaps
|
||
that are larger than the full OSD size. The default implementation sets this limit
|
||
to 2048x2048 pixel.
|
||
- The Setup/CAM menu now displays which device an individual CAM is currently
|
||
assigned to (suggested by Frank Neumann).
|
||
- Added detection of 24fps (thanks to Thomas Reufer).
|
||
- Added a note about the VDR User Counter and VDR's facebook page to the README file.
|
||
- The dvbhddevice plugin is no longer part of the VDR source archive.
|
||
You can get the latest version of this plugin from the author's repository at
|
||
https://bitbucket.org/powARman/dvbhddevice.
|
||
- The dvbsddevice and rcu plugins are no longer part of the VDR source archive.
|
||
You can get the latest versions of these plugins from ftp://ftp.tvdr.de/vdr/Plugins.
|
||
- Added a section about Output Devices to the INSTALL file.
|
||
- Fixed setting the source value of newly created channels, in case the NIT is
|
||
received from a different, but very close satellite position (reported by Daniel
|
||
Ribeiro). The code for handling different NITs has been removed from nit.c, because
|
||
according to the DVB standard table id 0x40 carries only the NIT of the actual
|
||
network.
|
||
- Added some comment to cPixmap about the relation between OSD, ViewPort and DrawPort
|
||
(suggested by Thomas Reufer).
|
||
- Improved syncing on sections when parsing the NIT and SDT.
|
||
- Fixed scaling subtitles (their areas could sometimes extend outside the actual OSD).
|
||
- Reduced the priority of the "video directory scanner" thread (suggested by Thomas
|
||
Reufer) and checking cIoThrottle::Engaged() when it is running.
|
||
- The script that gets called for recordings is now also called right before a
|
||
recording is edited, with the first parameter being "editing" (suggested by
|
||
Dieter Ferdinand).
|
||
- The new setup option "OSD/Default sort mode for recordings" can be used to define
|
||
how recordings shall be sorted by default (either by time or by name, with "by time"
|
||
being the default). If a particular sort mode has been selected for a folder by
|
||
pressing '0', the default no longer applies to that folder. Repeating timers no
|
||
longer write a ".sort" file into a recordings folder to have the recordings sorted
|
||
by time.
|
||
- The command line option -D now accepts the value '-' (as in -D-), which prevents
|
||
VDR from using any DVB devices (suggested by Dietmar Spingler).
|
||
- The -V and -h options now list the plugins in alphabetical order (suggested by
|
||
Dietmar Spingler).
|
||
- Fixed a compiler warning in font.c.
|
||
- Commented out the line
|
||
#define DEPRECATED_VIDEOSYSTEM
|
||
in device.h. If a plugin doesn't compile with this version of VDR, you can uncomment
|
||
this line as a quick workaround. In the long run the plugin will need to be adapted.
|
||
- The function cOsd::GetBitmap() is now 'protected'. If a plugin doesn't compile with
|
||
this version of VDR, you can uncomment the line
|
||
//#define DEPRECATED_GETBITMAP
|
||
in osd.h as a quick workaround. In the long run the plugin will need to be adapted.
|
||
- The -u option now also accepts a numerical user id (suggested by Derek Kelly).
|
||
- The SVDRP port now accepts multiple concurrent connections. You can now keep an
|
||
SVDRP connection open as long as you wish, without preventing others from
|
||
connecting. Note, though, that SVDRP connections still get closed automatically
|
||
if there has been no activity for 300 seconds (configurable via
|
||
"Setup/Miscellaneous/SVDRP timeout (s)").
|
||
- The SVDRP log messages have been unified and now always contain the IP and port
|
||
number of the remote host.
|
||
- SVDRP connections are now handled in a separate "SVDRP server handler" thread,
|
||
which makes them more responsive. Note that there is only one thread that handles
|
||
all concurrent SVDRP connections. That way each SVDRP command is guaranteed to be
|
||
processed separately, without interfering with any other SVDRP commands that might
|
||
be issued at the same time. Plugins that implement SVDRP commands may need to take
|
||
care of proper locking if the commands access global data.
|
||
- VDR now sends out a broadcast to port 6419/udp, which was assigned to 'svdrp-disc'
|
||
by the IANA. VDRs listening on that port will automatically initiate an SVDRP
|
||
connection to the broadcasting VDR, and in turn send out a broadcast to make
|
||
other VDRs connect to them. That way all VDRs within the local network will
|
||
have permanent "peer-to-peer" SVDRP connections between each other. The
|
||
configuration in the svdrphosts.conf file is taken into account when considering
|
||
whether or not to respond to an SVDRP discover broadcast.
|
||
- The new SVDRP command PING is used by automatically established peer-to-peer
|
||
connections to keep them alive.
|
||
- The new function GetSVDRPServerNames() can be used to get a list of all VDRs
|
||
this VDR is connected to via SVDRP.
|
||
- The new function ExecSVDRPCommand() can be used to execute an SVDRP command on
|
||
one of the servers this VDR is connected to, and retrieve the result.
|
||
The helper functions SVDRPCode() and SVDRPValue() can be used to easily access
|
||
the codes and values returned by ExecSVDRPCommand().
|
||
- The cTimer class now has a new member named 'remote', which holds the name of the
|
||
remote server this timer will record on. If this is NULL, it is a local timer.
|
||
- Timers from other VDRs that are connected to this VDR via SVDRP are now
|
||
automatically fetched and stored in the global Timers list. In order for this
|
||
to work, all of the channels used by timers on the remote VDR must also be
|
||
defined on the local VDR (however, not necessarily in the same sequence).
|
||
Automatic channel syncing will be implemented later.
|
||
- The main menu of the LCARS skin now displays a small rectangle on the left side
|
||
of a timer if this is a remote timer. The color of that rectangle changes if
|
||
the timer is currently recording on the remote VDR.
|
||
- Accessing the global Timers list now has to be protected by proper locking,
|
||
because SVDRP commands are now executed in a separate thread.
|
||
The introduction of this locking mechanism required the following changes:
|
||
+ The new classes cStateLock and cStateKey are used to implement locking
|
||
with quick detection of state changes.
|
||
+ cConfig::cConfig() now has a parameter that indicates whether this list
|
||
requires locking.
|
||
+ The global lists of Timers, Channels, Schedules and Recordings are no longer
|
||
static variables. They are now pointers that need to be retrieved through
|
||
a call to cTimers::GetTimersRead/Write(), cChannels::GetChannelsRead/Write(),
|
||
cSchedules::GetSchedulesRead/Write() and cRecordings::GetRecordingsRead/Write(),
|
||
respectively.
|
||
+ References from/to link channels are now removed in cChannels::Del() rather
|
||
than cChannel::~cChannel(), to make sure the caller holds a proper lock.
|
||
+ cChannel::HasTimer() has been removed. This information is now retrieved
|
||
via cSchedule::HasTimer().
|
||
+ Several member functions of cChannel, cTimer, cMarks and cRecording have
|
||
been made 'const', and some of them are now available as both 'const' and
|
||
'non-const' versions.
|
||
+ The cChannel::Set...() functions are now 'bool' and return true if they have
|
||
actually changed any of the channels's members.
|
||
+ cChannels::SetModified() has been renamed to cChannels::SetModifiedByUser().
|
||
+ cChannels::Modified() has been renamed to cChannels::ModifiedByUser(), and
|
||
now has a 'State' parameter that allows the caller to see whether a channel
|
||
has been modified since the last call to this function with the same State
|
||
variable.
|
||
+ The macros CHANNELSMOD_NONE/_AUTO/_USER have been removed.
|
||
+ cMarks now requires locking via cStateKey.
|
||
+ cSortedTimers now requires a pointer to the list of timers.
|
||
+ cEvent::HasTimer() no longer scans the list of timers to check whether an event
|
||
is referenced by a timer, but rather keeps score of how many timers reference
|
||
it. This was necessary in order to avoid having to lock the list of timers from
|
||
within a cEvent.
|
||
+ The new class cListGarbageCollector is used to temporary store any objects deleted
|
||
from cLists that require locking. This allows pointers to such objects to be
|
||
dereferenced even if the objects are no longer part of the list.
|
||
+ cListBase::Contains() can be used to check whether a particular object is still
|
||
contained in that list.
|
||
+ Outdated events are no longer "phased out", but rather deleted right away and thus
|
||
taken care of by the new "garbage collector" of the list.
|
||
+ Deleted cRecording objects are no longer kept in a list of "vanished" recordings,
|
||
but are rather taken care of by the new "garbage collector" of the list.
|
||
+ cSchedules::ClearAll() has been removed. The functionality is now implemented
|
||
directly in cSVDRPServer::CmdCLRE().
|
||
+ tEventID has been changed to u_int16_t in order to make room for the new member
|
||
numTimers in cEvent.
|
||
+ cSchedule now has a member Modified(), which can be used with a State variable
|
||
to quickly determine whether this schedule has been modified since the last call
|
||
to this function with the same State variable.
|
||
+ cSchedulesLock has been removed. Locking the list of schedules is now done via
|
||
the cList's new locking mechanism.
|
||
+ The 'OnlyRunningStatus' parameters in cEpgHandler::BeginSegmentTransfer() and
|
||
cEpgHandler::EndSegmentTransfer() are now obsolete. They are still present in
|
||
the interface for backward compatibility, but may be removed in a future version.
|
||
Their value is always 'false'.
|
||
+ The constant tcMod is no longer used in cStatus::TimerChange(). The definition is
|
||
still there for backward compatibility.
|
||
Plugins that access the global lists of Timers, Channels, Recordings or Schedules
|
||
will need to be adapted as follows:
|
||
+ Instead of directly accessing the global variables Timers, Channels or Recordings,
|
||
they need to set up a cStateKey variable and call the proper getter function,
|
||
as in
|
||
cStateKey StateKey;
|
||
if (const cTimers *Timers = cTimers::GetTimersRead(StateKey)) {
|
||
// access the timers
|
||
StateKey.Remove();
|
||
}
|
||
and
|
||
cStateKey StateKey;
|
||
if (cTimers *Timers = cTimers::GetTimersWrite(StateKey)) {
|
||
// access the timers
|
||
StateKey.Remove();
|
||
}
|
||
See timers.h, thread.h and tools.h for details on this new locking mechanism.
|
||
+ There are convenience macros for easily accessing these lists without having
|
||
to explicitly set up a cStateKey and calling its Remove() function. These macros
|
||
have the form LOCK_*_READ/WRITE (with '*' being TIMERS, CHANNELS, SCHEDULES or
|
||
RECORDINGS). Simply put such a macro before the point where you need to access
|
||
the respective list, and there will be a pointer named Timers, Channels, Schedules
|
||
or Recordings, respectively, which is valid until the end of the current block.
|
||
+ If a plugin needs to access several of the global lists in parallel, locking must
|
||
always be done in the sequence Timers, Channels, Recordings, Schedules. This is
|
||
necessary to make sure that different threads that need to lock several lists at
|
||
the same time don't end up in a deadlock.
|
||
+ Some pointer variables may need to be made 'const'. The compiler will tell you
|
||
about these.
|
||
- cSectionSyncer has been improved to better handle missed sections.
|
||
- Added a missing initialization of 'seen' in cChannel's copy constructor.
|
||
- Background modifications of channels, timers and events are now displayed immediately
|
||
in the corresponding menus.
|
||
- cEIT now checks the version of the tables before doing any processing, which saves
|
||
a lot of locking and processing.
|
||
- If a timer is newly created with the Red button in the Schedule menu, and the timer
|
||
is presented to the user in the "Edit timer" menu because it will start immediately,
|
||
it now *must* be confirmed with "Ok" to set the timer. Otherwise the timer will not
|
||
be created.
|
||
- Recordings and deleted recordings are now scanned in a single thread.
|
||
- The new SVDRP command POLL is used by automatically established peer-to-peer
|
||
connections to trigger fetching remote timers.
|
||
- You can now set DumpSVDRPDataTransfer in svdrp.c to true to have all SVDRP
|
||
communication printed to the console for debugging.
|
||
- Added a missing 'const' to cReceiver::Receive(), to protect the given Data from
|
||
being modified.
|
||
- The SVDRP commands that deal with timers (DELT, LSTT, MODT, NEWT, NEXT and UPDT)
|
||
as well as any log messages that refer to timers, now use a unique id for each
|
||
timer, which remains valid as long as this instance of VDR is running. This means
|
||
that timers are no longer continuously numbered from 1 to N in LSTT. There may be
|
||
gaps in the sequence, in case timers have been deleted.
|
||
- The Timers menu now displays the name of the remote VDR in front of the timer's
|
||
file name, if this is a remote timer.
|
||
- The new options "Setup/Miscellaneous/SVDRP peering", ".../SVDRP host name" and
|
||
".../SVDRP default host" can be used to configure automatic peering between VDRs
|
||
in the same network. Peering is disabled by default and can be enabled by setting
|
||
"SVDRP peering" to "yes".
|
||
- The function cTimer::ToText() no longer returns a newline character at the end of
|
||
the string. The newline is now added by the caller as necessary. This was changed
|
||
because cTimer::ToText() is now also needed in a context where the terminating
|
||
newline can't be used. Consequently, cChannel::ToText() and cMark::ToText() have
|
||
been modified accordingly.
|
||
- All timer related response strings from SVDRP commands now use the channel ID
|
||
instead of channel numbers.
|
||
- The "Edit timer" menu now has a new parameter "Record on", which can be used to
|
||
select the VDR on which this timer shall record. Timers can be freely moved
|
||
between connected VDRs by simply selecting the desired machine in this field.
|
||
- The SVDRP command DELT no longer checks whether the timer that shall be deleted
|
||
is currently recording.
|
||
- The character 0x0D is now stripped from EPG texts (reported by Janne P<>nk<6E>l<EFBFBD>).
|
||
- The EPG scanner no longer moves the dish if there is a positioner.
|
||
- The 'newplugin' script now creates the 'po' subdirectory for translations (thanks
|
||
to Thomas Reufer).
|
||
- Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal
|
||
menus (thanks to Stefan Braun).
|
||
- Fixed a possible stack overflow in cListBase::Sort() (thanks to Oliver Endriss).
|
||
- Changed the description of the --chartab option in the INSTALL file to refer to
|
||
"DVB SI table strings" instead of "EPG data".
|
||
- The width and height of the OSD are now limited to the actual maximum dimensions
|
||
of the output device, taking into account the top and left offset.
|
||
- The new setup option "Recording/Record key handling" can be used to define
|
||
what happens if the Record key on the remote control is pressed during
|
||
live tv (suggested by Dietmar Spingler).
|
||
- Empty adaptation field TS packets are now skipped when recording (thanks to
|
||
Christopher Reimer, based on the "AFFcleaner" by Stefan P<>schel).
|
||
|
||
2016-12-24: Version 2.3.2
|
||
|
||
- Fixed a crash when deleting a recording (reported by Oliver Endriss).
|
||
- Fixed an overflow of PIDs in a receiver (thanks to Robert Hannebauer).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed initializing device specific parameters in cDvbTransponderParameters.
|
||
- The function SetCurrentChannel(const cChannel *Channel) is now deprecated and
|
||
may be removed in a future version. Use SetCurrentChannel(int ChannelNumber)
|
||
instead.
|
||
- The SVDRP command DELC now refuses to delete the very last channel in the list,
|
||
to avoid ending up with an empty channel list.
|
||
- The cRwLock class now allows nested read locks within a write lock from the
|
||
same thread. This fixes possible crashes when moving or deleting channels in
|
||
the menu or through SVDRP (as well as other operations that try to acquire a
|
||
read lock within a write lock).
|
||
- Fixed a crash when trying to delete a channel that is being used by a timer.
|
||
- Fixed setting the current item and counter values in the Recordings menu after
|
||
deleting the last recording in a subfolder.
|
||
- Fixed a crash when deleting a recording that is currently being replayed.
|
||
- Fixed a crash when moving a recording to a folder on a different volume.
|
||
The cRecordingsHandler now performs its actual operations in a separate thread,
|
||
thus avoiding locking problems and reducing the time between subsequent
|
||
operations.
|
||
- Added a note to the description of cFont::Size(), regarding possible differences
|
||
between it and cFont::Height() (suggested to Thomas Reufer).
|
||
- Made the cPlayer member functions FramesPerSecond, GetIndex and GetReplayMode
|
||
'const' (thanks to Thomas Reufer).
|
||
- Fixed resuming replay at a given position, which was off by one frame (thanks
|
||
to Thomas Reufer).
|
||
- Improved handling frame numbers to have a smoother progress display during
|
||
replay of recordings with B-frames (thanks to Thomas Reufer).
|
||
- Fixed replaying recordings to their very end, if they don't end with an I-frame
|
||
(thanks to Thomas Reufer).
|
||
- Implemented a frame parser for H.265 (HEVC) recordings (thanks to Thomas Reufer).
|
||
- Added cFont::Width(void) to get the default character width and allow stretched
|
||
font drawing in high level OSDs (thanks to Thomas Reufer).
|
||
- Fixed regenerating the index of audio recordings (thanks to Thomas Reufer).
|
||
- Fixed building VDR with systemd >= 230 (thanks to Ville Skytt<74>).
|
||
- Sorted sources.conf by continuous azimuth (thanks to Lucian Muresan).
|
||
- Added 'S58.5E Kazsat 3' to sources.conf (thanks to Aitugan Sarbassov).
|
||
- Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems
|
||
(reported by Sergey Chernyavskiy).
|
||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||
- Added a 'const' version of cTimers::GetTimer() (thanks to Lars Hanisch).
|
||
- Fixed a typo in the description of cTimers::GetTimersRead() (thanks to Lars
|
||
Hanisch).
|
||
- Fixed a possible buffer overflow in handling CA descriptors (suggested by
|
||
Lars Hanisch).
|
||
- Avoiding some duplicate code and unnecessary work in nit.c (thanks to Ville
|
||
Skytt<74>).
|
||
- Added support for the systemd watchdog (thanks to Marc Perrudin),
|
||
- Added a short sleep to cTSBuffer::Action() to avoid high CPU usage (thanks to
|
||
Sergey Chernyavskiy).
|
||
|
||
2017-03-28: Version 2.3.3
|
||
|
||
- Added 'S3W ABS-3A' to sources.conf (thanks to Frank Richter).
|
||
- Fixed a possible deadlock in the recordings handler thread.
|
||
- Updated the Russian OSD texts (thanks to Andrey Pridvorov).
|
||
- Added a missing dependency to the Makefile to avoid error messages in the
|
||
clean-plugins target (thanks to Tobias Grimm).
|
||
- The channel/CAM relations (i.e. the information which CAM can decrypt a given
|
||
channel) are now stored in the file 'cam.data' in the cache directory (suggested
|
||
by Dietmar Spingler). This speeds up switching to encrypted channels after
|
||
newly starting VDR, in case there is more than one CAM in the system.
|
||
- Fixed a flaw in handling timeouts for encrypted channels.
|
||
- The mechanism of trying different CAMs when switching to an encrypted channel is
|
||
now only triggered if there acually is more than one CAM in the system.
|
||
- Fixed updating the elapsed/remaining time in the progress display during fast
|
||
forward/rewind.
|
||
- Changed 'unsigned' to 'signed' in some places to avoid trouble with abs() in
|
||
gcc6+ (reported by Derek Kelly).
|
||
- CAMs that can handle multiple devices at the same time can now indicate this
|
||
by creating the first cCamSlot as usual, and every other cCamSlot by giving
|
||
it the first one as its "MasterSlot". To VDR this means that when searching
|
||
for a CAM that can decrypt a particular channel, it only needs to ask the
|
||
master CAM slot whether it is suitable for decrypting, and can skip all the
|
||
other slots belonging to the same master. This can greatly speed up channel
|
||
switching on systems with more than one CAM (that can handle multiple devices).
|
||
- The LCARS skin now displays the master CAM's number when a device is tuned to
|
||
an encrypted channel.
|
||
- The Setup/CAM menu now only displays master CAMs.
|
||
- Fixed setting the local machine's SVDRP host name (was overwritten if setup.conf
|
||
contained an empty string).
|
||
- PIDs can now be added to and deleted from a cReceiver while it is attached to
|
||
a cDevice, without having to detach it first and re-attach it afterwards.
|
||
- Implemented support for MTD ("Multi Transponder Decryption"). This allows a CAM
|
||
that is capable of decrypting more than one channel ("Multi Channel Decryption")
|
||
to decrypt channels from different transponders. See the remarks in mtd.h on
|
||
what a derived cCamSlot class needs to do in order to activate MTD (thanks to
|
||
Jasmin Jessich for writing the ddci2 plugin and for valuable input and help
|
||
with testing and debugging).
|
||
- The function cRingBufferLinear::Clear() can now be called safely from the
|
||
reading thread, without additional locking.
|
||
- Now stopping any ongoing recordings before stopping the plugins, to avoid
|
||
a crash when stopping VDR while recording.
|
||
|
||
2017-04-27: Version 2.3.4
|
||
|
||
- The functionality of HandleRemoteModifications(), which synchronizes changes to
|
||
timers between peer VDR machines, has been moved to timers.[ch] and renamed to
|
||
HandleRemoteTimerModifications(). It now also handles deleting remote timers.
|
||
- The function cEpgHandlers::BeginSegmentTransfer() is now boolean (thanks to
|
||
J<>rg Wendel). See the description in epg.h for the meaning of the return value.
|
||
- Changed tEventID back to u_int32_t (suggested by J<>rg Wendel). The change to
|
||
u_int16_t in version 2.3.1 was ill-conceived, because the description of the
|
||
"event id" in vdr.5 explicitly mentioned this parameter to be 32 bit in size!
|
||
The members of cEvent have been slightly rearranged to minimize the memory
|
||
requirements on both 32 and 64 bit systems.
|
||
- The file 'cam.data' is no longer written if it is read-only.
|
||
- Detecting whether a particular CAM actually decrypts a given channel is now
|
||
done separately for each receiver.
|
||
- The cEvent class now has a new member 'aux', in which external applications can
|
||
store auxiliary information with an event (thanks to J<>rg Wendel). This string
|
||
has no meaning whatsoever to VDR itself, and it will not be written into the
|
||
info file of a recording that is made for such an event.
|
||
- Added some guidelines and recommendations to the 'Logging' section of PLUGINS.html.
|
||
The most important being: implement a command line option to control the level
|
||
of logging (in particular allow turning off logging completely!) and never print
|
||
anything to stdout or stderr (unless one of the listed exceptions applies).
|
||
- Added a note to the "Pausing live video" section of the MANUAL, stating that
|
||
the timer for paused live video will always record on the local VDR, even if
|
||
an "SVDRP default host" has been set for normal timer recordings.
|
||
- cOsdMenu::Display() now checks whether the OSD size has changed and if so calls
|
||
SetDisplayMenu().
|
||
- The SVDRP commands that deal with recordings (DELR, EDIT, LSTR, MOVR, and PLAY)
|
||
now use a unique id for each recording, which remains valid as long as this
|
||
instance of VDR is running. This means that recordings are no longer continuously
|
||
numbered from 1 to N in LSTR. There may be gaps in the sequence, in case recordings
|
||
have been deleted, and they are not necessarily listed in numeric order.
|
||
Thanks to Sergey Chernyavskiy.
|
||
- Changed 'number' to 'id' in the help texts of SVDRP commands that deal with
|
||
timers.
|
||
- Fixed a deadlock in the SVDRP command PLAY in case there is currently a
|
||
recording being replayed.
|
||
- Signal strength and quality (CNR) are now determined via DVB API 5 (if available).
|
||
Fallback is the old DVB API 3 method.
|
||
- The function cCamSlot::Decrypt() can now also be called with Data == NULL.
|
||
This is necessary to allow CAMs that copy the incoming data into a separate buffer
|
||
to return previously received and decrypted TS packets. See ci.h for details.
|
||
Plugins that implement a derived cCamSlot need to properly handle this case, and
|
||
plugins that implement a derived cDevice need to call Decrypt() in their
|
||
GetTSPacket() function even if the incoming buffer is currently empty (see
|
||
cDvbDevice::GetTSPacket()).
|
||
- cTSBuffer::Skip() no longer immediately deletes the given number of bytes from the
|
||
TS buffer, but rather stores the number for later deletion in the next call to
|
||
Get(). This is necessary because in cDvbDevice::GetTSPacket() tsBuffer->Skip()
|
||
is called, but the actual TS packet returned (pointed to by Data) may well be
|
||
(and typically is, unless the CAM copies the data) in the area of the buffer that
|
||
would be deleted by Skip().
|
||
- The new function cDevice::SignalStats() (if implemented by an actual device) returns
|
||
statistics about the currently received signal.
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed displaying remote timers in the main menu of skin LCARS.
|
||
- Fixed editing a remote timer immediately after it has been created.
|
||
- Fixed handling the uncorrected block counter for DVB API 3 devices when calculating
|
||
signal quality.
|
||
- The SVDRP command LSTC can now list the channels with channel ids if the option
|
||
':ids' is given (suggested by Dietmar Spingler).
|
||
- If 0 is given as the channel number in the SVDRP command LSTC, the data of the
|
||
current channel is listed.
|
||
- Fixed a possible crash when pulling the CAM while decrypting a channel with MTD.
|
||
|
||
2017-05-25: Version 2.3.5
|
||
|
||
- CAMs are now sent a generated EIT packet that contains a single 'present event' for
|
||
the current SID, in order to avoid any parental rating dialogs.
|
||
- Fixed handling UNC values (the shift operator behaves unexpected for shift values
|
||
larger than the size of the variable).
|
||
- Log messages about switching channels now include the channel ID (suggested by
|
||
Dietmar Spingler).
|
||
- Events in the EIT that end before the EPG linger time are now ignored in the incoming
|
||
data stream, because they would just be deleted in the next schedules cleanup anyway.
|
||
- The constructor of cHash (via cHashBase) now has an additional parameter (OwnObjects)
|
||
which, if set to true, makes the hash take ownership of the hashed objects, so that
|
||
they are deleted when the hash is cleared or destroyed.
|
||
- Fixed a memory leak in cSectionSyncerHash. The cSectionSyncerEntry objects put into
|
||
the hash were never explicitly deleted. Now the cSectionSyncerHash takes ownership of
|
||
these objects.
|
||
- cListObject now implements a private copy constructor and assignment operator, to keep
|
||
derived objects from calling them implicitly.
|
||
- When selecting a device/CAM combination for live viewing, CAMs that are known to decrypt
|
||
the requested channel are now given a higher priority than prefering the primary device
|
||
(reported by Christian Winkler).
|
||
- Changed the default return value of cEpgHandler::BeginSegmentTransfer() to true, to
|
||
avoid problems with derived classes that don't implement this function (reported by
|
||
Frank Neumann).
|
||
- Fixed selecting delivery system names in case of undefined indexes (thanks to Jasmin
|
||
Jessich).
|
||
- Changed the legacy delivery system name "DMBTH" to "DTMB", and added names for
|
||
DVBC_ANNEX_C and DVBC2.
|
||
- Added a Status parameter to the interface of cDevice::SignalStats() and
|
||
cDvbDevice::SignalStats() (thanks to Rolf Ahrenberg).
|
||
- Fixed handling line numbers in error messages when reading EPG data.
|
||
- Added handling RI_HOST_CONTROL to the CI protocol (no actual processing, but its
|
||
presence is required by some CAMs).
|
||
- Fixed a crash in case the bottom text of a CAM menu is empty.
|
||
- Extended the CI API to allow plugins to implement additional CAM resources.
|
||
- Fixed a race between SVDRP CHAN and cDevice::HasProgramme() (reported by Dietmar
|
||
Spingler).
|
||
- Reduced the time before a CAM is marked as known to decrypt a particular channel to
|
||
3 seconds.
|
||
- When the connection to a peer VDR is terminated, any remote timers of that peer
|
||
are no longer shown on the local VDR.
|
||
- No longer setting a new timer's remote host name if "SVDRP peering" is turned off.
|
||
- Fixed a double deletion of a cTimer in case HandleRemoteModifications() returned
|
||
false (thanks to Johann Friedrichs).
|
||
- Removed TsGetContinuityCounter() from remux.h, using TsContinuityCounter() instead.
|
||
- Fixed setting the local machine's SVDRP host name (was overwritten if setup.conf
|
||
contained an empty string). The SVDRP host name is now only written to setup.conf
|
||
if it differs from the system's host name.
|
||
- If the Channel+/- keys are pressed while in the Schedules menu, the menu is now
|
||
switched to the EPG of the new current channel.
|
||
- The Makefiles have been modified so that during the build process they no longer
|
||
display the actual (lengthy) commands, but rather just the name of the file that
|
||
is being built, as in
|
||
CC vdr.o
|
||
The first two characters indicate the kind of operation (CC=compile, LD=link,
|
||
AR=archive, MO=msgfmt, GT=xgettext, PO=msgmerge, IN=install).
|
||
This way it is much easier to spot error messages and warnings, since they are not
|
||
buried under tons of text.
|
||
Plugin authors should modify their makefiles accordingly, by simply preceeding
|
||
the respective commands with an '@' and inserting '@echo XX $@' (where XX is one
|
||
of the character combinations listed above) before the command.
|
||
The newplugin script has also been modified accordingly.
|
||
- Fixed detecting the inclusion of STL header files in tools.h (thanks to Jasmin
|
||
Jessich).
|
||
|
||
2017-06-04: Version 2.3.6
|
||
|
||
- Added backtrace functions for debugging (see cBackTrace in thread.h).
|
||
- Added checking the correct sequence of locking global lists (with help and
|
||
suggestions from Jasmin Jessich). At the first occurrence of an invalid locking
|
||
sequence, the 20 most recent locks will be written to the log file, followed by a
|
||
backtrace that led to the call in question. This code can be activated by defining
|
||
the macro DEBUG_LOCKSEQ in thread.c (which is on by default).
|
||
When debugging an actual invalid locking sequence, you can additionally define
|
||
the macro DEBUG_LOCKCALL in thread.c, which will add information about the caller
|
||
of each lock. Note that this may cause some stress on the CPU, therefore it is off
|
||
by default.
|
||
- The file Make.config.template now reacts on DEBUG=1 in the 'make' command line,
|
||
and disables code optimizations by setting -O0 (thanks to Jasmin Jessich).
|
||
This can be helpful when backtracing highly optimized code. You may want to
|
||
'make distclean' before running 'make' with a modified setting of DEBUG, to make
|
||
sure all object files are newly compiled.
|
||
- Fixed the locking sequence when dumping EPG data.
|
||
- Fixed the locking sequence when starting a recording.
|
||
- The Makefiles now use the macro $(Q) instead of a plain '@' in front of their
|
||
commands, so that verbosity can be controlled by the user (suggested by Jasmin
|
||
Jessich). Add VERBOSE=1 to the 'make' call in the VDR source directory to see the
|
||
actual commands that are executed.
|
||
Plugin authors should modify their makefiles accordingly, by simply preceeding
|
||
the respective commands with '$(Q)' and inserting '@echo XX $@' (where XX is one
|
||
of the character combinations listed in the release note for version 2.3.5) before
|
||
the command.
|
||
The newplugin script has also been modified accordingly.
|
||
Note that if you build a plugin directly in the plugin's own source directory,
|
||
the $(Q) macro won't be defined and commands will be displayed. You can add
|
||
Q=@ to the make call to have it less verbose (provided the plugin's Makefile
|
||
was modified as described above).
|
||
- Added clearing CiResourceHandlers before shutting down the plugin manager.
|
||
- Fixed a double channel switch when pressing the Channel+/- keys while no menu
|
||
or channel display is open.
|
||
- Fixed generating k_Release key events for LIRC remote controls (due to the short
|
||
timeout another normal key was sometimes put into the queue after the generated
|
||
release). Also removed some code redundancy and added some buffer checks.
|
||
- Now using a separate mutex to fix the race between SVDRP CHAN and
|
||
cDevice::HasProgramme(), because the previous fix caused a deadlock (reported by
|
||
Derek Kelly).
|
||
- Fixed a possible crash in case the SVDRP connection to a peer VDR is terminated
|
||
while getting remote timers.
|
||
- Fixed the locking sequence when creating a new timer from the Schedules menu.
|
||
- Fixed the locking sequence when switching between 'Now', 'Next' and 'Schedule'
|
||
in the Schedules menu.
|
||
|
||
2017-06-11: Version 2.3.7
|
||
|
||
- Fixed false positives when checking the locking sequence, in case of nested locks
|
||
within the same thread.
|
||
- Fixed uninitialized variable SdWatchdog in vdr.c (reported by Frank Neumann).
|
||
- Fixed the locking sequence when starting an instant recording.
|
||
- Fixed L(ock) and U(nlock) indicators in cStateLockLog.
|
||
- Increased SLL_LENGTH in thread.c to better handle long caller lines, and enclosed
|
||
logCaller with DEBUG_LOCKCALL to preserve memory in normal operation.
|
||
- Fixed a typo in CAMMENURETYTIMEOUT and added logging CAM enquiries.
|
||
- The new configuration file 'camresponses.conf' can be used to define automatic
|
||
responses to CAM menus, for instance to avoid annyoing popup messages or entering
|
||
the parental rating PIN. See vdr.5 for details.
|
||
- The option "Setup/Miscellaneous/Show channel names with source" can now be set to
|
||
"type" or "full" to show either the type or the full name of the source (thanks to
|
||
Martin Wache).
|
||
- The "Channels" menu now indicates whether a channel is encrypted ('X') or a radio
|
||
channel ('R') (thanks to Martin Wache).
|
||
- Changed ##Lock to ##_Lock in the DEF_LIST_LOCK and USE_LIST_LOCK macros defined
|
||
in tools.h, so that there is no cSchedulesLock any more. The epgsearch plugin still
|
||
had an abandoned member of class cSchedulesLock, which, as a side effect, caused an
|
||
invalid lock sequence to be flagged (reported by Johann Friedrichs). In order to
|
||
have the compiler report such things, these macros have been changed.
|
||
- Introduced the new macro DISABLE_TEMPLATES_COLLIDING_WITH_STL, which can be defined
|
||
before including tools.h in case some plugin needs to use the STL and gets error
|
||
messages regarding one of the template functions defined in tools.h.
|
||
|
||
2017-06-30: Version 2.3.8
|
||
|
||
- Updated links in the INSTALL file (thanks to Chris Mayo).
|
||
- Fixed detecting whether a CAM replies to queries, which didn't work on some systems
|
||
since the implementation of RI_HOST_CONTROL (reported by Daniel Scheller).
|
||
- Added some missing locks when calling functions from cStatus or cSkin*, and added
|
||
some text to status.h and skins.h, explaining the locking situation when such
|
||
functions are called.
|
||
- Fixed a possible crash in cStateLockLog.
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Now skipping a leading '/' in AddDirectory(), to avoid double slashes (reported by
|
||
Chris Mayo).
|
||
- Fixed drawing very long menu titles in the LCARS skin (reported by Matthias Senzel).
|
||
- Timers are now linked to EPG events even if they are inactive. By default Events that
|
||
are linked to inactive timers are marked with 'I' and 'i', depending on whether the
|
||
timer would record the entire Event or only part of it.
|
||
The function cSkinDisplayMenu::SetItemEvent() now has an additional parameter named
|
||
TimerActive, which indicates whether the timer that would record this event (if any)
|
||
is active. A plugin may react on this when displaying a menu line for an event.
|
||
The old version of cSkinDisplayMenu::SetItemEvent() (without the TimerActive parameter)
|
||
is still there for backwards compatibility. It may be removed in a future version,
|
||
so plugin authors should switch to the new one.
|
||
- Now using readdir() instead of readdir_r(), if GLIBC version 2.24 or newer is used
|
||
(suggested by Frank Neumann).
|
||
- Added a note to the log, indicating that no further invalid lock sequences will be
|
||
reported until VDR is restarted.
|
||
- Whenever a change is made to the recordings in the video directory, the SVDRP command
|
||
UPDR is now sent to all peer VDRs, so that they will update their recordings list.
|
||
This is especially useful if one VDR mounts the video directory of an other one into
|
||
a subdirectory.
|
||
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
|
||
|
||
2018-03-18: Version 2.3.9
|
||
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed a possible crash when stopping VDR (thanks to Matthias Senzel for reporting and
|
||
helping to debug this one).
|
||
- Fixed handling VPS events outside the LingerLimit, which could cause recordings to
|
||
stop prematurely (thanks to Johann Friedrichs).
|
||
- Fixed an invalid lock sequence when trying to remove a deleted recording in case
|
||
of low disk space.
|
||
- Now making sure that AssertFreeDiskSpace() is called with the maximum timer
|
||
priority in case there are several timers recording with different priorities.
|
||
- The MTD mapper now avoids immediately reusing unique PIDs when switching channels,
|
||
to prevent possible problems with old data in buffers (thanks to Onur Sent<6E>rk).
|
||
- The function cDevice::GetVideoSystem() (which has been deprecated since version 2.1.6)
|
||
has been finally removed.
|
||
- The macros used to control deprecated code or functions have been changed to hold
|
||
numeric values (0 and 1), so that they can be controlled at compile time, without
|
||
having to edit the actual source code (suggested by Jasmin Jessich).
|
||
- The default for DEPRECATED_VDR_CHARSET_OVERRIDE has been set to 0, which means VDR
|
||
no longer reacts on the environment variable VDR_CHARSET_OVERRIDE. You can add
|
||
'DEPRECATED_VDR_CHARSET_OVERRIDE=1' when compiling in order to restore this
|
||
functionality. However, it is recommended to use the command line option --chartab
|
||
instead.
|
||
- The timeout for the channel display is now reset whenever the channel or EPG data
|
||
changes.
|
||
- OSD menus now try to keep the offset of the list cursor at a constant position on
|
||
the screen, even if the list is modified while being displayed.
|
||
- The LCARS skin's main menu now reacts to changes of the current channel's name.
|
||
- If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the
|
||
Red button to edit the timer, local timers are now preferred over remote timers
|
||
in case there is more than one timer that will record that event.
|
||
- Switching the primary device is no longer done via osSwitchDvb (which has been
|
||
removed), but rather by the main program loop reacting to changes in Setup.PrimaryDVB.
|
||
- The new SVDRP commands 'LSTD' and 'PRIM' can be used to list all available devices
|
||
and to switch the primary device (thanks to Thomas Reufer).
|
||
- Added some comments regarding font height (thanks to Thomas Reufer).
|
||
- Fixed handling timers during the change from DST to winter time (thanks to Johann
|
||
Friedrichs).
|
||
- Added missing checks of 'player' in member functions of cControl, and setting
|
||
cControl::player to NULL in cDvbPlayerControl::Stop() to avoid a possible crash
|
||
with plugins that retrieve player information after a replay has been stopped, but
|
||
before the replay control has been destroyed (thanks to Johann Friedrich).
|
||
- Now calling Hide() and cStatus::MsgReplaying(..., false) from cReplayControl::Stop(),
|
||
to inform plugins about an ending replay session before the replay control gets
|
||
destroyed.
|
||
- Fixed a possible crash when moving a recording between different volumes (reported by
|
||
Matthias Senzel).
|
||
- Fixed positioning the cursor in the Recordings menu when moving a recording between
|
||
different volumes.
|
||
- Added a note to PLUGINS.html about writing log messages in English.
|
||
- Fixed a deadlock when moving a folder containing several recordings between
|
||
different volumes (reported by Matthias Senzel).
|
||
- Fixed positioning to the current item when changing the sort mode in the Recordings
|
||
menu, in case there is a LastReplayed recording.
|
||
- The CAM menu is now automatically closed when the current channel is switched
|
||
(suggested by Dietmar Spingler).
|
||
- Fixed a lengthy write lock on the Recordings list in case of moving a folder with
|
||
more than one recording (thanks to Matthias Senzel).
|
||
- If TS packets are not accepted by the output device in Transfer Mode, this is now
|
||
reported only once per minute in the log file.
|
||
- The new setup option "OSD/Sorting direction for recordings" can be used to switch
|
||
the sequence in which recordings are presented in the "Recordings" menu between
|
||
ascending (oldest first) and descendeng (newest first) (thanks to Matthias Senzel).
|
||
- When moving recordings between volumes, the "Recordings" menu now displays those items
|
||
that have not yet been moved completely as non-selectable. This avoids situations
|
||
where trying to play such a recording might fail.
|
||
- Fixed canceling moving a folder with several recordings between volumes.
|
||
- When moving a recording to a different folder, the cursor is no longer placed on the
|
||
new location of the recording, but rather stays in the original folder (suggested by
|
||
Matthias Senzel). If the original folder got empty by moving away the last recording
|
||
it contained, the cursor is moved up until a non empty folder is found.
|
||
- Changed the log message ""ERROR: copying directory '%s' to '%s' ended prematurely" from
|
||
"error" to "info", because any actual error would have already been reported before this
|
||
(suggested by Matthias Senzel).
|
||
- When selecting a folder for a recording or timer, it is now possible to open a folder
|
||
even if it doesn't contain any subfolders (suggested by Matthias Senzel).
|
||
- Fixed a possible deadlock when detaching a receiver from a device.
|
||
- Moved any locking from cutter.c into recording.c, to avoid a problem with locking
|
||
the Recordings list (reported by Matthias Senzel).
|
||
- Now using the 'example' macro in vdr.5 (thanks to Chris Mayo).
|
||
- Now unlocking the Recordings list before displaying an error message in
|
||
cMenuPathEdit::ApplyChanges() and cReplayControl::Stop() (reported by Matthias Senzel).
|
||
- Fixed a possible deadlock when quickly zapping through encrypted channels (reported
|
||
by J<>rg Wendel).
|
||
- The new function cStatus::MarksModified() can be implemented by plugins to get
|
||
informed about any modifications to the editing marks of the currently played
|
||
recording (based on a patch from J<>rg Wendel).
|
||
- Fixed handling editing marks in the replay progress display, in case the marks are
|
||
deleted via the Info/Edit menu of the currently played recording (the progress
|
||
display still displayed them).
|
||
- Limited some CAM related log messages to the actual master CAM, if any.
|
||
- The Perl script 'peerdemo' shows how one can find all the VDRs in the local network
|
||
using the peer connection mechanism.
|
||
- Added the UPDATE-2.4.0 file.
|
||
- Making sure cSVDRPClient::Process() reads the entire reply once it started reading,
|
||
even if no Response parameter is given.
|
||
- Replaced the warning regarding the open SVDRP port in the INSTALL file with a remark
|
||
about using svdrphosts.conf to completely disable SVDRP access.
|
||
- Added a note about the fixed UDP port for SVDRP discovery to vdr.1.
|
||
- Fixed updating the Timers menu after turning a local timer on/off with the Red
|
||
button.
|
||
- Fixed keeping the cursor position in the Recordings menu in case a timer starts
|
||
recording while the menu is open.
|
||
- When a timer is newly created in the Timers menu, it now immediately appears at the
|
||
correct position in the list, rather than first being added at the end and then
|
||
jumping to the proper offset.
|
||
- Fixed getting the info of a newly edited recording (reported by Matthias Senzel).
|
||
- Improved calculating signal strength and quality (thanks to Helmut Binder).
|
||
- While a timer is recording, the file '.timer' in the recording directory now contains
|
||
the full id of the timer that is currently recording into this directory. This is used
|
||
to determine whether a timer is still recording on a remote VDR when deleting a recording
|
||
from the Recordings menu.
|
||
- Fixed handling SVDRP peering for more than one instance of VDR on the same machine, and
|
||
improved logging and debug output.
|
||
- Fixed case inconsistency with SVDRPDefaultHost in config.c.
|
||
- Added a section about the '.sort' file to vdr.5.
|
||
- Initiating the client side of a peer-to-peer SVDRP connection is now done with the new
|
||
SVDRP command CONN instead of using the UDP port with the server's address.
|
||
This change requires that all VDRs that shall take part in a peer-to-peer network need
|
||
to be updated to this version.
|
||
- Moved handling remote timers into cSVDRPClientHandler::ProcessConnections().
|
||
- Combined Start/StopSVDRPServer/ClientHandler() into Start/StopSVDRPHandler().
|
||
- Updated the Polish OSD texts (thanks to Tomasz Maciej Nowak).
|
||
- When remote timers are fetched from a peer VDR, we no longer blindly delete and re-add
|
||
them, but rather compare them and make only the minimum necessary changes.
|
||
- Fixed the CompareInts() function.
|
||
- Disabled the use of posix_fadvise() when reading (i.e. replaying), since it caused
|
||
stuttering replay in fast forward and fast rewind mode in case the video directory
|
||
is mounted via NFS. You can re-enable it by setting the macro USE_FADVISE_READ to 1
|
||
in tools.c.
|
||
- Modified cStateLock's SetExplicitModify() and IncState() (changed to SetModified()) to
|
||
allow for the introduction of syncing a separate cStateKey to a cStateLock.
|
||
- Assigning events to timers no longer triggers sending a POLL to all peer VDRs.
|
||
- When making modifications to remote timers, the local VDR no longer sends a POLL to
|
||
all remote VDRs.
|
||
- Fixed removing a cStateKey from a cStateLock (setting StateKey.stateLock = NULL was
|
||
done too late, after the lock had already been released).
|
||
- Now writing the info file before attaching the recorder to the device, to make sure it
|
||
is present when the recorder needs to update the fps value.
|
||
- Making sure the Schedules menu has a proper title, even if it is empty.
|
||
- Removed sending the SVDRP command UPDR to peer VDRs whenever a change is made to the
|
||
recordings in the video directory (which was introduced in version 2.3.8), because it
|
||
triggered re-reading the video directory too fast.
|
||
- Improved handling VPS timers to better react to EPG changes during an ongoing recording.
|
||
- Commented out the logging in cMarks::Align(), to avoid log entries in case of editing
|
||
marks that are not generated by VDR itself, and thus may be a little off (suggested by
|
||
J<>rg Wendel). You can activate this line again for debugging if necessary.
|
||
- Made the input buffer in cSVDRPClient dynamic.
|
||
- Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and
|
||
T2DeliverySystemDescriptor that were overwritten when parsing the
|
||
SatelliteDeliverySystemDescriptor or TerrestrialDeliverySystemDescriptor, respectively.
|
||
- Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting
|
||
the user.
|
||
|
||
2018-04-15: Version 2.4.0
|
||
|
||
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
|
||
- Fixed processing SVDRP client responses in case the caller doesn't want the actual
|
||
response strings (reported by Johann Friedrichs).
|
||
- Fixed (not) saving the 'cam.data' file in case VDR stops early during startup due to
|
||
some error.
|
||
- Fixed some warnings from g++ 7.2.0 regarding fixed buffer sizes in cMenuEditTimeItem::Set()
|
||
and cCountdown::Update() (reported by J<>rg Wendel).
|
||
- Fixed a possible discrepancy of the primary device number in the LSTD and PRIM
|
||
commands, by setting Setup.PrimaryDVB in cDevice::SetPrimaryDevice() (reported by
|
||
J<>rgen Schneider).
|
||
- Fixed setting the initial offset of the cursor in a list menu (reported by Matthias
|
||
Senzel).
|
||
- The EIT filter no longer parses data from "other TS", to avoid problems with
|
||
broadcasters who transmit faulty EIT data.
|
||
- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
|
||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||
- Fixed sluggish setting of editing marks and a jumping progress display with very
|
||
short recordings (reported by Oliver Endriss).
|
||
- Fixed updating the Schedule menu after editing a timer.
|
||
- Fixed scaling bitmaps with very small factors (reported by Rolf Ahrenberg).
|
||
- Added a missing initialization of osdState in cDisplayChannel::cDisplayChannel(eKeys
|
||
FirstKey).
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Updated the Hungarian OSD texts (thanks to Istv<74>n F<>ley).
|
||
- Updated the French OSD texts (thanks to Bernard Jaulin).
|
||
- Fixed a high CPU load during replay with active progress display (reported by Matthias
|
||
Senzel).
|
||
- Official release.
|
||
|
||
2019-06-17: Version 2.4.1
|
||
|
||
- Fixed handling the tfRecording flag in the SVDRP commands MODT and UPDT (reported
|
||
by Johann Friedrichs).
|
||
- Fixed a possible invalid locking sequence in case a remote timer handling error message
|
||
is displayed on the OSD and the skin tries to lock the Recordings or DeletedRecordings
|
||
list in its Flush() function (for instance by calling cVideoDiskUsage::HasChanged()).
|
||
To do this, the call to Skins.Message() in menu.c's HandleRemoteModifications() has
|
||
been changed to Skins.QueueMessage(), and cSkins::ProcessQueuedMessages() is now called
|
||
unconditionally in the main loop, and checks whether the current cSkinDisplay object
|
||
(if any) implements SetMessage().
|
||
- Fixed locking the Channels list in cDisplayChannel, where the lock was still held
|
||
when Flush() was called (reported by Matthias Senzel and Uwe Scheffler).
|
||
- Fixed shutdown after user inactivity in case a plugin is keeping the OSD open
|
||
(reported by Ulrich Eckhardt).
|
||
- Fixed switching through encrypted channels with the Up/Down keys (thanks to Helmut
|
||
Binder).
|
||
- Now deactivating MTD support if a non MCD capable CAM is inserted after removing
|
||
a previously used CAM that is MCD capable (thanks to Helmut Binder).
|
||
- Added support for DVB devices with more than one frontend that all use the same
|
||
dvr and demux. Note that in order for this to work, you must not set symbolic
|
||
links like "demux1 -> demux0" and "dvr1 -> dvr0", as is mentioned in some user
|
||
manuals of multi frontend DVB cards.
|
||
- Reverted the change "The EIT filter no longer parses data from "other TS"...". It led to
|
||
missing EPG data on channels from Canal Digital Norway (reported by Stian B. Barmen).
|
||
- Fixed accessing the actual frontend on multi frontend devices (thanks to Helmut Binder).
|
||
- Fixed opening the UDP port in peerdemo (thanks to Robert Hannebauer).
|
||
- Fixed handling PATs that contain no PMTs.
|
||
- Fixed processing the last entry in the scan list of the EIT scanner (thanks to
|
||
Helmut Binder).
|
||
- Fixed processing transponder data in the NIT (thanks to Helmut Binder).
|
||
- Fixed triggering the SDT filter when parsing the NIT (thanks to Helmut Binder).
|
||
- Added support for EAC3 audio from other sources (thanks to J<>rgen Schneider).
|
||
- No longer logging tuning timeouts for transponders that are announced in the NIT but
|
||
are not currently broadcasting.
|
||
- Fixed processing SI::T2DeliverySystemDescriptor when typecasting it over an
|
||
SI::ExtensionDescriptor (reported by Helmut Binder).
|
||
- Fixed sorting recordings alphabetically.
|
||
- Fixed dropping capabilities in case cap_sys_time is not available.
|
||
- Fixed updating the cursor position when switching channels with the Channel+/- keys
|
||
while the Channels menu is open.
|
||
- Fixed handling shared CA pids (thanks to Onur Sent<6E>rk).
|
||
- Now touching the .update file in the video directory after removing deleted
|
||
recordings, so that other VDRs that use the same video directory will update their
|
||
list of (deleted) recordings and thus won't display too much empty disk space.
|
||
- Fixed the install target in case of multiple jobs (thanks to Chris Mayo).
|
||
- Fixed mapping SIDs in MTD (thanks to Helmut Binder).
|
||
- Fixed updating the checksum in the CA table after mapping EMM PIDs for MTD (thanks to
|
||
Helmut Binder).
|
||
- Fixed a compiler warning in ExchangeChars() (thanks to Helmut Binder).
|
||
- Fixed a compiler warning and a possible buffer overflow in cCiMMI::SendAnswer().
|
||
- Fixed a possible invalid lock sequence if the main menu is open and the user
|
||
switches to a channel that is currently not available, using the Channel+/- keys.
|
||
- Fixed handling remote timers in case the response to LSTT is '550 No timers defined'.
|
||
- Fixed a compiler warning in cIndexFile::ConvertToPes() and added __attribute__((packed))
|
||
to tIndexPes and tIndexTs (suggested by Helmut Binder).
|
||
- Fixed handling repeat function for keyboards.
|
||
- Added a workaround for broadcasters who set an event to status "not running" where
|
||
this is inappropriate; implicitly setting events to "not running" is now also logged.
|
||
- Fixed asserting free disk space in case there is no local timer currently recording.
|
||
- The default maximum size of a cPixmap has been raised to the maximum possible value.
|
||
- Increased PLAYERBUFSIZE to (MAXFRAMESIZE * 5) to avoid stuttering replay under heavy
|
||
system load, and to better document that this buffer size is related to the maximum
|
||
frame size.
|
||
- Fixed inconsistent behavior in case only certain devices are used (selected by the '-D'
|
||
option).
|
||
- Fixed a wrong variable name in cFileName::cFileName().
|
||
- If cSkins::Message() is called from a background thread and Type is not mtStatus,
|
||
the call is now automatically forwarded to QueueMessage().
|
||
- Fixed handling the S2SatelliteDeliverySystemDescriptor for transponders broadcasting
|
||
in "backwards compatibility mode" according to ETSI EN 300 468 (thanks to Onur Sent<6E>rk).
|
||
|
||
2020-05-18: Version 2.4.2
|
||
|
||
- Fixed moving channels between number groups in SVDRP's MOVC command and the Channels
|
||
menu, in case a channel is moved to a higher number and into a numbered group
|
||
(reported by Manuel Reimer).
|
||
- Now retuning if the received transponder's SDT doesn't contain the expected values
|
||
for NID and TID (thanks to Uwe Scheffler for reporting a problem with failed tuning
|
||
in SCR systems, and Helmut Binder for helping with the implementation).
|
||
- Fixed compatibility with current versions of glibc (thanks to Manuel Reimer).
|
||
- The SVDRP command DELC now also accepts a channel id (suggested by Manuel Reimer).
|
||
- Fixed dropping capabilities in case cap_sys_time is not available.
|
||
- Added the language code for Bulgarian (thanks to Helmut Binder).
|
||
- Fixed handling multi part ExtendedEventDescriptors where only the first part
|
||
contains information about the character table (based on a patch from Helmut Binder).
|
||
- When setting the system character table, it is no longer checked against the known
|
||
entries that are hard coded in libsi/si.c, but rather given to iconv_open() and the
|
||
result of that call is used to check whether the given name is valid.
|
||
- Checking whether the system character table is "single byte" is now done by checking
|
||
the result of a sample call to iconv().
|
||
- Setting the override character table now checks and reports whether the given value
|
||
is valid (suggested by Helmut Binder).
|
||
- The isSingleByte parameter in the call to getCharacterTable() is deprecated and only
|
||
present for backwards compatibility.
|
||
- Fixed a possible crash in case replay is started and stopped in rapid sequence, by
|
||
adding missing locking to cControl::Control(). The caller of this function must now
|
||
provide a cMutexLock which stays alive as long as the result of this call is used.
|
||
The old version of this function is still there for backwards compatibility with
|
||
plugins, because this problem appears to occur only under very rare circumstances.
|
||
Authors of plugins that use this function should switch to the new version, because
|
||
the old one is deprecated and will be removed in a future version.
|
||
The version numbers (both VDRVERSNUM and APIVERSNUM) have been bumped to 2.4.2, so
|
||
that plugins can detect the presence of the new cControl::Control().
|
||
|
||
2020-06-27: Version 2.4.3
|
||
|
||
- Added a missing '-D' to the 'plugins' target of the Makefile (thanks to Johann
|
||
Friedrichs).
|
||
- Fixed the size of cChannel::dtypes[] (thanks to Winfried K<>hler).
|
||
The version numbers (both VDRVERSNUM and APIVERSNUM) have been bumped to 2.4.3 to
|
||
indicate this change.
|
||
- Added a device hook for detecting whether a device provides EIT data (thanks to
|
||
Winfried K<>hler).
|
||
- Fixed memory handling in cString::Append() (reported by Stefan Herdler).
|
||
- Revised 'Fixed a possible deadlock when detaching a receiver from a device' from
|
||
version 2.3.9, which sometimes caused a black screen when switching channels
|
||
(thanks to Stefan Verse).
|
||
- Added failsafe defaults for 'make LCLBLD=1' to the Makefile (thanks to Stefan
|
||
Herdler).
|
||
- Added codes for more languages and special audio tracks (thanks to Helmut Binder).
|
||
- Added cMtdCamSlot::TsPostProcess() (thanks to Helmut Binder).
|
||
- Added cMtdHandler::StopDecrypting() (thanks to Helmut Binder).
|
||
- Added support for detecting new channels broadcast in HEVC (thanks to Helmut Binder).
|
||
- Added support for detecting 'advanced codec digital radio sound service' (thanks to
|
||
Helmut Binder).
|
||
- Added handling shared PMT pids and multiple PMT sections (thanks to Helmut Binder).
|
||
- Changed the country code in the generated ParentalRatingDescriptor from 'DEU' to
|
||
'902' to make it valid for all countries (thanks to Helmut Binder).
|
||
- Added optional verbose output to the libsi Makefile (thanks to Tobias Grimm).
|
||
- Made the call to pkg_config configurable via the PKG_CONFIG macro, which is necessary
|
||
for cross-building VDR (thanks to Tobias Grimm). Plugin authors may want to modify
|
||
their Makefiles accordingly by adding the line 'PKG_CONFIG ?= pkg-config' and
|
||
replacing every occurrence of 'pkg-config' with '$(PKG_CONFIG)', as can be seen in
|
||
the Makefiles of the plugins that come with the VDR source.
|
||
- Fixed a typo in svdrp.c (thanks to Tobias Grimm).
|
||
- Added support for HEVC-video and AC-4-audio (thanks to Christoph Haubrich).
|
||
- Added a comment about the semantics of cTimeMs::Set().
|
||
- Adjusted device selection in GetDeviceForTransponder() to that in GetDevice() (thanks
|
||
to Helmut Binder).
|
||
- Now adding CPPFLAGS to CXXFLAGS to allow extra preprocessor flags to be given when
|
||
doing make (suggested by Tobisa Grimm).
|
||
- Added CRC check of the CAT in cCaPidReceiver::Receive() (thanks to Helmut Binder).
|
||
- Fixed the 'else if' branch in cDevice::GetDeviceForTransponder(), which hasn't
|
||
been active since version 1.7.29 (reported by Helmut Binder). The original purpose of
|
||
this branch was to use a device that is currently not recording for switching to the
|
||
transponder of an upcoming VPS timer. However, this caused problems with more than
|
||
two bonded devices, which was "fixed" in version 1.7.29. Apparently this fix merely
|
||
rendered the whole code branch inactive. Now this branch is only executed for devices
|
||
that are not bonded.
|
||
|
||
2020-08-02: Version 2.4.4
|
||
|
||
- Improved deleting plugins in case the plugin uses its own memory management (thanks
|
||
to Winfried K<>hler). Plugins that have been compiled with previous versions of VDR
|
||
do not need to be recompiled, they will silently be handled as before.
|
||
- Now setting currentDisplayChannel = NULL before calling cStatus::MsgOsdClear() in
|
||
~cDisplayChannel(), to avoid possible problems in case a plugin calls IsOpen()
|
||
(reported by Thomas Reufer).
|
||
- Fixed handling inactive shared CA pids (thanks to Helmut Binder).
|
||
- Implemented handling multi packet CATs with MTD (thanks to Helmut Binder).
|
||
- Fixed a possible 'invalid lock sequence' when switching to an unavailable channel
|
||
with the main menu open.
|
||
- Official release.
|
||
|
||
2020-10-16: Version 2.4.5
|
||
|
||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||
- Fixed handling newline characters in ci.c's CopyString() (reported by Winfried K<>hler).
|
||
- Fixed checking the return value of the Open() call in cFileName::SetOffset() (reported
|
||
by Winfried K<>hler).
|
||
- Fixed a possible invalid lock sequence in cMenuTimers::OnOff().
|
||
- Fixed several typos (reported by Jens Schleusener).
|
||
- Implemented anti-aliasing for cPixmap::DrawSlope() and cPixmap::DrawEllipse() (thanks
|
||
to Christoph Haubrich).
|
||
The version numbers (both VDRVERSNUM and APIVERSNUM) have been bumped to 2.4.5 to
|
||
indicate this change.
|
||
- Fixed alignment of semi-circles in case of odd sizes.
|
||
- Increased the size of the TS buffer to 16MB, to have more reserve when recording
|
||
several HD programmes.
|
||
- Added checking the symbol rate to cDvbTuner::IsTunedTo(), which apparently got lost
|
||
in version 1.7.13 (thanks to Helmut Binder).
|
||
- Now checking for an empty command in cDvbTuner::GetSignalStats() to avoid a possible
|
||
error message (thanks to Helmut Binder).
|
||
- Now initializing the status variable in cDvbTuner::GetFrontendStatus() and
|
||
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
||
(thanks to Helmut Binder).
|
||
|
||
2020-12-22: Version 2.4.6
|
||
|
||
- Fixed multiple recording entries in case a recording is started during the initial
|
||
reading of the video directory (reported by Claus Muus).
|
||
- Fixed an unnecessary double call to Display() in cMenuRecording::RefreshRecording()
|
||
(reported by Christoph Haubrich).
|
||
- Fixed a crash in case an error occurs when setting a remote timer.
|
||
- Fixed allocating memory for cImage (reported by Christoph Haubrich).
|
||
- Fixed parsing the '-l' command line option (reported by Harald Milz).
|
||
- Fixed possible compilation errors with libjpeg (thanks to Bernd Kuhls).
|
||
- Fixed "read incomplete section" errors (thanks to Helmut Binder).
|
||
- Fixed generating the HashId in cEIT::cEIT() (thanks to Helmut Binder).
|
||
- Added initialization of cDvbFrontend::frontendInfo (thanks to Winfried K<>hler).
|
||
- Fixed a bug in handling shared PMTs, where after the first pass not all SIDs of a
|
||
PMT pid were checked any more (thanks to Helmut Binder).
|
||
- Fixed PMT handling in case locking the Channels list times out (reported by Helmut
|
||
Binder).
|
||
- Avoiding a lengthy lock on the Channels list when starting a recording (thanks to
|
||
Helmut Binder).
|
||
- Fixed error handling when loading a plugin (reported by Markus Ehrnsperger).
|
||
- Improved handling missing VDRPluginDestroyer() (thanks to Winfried K<>hler).
|
||
- Fixed initializing tmpbuf in ExtendedEventDescriptors::getText() (thanks to Helmut
|
||
Binder).
|
||
- Fixed a compiler warning (thanks to Winfried K<>hler).
|
||
- Fixed convertCharacterTable() in case iconv_open() fails (thanks to Helmut Binder).
|
||
- Official release.
|
||
|
||
2020-12-26: Version 2.5.1
|
||
|
||
- Implemented "Pattern Timers" (see MANUAL, vdr.1 and vdr.5 for details).
|
||
- Events in the past are no longer marked as having a timer in the Schedules
|
||
menu.
|
||
|
||
2021-01-02: Version 2.4.7
|
||
|
||
- Fixed strreplace() to handle NULL strings (reported by J<>rgen Schneider).
|
||
- Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the
|
||
Makefile now makes sure it is set before calling doxygen.
|
||
- Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is
|
||
given (reported by Manuel Reimer).
|
||
- Fixed handling $(PKG_CONFIG) in newplugin (thanks to Winfried K<>hler).
|
||
|
||
2021-04-06: Version 2.5.2
|
||
|
||
- Fixed strreplace() to handle NULL strings (reported by J<>rgen Schneider).
|
||
- Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the
|
||
Makefile now makes sure it is set before calling doxygen.
|
||
- Using strgetlast() in more places.
|
||
- Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is
|
||
given (reported by Manuel Reimer).
|
||
- Fixed handling $(PKG_CONFIG) in newplugin (thanks to Winfried K<>hler).
|
||
- Fixed initializing the cChannel::schedule pointer after reading EPG data with PUTE
|
||
(reported by Manuel Reimer).
|
||
- Fixed VPS handling when spawning a pattern timer, in case Setup.UseVps is false
|
||
(reported by J<>rgen Schneider).
|
||
- Increased the number of possible modulation systems in cDevice::GetDevice()
|
||
(reported by Ulf Gr<47>ne).
|
||
- Now explicitly triggering respawning of pattern timers.
|
||
- If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the
|
||
Red button to edit the timer, spawned timers are now preferred over pattern timers
|
||
in case there is more than one timer that will match that event.
|
||
- Made the functions cRecordingInfo::SetData() and cRecordingInfo::SetAux() public
|
||
(thanks to Peter Bieringer).
|
||
- Fixed setting the 'title' of a recording's info to the recording's name if there
|
||
is no info file (the change in version 1.7.28 broke the fallback to the old 'summary.vdr').
|
||
- Now making sure a spawned timer only fully overlaps the given event (reported by
|
||
J<>rgen Schneider).
|
||
- Added some missing user command calls for copying, renaming and moving recordings
|
||
(thanks to Peter Bieringer).
|
||
- Improved cSectionSyncer to make sure that no sections are missed, and to allow
|
||
handling partially used segments (as in the EIT) and processing sections in random
|
||
order. Segment syncing is now done with the two member functions Check() and
|
||
Processed(). The old functions Sync() and Repeat() are deprecated and may be
|
||
removed in a future version. See the comments in filter.h for a description on
|
||
how to use these new function.
|
||
- When checking whether a particular recording has already been made by a pattern
|
||
timer, the characters ' ' (blank), ':' and '-' are now ignored, making
|
||
"TITLE - EPISODE" and "TITLE: EPISODE" the same.
|
||
- Decreased the scrambling timeout for CAMs known to decrypt a certain channel, so
|
||
that it won't collide with MAXBROKENTIMEOUT in recorder.c.
|
||
- Fixed scaling subtitles with anti-aliasing (thanks to Peter Bieringer).
|
||
- Improved handling EPG data from the EIT tables:
|
||
+ Table 0x4F is now completely ignored.
|
||
+ Once a schedule has seen events from 0x5X, tables 0x6X are ignored for that
|
||
schedule.
|
||
+ When looking up an event in its schedule, the start time is used for tables 0x6X, and the
|
||
event id for tables 0x4E and 0x5X.
|
||
+ When hashing events by event id or start time, existing older entries in the hash
|
||
tables are now deleted before entering the new ones.
|
||
+ The function cSchedule::GetEvent() is now deprecated and may be removed in a future
|
||
version. Use GetEventById() and GetEventByTime() instead.
|
||
+ On channels that use proper event ids a change of the start time no longer
|
||
causes a new event to be created, but rather modifies the existing one. This
|
||
avoids possible interruptions in VPS recordings in case the event's start time
|
||
is changed while the recording is already going on.
|
||
- The margins for timer recordings are now always limited to the duration of the
|
||
previous and next event.
|
||
- Spawned timers that don't use VPS now automatically adjust their start/stop times
|
||
to changes in the respective event's times.
|
||
- Fixed handling the timer counter in cSchedule::DelEvent().
|
||
- Fixed MakePatternFileName() in case the event doesn't yet have a short text (reported
|
||
by J<>rgen Schneider).
|
||
- No longer switching devices for pattern timers (thanks to Helmut Binder).
|
||
- cTimer::TriggerRespawn() now only acts on local timers.
|