Age | Commit message (Collapse) | Author |
|
- Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was
revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now
requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto.
Note that the channels.conf file now supports additional parameters, so you may
want to make sure you have a backup of this file in case you need to go back to
the previous version of VDR!
- Fixed displaying transponder data when it is modified (thanks to Reinhard Nissl).
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
Nissl).
- Improved logging system time changes to avoid problems on slow systems under
heavy load (suggested by Helmut Auer).
- Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf
Ahrenberg).
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
Andreas Mair).
- Fixed setting the OSD level in the 'osddemo' example (thanks to Wolfgang Rohdewald).
- Increased the time between checking the CAM status to 500ms to avoid problems
with some CAMs (reported by Arthur Konovalov).
|
|
- Removed an unnecessary toFile->SetReadAhead() from cutter.c (thanks to Artur
Skawina).
- The "Back" key now restores the original string when pressed while editing a
string item (suggested by Markus Hahn).
- Now stopping scanning the video directory if there are too many levels of
symbolic links, which might indicate a recursive link loop (based on a patch
from Helmut Auer).
- Improved OSD area handling in cDvbSpuDecoder (thanks to Marco Schlüßler).
- Now logging the description (if present) in case a thread is canceled (suggested
by Marco Schlüßler).
- cMenuText now uses the given font (thanks to Rolf Ahrenberg).
- The ST:TNG skin now uses the fixed font if requested when displaying texts.
- Fixed some typos in the CONTRIBUTORS file (thanks to Frank Krömmelbein).
- Changed offset and size handling in 'libsi' from 'unsigned' to 'signed', so that
overflows can be better detected (thanks to Marcel Wiesweg).
- Checking data size in CaDescriptor::Parse() and LinkageDescriptor::Parse() of
'libsi' to avoid crashes with invalid data (thanks to Marcel Wiesweg).
- Made CharArray::DataOwnData::assign() in 'libsi' more robust against invalid
data (suggested by Oliver Endriss). Also changed CharArray::DataOwnData::Delete()
so that it sets 'size' and 'data' to 0.
- Now resetting the channel number if the number entered through the numeric keys
exceeds the maximum channel number (thanks to Rolf Ahrenberg).
- The language code in the 'X' component records of EPG data can now consist of
two codes, separated by '+'.
- If a recording starts and there is no EPG data available for the recorded channel,
the 'X' audio component records for the 'info.vdr' file are now generated from the
channel's PID data.
- Externally provided EPG data (with table ID 0x00) now gets its component
descriptors set from the broadcast data, so that language codes and descriptions
are available (suggested by Andreas Brugger).
- When setting the audio track descriptions, the language codes are now also set
in case this is a replay session (based on a patch from Rolf Ahrenberg).
- If a recording starts and the channel's audio PID data has more language code
information than the EPG's component data, the code from the channel is taken.
- Fixed handling DPID when deciding whether to switch to 'Transfer Mode' (thanks
to Marco Schlüßler).
- Fixed replaying recordings of radio channels with many audio tracks (thanks to
Reinhard Nissl).
- Added a comment to tChannelID::nid, explaining that is is actually the "original"
network id.
|
|
- 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).
|
|
- 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).
|
|
- 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).
|