# --------------------------------------------------------------------------- # # Nextview decoder online manual # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License Version 2 as # published by the Free Software Foundation. You find a copy of this # license in the file COPYRIGHT in the root directory of this release. # # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, # BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # # Description: # # User's documentation in Perl "POD" format. The content is # converted into various other formats by use of different scripts: # UNIX manpage by pod2man; HTML web page by pod2html (needs manual # adjustments) and the online help by a self-made script. The releases # should contain the converted files, so that the user is not forced # to install Perl. # # Author: Tom Zoerner # # $Id: nxtvepg.pod,v 1.118.1.1 2005/03/30 15:07:18 tom Exp $ # --------------------------------------------------------------------------- =head1 NAME nxtvepg - Decoder, Browser and Analyzer for the Nextview Electronic Programme Guide =head1 SYNOPSIS B S<[ options ]> S<[ database ]> =head1 DESCRIPTION B is an X11 and Win32API application to decode, analyze and browse TV programme schedules transmitted on analog TV channels as defined in ETS 300 707: "Protocol for a TV Guide using electronic data transmission" by the European Telecommunications Standards Institute. The Nextview standard was developed for use in TV sets, but the data can be received and used in a PC, too - provided you have a Teletext capable TV tuner card and are lucky enough to have a Nextview content provider in your country. B enables you to obtain free TV programme listings for all of the major networks in Germany, Austria, France, Belgium and Switzerland. Currently Nextview EPG is transmitted by the following TV networks (note that each of these EPGs cover not only the provider's programme but also that of many other networks): =over 4 =item * In Germany and Austria: Kabel1, RTL-II (coverage: apx. 32 networks) =item * In Switzerland: SF1, TSR1, TSI1, EuroNews (coverage: apx. 37 networks) =item * In France: Canal+, M6, TV5, EuroNews (coverage: 8 networks) =item * In Belgium: VT4, M6, TV5 (coverage: 32 networks) =item * In Turkey: TRT (coverage: apx. 17 networks) =back For up-to-date information check the nxtvepg homepage in the Internet (see the About popup in the Help menu). If you don't receive any of the channels listed above, you can only use the demo mode as described with the B<-demo> command line option. =head1 OPTIONS Summary of command line options: =over 4 =item B<-display> I UNIX only: The display on which the user interface will be placed, for example B. Default: taken from environment variable I. For more info see the I manual page section B =item B<-tvdisplay> I UNIX only: The display on which the TV application window is searched, e.g. on a remote host or different screen on a station with multiple monitors. Default: same as the main window's display. =item B<-geometry> I Specifies the position of the main window, e.g. B<-geometry -0+0> to put the main window in the upper right corner of the visible screen. The size of the window cannot be changed. =item B<-iconic> Start with the main window iconified (i.e. minimized). For M$ Windows users this option may be esp. helpful when nxtvepg is started from inside the I group and I is enabled: nxtvepg then will start almost invisibly in the background, only with an icon in the system tray of the task bar (see also L<"CONFIGURATION: Show/Hide">). =item B<-rcfile> I Specify an alternate configuration file. Default: on UNIX $HOME/.nxtvepgrc, on Windows nxtvepg.ini in the current directory. =item B<-dbdir> I Specify an alternate directory for the databases. Default: On UNIX F, on Windows the current directory. Note that the database management is not equipped for concurrent writing, so if you have more than one TV tuner card in your system or network, relocate the directory into the users' homes. If you're using an acquisition daemon, the browser must be configured to use the same directory as the daemon. If the daemon is running on a different host, you need to mount the remote directory, e.g. via NFS. =item B<-card> I Specify which TV card hardware to use, if you have more than card. Default: index 0. On Linux the given index is appended to the device names, i.e. F and F (see also L<"FILES">). On Windows index "n" means the n-th card found while scanning the PCI bus for cards with a supported capture chip (e.g. Brooktree Bt878, Bt878A, Bt848, Bt849, Philips SAA7134, Conexant 23881). If you have more than one TV card with the same chip, the order between those is undefined, but still constant (i.e. the order is determined by the driver, not nxtvepg) =item B<-provider> I Select a provider by its hexadecimal CNI (Country and Network Identifier), e.g. I<-provider d92> for B. You can find out the provider's CNI during a provider scan or from the database file names. Use keyword I to dump a merged database (or use code I as required by earlier versions of nxtvepg.) Note before you can use a merged database you have to configure it, see L<"MERGED DATABASES">. Default if this option is omitted: the last provider selected during the previous session. =item B<-noacq> Start with acquisition disabled. The acquisition can still be started later from the Control menu (see L<"CONTROL: Enable acquisition">). =item B<-daemon> Start without the graphical user interface. The process will detach from the terminal (i.e. create an invisible window on M$ Windows) and perform background acquisition. If no other options are given the same provider and acquisition mode as configured with the GUI will be used. If the -provider option is given acquisition will work for this provider only (note the difference to non-daemon mode, where that option selects the browser database). The -daemon option cannot be combined with the -noacq or -demo options. The daemon always creates a named socket in the I directory (UNIX only) plus optionally a TCP/IP socket to allow connects by browser processes. While connected, the browser receives updates for opened Nextview databases and reports about the acquisition progress; if left unconnected, the browser listing might be incomplete or outdated. It's important to note that the browser B the same I<-dbdir> directory, because the daemon forwards only deltas to the database files stored in that directory. For more details see L<"CONFIGURATION: Client/Server">. UNIX Warning: for security reasons it's depreciated to run the daemon with root privileges, because nxtvepg has not been reviewed yet for possible exploits. If you want to start the daemon already during system startup, you should use su(1). Also note that you'll probably need to specify -rcfile because the $HOME environment variable might not be (correctly) defined. Example: su nobody -c "/usr/local/bin/nxtvepg -daemon \ -rcfile /usr/local/etc/nxtvepgrc" For terminating the daemon process, see the -daemonstop option below. =item B<-daemonstop> With this option, a background acquisition process is searched and terminated if found; then the program exits. Note you need permission to send signals to the daemon process to be able to stop it (i.e. it must run with the same user ID). This option is meant to allow controlling acquisition by scripts which start and stop acquisition automatically after a given time. Note if the daemon is running on the same host and uid, it can also be stopped by deselecting I in the I menu while being connected to the daemon. For more details see L<"CONTROL"> and L<"FILES">. =item B<-nodetach> UNIX only: In daemon mode this option prevents the process actually making itself a daemon, i.e. it doesn't fork and stays connected to the terminal. Also all log messages starting with level I are sent to standard error out (e.g. configuration errors that lead to an immediate exit). This mode is intended for debugging purposes only. =item B<-acqpassive> In daemon mode this option overrides the acquisition mode setting in the configuration file and forces acquisition into passive mode (see L<"ACQUISITION MODES">). The configuration file is not changed, so that you can use different acquisition strategies for daemon and GUI. =item B<-acqonce> I In daemon mode this option will automatically stop acquisition and terminate the daemon after the given phase has been completed for all providers. Phases are the same as defined in L<"ACQUISITION MODES">, i.e. I, I and I. Note it's not useful to use this option in acquisition mode I because acquisition restarts after each provider change. This option is only useful with a fixed list of providers. If you want to run another program from inside a script after nxtvepg has finished, use the I<-nodetach> option (UNIX only) Then the shell which is processing the script will usually wait for nxtvepg to terminate before starting the next command. On Windows there's no simple way to achieve this (because non-console applications are always run in the background), so you need to use a script language which supports instructions which wait until a running program (namely nxtvepg) has finished. =item B<-dump> I When started with this argument, nxtvepg will only export the entire programme database, then exit. This argument must be combined with I<-provider> to specify which database shall be exported. To export the database in XML format, use keyword I as mode. In this case the last mode (i.e. XMLTV DTD version) which was used via the main menu is used. To export the database in another mode, use I, I or I. For more details see L<"CONTROL: Export as XMLTV">. To export the database into a plain text file (e.g. for import into an SQL database) three mode keywords are supported: I to dump programmes (i.e. the complete TV schedules), I to dump the provider's network table, I to dump the PDC theme categories table. For more details see L<"CONTROL: Export as text">. For debugging purposes there's also a mode I which prints all data in the database in a format which is closely related to the internal data structures. This output should not be used for data export. For more details see L<"CONTROL: Dump raw database">. The output is written to I unless you redirect it into a file or pipe it into another program. See also option I<-outfile> =item B<-outfile> I This option allows to redirect output from I<-dump> or any other modes which print to I by default. It also works in normal operation modes, but the created file will be empty. nxtvepg will abort if the specified file already exists to avoid inadvertantly overwriting other files. If you're using the option inside a script or batch file you should add a command to remove the target file before invoking nxtvepg. This option is especially helpful for M$ Windows users, since output written to I is discarded by the operating system because nxtvepg is not a "console application". This means for exmaple, if output of the above -dump mode is not to be discarded, you must either use this option or redirect output as below. Note: instead of using this option you can also redirect output with the ">" or "|" operators in UNIX shells or under M$ Windows at the MS-DOS command prompt. For example you could use either of the following: nxtvepg -dump ai -prov d92 > networks.txt nxtvepg -dump ai -prov d92 | more to write the network table of provider I (CNI I<0xd92>) into a file named I, or pipe it to the paging program "more" respectively. =item B<-remctrl> I Windows only: This option can be used to remote control an other, previously started GUI instance of nxtvepg, i.e. to send the given command to the other process and then exit. The following commands are available: I to terminate the other nxtvepg process; I to minimize the window; I to undo a previous minimization; I to deiconify the other window and to bring it to the top (in case it's obscured by other windows); I to start acquisition; I to stop acquisition. =item B<-clock> I When started with this argument, nxtvepg will acquire the current date and time from teletext and then terminate. To specify from which channel to acquire date and time use the I<-prov> option option. (If you want to use a channel which is not an Nextview EPG provider, you'd have to use an external application to tune the channel before you invoke nxtvepg; with the exception of Linux' I command this mode is unsupported though and may not work, depending on the external application you're using it with.) B: nxtvepg is able to retrieve the clock only from channels where the so-called teletext I is transmitted, which contains date, time and local time zone offset in a binary format. nxtvepg will never attempt to retrieve times from teletext header lines. All Nextview EPG providers transmit packet 8/30/1, and a few other networks do too (e.g. ARD and ZDF in Germany.) With mode I the date and time will be read and printed. The output is written to I unless you redirect it into a file or pipe it into another program. See option I<-outfile> for details. With mode I the time is set as system time, provided the calling user has the necessary priviliges (e.g. you'd need to be I on UNIX; since it's depreciated to run nxtvepg with root priviliges, it's recommended to first print the time into a file and then pass it to date). UNIX users should also note that the I mode does not update the battery powered hardware clock (aka Real Time Clock B), so the correction will probably be lost with the next reboot. To update your RTC, call I or your operating system's equivalent after nxtvepg. Some Linux distributions automatically take care of this during shutdown. =item B<-demo> I Load database given by I and enter demo mode. In this mode all entries of the database are shifted into the presence, i.e. just far enough so that none are expired. Hence the entries' dates and times are not for real and acquisition or database reselection is not possible. =item B<-help> List all available command line options. =back After the options you can add a database filename. This is equivalent to specifying B<-dbdir> and B<-provider>. The provider CNI is taken from the file name. If the file name does not have the format as defined in L<"FILES">, it's assumed to be a demo database and loaded just as with the B<-demo> option. The database filename argument silently overrides any previously given options. This is particularily useful for users of graphical file managers (like the Windows Explorer) who can just drag and drop a database file onto the executable. When used on Windows systems the working directory is set to the one that contains the executable, because the Explorer seems to set it to the user's desktop root, so that none of the DLLs and drivers are found. Note to Windows users: all these options - unless otherwise noted - are available in the Win32 version too. You can supply the options either from a "MS-DOS" command prompt or batch file, or by appending them to the executable in a shortcut definition. =head1 GETTING STARTED Before you can start reading in TV programme schedules (called I from here on), you have to do just a few configurations. Which ones depends on your setup and will be described in this chapter. As long as your browser window contains no data, there's also a recommondation how to get to data in the browser window, highlighted by a yellow background. This manual describes all features of nxtvepg in detail. You do not have to read all of it at once to operate the software. However it's recommended to skim at least through L<"BASIC BROWSING">, L<"DATA ACQUISITION"> and L<"FILTERING">. =head2 TV card Setup on M$ Windows Windows users first have to configure the driver for their TV card in the 'TV card input' dialog from the Configure menu (for additional information see also L<"CONFIGURATION: TV card input">). UNIX users can skip this section. To start card configuration, press the I button in the middle of the dialog window, which will open another dialog. If no supported TV capture chips were found in your system, the button will be disabled. In case you see a message claiming I, this means the TV card driver could not be loaded. In this case close all other video applications and try again or look up a detailed description of driver error messages in the README file. First press the I button to the right of the dialog window; this will read certain parameter values from non-volatile memory on your card (EEPROM) to determine the manufacturer and model. Optimally this will allow to derive all required parameters automatically. If this succeeds, all your card's parameters will be set and you're done and can close the configuration dialog with Ok. If you wish you can still override automatically derived values (e.g. tuner type) with the options described below. If you get a message that says the card, but not the tuner, could be determined you can skip the next paragraphs and continue with the manual tuner selection. If your card type could not be automatically determined, search and select your card type in the listbox at the left and then press the I button or double click on the listbox entry. Note: The card list is identical to the B TV application (also very similar to B); the same is true for the tuner list. Hence if you're unsure, the easiest way is to look up your configuration in DScaler and just copy it here. For certain card types, the card is queried for the tuner type after manual card selection. If this fails, you'll get a message and have to select the tuner manually. To configure a tuner type, open the tuner selection popup menu by clicking on the I button and select one of the entries. For many cards the tuner type is printed on the outside of the retail packaging. Yet a better way is to read the tuner type from the metal shielding box on the card itself. Some hints for figuring out your settings: For many cards the selected card type is not relevant to nxtvepg (i.e. only tuner and for Bt878 cards the PLL). Hence if you don't find your card in the list don't worry, just use any PAL or SECAM card entry in the list and set the other parameters manually. To check your configuration start an EPG scan. Before you do so you must leave the configuration sub-menu with OK so that the changes are applied. For your convenience, you can open the card configuration dialog with a button in the EPG scan dialog window. Hints for tuner selection: If you live in Germany, Austria or Switzerland you probably have a PAL tuner, in France it's one of the SECAM types. If you select the wrong tuner, you can have either no reception at all (the EPG scan will just run through and suggest to check your antenna) all or no reception just on a few channels. For cards built around a Brooktree chip (Bt878 et.al.) the type of PLL initialization also needs to be set. This setting is directly tied to your card selection, hence usually you will not need to set it manually. Usually the correct value for I with PAL and SECAM cards is either I or I<28 MHz>. (If you select the wrong value you have no reception at all.) =head2 Video input configuration Before nxtvepg can start acquiring EPG data, it must be told if the video feed is provided by your TV card's internal TV tuner (if you're connected to your city's TV cable network or a terrestrial antenna) or an external source (usually satellite receivers connected via Composite or S-Video cable). This can be configured in the I dialog in the Configure menu (for more in-depth information see also L<"CONFIGURATION: TV card input">). By default nxtvepg assumes input via TV tuner. This is the preferred mode of operation, since nxtvepg can change channels between multiple Nextview providers, while with an external source you have to switch channels manually (see also L<"DATA ACQUISITION">). If you're living in France you should tell nxtvepg to use the French channel table (which implies using the Secam TV norm instead of PAL B/G/I); this information is required for the next step: the EPG scan. If you cannot use the TV tuner but have instead connected a satellite receiver through the Composite or S-Video input, select the respective setting in the I