Age | Commit message (Collapse) | Author |
|
- Updated 'sources.conf' (thanks to Philip Prindeville).
- Now using daemon() instead of fork() to run VDR in daemon mode (thanks to
Enrico Scholz).
- Fixed a possible endless loop in a menu with no selectable items if
Setup.MenuScrollWrap is true (thanks to Enrico Scholz).
- Making sure no item is displayed as "current" if Up, Down, Left or Right is
pressed in a menu with no selectable items.
- Added '__attribute__' to functions that use printf() like parameters (thanks
to Darren Salt).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns).
- Added more error messages and line numbers when reading EPG data and info.vdr
(thanks to Peter Bieringer).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported
by Marco Schlüßler).
- Fixed lock handling in CAM communication to avoid problems with multiple CAMs
per device or CAMs with more than one smart card.
- Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
- Updated the French OSD texts (thanks to Nicolas Huillard).
- Fixed the cFilter example in PLUGINS.html (reported by Patrick Fischer).
- The new class cUnbufferedFile is used for the recording files to avoid
trashing the file system cache (based on a patch by Ralf Müller).
|
|
- 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üß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.
|
|
- 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).
|
|
- 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ä).
- 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ä).
- 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ä).
- Fixed the default value for "Setup/EPG bugfix level" (thanks to Ville Skyttä 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).
|
|
- Added missing German OSD texts for 'Audio language'.
- The Setup/CICAM menu now only contains the devices that actually have a CI and
dynamically detects the number of slots a CI provides.
- Implemented cAudioRepacker for better handling of audio PES packets (thanks to
Reinhard Nissl).
- Modified handling of audio packets for radio channels in remux.c (thanks to
Reinhard Nissl).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Fixed the EPG scan, so that it doesn't use the primary device if that is
currently in Transfer-Mode from itself (thanks to Marcus Hilbrich for a bug
report that lead to this).
- Removed the TUNER_LOCK_TIMEOUT in cDevice::AttachReceiver() since it caused more
trouble than it fixed.
- Fixed detecting short channel names for "Kabel Deutschland", who uses a comma
as delimiter (thanks to Marco Schlüßler).
- Moved cMenuEditTimer and cMenuEvent to menu.h so that plugins can use it (suggested
by Thomas Günther).
- The new static function cString::sprintf() can be used to easily create a formatted
string.
- Plugins can now implement their own SVDRP commands (based on a patch from Hardy
Flor). See PLUGINS.html, section "SVDRP commands" for details. The SVDRP commands
of a plugin are accessed through the new SVDRP command PLUG.
See PLUGINS/src/svdrpdemo for an example of how to use this feature.
- The new SVDRP command PLAY can be used to start replaying a recording (thanks to
Hardy Flor).
- The new SVDRP command EDIT can be used to start the editing process of a recording
(based on the CUTR patch by Harald Milz).
|
|
- 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üß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.
|
|
- 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ö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).
|
|
- 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).
|
|
- 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üß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.
|
|
- 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üß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üßler).
- Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp()
is waiting (thanks to Marco Schlüß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).
|
|
- Now including the optional user defined Make.config from the 'libsi' Makefile
(thanks to Ville Skyttä).
- 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üßler).
- Now also considering the "EPG linger time" when saving the EPG data to file or
listing it via LSTE (thanks to Roman Krenický).
- 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üß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üß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üßler).
|
|
- 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üß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ý).
- Some fixes to avoid compiler warnings in gcc 4.0 (thanks to Ville Skyttä 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.
|
|
- 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üß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üß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üßler).
- Fixed the call to SetVideoFormat() in cDvbDevice::cDvbDevice() (parameter is _bool_).
- Added support for setting the video display mode (thanks to Marco Schlüß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.
|
|
- 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üß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üß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üß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üß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üß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üßler for reporting this one).
|
|
- 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üß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).
|
|
- 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üß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üß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üßler for pointing this out).
|
|
- 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 'ö' 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ßfeldt).
- Fixed a race condition in starting a thread (thanks to Reinhard Nissl for
reporting this one).
- Replaced non-threadsafe library functions with their threadsafe versions (thanks
to Rainer Zocholl for pointing this out).
- Other non-threadsafe functions have been replaced by threadsafe classes that hide
the actual buffering. In particular these are:
readdir() -> cReadDir
readline() -> cReadLine
- Several formerly non-threadsafe functions now have a return type of cString:
cChannel::ToText()
tChannelID::ToString()
cEvent::GetDateString()
cEvent::GetTimeString()
cEvent::GetEndTimeString()
cEvent::GetVpsString()
cMark::ToText()
cTimer::ToText()
cSource::ToString()
cTimer::PrintDay()
cTimer::PrintFirstDay()
PrefixVideoFileName()
IndexToHMSF()
ChannelString()
strescape()
AddDirectory()
itoa()
WeekDayName()
DayDateTime()
When using these functions in a 'const char *' context there is nothing special
to consider, except that you can no longer have a pointer to the return value,
as in
const char *date = DayDateTime();
Although this will compile without error message, the resulting 'date' will not
be valid after this line. Use this instead:
cString date = DayDateTime();
In a 'const void *' context (as in printf() etc.) the result needs to be
dereferenced with a '*', as in
printf("%s", *DayDateTime());
to make it a 'const char *'.
- Removed delay_ms(), using cCondWait::SleepMs() instead.
- Replaced time_ms() with a threadsafe and non-overflowing cTimeMs (thanks to Rainer
Zocholl for pointing out this problem).
- Added cDevice::mutexReceiver to avoid a race condition when attaching/detaching
receivers from different threads.
- The new remote control button "Audio" can be used to switch between different
audio tracks. The "Green" button in the "Main" menu has been changed from "Language"
to "Audio", since it now also controls switching between normal and Dolby Digital
audio tracks (see MANUAL for details).
- The description of the audio tracks is now taken from the "component descriptors"
that are broadcast in the EPG data. However (as no big surprise), not all channels
actually provide useful data here, so there are now some additional EPG bugfixes,
which can be activated by setting the "EPG bugfix level" to 3.
- The format of the 'epg.data' files has been extended by the new tag 'X', which
contains the stream components of an event (see man vdr(5) for details).
- The cStatus class now has the new member function SetAudioTrack(), which can be
used to get notified when the audio track has been switched, and the new member
function SetAudioChannel() which is called when the audio channel is changed.
- Skins need to implement the new cSkinDisplayTrack class to display the audio
track menu.
- The ST:TNG skin now displays the current audio track description (if any) at the
botton left side.
- The new setup option "DVB/Audio languages" can be used to control which audio
language shall be selected in case a channel broadcasts in different languages
(see MANUAL for details).
- The "Left" and "Right" keys in the "Audio" menu can be used to switch between
the left and right stereo channels in case there are different audio tracks
in these channels (see MANUAL for details).
- Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grö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üß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ørnar Nilsen for
their support in testing and fine tuning this version.
|
|
- 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üß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üßler).
|
|
- 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üß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üß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.
|
|
- 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üß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üß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).
|
|
- 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üß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ö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.
|
|
- 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ü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üß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üß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üß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üß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).
|
|
- 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üß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.
|
|
- Fixed a crash when switching the skin and having selected a non-default theme
that is not available for the newly selected skin (thanks to Sascha Volkenandt
for reporting this one).
- Fixed some issues with gcc 3.4 (thanks to Prakash K. Cheemplavam and Marcel
Wiesweg).
- Added a hint to PLUGINS.html about how to name a plugin that implements a skin.
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Single shot timers and events now show the day of week (adopted with some changes
from the "elchi" patch, orginally introduced by Oskar Signell). Plugins that use
cEvent::GetDateString() should note that this function now returns a longer
string, including the day of week. The new function const char *WeekDayName(time_t t)
can be called with a time_t value to get the day of week for that time.
- When processing XPM data, the color name "None" is now mapped to #00000000, which
is "fully transparent" (suggested by Sascha Volkenandt).
- Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting
this one and helping to test the fix).
- Fixed freezing picture when a recording starts on a system that always uses
'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one).
- Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg).
- Added a few missing initializations (thanks to Marcel Wiesweg).
- Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins.
It now also has a SetText() function that can be used to dynamically set the text
in an already existing cMenuText (both suggested by Stefan Huelswitt).
- Added play mode pmVideoOnly (thanks to Marcel Wiesweg).
- Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
(thanks to Oliver Endriss).
- No longer displaying unused color buttons in the "Classic VDR" skin (thanks to
Oliver Endriss for reporting this one).
- Added some missing cStatus::MsgOsdTextItem() calls (thanks to Oliver Endriss for
reporting this one).
|
|
- 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!).
|
|
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed some descriptor handling in 'libsi' (thanks to Stéphane Esté-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éphane Esté-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éphane Esté-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ß 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).
|
|
- Fixed reading the EPG preferred language parameter from 'setup.conf'.
- Fixed switching to a visible programme in case the current channel has neither
a video nor an audio PID.
- Fixed editing channels (SID now range checked) and creating new channels (NID,
TID and RID are now set to 0).
- Fixed transponder handling to make it work with satellites that provide two
transponders on the same frequency, with different polarization, like Hispasat
at S30.0W (thanks to Thomas Bergwinkl for pointing this out). See man vdr(5)
for details about the enhanced channel ID format.
- Since there appears to be no general solution for the UPT error yet, a recording
now initiates an "emergency exit" if the number of UPT errors during one
recording exceeds 10 (suggested by Gregoire Favre). Since the UPT error doesn't
happen on my system, this has not been explicitly tested.
The "preliminary fix" for the UPT error in VDR/dvbdevice.c has been disabled
by default, since it makes channel switching unpleasently slow. If you want
to have that workaround back, you can uncomment the line
//#define WAIT_FOR_LOCK_AFTER_TUNING 1
in VDR/dvbdevice.c.
- Adapted the 'sky' plugin to use the actual channel IDs, and to fetch EPG data
from www.bleb.org.
- Limited automatic retuning to devices that actually provide the transponder
(necessary for the 'sky' plugin).
- Fixed handling receivers in the 'sky' plugin, so that a recording on the same
channel won't interrupt an ongoing Transfer Mode.
- Added subtable ID and TSDT handling to 'libsi' (thanks to Marcel Wiesweg).
- Fixed some Russian OSD texts (thanks to Vyacheslav Dikonov).
- Added the 'running status' to the EPG events. This is necessary for implementing
the VPS function for recording.
- Removed the obsolete 'present' and 'following' handling from the EPG data.
- The EPG data is now always kept sorted chronologically in the internal data
structures. This also means that any EPG data retrieved through the SVRDP
command LSTE is guaranteed to be sorted by start time.
- Now using the 'running status' in the channel display, so that a programme
that has an end time that is before the current time, but is still running,
will still be shown in the display (provided the broadcasters handle the
'running status' flag correctly). This also applies to programmes that have
a start time that is in the future, but are already running.
- Implemented an "EPG linger time", which can be set to have older EPG information
still displayed in the "Schedule" menu (thanks to Jaakko Hyvä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éphane Esté-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).
|
|
- 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).
|
|
- 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).
|
|
- 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.
|
|
- 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).
|
|
- 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).
|
|
- Now explicitly handling exit value 0 and 2 in 'runvdr'.
- Added a missing 'w' to the allowed characters for Finnish and Swedish (thanks
to Lauri Tischler and Ragnar Sundblad).
- Added channels for DVB-T Hannover (Germany) to channels.cont.terr (thanks to
Peter Waechtler).
- Fixed a hangup in SVDRP when the client disappears without sending QUIT (thanks
to Robert Bartl for reporting this one). The problem was introduced in version
1.2.2 through the fix for an occasional "Broken pipe" error in SVDRP connections.
- Updated 'channels.conf.terr' for Berlin.
- Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
directly (thanks to Oliver Endriss). This also improves navigating through DVD
menus with the DVD plugin. If this causes problems with your particular system
(maybe because you are using the 'analogtv' plugin) you can reactivate the
previous behaviour by commenting out the line
#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
in VDR/dvbdevice.c.
Note that you need driver version 2003-08-23 or later for this to work!
- Fixed handling extra blanks in plugin command lines.
- Actually implemented the SVDRP command DELC.
- Now clearing the player device if there are too many poll timeouts in 'Transfer
Mode', which avoids buffer overflows and black screens in such cases.
|
|
- 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.
|
|
- 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).
|
|
- 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ä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ø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.
|
|
- Fixed OSD access in case none of the devices provides one (thanks to Axel
Gruber for reporting this one).
- Fixed editing channels ('timers.conf' was not written after a channel has
been modified, which could result in errors upon the next start of VDR).
- Fixed a crash when canceling a newly created timer (thanks to Thomas Schmidt
for reporting this one).
- Completed Hungarian language texts (thanks to Istvan Koenigsberger and Guido
Josten).
- Fixed device handling in the CICAM menu in case a VDR instance was started
with a specific device using the -D option (thanks to Gerald Raaf for reporting
ths one).
- Initializing the current channel to '1' to avoid a crash in creating a new
timer in case there is no device in the system that can actually receive any
channel (thanks to Malcolm Caldwell for reporting this one).
- Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
Ahrenberg).
|
|
- 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ätti).
- Officially released as version 1.2.0.
|
|
- Some corrections to the French OSD texts (thanks to Olivier Jacques).
- Fixed some missing commas in i18n.c (thanks to Dimitrios Dimitrakos for
reporting this problem).
- Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
Ahrenberg).
- Completed the Italian OSD texts (thanks to Antonio Ospite).
- Fixed breaking off replay in case the user hits "Play" or "Pause" too soon after
going into "Pause live video" mode (thanks to Karim Afifi for reporting ths one).
- Some corrections to the Catalanian OSD texts (thanks to Jordi Vilà).
- 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).
|
|
- 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).
|
|
- Removed a faulty parameter initialization in menu.c (thanks to Lauri Tischler for
reporting this one).
- Re-implemented the WaitForPut/WaitForGet stuff in cRingBuffer, since some plugins
actually need this. By default the buffer does not wait; if a plugin needs the
waiting functionality it can call the new SetTimeouts() function.
- Moved the call to cPlugin::Start() further up in vdr.c, to make sure it gets
called before trying to learn the keys (problem reported by Oliver Endriss).
- No longer starting the editing process if no marks have been set (thanks to
Matthias Raus for reporting this one).
- Added Catalanian language texts (thanks to Marc Rovira Vall and Ramon Roca).
Plugin authors may want to add the new entries to their I18N texts and contact
the translators to have their texts translated. Note that there are now 16
different OSD languages, so please make sure you have 16 versions for each of
your texts.
- Moved the detection of a broken video data stream from the cDevice into the
cRecorder to avoid problems with cReceivers that want to receive from PIDs
that are currently not transmitting (thanks to Marcel Wiesweg for reporting
this one).
- Fixed setting the locking pid after a timed wait (thanks to Andreas Schultz).
- Avoiding spurious section filter settings after a channel switch.
- Updated 'channels.conf.cable' (thanks to Stefan Hußfeldt).
- Fixed reading 'epg.data' for channels with non-zero RID (thanks to Oliver
Endriss for reporting this one).
- Fixed EPG bugfix statistics to avoid log entires for undefined channels (thanks
to Lars Bläser for reporting this one).
- No longer waiting inside cIndexFile::CatchUp() to avoid shortly blocking replay
at the end of a recording.
|
|
- Introduced the new function cPlugin::Initialize(), in order to be able to separate
the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
(suggested by Andreas Schultz). Plugin authors should please read the section
about "Getting started" in PLUGINS.html and adapt their code if applicable.
- Implemented the CableDeliverySystemDescriptor and TerrestrialDeliverySystemDescriptor
in libdtv (thanks to Sven Grothklags and Andreas Schultz).
- Fixed keeping live video active in case the primary device doesn't have an MPEG
decoder (thanks to Wolfgang Goeller for reporting this one).
- Implemented cDevice::ActualDevice(), which returns the actual receiving device in
case of 'Transfer Mode', or the primary device otherwise. This may be useful for
plugins that want to attach a cReceiver to the device where the current live video
is actually coming from.
- Added VDRVERSNUM to config.h, which can be used by the preprocessor to check the
actual VDR version (suggested by Stefan Huelswitt).
- Removed the WaitForPut/WaitForGet stuff from cRingBuffer, since it appears to
no longer be necessary due to the implementation of cNonBlockingFileReader in
dvbplayer.c. Also, the long timeout in WaitForPut caused problems with cReceivers
that use a ring buffer and didn't immediately return from their Receive() function
if the buffer runs full (thanks to Sascha Volkenandt for reporting this one).
- Fixed handling EPG data where the "extended event descriptor" comes before the
"short event" or a "time shifted event" (thanks to Jonan Santiago).
- Disabled the "Received stuffing section in EIT" log message.
- Updated 'channels.conf.terr' for Berlin (thanks to Juri Haberland).
- Avoiding short display of the "Main" menu when pressing the "Recordings" button
or the "Back" button during replay.
- Further increased the timeout until an index file is considerd no longer to be
written.
- Implemented separate PausePriority and PauseLifetime parameters for the recordings
created when pausing live video (suggested by Alfred Zastrow).
- Changed C++ style comments in libdtv into C style to avoid warnings in gcc 3.x
(thanks to Andreas Schultz).
|
|
- Fixed minimum lifespan of deleted recordings (thanks to Jaakko Hyvä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.
|
|
- 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.
|
|
- The CAM is now accessed only if the current channel actually has a non-zero Ca
value, and CAM access is completely suppressed during replay, which avoids
problems in case the CAM is attached to the primary DVB device.
- The "Left" and "Right" buttons now set the cursor to the first or last list item
even if the list consist only of a single page, like, for instance, the Main menu
(thanks to Oliver Endriss).
- Made the log message "OSD window width must be a multiple of 4..." a debug message
instead of an error message, so it can be avoided by using a log level less than 3.
- Updated Greek language texts (thanks to Dimitrios Dimitrakos).
- Fixed faulty behaviour of the "Mute" key in case the channel display is visible
(thanks to Florian Bartels for reporting this one and Sascha Volkenandt for
helping to fix it).
- Modified LOF handling to allow for C-band reception (thanks to Malcolm Caldwell).
- Added some missing cAudio handling calls (thanks to Werner Fink).
- Replaced the 'for' loops in StripAudioPackets() with memset() calls (thanks to
Werner Fink).
- Further increased the timeout until an index file is considerd no longer to be
written.
- Fixed a crash in case the index file can't be accessed any more during replay
(thanks to Stefan Huelswitt for reporting this one).
- Fixed displaying messages in the status line in case they exceed the OSD width
(thanks to Gerhard Steiner for reporting this one).
- Avoiding high CPU load in case the connection to LIRC gets lost (thanks to
Ludwig Nussel).
- Fixed handling repeat function with LIRC (thanks to Ludwig Nussel).
- Fixed handling min/max borders when entering integer values (thanks to Andy
Grobb for reporting this one).
- Implemented a "resume ID" which allows several users to each have their own
resume.vdr files (thanks to Martin Hammerschmid). This parameter can be set in
the "Setup/Replay" menu (see MANUAL for details).
- Now using 'libdtv' version 0.0.5 (thanks to Rolf Hakenes for the new version
and Stefan Huelswitt for adapting VDR to it).
- If no device with an MPEG decoder can be found at startup, the first device
is now used as primary device (just to have some device).
- Adjusted some Premiere channels in 'channels.conf' (thanks to Thomas Koch).
- Updated 'channels.conf.cable' (thanks to Stefan Huß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).
|
|
- 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.
|
|
- Fixed the 'channels.conf' entries for "Studio Universal" and "Disney Channel".
- Fixed handling channels in the "Channels" menu in case there are ':@nnn' group
separators without names (thanks to Guy Roussin for reporting this one).
- The SVDRP command CHAN now also accepts channel IDs.
- Increased the timeout until an index file is considerd no longer to be written
(sometimes in time shift with heavy system load the index file was closed too
early by the replay thread).
- Implemented "Link Layer" based CAM support, which hopefully will solve the
problems with CAMs we had in the past. To use this you need the driver version
2002-01-08 or higher (with the new firmware supporting the "Link Layer" protocol).
- Added an EPG bugfix that moves the Subtitle data to the Extended Description in
case the latter is empty and the Subtitle exceeds some useful length.
- Since several channels put very long strings into the Subtitle part of their
EPG data, that string is now limited in length when used in a recording's
file name.
|
|
- 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.
|
|
- Fixed some faulty default parameter initializations (thanks to Robert Schiele).
- Added further satellites to 'sources.conf' (thanks to Reinhard Walter Buchner
and Oliver Endriss).
- Updated Finnish OSD texts (thanks to Jaakko Hyvätti).
- Fixed a small glitch when switching channels (thanks to Dennis Noordsij for
reporting this one).
- Fixed handling multiple 'CaCaps' entries in 'setup.conf'.
- Group separators in 'channels.conf' may now be given like ':@201 My Channels',
where '@201' indicates the number to be given to the next channel. This can be
used to create 'gaps' in the channel numbering (see 'man 5 vdr'). BE CAREFUL
TO UPDATE YOUR 'timers.conf' ACCORDINGLY IF INSERTING THIS NEW FEATURE INTO YOUR
'channels.conf' FILE!
- Timers now internally have a pointer to their channel (this is necessary to
handle gaps in channel numbers, and in preparation for unique channel ids).
- Fixed slow reaction on SVDRP input (thanks to Guido Fiala for reporting this one).
- Added KI.KA to channels.conf.cable (thanks to Robert Schiele).
- Frequency values for cable and terrestrial channels in 'channels.conf' can
now be given either in MHz, kHz or Hz. The actual value given will be multiplied
by 1000 until it is larger than 1000000.
- Fixed skipping unavailable channels when zapping downwards.
- Fixed checking the Ca() status of a cDevice (thanks to Stefan Huelswitt).
- Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device
(thanks to Steffen Barszus and Stefan Huelswitt for reporting this one and
helping to fix it).
- Fixed channel switching in case of an active 'Transfer Mode' on the primary
device ('Transfer Mode' is now launched with priority '-1').
- Fixed a ternary expression in dvbspu.c.
- Fixed handling 'Transfer Mode' on single device systems when recording an
encrypted channel (thanks to Stefan Huelswitt).
- Fixed blocking replaying in case an encrypted channel is being recorded on
the primary device.
- Now the name of the remote control is displayed when learning the keys.
- Fixed learning remote control keys in case there is more than one remote
control (thanks to Oliver Endriss for reporting this one).
- Implemented additional dedicated keys for "Play", "Pause", "Stop", "Record",
"FastFwd", "FastRew", "Channel+" and "Channel-". If your remote control supports
any of these keys you can delete your 'remote.conf' file and restart VDR to
go through the key learning procedure again in order to assign these new keys.
See MANUAL for more information.
Authors of player plugins should update their ProcessKey() functions so that
the new player keys have the same functionality as the "Up", "Down", "Left",
"Right" and "Blue" keys, respectively. Note that the existing functionality
of these keys should by all means be retained, since VDR (and any plugins)
shall be fully usable with just the basic set of keys. These new keys are only
for additional comfort in case the remote control in use supports them.
- Implemented new keys to directly access the VDR main menu functions "Schedule",
"Channels", "Timers", "Recordings", "Setup" and "Commands". If your remote
control provides keys you want to assign these functions to, you can delete
your 'remote.cof' file and restart VDR to go through the key learning procedure
again in order to assign these new keys. See MANUAL for more information.
- The new configuration file 'keymacros.conf' can be used to assign macros to
the color buttons in normal viewing mode, as well as to up to 9 user defined
keys. See MANUAL and man vdr(5) for more information. The default 'keymacros.conf'
implements the functionality of the "color button patch".
- Fixed a crash when learning the keys of several remote controls and pressing
buttons of those that have already been learned (thanks to Oliver Endriss for
reporting this one).
|
|
- 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).
|