mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
38 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
2db7397542 |
Version 2.1.7
VDR developer version 2.1.7 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.7.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.6-2.1.7.diff MD5 checksums: 1c954bad31ce74cd1cbd7987e62d2a98 vdr-2.1.7.tar.bz2 88a90327a75833b7723942d3bd25f954 vdr-2.1.6-2.1.7.diff WARNING: ======== This is a *developer* version. Even though *I* use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - No longer logging an error message in DirSizeMB() if the given directory doesn't exist. This avoids lots of log entries in case several VDRs use the same video directory and one of them has already physically removed a recording directory, while the others still have it in their list of deleted recordings. - Updated the Italian OSD texts (thanks to Diego Pierotto). - A cCamSlot that has WantsTsData set to true in its constructor now also gets the CAT and EMM PIDs data. - Fixed a possible division by zero in frame rate detection. - VDR now reads command line options from *.conf files in /etc/vdr/conf.d (thanks to Lars Hanisch). See vdr.1 and vdr.5 for details. - Fixed a possible crash in the LCARS skin (thanks to Thomas Reufer). - Updated the dvbhddevice plugin source. - Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to Stefan Huelswitt). - The pid of the PMT in which the CA descriptors of a given channel are broadcast is now stored together with the CA descriptors and can be retrieved by calling GetPmtPid() (this information is only required to receive encrypted channels with the OctopusNet receiver via the 'satip' plugin). - Channels that are not listed in the SDT are now only marked as OBSOLETE if "Setup/DVB/Update channels" is set to a value other than "no" or "PIDs only". - Fixed multiple OBSOLETE marks in channels that are not listed in the SDT in case "Setup/Miscellaneous/Show channel names with source" is set to "yes". - The new function cOsd::DrawScaledBitmap() is now used for drawing subtitles. This function can be reimplemented by high level OSDs which may be able to do the scaling in hardware or otherwise more efficiently (thanks to Thomas Reufer). - Fixed detaching receivers from devices in case a CAM needs to receive the TS (reported by Dietmar Spingler). - Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS (reported by Dietmar Spingler). - Fixed (well, actually worked around) a problem with subtitles not being displayed because the broadcaster doesn't set the data's version numbers as required by the DVB standard (thanks to Rolf Ahrenberg). - Fixed support for systemd (thanks to Christopher Reimer). - Added a missing backslash to the help text of the SVDRP command MOVR (thanks to Lars Hanisch). - Added subsystem id support for DVB devices connected via USB (thanks to Jose Alberto Reguero). - Added the functions IndexOf(), InsertUnique(), AppendUnique() and RemoveElement() to the cVector class (thanks to Stefan Schallenberg). - Fixed a possible out-of-bounds access in cVector::Remove(). - Added functions to set and retrieve the priority of a cReceiver (suggested by Frank Schmirler). - Added the new parameters "Setup/Miscellaneous/Volume steps" and ".../Volume linearize" (thanks to Claus Muus). See the MANUAL for details. - Fixed jumping to an absolute position via the Red key in case replay was paused (reported by Dieter Ferdinand). - Changed the German weekday names from "MonDieMitDonFreSamSon" to "Mo.Di.Mi.Do.Fr.Sa.So." (thanks to Stefan Blochberger). - Now handling CAT sections that consist of more than one TS packet. - Added handling for DTS audio tracks to cPatPmtParser::ParsePmt() (thanks to Thomas Reufer). - Added support for PGS subtitles (thanks to Thomas Reufer). - Use of the function cOsd::GetBitmap() outside of derived classes is now deprecated, and it may be made 'protected' in a future version, since it doesn't work with TrueColor OSDs. Plugin authors may want to modify their code so that it works without this function. - Modified the descriptions of several threads, so that the important information (like device or frontend numbers) is within the first 15 characters of the string, because only these are displayed in thread listings. Plugin authors may want to do the same. - Added the channel name to log messages that reference a channel (suggested by Dietmar Spingler). - Modified the CAM API so that it is possible to implement CAMs that can be freely assigned to any devices (thanks to Jasmin Jessich). - Plugins can now implement the function SetMenuSortMode() in their skin objects derived from cSkinDisplayMenu, to get informed about the currently used sort mode, if applicable (suggested by Martin Schirrmacher). - Added cOsdProvider::OsdSizeChanged(), which plugins that implement an output device can call to signal a change in the OSD that requires a redraw of the currently displayed object (thanks to Thomas Reufer). - Added a comment to cRecorder::Activate() about the need to call Detach() in the destructor (suggested by Eike Sauer). - Now returning from removing deleted recordings after at most 10 seconds, or if the user presses a remote control key, to keep the system from getting unresponsive when removing a huge number of files (reported by Dieter Ferdinand). - Fixed generating the index file of an existing recording in case at the of a TS file there is less data in the buffer than needed by the frame detector. In such a case it was possible that frames were missed, and there was most likely a distortion when replaying that part of a recording. This is mostly a problem for recordings that consist of more than one *.ts file. Single file recordings could only lose some frames at their very end, which probably doesn't matter. At any rate, if you have generated an index file with VDR version 2.0.6, 2.1.5 or 2.1.6, you may want to do so again with this version to make sure the index is OK. - Added the new command line option --updindex, which can be used to update an incomplete index of a recording (based on a patch from Helmut Auer). |
||
|
716c03a47e |
Version 2.1.3
VDR developer version 2.1.3 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.3.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.2-2.1.3.diff MD5 checksums: 054f80e0045aa6fad118e9285b52f4f2 vdr-2.1.3.tar.bz2 3c5ab05d5c4d0b984b34e84190e80949 vdr-2.1.2-2.1.3.diff WARNING: ======== This is a *developer* version. Even though *I* use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. Originally I intended to release this version only after the new DiSEqC configuration dialog was finished. But in the meantime quite a few other things have come up, so I decided to postpone that dialog and first release what has piled up so far. From the HISTORY file: - Changed the return value of cPositioner::HorizonLongitude() to 0 in case the latitude of the antenna location is beyond +/-81 degrees. - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed some compiler warnings with gcc-4.6.3 (thanks to Rolf Ahrenberg). - Changed the name of the SVDRP command RENR to MOVR (suggested by Rolf Ahrenberg). - When cutting a recording it is now checked whether there is already an edited version of this recording (with the same name, but starting with '%'), and the user is prompted for confirmation to overwrite it (suggested by Rolf Ahrenberg). - Revoked "Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P" because it broke things for the "TechniSat AirStar 2" DVB-T card. - The LIRC remote control now connects to the socket even if it doesn't yet exist when VDR is started (thanks to Lars Hanisch). - Changed the absolute latitude limit for visible satellites to 81.2 degrees. - Added code for parsing LCN and AVC descriptors to libsi (thanks to Rolf Ahrenberg). - In the "Select folder" menu pressing Ok now selects the folder, even if this is a folder that contains sub folders (marked with "..."). To open such a folder you can press the Red key. - Fixed a possible access to uninitialized data in cEIT::cEIT() (reported by Dominik Strasser). - The new menu category mcRecordingEdit is now used to mark menus that edit recording properties (suggested by Stefan Braun). - Changes in the teletext PID no longer cause retuning (and thus interrupting a recording). - Removed '_' from the FileNameChars and CharMap translations in uk_UA.po. - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed a missing initialization in the c'tor of cSkinLCARSDisplayChannel (thanks to Marko Mäkelä). - Simplified some conditional expressions in skinlcars.c and skinsttng.c (suggested by Marko Mäkelä). - Fixed uninitialized item area coordinates in cSkinLCARSDisplayMenu (reported by Marko Mäkelä). - Fixed a possible crash if the recordings list is updated externally while the Recordings menu is open (reported by Lars Hanisch). - Added a missing closing ')' in the help and man page entry of the --vfat option (reported by Lars Hanisch). - Fixed setting the name of the video directory to avoid a crash when using --genindex, and also to use the correct directory with --edit (the latter reported by Marko Mäkelä). - The Recordings menu can now be called with a cRecordingFilter, which allows the caller to have it display only a certain subset of the recordings (thanks to Lars Hanisch). - Added handling UTF-8 'umlaut' characters to cKbdRemote (thanks to Lars Hanisch). - Made it clear that the Data parameter in cDevice::StillPicture() may point to a series of packets, not just a single one (thanks to Thomas Reufer). - cDevice::TrickSpeed() now has an additional parameter named Forward, which indicates the direction in which replay is being done (suggested by Thomas Reufer). This information may be necessary for some output devices in order to properly implement trick modes. Authors of plugins that implement output devices will need to add this parameter to their derived cDevice class, regardless of whether they will make use of it or not. - Added a note to ePlayMode in device.h that VDR itself always uses pmAudioVideo when replaying a recording (suggested by Thomas Reufer). - Fixed some spellings in positioner.h and Doxyfile (thanks to Ville Skyttä). - Changed '%a' to the POSIX compliant '%m' in all scanf() calls (thanks to Ville Skyttä). - The new function cCamSlot::Decrypt() can be used by derived classes to implement a CAM slot that can be freely assigned to any device, without being directly inserted into the full TS data stream in hardware. A derived class that implements Decrypt() will also need to set the new parameter ReceiveCaPids in the call to the cCamSlot base class constructor to true, in order to receive the CA pid TS packets that contain data necessary for decrypting. - Many member functions of cCamSlot have been made virtual to allow for easier implementation of derived classes. - cTSBuffer now provides the number of available bytes in its Get() function. - cDvbDevice::GetTSPacket() now calls CamSlot()->Decrypt() in order to allow CAM slots that can be freely assigned to any device access to the TS data stream. - Added a check to avoid a possible NULL pointer dereference in cCiSession::SendData() (reported by Ville Skyttä). - Deleted a superfluous assignment in cPipe::Open() (reported by Ville Skyttä). - The script given to VDR with the '-r' option is now also called after the recording process has actually started (thanks to Christian Kaiser). - Avoiding unnecessary pkg-config warnings in plugin Makefiles (thanks to Ville Skyttä). Plugin authors may want to apply the following change to their Makefile: -PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) - Eliminated MAXDVBDEVICES (suggested by Oliver Endriss). - Channels that are no longer contained in the current SDT of a transponder are now marked with the keyword OBSOLETE in their name and provider fields. That way you can identify obsolete channels when you switch to them, and you can get the complete overview of all obsolete channels by sorting the Channels list by provider (by pressing the 0 key twice). Automatic deletion of obsolete channels may follow later. |
||
|
5076cfb2ed |
Version 2.1.1
VDR developer version 2.1.1 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.1.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.0.0-2.1.1.diff MD5 checksums: b17f9838bb8ddee9620f838fea7a171d vdr-2.1.1.tar.bz2 8b8ca593885c380cd370e6d19a5b16a1 vdr-2.0.0-2.1.1.diff WARNING: ======== This is a *developer* version. Even though *I* use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. The main focus of this version is on adding basic support for positioners to control steerable satellite dishes. Manually controlling the dish position and storing individual positions will follow later. The fixes contained in this version will be released in a stable version 2.0.3 later, if there are no problems. From the HISTORY file: - Fixed initializing cDevice::keepTracks. - Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than one character (reported by Stefan Braun). - Removed all "modified since version 1.6" markers from PLUGINS.html. - Added definitions for older DVB API versions, back until 5.0 (based on a patch from Udo Richter). - Changed cThread::SetIOPriority() from "best effort class" to "idle class" in order to improve overall performance when an editing process is running (thanks to Jochen Dolze). - Fixed handling '/' and '~' in recording file names in case DirectoryEncoding is used (thanks to Lars Hanisch). - Changed the sign of the satellite position value in cSource to reflect the standard of western values being negative. The new member function cSource::Position() can be used to retrieve the orbital position of a satellite. - Fixed multiple occurrences of the same directory in the recordings list in case there are directories that only differ in non-alphanumeric characters (was broken by "Fixed selecting the last replayed recording in the Recordings menu in case there are folders and plain recordings with names that differ only in non-alphanumeric characters" in version 1.7.36). - Fixed displaying the frame number when setting an editing mark (thanks to Thomas Günther). - Fixed no longer generating any editing marks if the edited recording results in just one single sequence (reported by Halim Sahin). - Fixed an error message when parsing SCR values in diseqc.conf. - Fixed an unexpected RCS version tag in the newplugin script. - Fixed an endless loop in the DrawEllipse() functions for very small ellipses (reported by Stefan Braun). - Fixed a crash in the LCARS skin's main menu in case there is no current channel (reported by Dominique Dumont). - Added basic support for positioners to control steerable satellite dishes (based on a patch from Seppo Ingalsuo and Ales Jurik). + Supports GotoN (aka "DiSEqC 1.2") and GotoX (aka "USALS"). + The new DiSEqC command code 'P' can be used to instruct a positioner to move the dish to the required satellite position. When a 'P' code is processed, further execution of the remaining DiSEqC sequence (if any) is postponed until the positioner has reached the new satellite position. + The new special source value of "S360E" can be used in diseqc.conf to indicate that an entry using a positioner can move the dish to any requested position within its range. Think of it as "full circle". + The devices a particular cDiseqc or cScr applies to are now stored directly in each cDiseqc or cScr, respectively. + A plugin can implement a custom positioner control (see PLUGINS.html, section "Positioners"). + The new function cSkinDisplayChannel::SetPositioner() can be implemented by skins to show the user a progress display when the dish is being moved. The default implementation calls SetMessage() with a string indicating the new position the dish is being moved to. The LCARS skin shows a progress bar indicating the movement of the dish. + The new parameters "Site latitude", "Site longitude", "Positioner speed", and "Positioner swing" in the "Setup/LNB" menu can be used to configure the necessary values for a steerable dish. + The cDvbTuner now has a new status tsPositioning, in which it waits until a steerable dish has reached its target position. Parsing SI data is paused until the target position has been reached. - The LCARS skin now shows the source value of the current channel in its channel display. - Fixed asserting free disk space in the cutter. - No longer trying to delete old recordings in AssertFreeDiskSpace() if the given Priority is less than 1. - Fixed handling LIRC events in case repeated events are lost. - Fixed a possible crash when shutting down VDR while subtitles are being displayed (reported by Ville Skyttä). - cDevice::IsPrimaryDevice() now also checks whether the primary device actually has a decoder and returns false otherwise. This should improve device allocation on systems that are only used as a receiver and don't actually display anything. - Increased the value of MAXRETRIES to 20 to reduce the probability of disturbances in transfer mode. - All bonded devices (except for the master) now turn off their LNB power completely to avoid problems when receiving vertically polarized transponders (suggested by Manfred Völkel and Oliver Endriss). - Reverted the change from version 1.5.7 that made all logging go to LOG_ERR (thanks to Christopher Reimer). - Added Begin/EndSegmentTransfer() to the EPG handler interface (thanks to Jörg Wendel). - The code for distributing recordings over several video directories is now deprecated and disabled by default. You can re-enable this feature by removing the comment sign ('//') from the beginning of the line //#define DEPRECATED_DISTRIBUTED_VIDEODIR // Code enclosed with this macro is ... in the file videodir.c. Note, though, that this can only be a temporary workaround. This feature will be completely removed in one of the next developer versions. Distributing the video directory over several disks was a useful feature in times when disks were still relatively small, but it also caused serious problems in case one of the disks failed. Nowadays hard disks come in sizes measured in terabytes, and tools like "mhddfs" can be used to combine several disks to form one large volume. A recommended method for a relatively safe disk setup in a VDR system is to use two 1TB (or larger) disks and use them as a RAID-1 (mirrored). That way, if one disk fails, you can replace it without data loss. |
||
|
d1b0368a15 |
Version 1.7.41
VDR developer version 1.7.41 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.41.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.40-1.7.41.diff MD5 checksums: c7928bff45fa1c0e6dadf2c0a5adf94b vdr-1.7.41.tar.bz2 d20f62005288f54bb4596e1e091419ac vdr-1.7.40-1.7.41.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. Approaching version 2.0.0: ========================== If there are no more serious bug reports, the final version 2.0.0 of VDR shall be released on March 31, 2013. So please test this developer version intensely and report any problems you might encounter as soon as possible. The following language files still have the given number of untranslated texts: da_DK.po: 134 el_GR.po: 197 hr_HR.po: 134 lt_LT.po: 1 nn_NO.po: 262 pt_PT.po: 28 sl_SI.po: 1 sr_SR.po: 80 tr_TR.po: 134 If nobody takes care of these, they will remain untranslated in version 2.0.0. From the HISTORY file: - Updated the Hungarian OSD texts (thanks to István Füley). - Updated the Russian OSD texts (thanks to Oleg Roitburd). - Updated the Polish OSD texts (thanks to Marek Nazarko). - Fixed using PATH_MAX and NAME_MAX (+/-1 because the first one includes the terminating 0, while the latter doesn't). - The 'plugins' target of the VDR Makefile now also copies files matching the wildcard "lib$$i-*.so" (previously only "libvdr-*.so") and also descends into subdirectories of the plugin source. - The parameters PATH and NAME to the --dirnames command line option may now be left empty to use the default values if only ENC shall be set (thanks to Helmut Auer for some improvements to this change). - Fixed a possible "Channel not available" if a recording starts on a system with bonded devices (thanks to Siegfried Bosch). - Fixed stopping an ongoing recording on a system with bonded devices, if a timer with a higher priority requires a different band. - Updated the introductory text of the vdr.1 man page. - Added a note to the INSTALL file regarding multiple disk setup becoming deprecated in a future version of VDR. - When switching to a less privileged user id, VDR now sets the environment variables HOME, USER, LOGNAME and SHELL accordingly (thanks to Manuel Reimer). - Updated the help and man page entry about the location of the epg.data file (thanks to Ville Skyttä). - Fixed creating a new VPS timer with the SVDRP command NEWT (thanks to Johann Friedrichs). |
||
|
b8b6cd3e89 |
Version 1.7.39
VDR developer version 1.7.39 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.39.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.38-1.7.39.diff MD5 checksums: 3f0681f4aa6bd8deffc8208c40d34d2d vdr-1.7.39.tar.bz2 1c13a683694c6c3c52444c1689477876 vdr-1.7.38-1.7.39.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. Approaching version 2.0.0: ========================== If all goes well, there will be just one more developer version after this one, and then it's going to be version 2.0.0. From the HISTORY file: - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Updated the Polish OSD texts (thanks to Marek Nazarko). - Modified handling user inactivity in the shutdown handler to avoid a problem in case the system time is changed after VDR has been started (thanks to Udo Richter, reported by Sören Moch). - Updated the Czech OSD texts (thanks to Ales Jurik). - Changed the template for PLGCFG to $(CONFDIR)/plugins.mk (thanks to Ville Skyttä). - Updated the Swedish OSD texts (thanks to Richard Lithvall). - Now clearing device bondings for devices that don't provide DVB-S in the Setup/LNB menu (reported by Juergen Lock). - Fixed a possible deadlock in handling the tuners of bonded devices (thanks to Juergen Lock). - Improved working around the broken driver values for SNR in case of a "TT-budget S2-3200" receiving DVB-S2. - The demos in the "osddemo" plugin can now also be ended with the "Back" key. - Fixed flashing OSD in "high level OSD" mode of the TT S2-6400 in case a menu is open while subtitles are being displayed. - Fixed stuttering or asynchronous audio after changing the audio track. This is done by doing a "jump" to the current position, which clears all buffers. However, this only works with TS recordings. With PES recordings it causes a segfault - haven't been able to figure out why. - Added a manual page for 'svdrpsend' (thanks to Tobias Grimm). - Fixed immediately disappearing subtitle track menu in "high level OSD" mode of the TT S2-6400 when selecting "No subtitles". - Updated the French OSD texts (thanks to Bernard Jaulin). - Updated the Dutch OSD texts (thanks to Carel Willemse). - Removed all "fuzzy" translations from the files ar.po, hu_HU.po and sr_SR.po, because more often than not they are just wrong. - Now calling DeviceClear() in cTransfer::Receive() if the output device blocks, instead of not retrying for 10 seconds (reported by Andreas Mair, with help from Oliver Endriss). - Updated the Spanish OSD texts (thanks to Luca Olivetti). - Updated the Hungarian language texts (thanks to István Füley). - Changed the calls to Skins.QueueMessage() in vdr.c that are related to reporting the status of the editing process back to Skins.Message() in order to have them appear immediately. - When sorting recordings by name, folders are now always at the top of the list. - Updated the Russian OSD texts (thanks to Oleg Roitburd). |
||
|
14bd32b948 |
Version 1.7.37
VDR developer version 1.7.37 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.37.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.36-1.7.37.diff MD5 checksums: 602dc7e678bcfcf075da36344a337562 vdr-1.7.37.tar.bz2 34e953fcffc112f316cbfc1f53915324 vdr-1.7.36-1.7.37.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. Approaching version 2.0.0: ========================== If all goes well, there should be no more functional or API changes before the final version 2.0.0. There will just be a few more fixes. From the HISTORY file: - Now also using FindHeader() in cMpeg2Fixer::AdjTref() (pointed out by Sören Moch). - Added missing template for DVBDIR to Make.config.template (reported by Derek Kelly). - The LCARS menu now also works if the OSD has only 1bpp (two colors). - Fixed possible garbage in the remaining time of the LCARS replay display in case the hours change from two to one digit. - Fixed upscaling bitmaps. The last row and column of the scaled bitmap was not filled, which resulted in empty lines between scaled subtitles. - Fixed a leftover line in case a two line subtitle was followed by a one line subtitle on the dvbhddevice in "high level" OSD mode. - Returning 0 from cDvbSdFfDevice::NumProvidedSystems() if option --outputonly is given. - The index file is now closed after initially reading it if it is older than 3600 seconds. - Improved responsiveness during replay when close to the recording's end. - Fixed a leftover progress display in the LCARS main menu when replay of a recording ends while the menu is open, and the live channel has no EPG information. - Fixed possible audio chatter when a recording is replayed to its very end. - Added dependency on 'i18n' to 'install-i18n' in the VDR Makefile (thanks to Tobias Grimm). - Changed several calls to Skins.Message() in vdr.c to Skins.QueueMessage() in order to avoid a black screen while such a message is displayed in case the channel will be switched (reported by Uwe Scheffler). - Updated the Slovakian language texts (thanks to Milan Hrala). - Improved LIRC timing for repeat function. - When pausing live video, the current audio and subtitle tracks are now retained. - Added some notes about plugin Makefiles to PLUGINS.html. - Avoiding an extra key press event if the repeat function kicks in when controlling VDR via the PC keyboard. - The new options "Setup/Miscellaneous/Remote control repeat delay" and "Setup/Miscellaneous/Remote control repeat delta" can be used to adjust the behavior of the remote control in case a key is held pressed down for a while, so that the repeat function kicks in (see MANUAL). The builtin LIRC and KBD remote controls already use these parameters. It is recommended that plugins that implement an interface to any kind of remote controls also use the parameters Setup.RcRepeatDelay and Setup.RcRepeatDelta for the desired purpose, and remove any setup options they might have that serve the same purpose. - cTimer no longer does any special "VFAT" handling to shorten directory names to 40 characters. When a string is used as a directory name for a recording, the maximum length of the directory path, as well as the individual directory names, is now limited to the values specified by the new command line option --dirnames (see man vdr(1) for details). For backwards compatibility the option --vfat is still available and has the same effect as --dirnames=250,40,1. - The macro MaxFileName is now obsolete and may be removed in future versions. Use NAME_MAX directly instead. - There is no more fixed limit to the maximum number of cPixmap objects an OSD can create. However, a particular device may still be unable to create an arbitrary number of pixmaps, due to limited resources. So it's always a good idea to use as few pixmaps as possible. - Fixed formatting and removed some superfluous break statements in vdr.c's command line option switch. |
||
|
d34026c18b |
Version 1.7.30
VDR developer version 1.7.30 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.30.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.29-1.7.30.diff MD5 checksums: c6d75f2962bc3e22d9313c0ee4fa113a vdr-1.7.30.tar.bz2 a63098efcc58bc697d6b890097d9c370 vdr-1.7.29-1.7.30.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. The default skin "LCARS" displays the signal strengths and qualities of all devices in its main menu. For devices that have an stb0899 frontend chip (like the TT-budget S2-3200) retrieving this information from the driver is rather slow, which results in a sluggish response to user input in the main menu. To speed this up you may want to apply the patches from ftp://ftp.tvdr.de/vdr/Developer/Driver-Patches to the LinuxDVB driver source. From the HISTORY file: - Fixed sorting recordings in the top level video directory. - Fixed handling control characters in SI data in case of UTF-8 encoded strings (thanks to Mehdi Karamnejad for reporting a problem with garbled UTF-8 EPG data and helping to debug it). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - When checking whether a video directory is empty, file names that start with a dot ('.') are now ignored and will be implicitly removed if the directory contains no other files. This fixes the leftover ".sort" files that were introduced in version 1.7.29. - Added IsUpdate() to the EPG handler interface (thanks to Jörg Wendel). - Fixed detecting transfer mode on full featured DVB cards (thanks to Stefan Huelswitt for reporting a problem with updating CA descriptors in such cases). - Fixed a race condition when zapping in transfer mode (reported by Reinhard Nissl). This involves a slight change in the semantics of the cReceiver::Activate() function, which is now called with 'false' after the receiver has been detached from the device. - The new function cDevice::ReadFilter() can be used by devices to implement their own way of retrieving section filter data (thanks to Deti Fliegl). - The new function cDevice::HasInternalCam() can be implemented by devices that provide encrypted channels in an already decrypted form, without requiring explicit handling of a CAM (thanks to Tobias Grimm). - VDR can now be built according to the FHS ("File system Hierarchy Standard") by activating the line #USEFHS = 1 in a copy of the file Make.config.template (thanks to Dennis Bendlin, as well as Christopher Reimer and Udo Richter for contributing to the patch). - By default (without FHS support) the config directory is now set to the value given in the -v option if only -v and no -c is given. - Fixed a long delay at the end when replaying a recording that has stopped recording less than an hour ago (typically time shift mode or a freshly edited recording). - Fixed getting the file size and number of frames of ongoing recordings (only the timestamp of the recording's directory was checked, while it should have been that of the index file). - Fixed sluggish response when manipulating editing marks while a cutting thread is running (reported by Torsten Lang). - The new setup options "OSD/Color key [0123]" can be used to adjust the sequence of the color buttons displayed in the menus to that of the color keys on your remote control (based on a patch from Oliver Schinagl). Authors of plugins that implement skins may want to adapt their SetButtons() function in order to make use of this new feature. See, for instance, the function cSkinClassicDisplayMenu::SetButtons() in skinclassic.c for details. |
||
|
3df1b6d139 |
Version 1.7.25
Original announce message: VDR developer version 1.7.25 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.25.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.24-1.7.25.diff MD5 checksums: a3fd482a3dd8027706d4f32a88c6bd13 vdr-1.7.25.tar.bz2 f34adcdc0cdab378431d8946872d6b59 vdr-1.7.24-1.7.25.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - The fps value for channels where it differs from the default is now set correctly when pausing live video. - Increased the average character estimate for calculating tab positions in skins, to better suit wide fonts (reported by Rudi Hofer). - Fixed getting the subsystem ids of DVB devices in case they have been rearranged via udev rules. - Added several cTimer::Set...() functions (suggested by Alexander Rieger). - Changed the return value of cTimer::SetFile() to 'void'. - Revoked "Fixed a possible deadlock in time shift mode" because it caused trouble with output on vdr-xine and dxr3, and also short glitches when replaying on any output device. - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed handling subtitle color palettes on channels where subtitles appear "word by word" (thanks to Rolf Ahrenberg). - Fixed upscaling cBitmaps with anti-aliasing (thanks to Rolf Ahrenberg for reporting a problem with color palettes in subtitles). - Fixed getting the video aspect ratio for scaling subtitles. - Removed the "PrimaryLimit". Old "full featured" DVB cards can be run with the --outputonly option to avoid problems with recording high bandwidth channels. Besides, with HDTV becoming ever more popular those cards are pretty much obsolete by now (the TT S2-6400 has no problems recording and replaying high bandwidth channels simultaneously). And, last but not least, people using software players won't notice this change, anyway. - Since cReceivers can have priorities between -99 and 99, the priority for an unused device has been changed from -1 to -100. - If the first event in a schedule has a table id of 0x00, any incoming EIT data for that schedule from the DVB stream will be completely ignored. This way an external EPG source can fill the schedules with EPG data that will not be messed up with that from the DVB data stream. Note, though, that this means VDR can not do VPS controlled recordings with such events! - Added some typecasts to silence gcc compiler warnings (thanks to Rolf Ahrenberg). - Fixed handling overlapping timers in case a VPS timer with higher priority needs to interrupt a timer with lower priority. - The code for the RCU remote control unit has been moved into a separate plugin named "rcu". The REMOTE=RCU option in the 'make' call for VDR is now obsolete. The command line option --rcu is now obsolete. Use -Prcu instead. If you have used --rcu with a device path, use -P"rcu -d<device>". - Added support for automatically selecting subtitles when playing old PES recordings made with the subtitles plugin (thanks to Anssi Hannula). - Revised priority handling to allow receivers with a priority that is lower than that of live viewing (with suggestions from Frank Schmirler): + An idle device (one that is not used for live viewing and has no receiver attached to it) now has priority IDLEPRIORITY (-100). + An unused CAM slot now has priority IDLEPRIORITY. + The default priority of a cReceiver is now MINPRIORITY (-99). + A device that is used only for live viewing (no matter whether it's in Transfer Mode or real live mode) now has priority TRANSFERPRIORITY (-1). + The function cDevice::Receiving() now returns true if there is any receiver attached to the device. Its boolean parameter has no meaning any more. + The default value for the Priority parameter of the function cDevice::ProvidesChannel() has been changed to IDLEPRIORITY. - Added a Query parameter to cDevice::GetDevice(), so that devices can be queried without side effects when zapping. - Replaced min(max()) calls with the new function constrain(). - Fixed handling OSD color button texts in case a menu item has texts of its own (reported by Rolf Ahrenberg). If a plugin creates derived cMenuEditItems that set color button texts, these should not set the texts directly by calling cSkinDisplay::Current()->SetButtons(), but rather call the new member function cMenuEditItem::SetHelp(). - Moved the call to cStatus::MsgChannelSwitch(this, 0) to the beginning of cDevice::SetChannel(), so that any receivers that have been attached to the device by plugins may be detached before the final call to GetDevice(). This actually reverts "Only calling cStatus::MsgChannelSwitch() if a channel is actually going to be switched or has actually been switched successfully" which was made in version 1.1.10, so please report if this has any unwanted side effects. |
||
|
5a28d99936 |
Version 1.7.22
Original announce message: VDR developer version 1.7.22 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.22.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.21-1.7.22.diff MD5 checksums: b9c0fe1aac8e653c0d0234bc72c2bb2c vdr-1.7.22.tar.bz2 868bb332342c9a78beda17cc85e0bb93 vdr-1.7.21-1.7.22.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Fixed scaling subtitles in case the primary device's GetVideoSize() function doesn't return actual values (thanks to Luca Olivetti). - The DiSEqC codes are now copied in the call to cDiseqc::Execute(). - VDR now supports "Satellite Channel Routing" (SCR) according to EN50494 (based on the "unicable" patch from Lars Hanisch). Since "Unicable" is a registered trademark and stands for only one of many implementations of SCR, the following changes have been made compared to the patch, which need to be taken into account by people who have set up their system using the patch: - The 'U' parameter in the diseqc.conf file has been changed to 'S' ("Scr"). - The configuration file name has been changed from "unicable.conf" to "scr.conf". - Updated sources.conf (thanks to Arthur Konovalov). - The SVDRP command LSTC now also accepts channel IDs (thanks to Dominic Evans). - Fixed handling DVB subtitles and implemented decoding textual DVB subtitles (thanks to Rolf Ahrenberg). - Added cap_net_raw to the capabilities that are not dropped (thanks to Dominic Evans). - Fixed setting the start time of an edited recording (thanks to Christoph Haubrich). - Temporarily switching free devices to transponders in order to have their running status updated is now done by marking the devices as "occupied" for a certain amount of time. - The new setup options "LNB/Device n connected to sat cable" can be used to define which DVB-S devices are connected to the same sat cable and are therefore "bonded". This obsoletes the LNBSHARE patch. Users of the LNBSHARE patch will need to newly set up their sat devices with the above options. - Fixed a crash when deleting a recording while cutting it (thanks to Ville Skyttä). - Fixed several spelling errors (thanks to Ville Skyttä). - The new SVDRP command UPDR can be used to trigger an update of the list of recordings (thanks to Lars Hanisch). - Added generating a pkg-config file to the Makefile (thanks to Ville Skyttä). - Removed the '.pl' suffix from all scripts (thanks to Ville Skyttä). - Changed the default location for the LIRC socket to /var/run/lirc/lircd (thanks to Ville Skyttä). - Added file name and line number to LOG_ERROR_STR() (thanks to Rolf Ahrenberg). - Replaced all calls to sleep() with cCondWait::SleepMs() (thanks to Rolf Ahrenberg). - Fixed a crash with malformed SI data (patch from vdr-portal). |
||
|
7df66b0587 |
Version 1.7.20
Original announce message: VDR developer version 1.7.20 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.20.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.19-1.7.20.diff MD5 checksums: eda2911fff1715ba5b1482b20ad18188 vdr-1.7.20.tar.bz2 a8f5bcaf3294cc9fce87283a618d5ce1 vdr-1.7.19-1.7.20.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. This version contains functions to determine the "signal strength" and "signal quality" through cDevice. If you are using a DVB card that contains an stb0899 frontend chip (like the TT-budget S2-3200) you may want to apply the patches from ftp://ftp.tvdr.de/vdr/Developer/Driver-Patches to the LinuxDVB driver source in order to receive useful results from that frontend. From the HISTORY file: - Added some missing 'const' to tChannelID (reported by Sundararaj Reel). - The isnumber() function now checks the given pointer for NULL (thanks to Holger Dengler). - Now checking Setup.InitialChannel for NULL before using it (reported by Christoph Haubrich). - cSkins::Message() now blocks calls from background threads (thanks to Michael Eiler for reporting a crash in such a scenario). - Fixed the return value of the svdrpsend.pl script in case of an error (thanks to Jonas Diemer). - Increased MAXCAIDS to 12 (thanks to Jerome Lacarriere). - Fixed handling DiSEqC codes (thanks to Mark Hawes for reporting the bug, and Udo Richter for suggesting the fix). - Added a mechanism to defer timer handling in case of problems (reported by Frank Niederwipper). - Fixed distortions that happened when splitting recording into several files (was a side effect of "Fixed detecting frames in case the Picture Start Code or Access Unit Delimiter extends over TS packet boundaries" in version 1.7.19). cRecorder::Action() now buffers TS packets in case the frame type is not yet known when a new payload starts. This adds no overhead for channels that broadcast the frame type within the first TS packet of a payload; it only kicks in if that information is not in the first TS packet. - Fixed handling the channelID in cMenuEditChanItem (thanks to Udo Richter). - cStringList::Sort() can now be called with a boolean parameter that controls case insensitive sorting (suggested by Sundararaj Reel). - Now scanning new transponders before old ones, to make sure transponder changes are recognized (thanks to Reinhard Nissl). - Implemented static cIndexFile::IndexFileName(). - The length (as number of frames) of a recording's index file can now be determined by a call to cIndexFile::GetLength() (suggested by Christoph Haubrich). - Fixed some crashes in subtitle display (thanks to Rolf Ahrenberg). - Made DELETENULL() thread safe (reported by Rolf Ahrenberg). - The pic2mpg script of the 'pictures' plugin now generates HD images (thanks to Andre Weidemann for his support in using convert/ffmpeg). The old SD version is still available as pic2mpg-sd. - Added a mutex to protect cOsd::Osds from simultaneous access from different threads (reported by Rolf Ahrenberg). - The cutter now sets the 'broken link' flag for MPEG2 TS recordings (thanks to Oliver Endriss). - Fixed language code entry for Portuguese. - The new command line options --filesize (suggested by Marco Göbenich) and --split can be used together with --edit to set the maximum video file size and turn on splitting edited files at the editing marks. These options must be given before --edit to have an effect. - cTimeMs is no longer initialized to the current time if the value given to the constructor is negative (avoids the "cTimeMs: using monotonic clock..." log message before VDR's starting log message). |
||
|
c2c45d68c6 |
Version 1.7.15
- Added Macedonian language texts (thanks to Dimitar Petrovski). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Added handling of EnhancedAC3DescriptorTag (thanks to Eric Valette). - The default SVDRP port is now 6419 (registered with ICANN/IANA by Christian Tramnitz). Use '-p 2001' to switch back to the old port if necessary. - Updated the Italian OSD texts (thanks to Diego Pierotto). - cDvbDevice::ProvidesTransponder() now checks the modulation capabilities of the device (as far as the driver allows this). - Fixed cFrameDetector::Analyze() in case part of the data has been processed and there is less than MIN_TS_PACKETS_FOR_FRAME_DETECTOR left (reported by Derek Kelly). - Added a note about not deleting cDeviceHook objects to device.h. - Added user defined key kUser0 (suggested by Ulf Kiener). - Include paths are now added instead of overwriting INCLUDES in the Makefile (thanks to Paul Menzel). - The various modulation types are now taken into account when selecting a device for a recording or live viewing, so that devices that provide more capabilities are spared. - Fixed generating PMT language descriptors for multi language PIDs (thanks to Rolf Ahrenberg). - Transponders that use "8psk turbo fec" (a non-standard mode used by North American providers) are now identified by assuming that all 8psk transponders on DVB-S use "turbo fec". In order to determine whether a certain device can handle "turbo fec", the new driver flag FE_CAN_TURBO_FEC is checked. If your device can handle "turbo fec", and your driver doesn't have that flag, yet, you can apply the patch from ftp://ftp.tvdr.de/vdr/Developer/v4l-dvb-add-FE_CAN_TURBO_FEC.diff. A temporary macro in dvbdevice.c defines the flag for all those who don't need this in the driver, so that they can continue using an unmodified driver. Thanks to Derek Kelly for testing this. - Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk). - Fixed handling "none" color entries in XPM files (thanks to Thomas Günther). - Fixed a crash when creating a new channel if the channel list is empty (reported by Halim Sahin). - Updated the Czech OSD texts (thanks to Radek Stastny). - Fixed a possible out of buffer memory access in case of bad TS data (reported by Rolf Ahrenberg). - Implemented handling of HD resolution subtitles according to v1.3.1 of ETSI EN 300 743, chapter 7.2.1 (thanks to Rolf Ahrenberg). - The EPG data now handles stream components 5 (H.264-video) and 6 (HEAAC-audio). - Fixed a problem with external Dolby Digital processing via the '-a' option in live mode and with TS recordings (reported by Christopher Reimer). - Added handling MPEG audio types "ISO/IEC 14496-3 Audio with LATM transport syntax" and "ISO/IEC 13818-7 Audio with ADTS transport syntax" (suggested by Luis Fernandes). See man vdr(5) on how the APID section of channels has been extended to store this information. - Added detecting channels that use service type 0x16. - Added full handling of the stream types of Dolby Digital pids (thanks to Jose Alberto Reguero). - The new setup option "OSD/Number keys for characters" can be used to control whether the number keys can be used to enter characters in a text input field (suggested by Stefan Huskamp). |
||
|
939081e274 |
Version 1.7.11
- Fixed resetting the file size when regenerating the index file. - The new function cDevice::PatPmtParser() can be used in derived devices to access the PAT/PMT of the currently replayed material. - Updated the Italian OSD texts (thanks to Diego Pierotto). - The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid. - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - The 'sky' plugin is no longer part of the VDR source. - Improved SPU handling on devices with limited OSD capabilities (thanks to Matthieu Castet). - Several code modifications to avoid compiler warnings (thanks to Winfried Köhler). - Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() (thanks to Johann Friedrichs). - Removed debug output of '-' from cTransfer::Receive(). - Added defines for large files to the 'newplugin' script (reported by Udo Richter). - Removed the workaround for short channel names of "Kabel Deutschland", because apparently they now have their data according to the DVB standard (thanks to Johann Friedrichs). - Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs). - Fixed a busy loop when moving editing marks (thanks to Johann Friedrichs). - Updated sources.conf (thanks to Derek Kelly). - Modified cCharSetConv so that it can be used to convert from "whatever VDR uses" to a given code (thanks to Joachim Wilke). - Channel names containing commas are now handled correctly in channels.conf. If a channel's short name contains a comma, it is replaced with a '.'. - cDevice now logs the device number when a new device is created. - Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt(). - cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids. - cPatFilter::Process() now only stores CA descriptors for video and audio pids (thanks to Francesco Saverio Schiavarelli for reporting a problem with channels that have some encrypted components that VDR doesn't use). - cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas Regel). - Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel). - cPatPmtParser now also stores the audio stream types. - The support for full featured DVB cards of the TT/FuSi design has been moved into the new plugin 'dvbsddevice'. On systems that use such a card as their primary device, this plugin now needs to be loaded when running VDR in order to view live or recorded video. If the plugin is not loaded, the card will be treated like a budget DVB card, and there will be no OSD or viewing capability. - Fixed handling the "CA PMT" generation (revised a change not mentioned in version 1.7.9's changes, which caused a malfunction with Conax and Viaccess CAMs). - Fixed stopping subtitle display when switching the primary device (thanks to Anssi Hannula). IMPORTANT NOTE TO PLUGIN AUTHORS: a plugin that implements a derived cDevice class that can replay video must now call the MakePrimaryDevice() function of its base class. - Fixed compiler warnings "format not a string literal and no format arguments" in some syslog calls (thanks to Rolf Ahrenberg). - The new command line options --edit and --genindex can be used to edit a recording or generate its index without actually starting the entire VDR (based on a patch from Helmut Auer). - Improved the description of the transponder parameters in vdr.5 (thanks to Winfried Köhler). - Avoiding setting the video stream type to 2 if the vpid is 0 (problem reported by Arthur Konovalov). - Implemented handling the "Content Descriptor" (based on a patch from Rolf Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the textual representation of the content descriptors as "genre". The epg.data file stores the genre using the tag character 'G'. - Implemented handling the "Parental Rating Descriptor" (based on a patch from Rolf Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the parental rating (if given) in their event displays. The epg.data file stores the parental rating using the tag character 'R'. IMPORTANT NOTE: if VDR doesn't display a parental rating, this does not necessarily mean that the given programme is suitable for all audiences! - Rearranged cEvent members to minimize memory waste. - After a CLRE command, no further EPG processing is now done for 10 seconds, so that data sent with subsequent PUTE commands doesn't interfere with data from the broadcasters (suggested by Helmut Auer). - Added support for DVB cards with multiple fontends. Note that this only works for DVB cards where each frontend can be used independently of all the others on the same adapter. - Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to Anssi Hannula). |
||
|
ea01358b3b |
Version 1.7.10
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed wrong bracketing in cChannel::SubtitlingType() etc. (thanks to Rolf Ahrenberg). - Fixed not logging changes for channels that have no number (reported by Timothy D. Lenz). - Changed the project's URLs and email to tvdr.de. - Added Lithuanian language translations (thanks to Valdemaras Pipiras). - Updated Chinese language texts (thanks to Nan Feng). - Only checking DVB_API_VERSION to be >=5 in order to stay compileable in case the DVB API version number is increased (the API claims to always be backward compatible). - Fixed saving terminal settings when running in background (thanks to Manuel Reimer). - Fixed cFrameDetector::Analyze() to handle video streams where the frame type is not detectable from the first TS packet of a frame. - Fixed writing the PCR pid into the PMT in cPatPmtGenerator::GeneratePmt() (reported by Rene van den Braken). - Added Slovakian language texts (thanks to Milan Hrala). - Fixed EntriesOnSameFileSystem() to avoid using f_fsid, which may be 0 (thanks to Frank Schmirler). - Fixed starting a recording at an I-frame. - Fixed generating the index for recordings from channels that put a whole GOP into one payload unit. - The index file for TS recordings is now regenerated on-the-fly if a recording is replayed that has no index. This can also be used to re-create a broken index file by manually deleting the index file and then replaying the recording (at least until the index file has been generated). - The cRingBufferLinear::Read() function now returns -1 and sets errno to EAGAIN if the buffer is already full. - Fixed handling DVB subtitles for PES recordings (thanks to Rolf Ahrenberg). - Added the audio id to the call of PlayAudio() in cDevice::PlayTsAudio() (thanks to Andreas Schaefers). - Fixed references to old *.vdr file names in MANUAL (reported by Arthur Konovalov). - Reverted "Removed limitation to PAL resolution from SPU handling" because it cause nothing but trouble. Besides, the core VDR doesn't use this, anyway. - Fixed the default value for "Pause key handling" in the MANUAL (reported by Diego Pierotto). |
||
|
06bf4c453e |
Version 1.7.9
- Fixed storing the current OSD size in case the device has changed it in its setup menu (reported by Reinhard Nissl). - Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the buffer has been accepted by the device (reported by Udo Richter). - Changed the EIT filter setup to save a few handles on devices that do hardware filtering. - Fixed deleting expired timers if they have the VPS flag set, but the event they are assigned to doesn't have a VPS tag. - Fixed handling file name length on VFAT systems in case they contain UTF-8 characters (thanks to Rolf Ahrenberg). - Fixed generating CaPmts in case audio and video are encrypted using different ECM pids. - Updated vdr.1 to use the new file names in recording directories. - Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4 (thanks to Matthias Schwarzott). - Increased the value of MAXFRAMESIZE to better suit HD recordings (thanks to Reinhard Nissl). - Implemented full handling of subtitling descriptors (thanks to Mikko Tuumanen). |
||
|
084e16c057 |
Version 1.7.4
- Removed the '#define FE_CAN_2ND_GEN_MODULATION', since it was wrong and the flag is now in the driver, anyway. - The full-featured DVB cards are now given the TS data directly for replay (thanks to Oliver Endriss for enhancing the av7110 driver to make it replay TS data). The patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_ts_replay__1.diff implements this change in the driver. The patch av7110_v4ldvb_api5_audiobuf_test_1.diff mentioned in version 1.7.2 is still necessary to avoid audio and video glitches on some channels. - Added a typecast in cUnbufferedFile::Write() to avoid an error message when compiling on 64 bit systems. - Added some missing 'const' statements to cBitmap (thanks to Andreas Regel). - Fixed returning complete PES packets in cTsToPes::GetPes() (thanks to Reinhard Nissl). - Added a missing Detach() in cTransfer::Activate() (thanks to Marco Schller). - Added clearing the TS buffers in cDevice::Detach() (thanks to Marco Schller). - Fixed incrementing the continuity counter in cPatPmtGenerator::GetPmt() (thanks to Johann Friedrichs). - Fixed removing deleted recordings in case there is a problem. Once a recording caused a problem with removing, no others were removed any more and an ongoing recording could fill up the disk and cause other recordings to be deleted automatically (reported by Reinhard Nissl). - Added "DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to Make.config.template (thanks to Johann Friedrichs for pointing this out). Plugin authors should add this line to their Makefile or Make.config if they use file access functions that need special versions for 64 bit offsets. - The new command line option -i can be used to set an "instance id", which will be used to distinguish recordings of the same broadcast made by different instances of VDR (suggested by Frank Schmirler). This replaces the use of the "resume id" that was introduced in version 1.7.3. - Added checking mutexCurrentAudioTrack to cDevice::PlayTs() (thanks to Reinhard Nissl for pointing this out). - Fixed handling the pointer field in cPatPmtParser::ParsePmt() (thanks to Frank Schmirler - sorry I swapped two lines when adopting the original patch). - Checking the remaining packet length after processing the pointer field in cPatPmtParser::ParsePat() and cPatPmtParser::ParsePmt() (suggested by Frank Schmirler). - Checking the pointer field in cPatPmtParser::ParsePmt() only in 'payload start' packets (suggested by Frank Schmirler). - Changed cPatPmtGenerator to make sure the PMT pid doesn't collide with any of the actual pids of the channel. - Fixed cDevice::PlayTsAudio() and made cDevice::PlayTsVideo() return 0 if PlayVideo() didn't play anything. - Added an 'int' typecast to calculations involving FramesPerSecond() to avoid compiler warnings (reported by Winfried Koehler). - Fixed detecting frames for pure audio recordings. - Fixed editing PES recordings. The frame type in the index.vdr file generated for the edited PES recording is set to 1 for I-frames and 2 for all others (P- and B-frames). The exact frame type doesn't matter for VDR, it only needs to know if it's an I-frame or not. - The PAT/PMT is now only processed if its version changes (reported by Reinhard Nissl). - Fixed handling the maximum video file size (reported by Udo Richter). - Improved fast-forward/-rewind for audio recordings. The actual data is now sent to the output device, so that it can be replayed and thus cause the proper delay. For pure audio recordings the audio is no longer muted in fast-forward/-rewind mode, so that some orientation regarding the position within the recording is possible. There may still be some offset in the replay position displayed by the progress indicator when switching from fast-forward/-rewind to play mode, as well as in the current position during normal play mode. This is due to the various buffers between the player and the output device and will be addressed later. Note the new function cDevice::IsPlayingVideo(), which is used to inform the player whether there is video data in the currently replayed stream. If a derived cDevice class reimplements PlayTs() or PlayPes(), it also needs to make sure this new function works as expected. |
||
|
771986b89f |
Version 1.7.0
- Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto. Note that the channels.conf file now supports additional parameters, so you may want to make sure you have a backup of this file in case you need to go back to the previous version of VDR! - Fixed displaying transponder data when it is modified (thanks to Reinhard Nissl). - Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard Nissl). - Improved logging system time changes to avoid problems on slow systems under heavy load (suggested by Helmut Auer). - Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf Ahrenberg). - Fixed initializing the timer's flags in the cTimer copy constructor (thanks to Andreas Mair). - Fixed setting the OSD level in the 'osddemo' example (thanks to Wolfgang Rohdewald). - Increased the time between checking the CAM status to 500ms to avoid problems with some CAMs (reported by Arthur Konovalov). |
||
|
7ba8708b5b |
Version 1.5.18
- Added a missing reset of maxNumber in cChannels::Renumber() (reported by Sundararaj Reel). - Revoked the fixed change of the default character set for SI data and introduced an environment variable to control it (thanks to Ales Jurik for reporting broken SI data on the Czech/Slovak channels, which actually do follow the standard). Users who want to set the default character set to something different can do this by setting the environment variable VDR_CHARSET_OVERRIDE to something like ISO-8859-9. - Fixed a signed character used as index in cBase64Encoder::NextLine() (thanks to Tobias Grimm). - Updated the Spanish and Catalanian OSD texts (thanks to Luca Olivetti). - Fixed automatically selecting the preferred subtitle language (based on a patch from Rolf Ahrenberg). - Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk). - Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Polish OSD texts (thanks to Michael Rakowski). - Fixed formatting the name section in the VDR man pages (thanks to Tobias Grimm). - Updated the Swedish OSD texts (thanks to Magnus Andersson). - Added Russian translations to the 'skincurses' and 'pictures' plugins (thanks to Alexander Gross). - Fixed displaying the free disk space when entering the recordings menu where the last replayed recording was in a subdirectory, and pressing Back (thanks to Rolf Ahrenberg). - Fixed tuning to a live channel after a recording has been stopped using the 'Back' key. - Resetting a timer's 'pending' flag when it has ended. |
||
|
9279cb21cd |
Version 1.5.15
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Added option -i to the pictures plugin's pic2mpg to ignore unknown file types. - Revoked the switch to the "multiproto" driver in order to make a new stable version before making this big switch and forcing all users to install a driver that is not yet in the kernel source. The removed code will reappear in version 1.7.0. Note that you may need to switch back to an older version of your channels.conf file if you have already used version 1.5.14, because it introduced new parameters. - Added the new command line option --userdump to enable core dumps in case VDR is run as root with option -u (thanks to Hans-Werner Hilse). - Speeded up anti-aliased font rendering by caching the blend indexes (based on a suggestion by Martin Wache). - Fixed setting the OSD area in the pictures plugin. - Ignoring "repeat" and "release" keys in the time search entry mode during replay, to avoid inadvertently leaving it in case a key is pressed too long (suggested by Andreas Brugger). - Improved sending all frames to devices that can handle them in fast forward trick speeds, including subtitles (thanks to Timo Eskola). - The section handler is now stopped before the device is destroyed, to avoid accessing file handles after they have become invalid (thanks to Reinhard Nissl for reporting an invalid access when ending VDR, and to Deti Fliegl for a patch that was used to implement StopSectionHandler()). - Fixed setting the date in the channel display of the classic and sttng skins, to avoid unnecessary OSD access (thanks to Marco Schlüßler). - The free disk space is now also displayed in the title of the "Recordings" menu (suggested by Walter Koch). - Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because it applies to non-VPS recordings as well. - Fixed a loss of a timer's 'recording' flag after modifying it via MODT. - Fixed detecting directories in cFileNameList::Load(). - Running the thread that removes deleted recordings at a low priority to (maybe) avoid stuttering replay in case the thread is run during replay. - Limiting the length of the recording name in timers in case VDR is run with --vfat, in order to avoid names that are too long for Windows (suggested by Rolf Ahrenberg). - Using cString::sprintf() instead of asprintf() (thanks to Wolfgang Rohdewald for pointing out a possible problem if the return value is not checked). Plugin authors may want to consider doing the same. For convenience there is now an additional version of cString::sprintf() that accepts a va_list parameter. - When deleting the recording that is currently replayed, the replay is now stopped immediately (thanks to Mikko Matilainen for reporting a possible crash if the Info key is pressed after deleting the currently replayed recording). - Updated the Russian OSD texts (thanks to Oleg Roitburd). - When determining the amount of free disk space, any deleted (but not yet removed) recordings on different file systems (that are mounted under the video directory) are no longer taken into account. - When running out of disk space during a recording, only such deleted or old recordings are removed, that actually are on the video directory file system(s). This prevents VDR from accidentally deleting recordings on other file systems, which would not add any free space to the video directory. - Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks in plugins (thanks to Petri Hintukainen). - Added cStatus::TimerChange() to inform plugins about changes to the list of timers (based on a patch from Benedikt Elser). - Added new cStatus functions to the 'status' plugin. - Added missing #include <limits.h> to epg.c and menuitems.h (thanks to Ville Skyttä). - The new function cSkin::SetScrollbar() can be implemented by skins to display a scrollbar in every list menu. The 'classic' and 'sttng' skins have been changed accordingly, as well as the 'skincurses' plugin. - Introduced 'operator const void * ()' in cString to catch cases where operator*() should be used. - Fixed calculating the scrollbar sizes in the skins. |
||
|
9f42c33ef6 |
Version 1.5.1
- Added cDevice::HasCi() so that devices with Common Interface can be avoided when tuning to an FTA channel, thus preserving the CAM resources even on budget DVB cards (suggested by Petri Helin). - Fixed i18n characters for the Hungarian texts (thanks to Thomas Günther). - Now using cPipe instead of popen() in cCommand::Execute() to avoid problems with open file handles when starting background commands (thanks to Reinhard Nissl). - Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schlüßler). - Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache). - Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich). - Adapted 'libsi' to DVB-S2 (thanks to Marco Schlüßler). - Fixed handling error status in cDvbTuner::GetFrontendStatus() (thanks to Reinhard Nissl). - Shutdown handling has been rewritten (thanks to Udo Richter). - Plugins can now implement the new function WakeupTime() to request VDR to wake up at a particular time (thanks to Udo Richter). - The HUP signal now forces a restart of VDR (thanks to Udo Richter). - cThread::EmergencyExit() has been replaced by ShutdownHandler.RequestEmergencyExit(). - Several references to "button" in a remote control context have been changed to "key" (based on a report from Marko Mäkelä regarding the "Menu button closes" text). The "MenuButtonCloses" parameter in 'setup.conf' has therefore been renamed to "MenuKeyCloses", accordingly. This will result in an "unknown config parameter: MenuButtonCloses" error message in the log file, so you may want to remove that entry from your 'setup.conf' file. - Simplified the error handling in cDvbTuner::GetFrontendStatus() (based on a discussion with Reinhard Nissl). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Increased the maximum number of DVB devices to 8 (thanks to Rolf Ahrenberg). - The new Setup parameter "Channel entry timeout" can be used to customize the time since the last keypress until a numerically entered channel number is considered complete, and the channel is switched (suggested by Helmut Auer). Setting this parameter to 0 turns off the automatic channel switching, and the user will have to confirm the entry by pressing the "Ok" key. |
||
|
a2096f3beb |
Version 1.4.5
- Official release. |
||
|
287cd613a1 |
Version 1.4.4-1
- Some improvements to the man pages (thanks to Ville Skyttä). - Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter). - Made the getskyepg.pl script of the 'sky' plugin send a user agent message to the server, according to the rules at http://bleb.org/tv/data/listings. If your version of 'wget' doesn't support the -U option to set the user agent, use the new option -U of getskyepg.pl to have the information added to the URL as a query string. - The getskyepg.pl script now replaces "&" with "&". - Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl). - Fixed a typo in the change to the "Use small font" setup option in version 1.3.47 in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger). - Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas Brugger). This required the APIVERSION to be increased, so plugins will have to be recompiled. - Now calling cPluginManager::Active() only if VDR is really trying to shut down, and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for reporting that cPlugin::Active() was called too often, and to Udo Richter for some hints on how to improve this). - Replaced 'unsigned long' with 'uint32_t' and 'uint64' with 'uint64_t' to avoid problems on 64-bit machines. |
||
|
80c0452968 |
Version 1.4.1-2
- Fixed the Makefile of the 'servicedemo' plugin, so that it defines the PLUGIN macro, which allows the Make.config file to react properly when compiling the plugin (reported by Bernd Melcher). Note to all plugin developers: a plugin's Makefile *must* define the PLUGIN macro, even if it doesn't use it itself! - Added a comment regarding the PLUGIN macro to the 'newplugin' script. - Added '--vfat' to the vdr.1 man page (reported by Udo Richter). - Removed a double fdopen() in cPipe::Open() (reported by Stefan Huelswitt). - Fixed handling the running status of EPG events before the currently running one, in case they are added after the current event. - cEIT::cEIT() now calls pSchedule->SetPresentSeen() even if OnlyRunningStatus is true. - Newlines in title and short text of an EPG event are now changed into blanks only after all other fixes, because a short text might become a description. - Fixed handling network masks in the svdrphosts.conf file (thanks to Patrick Maier). - Fixed handling relative volume settings in the call to cStatus::MsgSetVolume() (reported by Norbert Wentz). - Added a missing initialization of 'mutex' in cCiMenu::cCiMenu() and removed some superfluous semicolons in ci.c (thanks to Marco Schlüßler). - Fixed handling client side termination of SVDRP connections (thanks to Frank Schmirler). - cDevice::GetDevice() now prefers any device that's already receiving and doesn't require detatching receivers (suggested by Anssi Hannula). - Fixed handling numeric keys in the channel display after switching channel groups (thanks to Andreas Regel). - Menu items derived from cMenuEditIntItem now loop though their values if they have a dedicated minimum or maximum limit (suggested by Andy Grobb). Looping is only done for normal keypresses, not for repeated ones. This allows the user to scroll the value all the way to the limit by keeping the key pressed. |
||
|
529fc7b48a |
Version 1.4.0
- Fixed handling the "Power" key in case a recording is going on and no plugin is active (thanks to Udo Richter; bug reported by Dominique Simon). - Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski). - Fixed a memory leak in handling external EPG data (thanks to Tobias Grimm). - Fixed a memory leak in closing the video file during replay (thanks to Tobias Grimm). - Updated the Italian OSD texts (thanks to Nino Gerbino and Antonio Ospite). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). |
||
|
56e5836b54 |
Version 1.3.49
- Fixed initializing 'noapiv' in the Makefile (reported by Ronny Kornexl). - Fixed extracting APIVERSION to work with older versions of 'sed' (reported by Oliver Endriss; thanks also to Udo Richter for a shorter version of the 'sed' expression). - Fixed broken APIVERSION extraction line in 'newplugin' (thanks to Oliver Endriss). - Fixed entering '0' in a cMenuEditIntItem (reported by Mirko Dölle). - Updated the Italian OSD texts (thanks to Nino Gerbino). - Added a note about adding 'INCLUDES += -I$(DVBDIR)/include' to an existing Make.config (problem reported by Markus Ehrnsperger). - Fixed handling the cPluginManager::Active() result when pressing the "Power" key (reported by Werner Färber). - Added a hint about commenting out the line '#define USE_FADVISE' in tools.c in case of problems with replaying in fast forward mode if the video directory is mounted via a Samba share (reported by Andy Grobb). - Changed the "Really restart?" prompt in the call to cPluginManager::Active() in menu.c to "restart anyway?" (suggested by Rolf Ahrenberg). - Removed the obsolete "'1' for encrypted radio channels" part from the description of the VPID in vdr.5 (reported by Alexander Hans). - Fixed tuning to the channel of a VPS timer if the device is the actual device. |
||
|
293ed4027e |
Version 1.3.47
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed a crash when setting the time transponder in the Setup menu, caused by the new 'noneString' in cMenuEditChanItem (reported by Thomas Günther). - Added NULL checks to some strdup() calls in menuitems.c (suggested by Darren Salt). - Removed the unnecessary 'value' member from cMenuEditItem. - Fixed the initial setting of the time transponder setup parameter (reported by Thomas Günther). - Fixed unnecessary Set() calls in cMenuEditIntItem::ProcessKey(). - Allowing a tolerance for symbol rate values that are off by one (thanks to Richard Lithvall). - Added VBITeletextDescriptorTag, TeletextDescriptorTag, LocalTimeOffsetDescriptorTag and PremiereContentTransmissionDescriptor to 'libsi' (thanks to Marco Schlüßler). - Using geteuid() to check whether VDR is running as user 'root' (suggested by Tobias Grimm). - Added a missing "Key$" in skincurses.c (reported by Darren Salt). - Reintroduced the log message "deleting plugin: ..." when shutting down VDR (upon request by Ville Skyttä, as in the initial patch from Christoph Haubrich). - Fixed the vdr.1 man page (a single DVB card can record and do live tv). - The preferred audio language is now automatically selected when starting replay. - Updated the Danish OSD texts (thanks to Mogens Elneff). - The new function cPlugin::Active() can be used by a plugin to indicate that it is still busy and the system should not shut down or restart (based on a patch from Sascha Volkenandt). See PLUGINS.html for details. - Fixed setting the 'Delta' parameter when calling the shutdown script with no active timer (reported by Helge Lenz). - In order to make sure that plugins are compiled with the same DVB driver header files as VDR itself, the definition of DVBDIR has been removed from the VDR Makefile. If you are using a driver version that has its header files at a location other than /usr/include/linux/dvb, you can define DVBDIR in the Make.config file (see also INSTALL). Note that if you already have a Make.config file of your own, you should add the lines ifdef DVBDIR INCLUDES += -I$(DVBDIR)/include endif to its end, as in the new Make.config.template. Any reference to DVBDIR should be removed from all plugins' Makefiles, like this: ------------------------------------------------------------ --- PLUGINS/src/hello/Makefile 2005/11/11 13:20:14 1.10 +++ PLUGINS/src/hello/Makefile 2006/04/15 11:58:46 1.11 @@ -20,7 +20,6 @@ ### The directory environment: -DVBDIR = ../../../../DVB VDRDIR = ../../.. LIBDIR = ../../lib TMPDIR = /tmp @@ -40,7 +39,7 @@ ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include +INCLUDES += -I$(VDRDIR)/include DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ------------------------------------------------------------ Thanks to Marco Schlüßler for pointing out this problem. - Implemented kNext and kPrev keys (based on a patch from Peter Juszack). See MANUAL for details. - Implemented kChanPrev (from a patch from Darren Salt). - The "Update channels" parameter in the "Setup/DVB" menu has been extended to allow updating only the PIDs (see MANUAL for details). When updating to this version of VDR, please verify that the setting is as you want it to be, because the values have been shifted. - The new APIVERSION (see config.h) now allows existing compiled plugins to be used with newer versions of VDR, as long as there have been no changes to the VDR header files since the last APIVERSION. Existing plugins' Makefiles should have all references to VDRVERSION changed to APIVERSION, like this: ------------------------------------------------------------ --- PLUGINS/src/hello/Makefile 2006/04/15 11:58:46 1.11 +++ PLUGINS/src/hello/Makefile 2006/04/16 09:03:50 1.12 @@ -28,9 +28,9 @@ -include $(VDRDIR)/Make.config -### The version number of VDR (taken from VDR's "config.h"): +### The version number of VDR's plugin API (taken from VDR's "config.h"): -VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') +APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) ### The name of the distribution archive: @@ -67,7 +67,7 @@ libvdr-$(PLUGIN).so: $(OBJS) $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ - @cp $@ $(LIBDIR)/$@.$(VDRVERSION) + @cp $@ $(LIBDIR)/$@.$(APIVERSION) dist: clean @-rm -rf $(TMPDIR)/$(ARCHIVE) ------------------------------------------------------------ - If a timer is newly created from within the "Schedule" menu, and its event is already running or has its start time within the next two minutes, it now goes directly into the "Edit timer" menu in order to allow the user to make further changes to timer parameters before the actual recording starts (inspired by Christian Wieninger's "epgsearch" plugin). - Added format check to syslog_with_tid(). - Updated the INSTALL file's section about non-VDR files in the video directory (since version 1.3.38 disk access is done in a separate thread, so the watchdog timer won't hit). - Changed the behaviour of the "Use small font" setup option to *always* use the small font if set to '2' - even if it would have been a fixed font (suggested by Ronny Kornexl). - No longer using characters 0x01 and 0x02 for mapping single quote and slash in recording names (thanks to Patrick Fischer for reporting that this was a problem with XML). The single quote is not mapped at all, and the slash is interchanged with the tilde. Existing recordings will be handled like before, so there is no need to actually rename them. - The cRemote::CallPlugin() function now has a boolean return value that tells the caller whether initiating the plugin call was successful (suggested by Reinhard Nissl). If it returns false, another plugin call is currently pending and the caller should try again later. This also means that the SVDRP command PLUG can now return an error code is the call fails. - The new function cPlugin::MainThreadHook() can be used by plugins to perform actions in the context of the main program thread. Use this function with great care and only of you absolutely have to! See also PLUGINS.html. |
||
|
78e3da813c |
Version 1.3.39
- The SVDRP command LSTT now accepts the new option 'id' to have the channels of the timers listed with their unique channel ids instead of their numbers (suggested by Matthias Schniedermeyer). - Added a missing #include <linux/unistd.h> to thread.c (thanks to Ville Skyttä). - Fixed the "plugins-clean" and "plugins-install" targets in the Makefile (thanks to Andreas Brachold). - Fixed handling "more than 3 byte" key sequences in cKbdRemote::ReadKeySequence() (thanks to Peter Bieringer). If you are using the PC keyboard as remote control input you may need to make VDR newly learn the keys by removing the remote.conf file. - To avoid problems with access rights when VDR shall run as 'root' it now skips all SetCaps() and SetUser() calls when it is started as 'root' and "-u root" is given. - Added missing i18n entry for the "Timer" button (thanks to Ville Skyttä) - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Making the "Menu" key behave consistently has not been well received by several users, so the new option "Setup/OSD/Menu button closes" can be used to get the old behavior back (which also is the default value of this option). - Dropped the default vdr user. The program now always runs under the user id it was started from, unless the '-u' option is given and it was started from the 'root' user. If you want to have a default vdr user, you can activate and adjust the "VDR_USER = vdr" line in your Make.config file (from the original patch by Ludwig Nussel). - Key macros can now be defined for all non-modeless keys (suggested by Mirko Dölle). - Adjusted the "KEY MACROS" section of vdr.5 to the new plugin calling mechanism introduced in version 1.3.32. - Removed the now obsolete "ca.conf" section from vdr.1 (thanks to Ville Skyttä). - Added missing description of L and R circular polarization to 'diseqc.conf'. - Added a note about "modprobe capability" to INSTALL (suggested by Patrick Cernko). - Fixed canonicalizing the file name in the SVDRP command GRAB to allow full path names (thanks to Stefan Huelswitt). - Added a missing '-' to the example for viewing a grabbed image on a remote host (reported by Philippe Gramoullé). - Made the "What's on now/next?" menus a lot faster by storing a pointer to each channel's schedule in the cChannel data. - Made the log messages regarding lost lock of devices "info" instead of "error" (suggested by Andreas Brachold). - The SVDRP command GRAB allows file names without extension again (suggested by Stefan Huelswitt). - Pressing '0' in the "Schedule" menu now rotates through displaying "This event on this channel", "This event on all channels" and "All events on all channels". This can be used to find reruns of a given show, or the episodes of a series. Note that if there are many channels in your channels.conf, displaying the "All events on all channels" page may take a while. - The status markers in the "Schedule" menu are now only updated if a submenu is closed in which a timer has been modified, which speeds up closing submenus. - Now only writing Dolby Digital tracks into the 'info.vdr' file of a recording if Setup.UseDolbyDigital is true (suggested by André Weidemann). - Added a leading '0' to the day in the DayDateTime() function (thanks to Rolf Ahrenberg). - No longer displaying color buttons in the recording info menu if it has been invoked from a player (reported by Jürgen Schilling). |
||
|
da948a50d2 |
Version 1.3.38
- Fixed handling second audio and Dolby Digital PIDs for encrypted channels (was broken in version 1.3.37). - Improved TS/PES conversion to better handle lost TS packets (thanks to Reinhard Nissl). - Limited the frequency of log messages from the cRepackers. - Now using the gettid() syscall to get a thread's pid, so that we get a useful value on NPTL systems (suggested by Johannes Stezenbach). - Fixed the RCU remote control handling to avoid problems with NPTL (thanks to Andreas Share for reporting a lockup with the RCU on NPTL systems). - When displaying the amount of free disk space, the space consumed by recordings that have been "deleted" but not yet actually "removed" is now taken into account (suggested by Christian Vogt). - Now avoiding unnecessary disk access when checking if there are deleted recordings that need to be removed (reported by Carsten Koch). - Fixed handling the DELETEDLIFETIME when removing deleted recordings. Now a deleted recording is retained at least DELETEDLIFETIME seconds before actually removing it. The value of DELETEDLIFETIME has been changed to 300. So after (possibly inadvertently) deleting a recording, there will be at least 5 minutes in which it can be recovered (unless a new recording immediately requires the disk space). The count starts again at 0 every time VDR is started. - Fixed a possible crash when displaying the "Low disk space!" message from a background thread (thanks to Christof Steininger). - Fixed handling OSD areas that have invalid sizes (thanks to Marco Schlüßler). - Added a mutex to AssertFreeDiskSpace() to make sure calls from foreground and background threads won't interfere. - The main menu now dynamically updates its contents in case an instant recording or replay stops, etc. - The version number of EPG events is now also stored in the epg.data file (thanks to Kendy Kutzner). - EPG events that are no longer in the currently broadcasted data stream are now automatically deleted. - Removed an invalid access to Event->schedule in cSchedule::DelEvent(). - Modified cSchedule::Cleanup() (events are always sorted by time). - Schedules are now cleaned up once every hour (not only at 05:00). - The "Schedule" and "What's on now/next?" menus are now updated if a timer is set or modified. - cTimer no longer has its own 'schedule' member, it rather uses that of the event it has been set to. - The "Red" button in the "Schedule", "What's on now/next?" and "Event" menus now immediately creates a timer for the selected event and marks it with 'T'. If the event is already marked with 'T', the "Red" button opens the "Edit timer" menu for that timer. - Removing deleted recordings is now done in a separate thread. - Dropped the unused "stop recording on primary interface" stuff. - Converting a grabbed image to JPEG is now done with the new function RgbToJpeg() (see tools.h). - The SVDRP command GRAB now determines the image type (JPEG or PNM) from the extension (".jpg", ".jpeg" or ".pnm") of the given file name. The explicit 'jpeg' or 'pnm' parameter is still accepted for backward compatibility, but has no meaning any more. - The function cDevice::GrabImage() no longer writes the grabbed image to a file, but rather returns a pointer to the image in memory. The wrapper function cDevice::GrabImageFile() can be used to write the grabbed image directly to a file. Plugins that used the old version of cDevice::GrabImage() need to be adapted to the new interface. - The new class cBase64Encoder (see tools.h) can be used to encode data in base64 (thanks to Bob Withers for publishing his Base64 class). - The SVDRP command GRAB now writes the image data to the SVDRP connection (encoded in base64) if the given file name consists of only the file extension (".jpg", ".jpeg" or ".pnm"), or if only "-" is given as file name (based on a suggestion from Darren Salt). A simple way of viewing a grabbed image on a remote host is: svdrpsend.pl -d <hostname> 'grab -' | sed -n -e 's/^216-//p' -e '1ibegin-base64 644 -' -e '$a====' | uudecode | display - - The new command line option '-g' must be given if the SVDRP command GRAB shall be allowed to write image files to disk. The parameter to this option must be the full path name of an existing directory, without any "..", double '/' or symlinks. By default, or if "-g- is given, grabbing to files is not allowed any more because of potential security risks. - Modified the way the SVDRP command GRAB writes the grabbed image to a file to avoid a security hole (CAN-2005-0071, reported by Javier Fernández-Sanguino Peña): + The file handle is now opened in a way that it won't follow symbolic links (suggested by Darren Salt). + The given file name is now canonicalized, so that it won't contain any ".." or symlinks (suggested by Darren Salt). + Grabbing to files is limited to the directory given in the the command line option '-g'. By default grabbing to files is not allowed any more. - Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos). - Changed all "illegal" to "invalid" in error messages (there's nothing "illegal" in VDR ;-). - When started as user 'root' VDR now switches to a lesser privileged user id, keeping the capability to set the system time (based on a patch from Ludwig Nussel). By default the user id 'vdr' is used, which can be changed through the new command line option '-u'. Note that for security reasons VDR will no longer run as user 'root' (unless you explicitly start it with '-u root', but this is not recommended!). The 'runvdr' script has been changed to use the '-u' option. - Changed the API of the functions cStatus::Recording() and cStatus::Replaying(), so that they can provide the full file name of the recording. Plugins that use these (or the related cStatus::Msg...() functions) need to be adapted (suggested by Andreas Brugger). - The DVB devices now retune (and, if applicable, resend the DiSEqC data) if the lock is lost (based on a patch from Reinhard Nissl). - Fixed handling multi byte key sequences in cKbdRemote (based on a patch from Jürgen Schneider). - Removed unused variables in skinclassic.c and skinsttng.c (thanks to Marco Schlüßler). - Made the static cControl functions thread safe (thanks to Patrick Fischer). - Fixed initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid warnings with g++ 4.1.0 (thanks to Ville Skyttä). - Fixed incrementing the 'state' variables in the repacker classes in remux.c to avoid warnings with g++ 4.1.0 (reported by Ville Skyttä). - The Makefile now reports a summary of failed plugins (thanks to Udo Richter). - The cTimer constructor can now take an optional cChannel (suggested by Patrick Fischer). - Fixed setting the main thread id if VDR is running as a daemon. - Fixed handling TS packets in cTS2PES (thanks to Reinhard Nissl). - Added cTimer::SetPriority() to set a timer's priority (suggested by Kendy Kutzner). - Added cMenuEditStrItem::InEditMode() (suggested by Christian Wieninger). - Now using FE_READ_STATUS to read the current frontend status (suggested by Holger Wächtler). - The "Menu" key now behaves consistently. If there is anything on the OSD, it is closed when the "Menu" key is pressed, and if there is nothing on the OSD, the "Menu" key opens the main menu (suggested by Luca Olivetti). - The new option "Setup/OSD/Timeout requested channel info" can be used to turn off the automatic timeout of the channel display in case it was invoked by a press of the "Ok" key (suggested by Thiemo Gehrke). - A message is now given when an instant recording is started (suggested by Helmut Auer). Actually the code was already there, just commented out - don't remember why it wasn't active... - Removed an obsolete "Summary" text from i18n.c and preceded all key definition texts with "Key$" to avoid duplicates (reported by Lucian Muresan). - Preceded all button texts with "Button$". - Removed obsolete "Eject", "Language" and "scanning recordings..." texts. - Added missing #include "thread.h" to dvbspu.c (reported by Gavin Hamill). - Disabled the use of "fadvise" in cUnbufferedFile because there have been several reports that it causes more problems than it solves (suggested by Petri Hintukainen). If you want to use "fadvise", you can activate the line //#define USE_FADVISE in tools.c. - Removed unused 'offset' member from cOsdItem. - In the "Channels" menu the numeric keys now position the cursor to the channel with the given number (see MANUAL, section "Remote Control Keys", note (3) for details). - The "Mark/Move" function in the "Channels" menu now also works in the non-numeric sort modes. - The default cOsdObject::Show() now automatically calls cOsdMenu::Display() if this is a menu. - The new "Info" key brings up information on the currently viewed programme or recording. For a live programme this is the same as "Schedule/Ok", i.e. the description of the current EPG event. For a recording this is the same as shown by the "Info" button in the "Recordings" menu. Plugins that implement players can overwrite their cControl::GetInfo() function to show their own info (see PLUGINS.html for details). Pressing the "Info" key again while the info is displayed will close the OSD. In order to assign this new key to an existing remote control setup, the remote.conf file needs to be deleted and VDR has to be restarted to go through the process of learning the remote control keys. - Any cReceivers still attached to a cDevice when that device switches to a different transponder are now automatically detached (suggested by Patrick Fischer). - The "flags" of a timer are now handled as an unsigned integer value. In order to do this, the interface of cMenuEditBitItem also had to be changed. - In string entry fields (like, e.g., the file name of a recording) the characters can now be entered by pressing the numeric keys, the same way as on a telephone keypad (based on the "Easy Input" patch from Marcel Schaeben). - Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch from "single shot" to "weekly", followed by the "Right" key (reported by Andreas Böttger). - The file 'ca.conf' is obsolete and has been removed. - Revised all descriptions regarding CICAM. - Adapted c(Dvb)Device::ProvidesCa() to the dynamic CA handling. - Added a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack() (thanks to Reinhard Nissl). - Added a SleepMs() in cRecorder::Action() to avoid a busy loop (thanks to Ingo Schneider). - Cleaned up some trailing white space. |
||
|
99e3c093f4 |
Version 1.3.35
- Updated 'sources.conf' (thanks to Philip Prindeville). - Now using daemon() instead of fork() to run VDR in daemon mode (thanks to Enrico Scholz). - Fixed a possible endless loop in a menu with no selectable items if Setup.MenuScrollWrap is true (thanks to Enrico Scholz). - Making sure no item is displayed as "current" if Up, Down, Left or Right is pressed in a menu with no selectable items. - Added '__attribute__' to functions that use printf() like parameters (thanks to Darren Salt). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns). - Added more error messages and line numbers when reading EPG data and info.vdr (thanks to Peter Bieringer). - Updated the Danish OSD texts (thanks to Mogens Elneff). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported by Marco Schlüß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). |
||
|
4c5de28883 |
Version 1.3.28
- Added a sleep in cDvbPlayer::Action() in case there is no data to send to the device, which avoids a busy loop on very fast machines (thanks to Martin Wache). - Modified the description of cDevice::Poll() to avoid misunderstandings. - Updated Croatian language texts (thanks to Drazen Dupor). - cDvbPlayer::Goto() now appends a Sequence End Code to get the image shown immediately with softdevices (thanks to Reinhard Nissl). - Reactivated cVideoRepacker in remux.c after some fixes (thanks to Reinhard Nissl). - Removed the fix for handling VPS timers, so that they only record if the event they are assigned to actually has the given VPS time. This has caused repeating VPS timers to stop recording prematurely. - Avoiding duplicate components in EPG events when reading epg.data or in the PUTE SVDRP command (thanks to Olaf Titz for reporting this one). - Added the command line options '--lirc', '--rcu' and '--no-kbd' to allow setting the remote control at runtime (based on a patch by Darren Salt). - Now checking whether timers or channels are currently being edited via the menu before making changes through SVDRP (thanks to Andreas Brugger for reporting a problem with this). - Files and directories are now created with rights according to the shell's umask settings (thanks to Andreas Brachold). - Fixed the cChannel copy constructor (thanks to Marcel Wiesweg for pointing out a problem with it). - Fixed an out-of-bounds memory access with audio language ids (thanks to Matthias Lenk for reporting, and Udo Richter for suggesting a fix). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Added missing storing of the MenuScrollPage parameter (thanks to Frank Krö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). |
||
|
fb5cccb2df |
Version 1.3.18
- Removed an unused variable from cTimer::GetWDayFromMDay() (thanks to Wayne Keer for reporting this one). - Some more changes to the 'childTid' handling in cThread (based on suggestions by Stefan Huelswitt). - Fixed the spelling of 'canceling' (thanks to Wayne Keer for reporting this one). - Re-introduced a sleep to cDvbPlayer::Action() to avoid high CPU load in still picture mode (thanks to Reinhard Nissl for reporting this one). - Fixed a possible race condition in generating the DVB device names (thanks to Rainer Zocholl for reporting this one). - Changed the way PES packets are played to allow replay of AC3 sound over the full featured DVB cards (partially based on a patch from Werner Fink). + The new function cDevice::PlayPes() is now called with the complete PES data stream and calls PlayVideo() and PlayAudio() as necessary. + cDevice::PlayVideo() is now only called with actual video PES packets. + cDevice::PlayAudio() is now called with the actual audio PES packets, which can be either "normal" audio or AC3 data. You need at least firmware version 0x261d to replay AC3 sound over a full featured DVB card. This function now has an 'int' return value. + PlayAudio() of derived cDevice classes shall no longer call the base class function. It shall just play the given data as audio. + cPlayer::PlayVideo() and cPlayer::PlayAudio() are now obsolete and have been replaced with cPlayer::PlayPes(). + All StripAudioPackets() functions are now obsolete. The functionality has been moved into cDevice::PlayPes(), where only the video and audio packets that are actually required will be processed. + All audio track handling is now done by cDevice; cTransfer and cDvbPlayer no longer care about audio tracks. cPlayer, however, still has the virtual hooks for audio track handling in order to allow plugins to implement players that have their own idea about this. + cChannel::[AD]pid[12]() have been replaced with cChannel::[AD]pid(int i) to allow access to all available PIDs. - Escaped the '-' and 'ö' 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. |
||
|
eb52e3004a |
Version 1.3.11
- In order to avoid problems on NPTL systems, VDR now checks for the presence of NPTL at program start, and if it is, exits and tells the user to do 'export LD_ASSUME_KERNEL=2.4.1' before starting VDR. - Revisited the "Fixed missing audio after replaying a DVD" change because it introduced a sound disturbance when switching between channels on the same transponder (thanks to Marco Schlüßler). - In order to avoid problems on UTF-8 systems, VDR now checks for the presence of UTF-8 at program start, and if it is, exits and tells the user to turn off UTF-8 before starting VDR (thanks to Ludwig Nussel for pointing out a problem with systems that are set to use UTF-8). There are also problems in case the video partition is mounted with "iocharset=utf8" (thanks to Jörg Knitter for reporting this one). Please also read the "IMPORTANT NOTES" section in the INSTALL file! - Some changes to the SPU decoder interface (thanks to Sven Goethel). - Some improvements in cOsd creation (thanks to some suggestions by Jouni Karvo). - Fixed calculating the OSD width and height (thanks to Olaf Henkel for reporting a problem with long event texts in the "Classic VDR" skin). - Fixed switching channels while an encrypted channel is being recorded, because the channel was switched if the new channel was on the same transponder and was a radio channel or an unencrypted channel (thanks to Martin Dauskardt for reporting this one). - No longer using the external 'find' command to scan the video directory for recordings (based on a suggestion by Mirko Dölle). - The list of recordings is now kept statically in memory to avoid long delays when opening the "Recordings" menu. As a side effect, external modifications to the video directory are no longer immediately reflected in the "Recordings" menu. If a plugin manipulates the video directory in any way, it can call the function Recordings.TriggerUpdate() to trigger an update of the list of recordings. If some external tool manipulates the video directory, it can touch the file '.update' in the video directory to trigger an update of the list of recordings. - Fixed a memory leak in theme description handling (thanks to Sascha Volkenandt). - Added cDevice::Flush() to make sure that all data in the video card's buffers has been processed (thanks to Reinhard Nissl). Currently this is not yet actually implemented for FF DVB cards. - Fixed handling the color button texts in cMenuEditStrItem (thanks to Maynard Cedric for reporting this one). - Fixed the description of cRingBufferLinear (thanks to Ludwig Nussel for pointing out this one). - Fixed cRingBufferLinear::Get() in case the buffer wraps around (thanks to Ludwig Nussel for reporting this one). |
||
|
c80a53ff6e |
Version 1.3.7
- Fixed a memory leak in thread handling when using NPTL (thanks to Jon Burgess). - Fixed handling Setup.RecordDolbyDigital, which was broken since version 1.1.6. - Fixed handling text lengths for itemized EPG texts (thanks to Marcel Wiesweg). - Fixed the help for LSTE and LSTR (was broken in 1.3.6). - Improved iso8859-7 fonts (thanks to Dimitrios Dimitrakos). - Added some 3-letter language codes (thanks to Marcus Mönnig). - Added language code handling to the subtitling descriptor in 'libsi' (thanks to Pekka Virtanen). - Moved several menu item classes from menu.c to menuitems.[hc] to make them available for plugins. - The epg2html.pl script now handles '|' in description texts. - The new setup option "OSD/Use small font" can be used to control the use of the small font (see MANUAL for details). - Swapped osd.[hc] and osdbase.[hc] to have the virtual OSD base class named cOsd. Plugins may need to adjust their #include statements. - Colors are now given as AARRGGBB instead of AABBGGRR. The values are mapped to the driver's (wrong) sequence in dvbosd.c (this should really be fixed in the driver, together with the endian problem). - The new OSD setup parameters "Left" and "Top" can be used to define the top left corner of the OSD. - The OSD size parameters are now in pixel (as opposed to formerly characters). When reading a 'setup.conf' file from an older version of VDR, the OSDwidth and OSDheight values will be converted to pixel automatically. - The OSD is now fully device independent. See the comments in VDR/osd.h and the description in PLUGINS.html for information on how a plugin can implement an OSD display on arbitrary hardware. - The OSD (actually its cBitmap class) can now handle XPM files. There are several XPM files in the VDR/symbols directory which can be used by skins (some of these have been taken from the "elchi" patch). See VDR/skinsttng.c for examples on how to use these. - Due to the changes in the OSD handling the DEBUG_OSD option for a textual OSD has been dropped. There will be a plugin that implements a skin with this functionality later. - The entire OSD display can now be implemented via "skins". See VDR/skins.[hc], VDR/skinclassic.[hc], VDR/skinsttng.[hc] and PLUGINS.html for information on how a plugin can implement its own skin. By default VDR comes with a "Classic" skin that implements the OSD display known from previous versions, and the new skin named "ST:TNG Panels", which is also the default skin now. The actual skin can be selected through "Setup/OSD/Skin". - The colors used in a skin can now be configured using "themes". See PLUGINS.html for information on how a skin can make use of themes, and man vdr(5) for the structure of a theme file. The actual theme to use can be selected through "Setup/OSD/Theme". - Added Croatian language texts (thanks to Drazen Dupor). NOTE: there is apparently a problem with the newly introduced iso8859-2 font, because as soon as Setup/OSD/Language is set to Croatian (currently the last one in the list) everything freezes and the vdr processes have to be killed with -9 and the driver needs to be reloaded. Maybe somebody else can find out what's going wrong here... - Added missing NULL checks when accessing sectionHandler in device.c (thanks to Pekka Virtanen). - Fixed setting the time from the DVB data stream (thanks to Helmut Auer for pointing out a frequency/transponder handling mixup). This now also takes the actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and set the "Set system time" and "Use time from transponder" parameters accordingly (this is necessary even if you have already set them before!). |
||
|
d072cc6da2 |
Version 1.2.0pre1
- Some corrections to the French OSD texts (thanks to Olivier Jacques). - Fixed some missing commas in i18n.c (thanks to Dimitrios Dimitrakos for reporting this problem). - Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf Ahrenberg). - Completed the Italian OSD texts (thanks to Antonio Ospite). - Fixed breaking off replay in case the user hits "Play" or "Pause" too soon after going into "Pause live video" mode (thanks to Karim Afifi for reporting 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). |
||
|
af2a135212 |
Version 1.1.30
- 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. |
||
|
fe9499ba90 |
Version 1.1.17
- Added new entries to 'ca.conf'. - Fixed closing unused PID handles (thanks to Stefan Schluenss for reporting this one). - Added more examples to 'diseqc.conf' (thanks to Oliver Endriss). - Fixed disabling multiple recordings on a single DVB card (comment out the definition of the macros DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and DO_MULTIPLE_RECORDINGS in dvbdevice.c). - Plugins can now have their very own OSD setup in the object they return from a call to cPlugin::MainMenuAction(). In order to implement this, the return type of cPlugin::MainMenuAction() had to be changed from (cOsdMenu *) to (cOsdObject *). So in case you are compiling an existing plugin with this version of VDR and you get an error message, simply change cOsdMenu to cOsdObject in the plugin's source for the MainMenuAction() function. Plugin authors who have so far (ab)used the cControl mechanism to implement their own raw OSD should take a look at the new demo plugin 'osddemo'. It implements a very primitive game that shows how a plugin can have its own raw OSD. Especially look into cLineGame and see how it implements the Show() function. See also the chapter on "User interaction" in PLUGINS.html. - Added three new fields to the lines in 'channels.conf': NID, TID and RID. NID and TID are the Network and Transport Stream IDs, respectively. RID is an additional ID that can be used to tell apart channels that would otherwise be indistinguishable. This is typically the case with radio channels, which may have the same NID, TID and SID, but different "radio IDs". This new field is therefore called RID ("radio ID"). Currently NID and TID are not yet used by VDR and should always be 0. The RID is actually used when building the "unique channel ID", so if you have channels in your 'channels.conf' file that cause error messages when loading, you can set the RIDs of these channels to different values. When reading an old 'channels.conf' these new fields will be automatically initialized to 0 and once the file is written back to disk they will be appended to the channel definitions. Thanks to Régis Bossut for pointing out that with some providers the channels can only be distinguished through the RID. - The "unique channel ID" now contains an optional 5th part (the RID). See man vdr(5). - Updated 'channels.conf.cable' and made some channels unique using the new RID (thanks to Andreas Kool for pointing out the problems). - Made some channels unique in 'channels.conf.terr' using the new RID. - Extended the '-l' option to allow logging to LOG_LOCALn (n=0..7) by writing, for instance, '-l 3.7' (suggested by Jürgen Schmidt). - Now deleting stale lock files if they have a time stamp that is outside the window 'now +/- LOCKFILESTALETIME'. This improves things in cases where the system time makes far jumps, so that a lock file might end up with a time stamp that lies in the distant future (thanks to Oliver Endriss). |
||
|
ae8a947367 |
Version 1.1.0
- Begin of the 1.1 development branch. THIS IS NOT A STABLE VERSION! The current stable version for every day use is still the 1.0 branch. - First step towards a universal plugin interface. See the file PLUGINS.html for a detailed description. The man page vdr(1) describes the new options '-L' and '-P' used to load plugins. This first step implements the complete "outer" shell for plugins. The "inner" access to VDR data structures will follow. - The VDR version number is now displayed in the title line of the "Setup" menu. |
||
|
c9a5d8ea53 |
Version 1.0.0
- Fixed a problem with wrong EPG data in the Schedules menu (thanks to Tobias Kerner, problem was initially reported by Michel Moster, but somehow I had misplaced his message...). - Added Spanish language texts (thanks to Ruben Nunez Francisco). - Fixed resetting the "First day" timer parameter once the timer actually starts recording. - Fixed the still picture workaround in case the progress display is active (thanks to Gerald Raaf). - Fixed a problem with accessing the epg.data file before it is fully written (thanks to Thilo Wunderlich for reporting this one). - Now the EPG scan skips channels that have their 'Ca' parameter explicitly set to an other DVB card (suggested by Sergei Haller). - Fixed a possible hangup when reading a broken epg.data file (thanks to Henning Holtschneider for pointing this one out). - Fixed a bug in the editing process in case a previously edited file with the same name was manually deleted on a system with more than one video directory (thanks to Dirk Wiebel for reporting this one). |
||
|
262327908d |
Version 1.0.0pre5
- Fixed restoring CICAM setup values for a fourth DVB card (thanks to Klaus Wolf). - Completed internationalization of OSD texts (thanks to Hannu Savolainen, Arnold Niessen, Paulo Lopes, Jean-Claude Repetto, Alberto Carraro, Matjaz Thaler and Truls Slevigen). - Improved file I/O in case of EINTR, which may occur e.g. with heavy system load (thanks to Werner Fink). - Now writing the title of a recording into the 'summary.vdr' file. - Workaround for displaying still frames with the unpatched LinuxDVB driver (if anybody ever finds out why the unpatched driver doesn't display VDR's still frames, please let me know). - When executing a command from the "Commands" menu, the title of that command is now immediately shown in the status line (followed by "...") to give the user some feedback that the command is being executed, which is especially important if this takes some time. - Fixed scrolling the "Channels" menu in case the cursor ends up on a group delimiter (thanks to Bernd Zierath for helping to debug this one). - Added manual pages vdr(1) and vdr(5) (which made the FORMATS file obsolete). - New command command line option '-V' to display the VDR version. - Adjusting column width for channel numbers in case there are more than 999 channels. - Checking the return value of '...FileRady...' calls in dvbapi.c for better performance under heavy system load. - New 'make' target 'install', which copies the manual pages and executables to their appropriate system locations and creates the /video directory if it doesn't exist yet. - Automatic hotkey assignment is now suppressed if the first entry in commands.conf starts with a digit in the range '1'...'9', followed by a blank. - Fixed a bug in switching back the replay mode display in time shift mode (thanks to Achim Lange for reporting this one). - Fixed a bug in the 'First day' timer parameter for timers that record over midnight. - Added units to Setup parameters. - Changed time entry in the 'Jump' command during replay, so that it is filled up from right to left. - Now using statfs() to determine the amount of free disk space, which avoids the use of an external 'df' command (thanks to Ruben Nunez Francisco). - Fixed skipping the next hit of a repeating timer (thanks to Rainer Zocholl for reporting this one). - Fixed a bug when a timer records over midnight of a day that had a change in Daylight Saving Time. - Added Polish language texts (thanks to Michael Rakowski). - Fixed a bug in parsing group separators in channels.conf (thanks to Henning Holtschneider for reporting this one). - Changed the default 'Ok' key when using the PC keyboard from '5' (in the numeric block) to 'Enter', because the '5' key didn't work on keyboards with the F-keys on top. - Fixed a bug in the EPG bugfix mechanism if the extended description is shorter than 3 characters (thanks to Andreas Schultz). |