summaryrefslogtreecommitdiff
path: root/dvbspu.c
AgeCommit message (Collapse)Author
2004-05-23Version 1.3.8vdr-1.3.8Klaus Schmidinger
- 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).
2004-05-16Version 1.3.7vdr-1.3.7Klaus Schmidinger
- 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!).
2003-10-17Version 1.2.6pre1vdr-1.2.6pre1Klaus Schmidinger
- Updated the required driver version in INSTALL (thanks to Jens Groth for reporting this one). - Fixed missing channel info after an incomplete channel group switch (thanks to Andreas Trauer). - Fixed handling a channels.conf that contains a ":@nnn" line as its last entry (thanks to Ralf Klueber). - Fixed detecting the /dev/videoN devices for GRAB in case there are others before the DVB devices (thanks to Andreas Kool). - Updated 'channels.conf.terr' for Berlin (thanks to Markus Hardt). - Fixed handling rc key learning in case cRemote::Initialize() returns 'false' (thanks to Oliver Endriss). - Fixed initializing the highlight area in cDvbSpuDecoder (thanks to Sven Goethel). - Now trying to get a timer's channel without RID when loading 'timers.conf' (thanks to Thomas Rausch). - Removed the unused 0x73 (TOT) filter in eit.c (thanks to Andreas Trauer). - Fixed extracting the ES data in cDvbDevice::StillPicture() (thanks to Stefan Huelswitt). - Added MPEG1 handling to cDvbDevice::StillPicture() (thanks to Thomas Heiligenmann). - Changed the default "Lifetime" to 99, which means that recordings will never be deleted automatically in case the disk runs full (suggested by Oliver Endriss). Note that in an existing VDR installation the current value as set in 'setup.conf' will still be used - this change only affects new VDR installations. - Edited recordings will now never be deleted automatically if the disk runs full (suggested by Emil Naepflein). - Channel IDs are now checked when reading 'channels.conf' to avoid later problems with timers.
2003-08-17Version 1.2.3 (not officially released)vdr-1.2.3Klaus Schmidinger
- 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).
2002-10-27Version 1.1.14vdr-1.1.14Klaus Schmidinger
- 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).
2002-09-29Version 1.1.11vdr-1.1.11Klaus Schmidinger
- Fixed an incomplete initialization of the filter parameters in eit.c (thanks to Jeremy Hall). - Fixed the 'newplugin' script for use with the NEWSTRUCT driver (thanks to Andreas Schultz for reporting this one). If you have already created a plugin directory and Makefile with 'newplugin', please apply the following patch to it: ------------------------------------------------------- --- Makefile 2002/06/10 16:24:06 1.4 +++ Makefile 2002/09/17 15:36:36 1.5 @@ -15,7 +15,12 @@ ### The directory environment: +ifdef NEWSTRUCT +DVBDIR = ../../../../DVB/include +DEFINES += -DNEWSTRUCT +else DVBDIR = ../../../../DVB/ost/include +endif VDRDIR = ../../.. VDRINC = $(VDRDIR)/include LIBDIR = ../../lib @@ -34,7 +39,7 @@ INCLUDES = -I$(VDRINC) -I$(DVBDIR) -DEFINES = -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): ------------------------------------------------------- This is the diff for the 'setup' example that comes with VDR, so your line numbers may be different. - Added a missing 'public' keyword in device.h (thanks to Martin Hammerschmid). - Fixed a race condition when starting 'Transfer Mode'. - Rearranged the remote control key handling to allow plugins to implement additional types of remote controls (see PLUGINS.html, section "Remote Control"). The previously used files 'keys.conf' and 'keys-pc.conf' have been replaced by the file 'remote.conf', which holds the key definitions of all remote controls. - The LIRC remote control keys are now handled just like the keyboard and RCU keys. This means that you can use the lircd.conf file as is for your remote control, without the need of editing it to make the key names the same as used in VDR. When first starting VDR it will go into the "Learning keys" mode and ask you to press the various keys. The resulting key assignment will be stored in the file 'remote.conf'. Since I have no way of testing the LIRC support, I hope I didn't break it in the process... - While learning the remote control keys it is now possible to press the 'Menu' key to skip the definition of keys that are not available on your particular RC unit. - Fixed handling DVD subtitles in the SPU decoder (thanks to Andreas Schultz). - Avoiding restarts due to 'panic level' when switching channels on the primary device during EPG scan.
2002-09-08Version 1.1.9vdr-1.1.9Klaus Schmidinger
- Fixed the 'newplugin' script to make it name the target for creating the distribution package 'dist', as stated in the PLUGINS.html documentation. If you have already created a plugin source directory and Makefile you may want to check it and replace the 'package' target with 'dist' if necessary. - Changed device handling for being able to do simultaneous recording and replay on the same device (Time Shifting). In order for this to work you need to use a driver with a firmware version that has this feature implemented. - cDevice::ProvidesCa() is no longer virtual. The new function cDevice::ProvidesChannel() is now used to determine whether a device can receive a given channel, and by default this function returns false. So a device that is a pure replaying device doesn't need to do anything here. - Increased the recorder buffer size to 5MB in order to be able to better handle multiple recordings. - Implemented cTSBuffer for better handling TS packet buffering in derived cDevice classes. - Changed the interface if cDevice::GetTSPacket() to avoid unnecessary copying of data. - Removed cDevice::Channel(), since this makes no more sense with devices receiving multiple channels. - Switching through channels with the 'Up' and 'Down' keys now skips channels that are currently not available (for instance because all devices are recording and these channels are on different transponders). - Implemented an SPU decoder (thanks to Andreas Schultz). - Fixed a crash when entering an integer value outside the limits (thanks to Stefan Huelswitt for reporting this one). - Added play mode pmAudioOnlyBlack (thanks to Stefan Huelswitt).