diff --git a/UPDATE-2.0.0 b/UPDATE-2.0.0 new file mode 100644 index 00000000..30f3cbbd --- /dev/null +++ b/UPDATE-2.0.0 @@ -0,0 +1,408 @@ +TODO: /// PRELIMINARY DRAFT /// + +This is a summary of the changes in VDR 2.0.0 since the last stable +version 1.6.0. It only contains things that are of actual importance +to the user and doesn't mention the many fixes and improvements that +have been made "behind the scenes". + +See the file HISTORY for a detailed list of all changes. + +Satellite Channel Routing: + +- VDR now supports "Satellite Channel Routing" (SCR) according to EN50494 (based on + the "unicable" patch). + 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". + +Device Bonding: + +- 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. + +Subtitles: + +- Implemented handling of HD resolution subtitles according to v1.3.1 of + ETSI EN 300 743, chapter 7.2.1. +- Fixed handling DVB subtitles and implemented decoding textual DVB subtitles. + +Plugins: + +- Added cDevice::NumProvidedSystems() to PLUGINS.html (was missing since it had + been implemented). +- The 'sky' plugin is no longer part of the VDR source. +- 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. +- Implemented cDeviceHook to allow plugins more control over which device can + provide which transponder. +- Plugins can now define new sources. In order to implement this, the following + changes were made: + + The transponder parameter string is no longer interpreted by cChannel, but rather + stored as is and used only by the respective device. That way plugins can use a + channel's parameter string to store arbitrary data (see vdr.5). + + The new class cSourceParam can be used by plugins to define new sources, and to + implement OSD items that will be used in the channel editor for editing the source + specific parameters of a channel (see dvbdevice.c for an example of how this is + done for the default DVB devices). + + Purely numerical values are no longer accepted in the 'source' parameter of a + channel. + This obsoletes the PLUGINPARAM patch. +- The dvbhddevice plugin is now part of the VDR distribution archive. +- The pic2mpg script of the 'pictures' plugin now generates HD images. + The old SD version is still available as pic2mpg-sd. +- The dvbsddevice plugin now supports the new option --outputonly, which disables + receiving on SD FF devices and uses the device only for output. +- 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". +- Removed the obsolete function cEITScanner::UsesDevice(). If a plugin has used this + function to find out whether a call to its cStatus::ChannelSwitch() function was + due to a live channel switch, it can use that function's new parameter LiveView. + Any plugins that implement cStatus::ChannelSwitch() need to add the parameter + 'bool LiveView' to that function. +- Added a new plugin interface for implementing EPG handlers. + + A plugin can implement an EPG handler by creating an object derived from + cEpgHandler and implementing the necessary member functions. + + The special handling of events with table id 0x00 has been dropped. + For backwards compatibility EPG events with table ids lower than 0x4E will + be treated as if they had a table id of 0x4E, and the new plugin 'epgtableid0' + can be used to have them handled like in previous versions. + + The default table id for a newly created cEvent has been changed to 0xFF, + which is higher than any normal table id that is broadcast in the EIT data. + See PLUGINS.html, section "Electronic Program Guide" for more information. + +Skins: + +- The 'sttng' skin now displays two colored bars at the bottom of the channel display, + indicating the strength (upper bar) and quality (lower bar) of the received signal. + The number to the left of these bars indicates the actual device the current + channel is being received with. +- Skins can now inquire the menu category for which their cSkinDisplayMenu is currently + being used. This can be done either through a call to cSkinDisplayMenu::MenuCategory() + or by reimplementing cSkinDisplayMenu::SetMenuCategory(). This information allows a + skin to use special icons or decorations for the various types of menus in VDR. +- The new member function cSkinDisplayReplay::SetRecording() allows a skin to display + more information about the currently played recording. +- The new skin "LCARS" is an enhanced version of the "ST:TNG" skin (which is still + there in its original layout, for those who don't like the LCARS skin, or can't use + it due to OSD limitations). The LCARS skin utilizes the new "menu category" feature + to display additional information on the main menu page. It shows upcoming timers + and the system's devices, as well as which device is recording which timers. The + upper pane of the main menu displays the programme data in live and replay mode, + and a progress bar. An indicator on the right side of the device list shows which + device is currently used for live viewing, and whether it is in transfer mode. + The individual device displays show the device number, the device type, which CAM + (if any ) is currently assigned to the device, and the signal strength and quality. + On the left side of the OSD there is a permanent display of the current date and + time, the disk usage and the system load. + "LCARS" is the new default skin of VDR. It requires at least a 4bpp (16 color) full + screen OSD, but you can still operate it if your OSD can handle only fewer colors + (in which case you may want to switch to the "ST:TNG" or "Classic VDR" skin). + +Remote control: + +- Changed the default location for the LIRC socket to /var/run/lirc/lircd. +- 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. + 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. +- Added user defined key kUser0. + +Devices: + +- 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. + 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! +- cDvbDevice now uses the FE_CAN_2G_MODULATION flag to determine whether a device + can handle DVB-S2. +- 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. +- 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. +- Added support for ATSC devices. This obsoletes the ATSC patch. +- The new functions cDevice::SignalStrength() and cDevice::SignalQuality() can be + used to determine the signal strength and quality of a given device. +- The new function cDevice::ProvidesEIT() is used to determine whether a device can + provide EIT data and will thus be used in cEITScanner::Process() to receive EIT + data from the channels it can receive. Note that by default it is assumed that + a device can't provide EIT data, and only the builtin cDvbDevice returns true + from this function. +- Added support for devices with more than one delivery system per frontend. + This requires a DVB driver with version 5.5 or higher that can handle the + DTV_ENUM_DELSYS call. With older drivers it will fall back to one delivery + system per frontend. +- Added support for handling DVB-T2 transponders. This requires a DVB driver + with version 5.3 or higher that can handle the DTV_DVBT2_PLP_ID call (which has + been renamed to DTV_STREAM_ID in DVB API 5.8). +- The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory + instead of looping through adapter/frontend numbers. This allows for "holes" in the + device numbering. +- 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. +- The new function cDevice::DeviceName() returns a string identifying the name of + the given device. +- The new function cDevice::DeviceType() returns a string identifying the type of + the given device. +- The new function cDevice::ReadFilter() can be used by devices to implement their + own way of retrieving section filter data. +- 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. + +DiSEqC: + +- Added device definitions to the diseqc.conf file format, so that certain satellite + positions can be limited to a given list of devices. + This obsoletes the SOURCECAPS patch. +- 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". + +EPG: + +- The epg.data file is now read in a separate thread to make the startup process + faster in case the file is very large. +- Moved cleaning up the EPG data and writing the epg.data file into a separate + thread to avoid sluggish response to user input on slow systems + +OSD: + +- The OSD and font sizes are now defined in percent of the actual video display + size. The maximum OSD size has been raised to 1920x1080, to allow full + screen OSD on HD systems. +- The OSD size is now automatically adjusted to the actual video display + (provided the output device implements the GetOsdSize() function). +- The OSD now has full TrueColor support. There can be several "pixmaps" that can + be overlayed with alpha blending. All existing skins should work out of the box + with the TrueColor OSD - the only exception being cOsd::GetBitmap(). Since the + TrueColor OSD doesn't use bitmaps, this function will return a dummy bitmap, which + may not be what the plugin expects. As long as this bitmap is only used for setting + the palette, there is no problem. However, any other operations on this bitmap will + have no effect. See the description of the cPixmap functions in osd.h for details + about the new functionalities. + The "ST:TNG Panels" skin has been enhanced to automatically use the TrueColor OSD + if available. + The "osddemo" plugin has been extended to show some of the possibilities of the + TrueColor OSD if it is run on a system that actually provides TrueColor support. +- The Audio and Subtitles options are now available through the Green and Yellow + keys in the Setup/DVB menu. This is mainly for remote controls that don't have + dedicated keys for these functions. +- The Recordings menu now displays the length (in hours:minutes) of each recording + Note that the "new" indicator has been moved from the recording time to the length + column. This new format is also used by the SVDRP command LSTR, so in case you have + an application that parses the LSTR output, you will need to adjust it to the new + format. +- The new setup option "Replay/Show remaining time" can be used to switch between + showing the total length or the remaining time of the recording that is currently + replayed. +- The replay progress display is now turned on whenever a mark is toggled (not + only when one is set). +- The Green button in the "Edit timer" menu can now be used to toggle between single + shot and repeating timers. This is the same as pressing '0' when the "Day" field + is selected, but it works at any time (and is more obvious). +- When estimating the remaining disk space (in hours), the average data rate of all + existing recordings is now taken into account. If this value can't be determined, + the previous value of 25.75 MB/min is taken. +- The disk usage is no longer automatically added to the title of the main and + "Recordings" menus. This has always been a mekeshift solution and it is now up + to the individual skin if, where and how it wants to display this information. + A skin can use the new cVideoDiskUsage class to implement such a display. For + compatibility, the default skins "Classic VDR", "ST:TNG Panels" and "Text mode" + (i.e. curses) have been changed to behave like before. Other skins may want to + display the disk usage in totally different ways. +- A cOsdMenu can now handle skins that display different numbers of items in the + various menu categories. +- OSD and skin are now reinitialized after a plugin setup page has been confirmed, + to have them react immediately in case any change to a plugin's setup parameter + has an effect on the OSD. +- Now making sure that the "small font" is never larger than the "osd font". +- Within the "Recordings" menu, pressing the '0' key now toggles sorting between + "by time" and "by name". The selected sort mode is stored separately for each + folder (provided you have write access to that folder). + If a folder is newly created by a repeating timer, the sort mode for that + folder is initially set to "by time". +- The new setup option "Miscellaneous/Show channel names with source" can be used to + turn on adding the source character to channel names whenever they are displayed. +- Pressing the Play key during normal live viewing mode now opens the Recordings menu + if there is no "last viewed" recording. + The same behavior has been implemented for the Blue key in the main menu. + +Time Shifting: + +- The new setup option "Recording/Pause key handling" can be used to define + what happens if the Pause key on the remote control is pressed during + live tv. +- The new setup option "Recording/Delete timeshift recording" controls whether a timeshift + recording is automatically deleted after viewing it. + This obsoletes the DELTIMESHIFTREC patch. + Note that the meaning of the values for this option is different from the DELTIMESHIFTREC + patch: 0 means timeshift recordings are not automatically deleted (the default behavior + as in previous versions), while 1 means to ask the user whether the recording shall be + deleted. +- The setup parameter "Recording/Instant rec. time (min)" can now be set to '0', + which means to record only the currently running event. + +Timers: + +- The "Edit timer" menu can now set the folder for the recording from a list of + folders stored in "folders.conf". +- The file name in the "Timers" menu now shows only the base name of the recording + without the folder path (if any). Otherwise with long folder paths the actual + recording name was not visible at all. +- The new setup option "Folders in timer menu" controls whether the file names in + the timer menu are shown with their full folder path. + +Recordings: + +- The recording format is now TS (Transport Stream). + Existing recordings in PES format can still be replayed and edited, but new + recordings are done in TS. + All code for recording in PES has been removed. + The following changes were made to switch to TS recording format: + + Since a TS needs to have a PAT/PMT, which requires the video stream type to + be explicitly given, the format of the VPID field in the channels.conf file + and the SVDRP commands NEWC/MODC/LSTC has been extended. The video stream type + now follows the VPID and optional PPID, separated by an '=' sign. + + The index file format has been changed to support file sizes of up to 1TB + (previously 2GB), and up to 65535 separate files per recording (previously + 255). + + The recording file names are now of the form 00001.ts (previously 001.vdr). + + The frame rate is now detected by looking at two subsequent PTS values. + The "frames per second" is stored in the "info" file using the new tag F. + + The directory name for a recording has been changed from + YYYY-MM-DD-hh[.:]mm.pr.lt.rec (pr=priority, lt=lifetime) to + YYYY-MM-DD-hh.mm.ch-ri.rec (ch=channel, ri=resumeId). + Priority and Lifetime are now stored in the "info" file with the new + tags P and L (if no such file exists, the maximum values are assumed by + default, which avoids inadvertently deleting a recording if disk space + is low). No longer storing Priority and Lifetime in the directory name + avoids starting a new recording if one of these is changed in the timer + and the recording is re-started for some reason. + Instead of Priority and Lifetime, the directory name now contains the + channel number from which the recording was made, and the "instance id" + this instance of VDR. This avoids problems if several VDR instances record + the same show on different channels, or even on the same channel. + The '-' between channel number and resumeId prevents older versions of + VDR from "seeing" these recordings, which makes sure they won't even try + to replay them, or remove them in case the disk runs full. + + The files "index", "info", "marks" and "resume" within a TS recording + directory are now created without the ".vdr" extension. + + The "resume" file is no longer a binary file, but contains tagged lines + to be able to store additional information, like the selected audio or + subtitle track. + + cDvbPlayer::Goto() no longer appends a "sequence end code" to the data. + If the output device needs this, it has to take care of it by itself. +- 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 new command line options --edit and --genindex can be used to edit a + recording or generate its index without actually starting the entire VDR. +- The new command line options --filesize 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. +- The start time of an edited recording is now set to the time of the first + editing mark. + This obsoletes the CUTTIME patch. +- An ongoing editing process is now canceled if either the original or the edited + version of the recording is deleted from the Recordings menu. + +SVDRP: + +- The SVDRP signon message now indicates the character encoding in use, as in + "220 video SVDRP VideoDiskRecorder 1.7.1; Fri May 2 16:17:10 2008; ISO-8859-1". + This may be useful for instance for external tools that provide EPG data, so that + they can correctly encode the strings. +- The SVDRP command PUTE now supports reading the EPG data from a given file. +- 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. +- If svdrphosts.conf contains only the address of the local host, the SVDRP port + is opened only for the local host. +- The default SVDRP port is now 6419 (registered with ICANN/IANA). + Use '-p 2001' to switch back to the old port if necessary. +- The SVDRP command HITK now accepts multiple keys (up to 31). +- The SVDRP command LSTC now also accepts channel IDs. +- The new SVDRP command UPDR can be used to trigger an update of the list of + recordings. +- The SVDRP command DELR now won't delete a recording that is currently being edited. + +Audio: + +- Implemented handling the standard component descriptor for AC3 (stream=4). + The previously used "Premiere pseudo standard" (stream=2, type=5) still works, but + has apparently been wrongfully used by broadcasters from the beginning. +- 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. +- The option "Setup/DVB/Use Dolby Digital" now only controls whether Dolby Digital + tracks appear in the "Audio" menu. Dolby Digital is always recorded. + This obsoletes the DOLBYINREC patch. + +Internationalization: + +- Added Lithuanian language texts. +- Added Slovakian language texts. +- Added Macedonian language texts. +- Added support for languages that are written right-to-left. + See INSTALL for information on how to turn this on. +- Added Arabian language texts. +- Added Serbian language texts. + +Misc: + +- Errors in config files no longer keep VDR from starting. +- 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. +- Implemented handling the "Parental Rating Descriptor". + 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! +- Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR + in 'make install'. +- The new setup option "Miscellaneous/Channels wrap" controls whether the current + channel wraps around the beginning or end of the channel list when zapping. +- The files "commands.conf" and "reccmd.conf" can now contain nested lists of + commands. See vdr.5 for information about the new file format. + This obsoletes the CMDSUBMENU patch. +- 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. +- While replaying, the editing marks are now updated every 10 seconds. +- Added generating a pkg-config file to the Makefile. +- Removed the '.pl' suffix from all scripts. +- The new setup option "DVB/Standard compliance" can be used to switch between different + variations of the DVB standard. Currently there is "DVB" (for the original DVB + standard) and "ANSI/SCTE", which is used to properly handle certain private stream + types. +- 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. +- The script given to VDR with the '-r' option is now also called whenever a + recording is deleted.