Age | Commit message (Collapse) | Author |
|
- Fixed handling empty strings in cSource::FromString().
- Assigned the source character 'I' to "IPTV" (suggested by Rolf Ahrenberg).
- Assigned the source character 'V' to "Analog Video" (suggested by Lars Hanisch).
This obsoletes the ANALOGTV patch.
- Added support for ATSC devices (thanks to Alex Lasnier).
This obsoletes the ATSC patch.
- The "Source" item in the "Edit channel" menu now wraps around the list of sources
(suggested by Halim Sahin).
- Fixed editing channel parameters.
- The new setup option "Recording/Delete timeshift recording" controls whether a timeshift
recording is automatically deleted after viewing it.
This obsoletes the DELTIMESHIFTREC patch.
Note that the meaning of the values for this option is different from the DELTIMESHIFTREC
patch: 0 means timeshift recordings are not automatically deleted (the default behavior
as in previous versions), while 1 means to ask the user whether the recording shall be
deleted.
- Added cChannel::IsSourceType() to test if a channel's source is of a given type.
- Changed the polarization characters in cDvbSourceParam::GetOsdItem() to uppercase.
- The full timer file name is now displayed if it ends with "TITLE" or "EPISODE"
(pointed out by Udo Richter).
- Fixed "attempt to drop wrong frame from ring buffer" when skipping +/- one minute
during replay.
- The new setup option "Folders in timer menu" controls whether the file names in
the timer menu are shown with their full folder path.
|
|
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Changed the position of Sirius 4 to S4.8E in sources.conf (thanks to Alexander Gross).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Moved the declaration of cMenuCommands to menu.h, so that plugins can use it.
- Added a note to the MANUAL, saying that adding new transponders only works if the
"EPG scan" is active (suggested by Halim Sahim).
- Improved handling frames at the beginning and end of a recording in cDvbPlayer for
devices with large buffers (thanks to Reinhard Nissl).
- Implemented cDeviceHook to allow plugins more control over which device can
provide which transponder (thanks to Reinhard Nissl).
- Implemented cDevice::GetCurrentlyTunedTransponder() (thanks to Reinhard Nissl).
- Moved strictly necessary Makefile options into Make.global, which is included
by all plugins (thanks to Paul Menzel). The Makefiles of existing plugins should be
modified like this:
------------------------------------------------------------
--- PLUGINS/src/hello/Makefile 2009/10/18 14:00:07 2.1
+++ PLUGINS/src/hello/Makefile 2010/02/06 14:50:03 2.2
@@ -18,7 +18,7 @@
### The C++ compiler and options:
CXX ?= g++
-CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
+CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
### The directory environment:
@@ -26,6 +26,10 @@
LIBDIR = ../../lib
TMPDIR = /tmp
+### Make sure that necessary options are included:
+
+include $(VDRDIR)/Make.global
+
### Allow user defined options to overwrite defaults:
-include $(VDRDIR)/Make.config
------------------------------------------------------------
- Added device definitions to the diseqc.conf file format, so that certain satellite
positions can be limited to a given list of devices.
This obsoletes the SOURCECAPS patch.
- Keeping subtitles visible when pausing replay (thanks to Rolf Ahrenberg).
- Fixed adding new transponders in case there is only a single channel in the
channel list (reported by Halim Sahin).
- The file name in the "Timers" menu now shows only the base name of the recording
without the folder path (if any). Otherwise with long folder paths the actual
recording name was not visible at all.
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Exported some libsi functions (thanks to Lucian Muresan).
- Improved scalability of the default skins.
- Fixed the German translation of "Folder name must not contain '%c'!" (thanks to
Frank Schmirler).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Plugins can now define new sources. In order to implement this, the following
changes were made:
+ The transponder parameter string is no longer interpreted by cChannel, but rather
stored as is and used only by the respective device. That way plugins can use a
channel's parameter string to store arbitrary data (see vdr.5).
+ The new class cSourceParam can be used by plugins to define new sources, and to
implement OSD items that will be used in the channel editor for editing the source
specific parameters of a channel (see dvbdevice.c for an example of how this is
done for the default DVB devices).
+ Purely numerical values are no longer accepted in the 'source' parameter of a
channel.
This obsoletes the PLUGINPARAM patch.
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
- cSafeFile::Close() now flushes the file (suggested by Stephan Austermühle).
- The option "Setup/DVB/Use Dolby Digital" now only controls whether Dolby Digital
tracks appear in the "Audio" menu. Dolby Digital is always recorded.
This obsoletes the DOLBYINREC patch.
|
|
- 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).
|
|
- 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).
|
|
- 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 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.
|
|
- Fixed a missing Flush() call in the remote control learning procedure (thanks
to Oliver Endriss).
- Modified channel handling to cover all parameters necessary for DVB-C and DVB-T
(see man vdr(5) for the meaning of the additional parameters stored in the field
previously named 'polarisation'). Thanks to Uwe Scheffler and Andy Carter for testing.
If you have a system with different kinds of DVB cards, like DVB-T and DVB-C,
for instance, there is no more need to distinguish the channels through the
'Ca' parameter in order to assign them to the various DVB cards. This is now
taken care of by the "source" parameter. So a channel marked as "terrestrial",
for example, will only be received on DVB-T cards.
Note that the cChannel class has been moved into a separate file (channels.[ch]),
and that all data members have been made private and are now only accessible
through member functions. You may have to change any plugin code that accesses
cChannel data accordingly.
- The new configuration file 'sources.conf' contains the various signal sources
(satellites, cable and terrestrial) which are used in 'channels.conf' and
'diseqc.conf' (thanks to Reinhard Walter Buchner for adding some satellites to
'sources.conf' and Oliver Endriss and Lauri Tischler for testing and debugging).
- The 'diseqc' parameter in the channel definitions has been redefined to hold the
"source" of the given channel (which can be either a satellite, cable or terrestrial).
For compatibility with channels.conf files from older versions, numeric values in
this parameter will be tolerated, but they have no meaning. If you want to use
DiSEqC you will need to replace these old values with the proper source identifiers
defined in the new configuration file 'sources.conf'. See how this is done in the
'channels.conf' file that comes with the VDR package.
- The new configuration file 'diseqc.conf' can be used to set up the individual
diseqc configuration (see man vdr(5) for a description of the file format).
- The "Edit channel" menu has a new entry "Source:" in which the source of this
channel can be selected (either a satellite, cable or terrestrial). The set of
parameters at the end of this menu will change according to the type of source.
- The "Use DiSEqC" parameter in the "Setup/LNB" menu has been moved to the beginning
of the list and disables the rest of the parameters when set to "yes", since these
are now only meaningful if DiSEqC is _not_ used.
- Removed some unnecessary #includes from eit.c and changed cMenuRecordings::Del()
to cMenuRecordings::Delete() to avoid warnings in gcc-3.2 (thanks to Andreas
Schultz for pointing this out).
- Improved skipping channels that are (currently) not available (thanks to Stefan
Huelswitt).
- Updated channels.conf.terr and channels.conf.cable (thanks to Uwe Scheffler).
- Fixed a bug when pressing the "Blue" button in the main menu without having
displayed it (thanks to Oliver Endriss for reporting this one).
|