nxtvepg (1) - Linux Manuals
nxtvepg: Receiving, Browsing and Analyzing Nextview EPG data
NAME
nxtvepg - Receiving, Browsing and Analyzing Nextview EPG dataSYNOPSIS
nxtvepg [
nxtvepgd [
nxtvepgd
is a stripped-down version of nxtvepg which only performs data acquisition
as a background daemon process.
The Nextview EPG 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 content provider in your country.
nxtvepg
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):
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 -demo command line option.
Since version 2.8.0 nxtvepg also allows to extract EPG data from teletext
or import from external XMLTV sources. Note when importing data you need
to take care to respect copyright, same as when exporting data. In particular,
the German law does not permit ``Web scraping'', i.e. extraction of programme
information from Internet sources without prior permission of the content
provider.
For M$ Windows users this option may be esp. helpful when nxtvepg is
started from inside the Auto start group and Hide on minimize 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 ``CONFIGURATION: Show/Hide'').
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.
This option enables data acquisition from a DVB device. The channel
must be tuned with an external application. The PID is the identifier
of the data stream which contains Nextview EPG data. The PID also
must be determined by external means. DVB support is still
experimental and not officially supported. In particular, the
EPG scan and acquisition modes which would require channel changing
are not supported.
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 /tmp 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 must use the same -dbdir
directory, because the daemon forwards only deltas to the database files
stored in that directory. For more details see
``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:
For terminating the daemon process, see the -daemonstop option below.
Alternatively you can stop the daemon via the graphical user interface by
disabling enable acquisition in the control menu.
Note if the daemon is running on the same host and uid, it can
also be stopped by deselecting Enable acquisition in the Control
menu while being connected to the daemon.
For more details see ``CONTROL'' and ``FILES''.
If you want to run another program from inside a script after nxtvepg
has finished, use the -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.
To export the database in XML format, use keyword xml 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 xml5, xml5ltz or xml6.
For more details see ``CONTROL: Export as XMLTV''.
To export programme data into a HTML document, use keyword html
as mode. The same options as configured in the HTML export dialog
are applied (unless you are using the daemon executable nxtvepgd
to perform the export.) For details see ``CONTROL: Export as HTML''.
The number of exported programmes can be limited by adding a number
after the keyword, separated by a colon (e.g. "-dump html:50".)
However the format of the programme list is currently not configurable
via command line options.
To export the database into a plain text file (e.g. for import into an
SQL database) three mode keywords are supported:
pi to dump programmes (i.e. the complete TV schedules),
ai to dump the provider's network table,
pdc to dump the PDC theme categories table.
For more details see ``CONTROL: Export as text''.
For debugging purposes there's also a mode raw 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 ``CONTROL: Dump raw database''.
The output is written to stdout unless you redirect it into a file
or pipe it into another program. See also option -outfile
This option is especially helpful for M$ Windows users, since output
written to stdout 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 explained 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:
to write the network table of provider Kabel1 (CNI 0xd92) into
a file named networks.txt, or pipe it to the paging program ``more''
respectively.
The following commands are available:
quit to terminate the other nxtvepg process;
iconify to minimize the window;
deiconify to undo a previous minimization;
raise to deiconify the other window and to bring it to the top
(in case it's obscured by other windows);
acqon to start acquisition;
acqoff to stop acquisition.
Important restriction: nxtvepg is able to retrieve the clock only
from channels where the so-called teletext packet 8/30/1 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 print the date and time will be read and printed.
The output is written to stdout unless you redirect it into a file
or pipe it into another program. See option -outfile for details.
With mode set the time is set as system time, provided the calling
user has the necessary priviliges (e.g. you'd need to be root 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 set mode does not update the
battery powered hardware clock (aka Real Time Clock RTC), so the
correction will probably be lost with the next reboot. To update your
RTC, call hwclock --systohc or your operating system's equivalent
after nxtvepg. Some Linux distributions automatically take care of
this during shutdown.
During the scan nxtvepg reports progress to stdout unless you
redirect it into a file or pipe it into another program.
See option -outfile for details.
After the options you can add a database filename. If it's a regular
nxtvepg database, this is equivalent to specifying options -dbdir
and -provider (if such options are provided, they are silently
overridden in this case.) If it's a nxtvepg database, but the file name
does not have the format as defined in ``FILES'', it's assumed to be a
demo database and loaded just as with the -demo option. Last but
not least, it's also possible to name an XML file with XMLTV data.
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.
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 ``BASIC BROWSING'',
``DATA ACQUISITION'' and ``FILTERING''.
First you need to decide which driver to use: For TV cards with
Brooktree Bt8x8 or Philips SAA713x capture chips, the dsdrv driver
should be preferred. For TV cards with Conexant CX2388x capture chips
the WDM drivers should be preferred. Generally, the internal driver
is more reliable as it is optimized for teletext data acquisition while
the vendors' WDM drivers usually are optimized for video and sometimes
don't support teletext at all. On the other hand, the dsdrv driver
doesn't support all TV cards and sometimes there are conflicts when
a WDM driver is installed for the same card (see also description of
option ``Stop conflicting WDM drivers...'')
By default nxtvepg doesn't include support for WDM. The reason for this
separation is that the use of WDM is still experimental. Hence you need
to obtain a separate package with an interface library (VBIAcqWDMDrv.dll)
You should unpack the contents of this package into the same directory
as the nxtvepg executable. If you don't have the library you'll see
an error message stating ``Failed to load WDM interface library'' when
switching to a WDM source.
If you chose to use a WDM driver, you can skip the next chapter and
continue with the video input configuration.
Note if both WDM and dsdrv drivers fail to work with nxtvepg, a third
option may be to run nxtvepg in parallel to K!TV. In this case the
capturing is done inside of the TV application and teletext data is
simply forwarded via shared memory to nxtvepg.
First press the Autodetect 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
Pick from list button or double click on the listbox entry.
Note: The card list is identical to the DScaler TV application (also
very similar to K!TV); 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 Configure 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 PLL initialization with PAL and SECAM cards
is either No init or 28 MHz. (If you select the wrong value
you have no reception at all.)
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 ``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 video input drop-down menu. Then close the dialog with
Ok and open the aquisition mode configuration dialog from the same menu.
There you should change to the external mode: in this mode nxtvepg
will switch to the configured video input channel during startup of
acquisition, but afterwards expect you to tune in a Nextview provider's
channel at the external video source. To load all provider's inventories
in the way the EPG scan does, you have to tune in all provider channels
(for a list see the intro of this manual or the Internet homepage) and
wait until the status line changes from ``starting up'' to ``working on''.
Note that you can also connect your satellite receiver via antenna cable.
However this variant is highly depreciated, because the signal is often
degraded so much that nxtvepg is not able to decode the EPG data stream
any more. But if you still want to go that route, you'd keep the tuner
as input source and start an EPG scan to find the channel your receiver
is transmitting its signal on. Make sure to disable the Use .xawtv
option in the provider scan dialog, unless your satellite receiver's
channel (i.e. the frequency onto which the satellite signal is modulated)
is defined as an input channel in xawtv. Before you start the EPG scan
you need to tune in a Nextview provider's channel. The scan will only
find that one provider. If you want to load all providers you have to
continue manually as described above. For an acquisition mode it's
recommended to stay with Follow browser database. Although nxtvepg
will not be able to actually ``follow'' your provider selection with the
acquisition since it can't switch the TV channel at your external input,
this mode will tell nxtvepg to set the TV tuner onto your receiver's
channel (see also ``ACQUISITION MODES'' for more details.)
You can speed up the scan by using a TV application's channel table;
in this case the scan is limited to TV frequencies defined in the
TV app's channel table. This mode is enabled with the
Use TV app freq. table checkbutton. This button will be disabled
until you've selected a TV application in the TV app. interaction
dialog described in the next chapter. You can open this dialog by
pressing the button at the bottom of the EPG scan dialog window.
At the end of the scan there's a short summary which tells you how many
providers have been found. If there were any, you can close the dialog
window and open the provider selection dialog from the Configure menu
and select you favorite one. Then wait a little while the provider's
TV channel is tuned and data being loaded.
If the provider scan does not find any or not all Nextview provider channels
(possibly due to weak reception - this is a very simple scan that does
not attempt any fine-tuning) enable the Slow button and try again.
If this does not help, you can still add the missing providers manually.
set the acquisition mode to external or passive (UNIX only). Then
use an external application to tune the channel (Windows users have to
stop acquisition first; then start the TV application; then tune the
channel; then quit the other application; finally start acquisition again).
In external mode nxtvepg will not touch the tuner and wait infinitly for
Nextview reception on the current channel. On Windows (and Linux with
bttv drivers version 0.7.50 and earlier) this method has the disadvantage
that no channel number or frequency will be known for this provider so you
have to tune the provider's channel manually whenever you start acquisition.
Acquisition of a complete database takes about 20 minutes. However
programmes that are nearer in the future are available much faster,
since they are transmitted more often. The currently running and
directly following programmes of all networks are usually available
after about 2-3 minutes max.
The first one is a passive feature, i.e. only nxtvepg needs to be
adapted to the respective TV applications. The second one however
requires cooperation of both sides. For this reason the number
of TV applications for which the passive features are supported
will always be much larger. On Windows the interaction features
are currently only supported by K!TV.
On UNIX xawtv, xdtv (former xawdecode), zapping and
tvtime are supported currently.
All the features listed above do work with any of them.
On Windows several freeware TV applications are supported for the
passive features; you must select which one you're using.
If you've loaded TV card settings from
a TV app in the TV card input dialog, then the TV app type and path
is already configured. Else, or if you want to use a different app as
source for the channel table, open the TV app. interaction dialog
(see also ``CONFIGURATION: TV application interaction'').
Regarding the second feature, i.e. the ``active'' one:
You can check if nxtvepg is able to interact with a specific TV application
by starting both, and then opening the TV application interaction
dialog in the Configure menu. The connection status is indicated in
the middle of the dialog window. On Windows nxtvepg should already display
an error message when it's started while an unsupported TV application
is running, complaining ``Capturing is already enabled in the TV card''
or another driver error message. Only with cooperating TV apps nxtvepg
is able to automatically free the card when the TV app is started
(TV viewing is always given priority over EPG data acquisition.)
Important: On Windows you must not run nxtvepg with acquisition
enabled at the same time as a TV application. If you ever accidentially
do that, immediately terminate both applications. When two applications
access the TV card hardware at the same time, the resulting conflicts
can crash your system.
After setting up the TV app type and path, you should open the
Network name configuration dialog to synchronize
network names between nxtvepg and the TV app. Even if interaction is not
possible, it may still be a good idea to have the same network names in
both applications. See ``CONFIGURATION: Network names'' for details.
The basic browsing of programme information works very straight-forward.
You can either use the mouse or the keyboard cursor keys:
With the mouse, you can click on any title to select it and display
its description in the lower window. Use the scrollbar to the left to
scroll the listing forward to programmes farer in the future, or the
weekday scale on the right to jump to a specific time and date.
With the keyboard, use the Cursor up/down keys to select any title.
For fast scrolling use the page up/down keys. With the Home key you
always get back to the first title. With TAB and SHIFT-TAB you can
move the keyboard input focus to other input elements, e.g. to the network
and shortcut lists; to apply a selected theme or shortcut as filter
press the Space key. The first 10 shortcuts can also be
enabled directly from the main window with the digit keys 1-9 and 0.
Control-C in the main window opens the context menu; Control-F opens
the text search dialog; the Escape key is equivalent to the Reset
button. The menus can be accessed by pressing the ALT key together
with the underlined character in the respective menu button.
You can restrict the programme selection in many ways to make it
easier to find what interests you. For example, you can restrict the
list to programmes of a certain network; or you can restrict the
list to movies only. This process is called filtering and
explained in detail below, see ``FILTERING''. For the most common
filter options there's a list of Shortcuts at the left of the main
window. Note you can freely modify this list, see
``FILTER SHORTCUTS''.
Since version 2.5.0 nxtvepg offers two different layouts for the TV
schedules: By default programmes of all channels are combined in a
single list sorted by start time, i.e. one big table. Alternatively
programmes can be separated so that each network has it's own column.
This format is very similar to most paper-based TV magazines. In this
layout you can scroll both vertically by start-time and horizontally
by networks.
When you resize the main window vertically the difference in height
will be added to the info text window at the bottom. You can adjust
the proportions between program listbox and the info text with the
``panning'' button inbetween, i.e. by dragging the button you can
resize the programme list.
nxtvepg can interact with TV applications (e.g. xawtv on UNIX;
requires initial setup, see ``GETTING STARTED'') to provide a connection
in both directions: Firstly you'll find a
Tune-TV button in the main window below the clock. When you press
it, the network of the currently selected programme will be tuned in the
TV application. This also works with a double-click on the programme
or pressing the Return key. By clicking the right mouse button above
the Tune-TV button you can also pop up a small menu which offers basic
TV controls. Secondly, when you change the channel
in the TV application, the cursor in the nxtvepg main window will
automatically jump onto the programme currently running on that network.
You can manually trigger this reaction by pressing ``i'' on your keyboard.
For more details see ``CONFIGURATION: TV application interaction''
At the bottom of the window there is a status line which informs you
about the state of the browser database and background acquisition.
It's basically a very dense summary of the Statistics popups from
the Control menu and is especially useful to warn you about the
database age or stalled acquisition.
Note:
For most providers it holds true that programme content descriptions
(i.e. the texts in the lower nxtvepg window) are available only for
currently running programmes and those whose start time is very close.
This time span for full coverage can be as short as 2 hours, or 3 titles
per network. As a consequence you should enable data acquisition as
often as possible; consider running the acquisition daemon permanently
in the background. For details on the acquisition process see the following
chapter.
By default, the acquisition always works for the provider whose database
you have loaded into the browser. Therefore, upon program start or whenever
you switch providers, the TV tuner is set onto the frequency of the
provider's TV channel. Please note that this mode is only possible after
a provider scan, because that's the only way to find out the frequencies.
Check out ``ACQUISITION MODES'' for more sophisticated acquisition
strategies.
If you do not choose the TV tuner as input (e.g. if you choose an external
source via the Composite or S-Video input sockets), or if the TV tuner is
kept busy by another application (UNIX only, e.g. if you watch TV) data is
still being acquired, but it's no longer possible to automatically change
the TV channel. Hence you are resposible for selecting the channel of the
provider who's database you want to load or refresh. If a transmission
belonging to a different provider than the one selected in the browser
is detected, a second database is automatically opened in the background
to store the incoming data.
The transmitted database is constantly in change: Elapsed titles are
removed, new titles appended, and the titles closest to the current time
updated with an increased amount of description. (The reason that the
complete description is not transmitted for all titles is simply that
the size of the database has to be reduced - it shall be transmitted
in 20 minutes maximum.) So you should start the acquisition as often
as possible, about every 2-3 hours, at least a couple of minutes before
you browse.
You can monitor the progress of acquisition with the timescale and
database statistics windows from the Control menu. See ``STATISTICS''
for details.
Please note: when nxtvepg does not control the input channel, it can not
automatically take care of updating your databases. Even if the browser
database should be completely empty, no data will appear until you tune in
the provider's channel manually with an external application. Because of
this, passive mode is depreciated.
On Windows systems this mode can be used if your tuner is not known to
nxtvepg, i.e. if the EPG scan does not find any channels with all of the
available tuner types. In this case tune in the provider channel with a
TV application; then quit this application and start nxtvepg. When you
view the acquisition statistics from the Control menu, the VPS/PDC code
of the tuned channel should appear in the lower half of the window.
Since transmission errors have to be considered, it's not attempted
to load every single block of a provider before acquisitions switches to the
next. Instead a statistical criterium was defined, that regards the variance
in coverage of all networks contained in the database, and the slope of that
variance.
Which mode is best for you depends on how you use the browser. As said
above, if you're mainly using a single provider, stick with the Follow-UI
mode. If you use a merged database, data is automatically loaded for all
contained providers. However if you switch manually between multiple
providers, you should choose one of the manual acquisition modes.
The Cyclic modes enables you to optimize startup time. While in standard
manual mode, the first database is loaded completely before the next one
is started, in Cyclic modes you can specify to load only Now data of all
providers first. Hence already after a couple minutes you'll have updated
Now information for all providers. If you require more look-ahead than
the next 2-3 programmes, e.g. the complete evening, use a Cyclic mode
that starts with the Near stage.
If you use manual acquisition together with a merged browser database,
make sure to put the same provider at top in both lists, i.e. acquisition
should always start for the ``master database'' of the merge.
Please note that the time until all databases are complete is longer
in the cyclic modes than in standard manual mode. In general, the time
used for the Now and Next stages just adds to the time to complete the
database.
Also note that the cyclic modes depend on the transmission cycles of
the providers. Firstly this means that the time ranges covered by the
cycle stages may differ between providers. Secondly, the cycle times
may vary. In the worst case the Near cycle runs as long as the cycle
for the complete database (e.g. the German provider RTL2). In this case
you don't win anything by selecting a mode that contains a Near stage.
The latter two windows are available separately for the browser and
acquisition databases. (By default both are the same databases, but you
can configure background acquisition on multiple databases,
see ``ACQUISITION MODES''). All types of statistics are regularily
updated while acquisition is running. While connected to an acquisition
daemon, all statistics output refers to the acquisition running in
the daemon (see ``CONTROL: Connect to acq. daemon'')
For the browser database you'll normally just see the name of the
content provider network and a percentage that describes how many of the
blocks (i.e. TV programmes) in the provider database already have been
received.
If more than 10% of the blocks in the database lie in the past, you'll
additionally see a note about this percentage of expired blocks. Note
that a 100% loaded database may appear completely empty when all blocks
are expired. As soon as you start acquisition the fill percentage will
drop to 0 because a new inventory will have been loaded which no longer
contains the expired blocks.
When acquisition for the browser database stopped more than 60 minutes ago,
a note is added to the status line. In this case it may be advisable to
start acquisition for this database to load descriptions for programmes
that are now included in the ``Near'' time range (see ``DATA ACQUISITION'').
If acquisition is currently not active you'll see a note about that,
often together with a reason, e.g. ``no reception'' when you've manually
tuned a station that doesn't transmit Nextview.
Else you'll see the name of the content provider network and a percentage
that describes the progress of acquisition. Note that this percentage may
be different from the overall fill percentage given with the browser
database, as it also reflects blocks that have to be reloaded due to
version changes.
Additionally there may be a note about the current mode of acquisition,
like the current phase for cyclic acquisition modes or ``forced passive'' when
nxtvepg is not able to change the channel, maybe due to a TV application
running in parallel. See ``ACQUISITION MODES'' for details.
The timescale windows have one scale for each network covered by the
selected provider. The left end of the scales refers to the start time
of the oldest TV programme in the database. Depending on how long ago
the database was updated and the current expiry removal delay
(see ``FILTERING: Expired Programmes Display''),
some or all TV programmes may lie in the past.
The exact dates are printed in the date scale at the top of the window,
the current time is additionally marked with a small arrow labeled ``now''.
Ranges that are covered by programmes of the respective network in the
database are marked in shades of red or blue, uncovered ranges are left black.
The different colors reflect the stream in which the data was received,
or an error status; the shades age and version. Stream numbers are directly
connected with the cycle phases mentioned in ``ACQUISITION MODES''; besides
this the difference is not relevant during normal operation.
Programmes for which description texts are currently available are
additionally marked by an increased height of the scale in the covered
time range. For short-info the area is extended towards the top, for
long-info towards the bottom (the distinction between short and long
info is only related to the Nextview transmission specification and
does not neccessarily relate to the length of the description texts;
also note that for the merged database there's no distinction between
short and long info because all texts are concatenated into one.)
In front of the scales there are 5 separate boxes, which refer to the
first 5 programmes (PI blocks) in the inventory (AI block). They have
two purposes: firstly, during acquisition you can see when the 'Now'
cycle phase is complete; secondly you can check if the data from the
Now cycle is expired (marked orange). If all 5 are orange, it's time
to update the database.
The acquisition statistics are updated every time a new AI block
(inventory which lists all covered networks and block counts per
network; usually transmitted every 10 seconds) is received.
The pie chart on the left on the window visualizes these numbers. The
circle represents 100% of the blocks listed in AI. It's divided in
stream 1 (red) and stream 2 (blue). The shaded segments represent the
blocks that are still missing in the local database. The yellow segments
the percentage of expired and/or defective blocks.
When you interpret those values, please remember that blocks may be
appended to the transmission cycle when programmes have expired (in a
slight violation of the Nextview standard this is done even without
changing the database version). So you might see from time to time that
the fill percentages take a step back down during acquisition. Also note
that expired PI are not accessible from the user interface, however they
are included in the database dump from the Control menu.
If a valid VPS/PDC code (Programme Identification Label, PIL) was received
together with the CNI it is appended after the CNI in decoded format
(i.e. DD.MM HH:MM with day, month, hour and minute). Note: the VPS/PDC
codes are used to uniquely identify the current programme on a given
network. You can display the codes for all programmes in the database
(if you enable them in ``CONFIGURATION: Select attributes'') or pass them
to external applications (see ``CONFIGURATION: Context menu configuration'')
Next is the number of received and dropped blocks. Blocks are usually
assembled from data received in several teletext packets and have to
be dropped if packets or pages inbetween are missing. Blocks may also
be dropped due to decoding or check-sum errors (above note regarding
these errors applies here too)
The final line lists the number of decoded text characters (e.g. programme
titles and descriptions) and how many decoding errors were detected.
Forward error protection used for text is pretty weak, so you may see
errors here even with relatively good signal quality. With bad signal
quality the actual error rate might be higher then displayed, since the
protection cannot detect double-bit errors.
The diagram at the left displays a history of fill percentages for
stream 1 and 2; the meaning of the colors is the same as in the
timescale windows.
When you select the Merge providers entry from the Configure
menu, you will get a dialog with two listboxes: the left one contains
a list of all currently available databases. The right one is the list
of databases you want to merge. You can add, delete or reorder the
entries is this list. When you're done with your selection, press Ok
to start the merge and switch the browser to the new database.
By ordering providers in your selection, you assign priorities which are
important for conflict resolution. A conflict occurs when programme start
and stop times differ between providers. The likelyhood of such conflicts
depends on the quality of your providers; theoretically they should never
happen except if there are late program changes. In reality, conflicts are
not that unlikely, particularily for programmes early in the morning.
You should put the most reliable provider in the first position, because
conflicting programmes from providers further down will be rejected,
i.e. not added to the merged database.
The Configure button in the dialog gives you fine-control over the
priority of providers during the merge of all distinct programme
attributes. You can even completely remove a provider for an attribute,
e.g. if they transmit false data (e.g. the Sound attribute was at some
time handled wrong by the former German provider 3Sat: they did swap
stereo and surround). An exception is the title, where you must not
delete any providers.
Attributes that cannot be merged, e.g. editorial rating, are fetched from
the first database in the list that contains the attribute for a given
programme. An exception are sorting criteria and series, where only the
first provider in the list is queried (i.e. even if the first provider
does not have a sorting criterion for a given programme, the further
databases are not searched) because these types of attributes cannot
be mixed between providers (see also ``FILTERING'').
Note: If you use a manual or cyclic acquisition mode, you should take care
to include all providers of your merged database in the same order. Else,
program changes will not appear in your database until the provider with
highest priority is loaded. If you stay with the default Follow-UI,
acquisition control will automatically cycle across all merged providers
in the correct order.
The extent and content of this menu depends entirely on the provider.
Unfortunately most providers supply only a very limited menu, so you'll
probably want to define your own filters, as described in the next two
chapters.
Any filter selection can always be undone by the
Reset menu entry or the reset button in the main window.
On Windows this menu is en entry inside of the Filter menu for technical
reasons (the concept of danamically created menu hierarchies seems to be
foreign to Windows, so a popup menu has to be used for the Navigate menu).
Filters can be undone either singularily by selecting the same filter
menu entry again, or globally by clicking on the Reset button.
You can combine as many filters as you want to build a complex filter.
If you combine two filters of different types, only programmes that
match both attributes will be listed (logical AND). If you choose more
than one filter of the same type, all programmes that match either
attribute will be listed (logical OR). Note some filter types also
support multiple ``classes'' which allow logical AND within a category;
this is explained in more detail in the filter types list below.
Examples:
If you want to get all programmes listed for either network A OR B,
simply select both networks in the filter list. If you want to see all
movies scheduled on A, i.e. all programmes which run on network A AND
are flagged as movies, select network A and theme ``movie - general''.
If you want to restrict the listing to programmes that have more than
one of the given themes (logical AND) you need to specify them in
different theme classes. For example: to get a listing of all programmes
which are both Sci-Fi and Comedy, select theme category Sci-Fi, then
switch to a different theme class, and select theme category Comedy.
The actual class numbers do not matter, you just need to use two
different ones (i.e. you can use either #1 and #2 or #5 and #6 etc.)
Note: This filter type is only available for providers that assign series
codes; also not all series may have a code assigned. For other ones you
can use text search among programme titles.
When series and theme or likewise series and text searches are combined,
programmes which match either of both filter types are listed. This is
an exception from the general rule of combining different filters with
a logical AND.
You can also add a network filter listbox to the main window by enabling
one of the Show networks checkbuttons in the Show/Hide sub-menu of
the Configuration menu (see ``CONFIGURATION: Show/Hide'').
Also note that selection, order and names of networks are all configurable,
in particular you can permanently suppress uninteresting networks from
the list.
You can search for more than one text at the same time; you'll get all
programmes that contain any of the given texts (logical OR). The listbox
above the text entry field lists all currently active texts. You can
double click on the options in the list to toggle them between ``yes''
and ``no'' (i.e. option enabled or disabled). The entries also have small
context menus which allow to remove single texts or toggle options.
Press Click here to open... to open a small dialog which allows to
swiftly add a large list of texts (e.g. a list of your favorite movie
titles.) You can paste text for example from a text editor into the
dialog or load them directly from a file. Each line in the text fields
will be added as a separate search when you press OK and all new entries
will have the same options. Blanks at the beginning or end of lines are
automatically removed and lines starting with # are skipped when loading
from a file.
A history of the last 50 searches (manually entered ones only) including
options, are stored and available in the drop-down menu below the search
text entry field (opened with the arrow button at the left or one of
the up/down cursor keys) and the last 10 searches are also available
in the Title column header menu in the programme list (the latter
in ``single list'' layout only).
Note: use of this search filter type is depreciated for permanent series
searches saved in shortcuts if your provider supports series identifiers
(see above). In this case should use those instead because the numerical
identifiers have a better protection against transmission errors. A text
search can fail due to a single erronous character.
If you want to allow more than one value of the same attribute
(e.g. picture format wide OR Pal+) you have to put them into different
feature classes (e.g. first select format wide, then set filter class
to 2, then select format PAL+)
Note you can use inverse searches (see below) to find programmes which
are recommended only for children above a certain age. For example,
if you invert a parental search with age 14, you'll get all programmes
that are recommended for children of age 16 or older.
Note that some providers do not use all values, e.g. only 1, 3, 5
(thumb down, middle, thumb up.) For that reason only the first
provider's ratings are used when merging databases
(see also ``MERGED DATABASES'')
Following options are available: If you enable Start at current time
the interval start is fixed to the actual time when the filter is
set and the value given as stop time is interpreted as duration, i.e.
it's added to the interval start. If you enable Stop at end of day
the interval end is fixed to 23:59 of the same day.
For the date you can chose between the following modes:
Ignore date: the filter allows programmes that start on any day
(in the time window given above).
Relative date: allow only programmes that start N days from today,
i.e. for zero: today, for 1: tomorrow etc.
Weekday: allow programmes starting at the given day of the week
(the scale runs from Saturday until Friday.)
Day of month: allow only programmes starting the Nth day of
any month (the scale runs from 1 to 31.)
Note that the main intention of this filter is to support time
restrictions in the provider's navigation menus (see ``NAVIGATE'')
or shortcuts.
For manual navigation there are more practical alternatives, e.g.
the weekday scale and drop-down menus in the main browser window
above the time and date columns (not available in grid layout.)
For merged databases only indices 0 and 1 are supported.
You can specify the time values either by use of the scales or by
entering a value in the format MM:HH into the text fields and
pressing the Return key.
Note you cannot add more programmes than are stored in the database;
usually programmes are removed after 4 hours. There's a second tab
called Configure in the dialog which allows to change the delay
after which expired programmes are automatically removed. Press the
Update button to set the new value. If it's lower than before,
programmes will immediately be removed from the database; this
operation cannot be undone (unless the progammes are still registered
in the provider inventory, which may be the case if you haven't updated
the database in a long time. In this case you may get a confusing
warning that programmes are about to be removed although they won't.)
Equivalently to themes, you can assign sorting criteria in different
classes to implement a logical AND, i.e. only programmes that have
at least one of the sorting criteria specified in every used class
will match. Example: to get all programmes that have 0x01 attached
plus either 0x10 or 0x11, specify sorting criterion 0x01 in class #1
and 0x10 and 0x11 in class #2. Note that the dialog displays
all values in hexadecimal format, i.e. with digits 0-9 followed
by a-f.
The Load all used button in the sorting criteria filter dialog
fills the selection listbox with a list of all codes that are actually
used in the current database. This allows a quick overview which filter
criteria will produce any matches.
Note that the interpretation of two filter types depends on the
provider: sorting criterion and series. That's because those are
just arbitrary numbers which only have a meaning in the context of
the provider's navigation menu.
Hint:
the filter menu can also be used to examine the filter options
that are invoked by the entries in the Navigate menu.
When you select global inversion, you'll get exactly the programmes that
otherwise would have been filtered out (except for programmes which are
permanently filtered out by your network and air-time selection). In other
words, all programmes which match your current filter setting are removed
from the list. Note: due to the way filter shortcuts are merged when more
than one is selected at the same time, it's in most cases not recommended
to use global invert for filter shortcuts unless you change the combination
rule (see ``FILTER SHORTCUTS: Shortcut combination modes''.)
The invert menu also allows to individually negate certain filter types
(there are also invert buttons in some filter sub-menus which have the
same function). The logic of combining flters is the same as without
inverting, i.e. there's a logical OR between filters of the same type
(e.g. network A OR network B) and a logical AND between different filter
types (e.g. network A AND theme category movie).
Example 1: If you want all programmes which are neither categorized
as sports nor as children's programmes, select theme filters sport
and children's and then invert the current theme filter (usually class #1;
you can equivalently use the global invert if themes are the only filter).
For the theme and sorting criterion filters it's possible to invert
only parts of the selection, so that you can require that a programme
has a certain attribute and at the same time require that it doesn't
have another attribute.
Example 2: If you want all programmes which are movies but NOT adult
movies, select theme category Movie, switch the theme class to 2,
select theme adult and then invert theme class 2.
Note: although the Feature filter offers the use of different classes
so support a logical OR, the inversion is not based on classes. This is
due to the fact that there's a logical OR between feature classes (in
contrast to the logical AND between theme classes).
When you want to add a shortcut, first set the filters up in
the way you want to save them, i.e. either choose existing shortcuts or
select an entry from the Navigate menu and/or add filters from the main or
context menus. When you have found an interesting selection, invoke
Add filter shortcut from the shortcuts menu.
This will open the shortcut edit dialog (which will be described in detail
below) with your new shortcut at the start of the list at the left. You
should change the shortcut label in the field at the top right; by default
it's just ``new shortcut''. The label will be displayed in the shortcut list
in the main window.
When you're done press Save, or Abort if you've changed your mind
and don't want to add this shortcut after all. If you want to define
multiple shortcuts you can leave the Edit dialog open and save just once
when you're done with all changes.
You can invoke several shortcuts in parallel by moving the mouse with
the left button pressed or by pressing the CTRL or SHIFT keys when
selecting in the main winddow's shortcut listbox. See the chapter below
for possible side-effects when combining shortcuts.
The shortcut list has a small context menu which shows when you click with
the right mouse button into the shortcut list. If offers faster access
to the same commands which are available in the main menu plus a Delete
command; the shortcut above which you press the mouse button is
pre-selected for the chosen operation.
When you Update a shortcut and your current filter setting contains
different filters than the previously stored setting, you'll be asked if
the filter mask should be automatically adapted (e.g. if your filter
previously searched for theme category 'movie' but your current filter
consists of a text search). See below for more details on filter masks;
unless you have manually edited this shortcut's mask before, you can
safely press ``Yes''.
The buttons with up/down arrows will move the selected shortcut up or down.
The buttons with arrows pointing to the upper left and lower right are
used to move a shortcut entry out of or into a sub-folder respectively.
The Delete button removes the selected shortcut from the list (the
deletion won't affect the main window until you press Save, so you
can leave the dialog with Abort to undo the operation.)
The Invoke button will apply the shortcut's filter setting to the
main window just as selecting the shortcut in the main window's list.
You can then change the filter settings via the filter menus. Use the
Update button to assign the main window's filter settings to the
edited shortcut.
You should be careful with the update button since it's easy to
overwrite the wrong shortcut. If you notice such a mistake, you can
undo the change either by leaving the edit dialog with the Abort
button or selecting the respecting shortcut in the main window and
assigning the original settings via Update.
The filter mask is defined in the shortcuts dialog with a checkbutton
for each filter category. By default, the mask is enabled for every filter
category you've included in the shortcut filter setting. When you invoke
the shortcut from the main window later, all filters of the given categories
will be cleared (masked out) before the shortcut filters are added.
To return to the above example: if the ``Sports'' shortcut is defined
with a themes mask, the manually set movies filter would be cleared
before the theme filter is set to sports.
The masking can also be enabled when no filter of that category has been
chosen. This can be used to define undo shortcuts. E.g. choose the
mask 'Themes' if you want a shortcut that allows to clear all
theme-related filters at once. Or enabled all masks for a Reset
button (the only difference to the pre-defined Reset button would
be that the cursor does not jump to the first Now programme.)
For example, if one shortcut searches for movies, another one subtitles,
the combination will search for programmes which are movies AND have
subtitles. Also, if you have one shortcut which filters for movies
and one that filters for your favorite series, the combination will
filter for all programmes which are either movies OR among your
favorite series.
For such simple shortcuts which consist of a single filter type this
behavior is usually intuitive. When combining complex filters the result
of merging however might not match your expecations. For example, if
you have a shortcut ``movies on network A'' and one ``series on network B''
merging would result in ``either movies or series on either network
A or B'', i.e. the list would also include movies on network B.
Hence the shortcut edit dialog has a Combination rule option where
you can change the mode into OR or AND. If you put a shortcut
into this mode, it's filters will be handled separately from all others.
The only drawback is that the shortcut's filters will not be editable
via the filter menus. If you ever want to change the filter settings
without creating them from scratch, use the Invoke and Update
buttons in the edit dialog
(see ``FILTER SHORTCUTS: Editing Filter Shortcuts''.)
Note that while the shortcut edit dialog window is open, updates (as well
as deletions or additions) will only affect the temporary list in the
edit dialog window until you press the it's Save button. Also the
list offered for shortcut updates consists of the shortcuts as they are
defined in the temporary list. This allows to test your changes before
you commit them.
Note that a faster way to change a single shortcut is to use the context
menu, since it allows to skip this intermediate dialog.
Composite attributes replace single attributes in the display (e.g. only
the theme category column.) Newly created composite attributes will be
appended to the list of pre-defined attributes. You can then configure
your programme list as a mixture of pre-defined and composite attributes
(see ``CONFIGURATION: Select attributes'')
Composite attributes are created and edited via the
Attribute composition dialog in the Configure menu
(see ``CONFIGURATION: Attribute composition'')
The ``heart'' of attribute composition is a list of filter shortcuts
and reminder groups, which you build as a subset of your personal
filter shortcuts and/or reminder groups (see also ``FILTER SHORTCUTS''
and ``REMINDERS''.)
Whenever nxtvepg displays a composite attribute in the browser, it
matches the programme's actual attributes (e.g. theme categories or
assigned reminders) against the shortcuts and reminder groups associated
which the respective composite attribute, in the given order
(top to bottom in the dialog's list - so order is important).
If a match is found, the text, image or attribute which was assigned
to that specific shortcut match is displayed in the column with the
format specified for this match. If none match (and there's no
*no match* entry, see below), nothing is displayed in place of
the composite attribute.
Note in this context matching means that a shortcut's filters are
tried against the TV programme, i.e. a programme ``matches'' a filter when
it would remain displayed when you enable that filter shortcut in the
main window. A reminder group is considered matching when the
respective TV show is programmed as a reminder in that group (or matches
a shortcut which is assigned to the given reminder group - but let's
ignore that for now to avoid confusion.)
Example: to create a personalized version of the Editorial rating
(ER) column, you could create three shortcuts: one with the ER filter
set to ``>=6'', one with ``>=4'' and one with ``>=2''; then you'd create a
new user-defined column and insert the three shortcuts in this order;
to the first shortcut match you'd assign the text ``great'', to the
second ``ok'' and to the third ``bad''. As a result you'd have a column
where the numerical ratings are replaced with your texts.
There is also a special entry at the end of the dialog's shortcut list
called *no match*. It acts as a catch-all (i.e. wildcard) if none of
the shortcuts in the column matches the current programme entry. In the
above example this would be all programmes with an ER below 2 or without
a rating.
The catch-all is particularily useful to overlay standard columns with
alternate texts for selected programmes. To stay with the ER example,
you could define a column with two shortcut entries: ``>=6'' and
``*no-match*''. To the ``>=6'' shortcut match you could assign an image
marker; to all other the ``ER'' attribute. Hence programmes with an
ER >=6 (i.e. all ``great'' programmes) would have an image displayed and
hence clearly stand out from all other programmes, which get the
regular content of the ER column (i.e. the numerical rating or an
empty column for unrated programmes).
You can also use this machanism to combine several columns into one,
to keep the listing compact. For example you can combine the ER column
with the theme column, so that for movies with ER >= 6 the text
``great movie'' is displayed, for all others the regular theme description.
To set a new reminder simply select it with the cursor in the programme
list and choose Add reminder for selected title from the Reminder
menu. The same command is also available in the context menu, i.e. by
clicking on the selected title with the right mouse button. To remove
the reminder, simply select the title again and choose
Remove reminder for selected title.
By default nxtvepg will display a message popup for every reminded
programmme 5 minutes before and directly at the start time. You can
change this in the Configure reminder groups... dialog described
in a separate chapter below.
If you want to set a reminder for an entire series, you need to create
a filter shortcut first which matches the series (either by searching
by series ID or by title). To reduce the overhead you can create a
shortcut which matches all your favorite series and set a reminder for
this collection. To assign a reminder to the shortcut use the
Edit reminder list described in the next chapter.
Note you can add a single reminder for entries which already match a
shortcut reminders. This allows to assign an additional, specific
action for that TV show (if you use different groups.) Additionally
you can suppress handling of reminders for individual shows; this
option if offered in the Reminder and context menus when applicable.
This option may help to get around excessively complex or restrictive
shortcut filters.
By default nxtvepg has (in the single list layout) a column titled
Mark which contains a red dot for all programmes which have a
reminder registered, i.e. both single programmes and those which
match shortcuts with associated reminders. You can also set a filter
which will display only programmes with reminders in the proramme
list by selecting Show reminder matches from the Reminder menu.
The single programmes list is sorted by start time and network. When
you double-click on a reminder, the respective network will be filtered
for in the programme list and the cursor jumps onto the programme
(if it's present in the current database.) To delete a reminder click
on the Delete button or press the delete key on your keyboard. You can
also select the reminder's ``group'' (see below) either by selecting a
group in the popup menu from the Set group menubutton or by clicking
with the right mousebutton into the group column.
The list will normally not contain reminders for programmes which are
already expired. You can use the Display popup menu at the right to
change that. You can also include ``suppressed'' reminders, i.e. entries
which where created via the respective entry in the main menu to supress
shortcut matches; those will appear with the virtual suppress group
in the list.
When you switch to the Shortcuts tab, you'll see a list of all shortcuts
for which you have added reminders.
The first time you open the dialog it will be empty. You can add shortcuts
by selecting them from the popup menu at the right. Equivalently to single
programmes you can change the group or delete the reminders again. All
changes to the lists are immediately saved and the markers in the programme
list updated.
All changes you make in this dialog take effect immediately.
By default nxtvepg has only one group which pops up a message 5 minutes
before and directly at the start time. You can change this by selecting
the group in the list at the left and then modifying the parameters at
the right. Or create a new reminder by clicking New. You can also
change ordering of groups (only available for your convenience; except
for group zero ordering is not relevant.) The Show buttons sets a
filter for the programme list so that only programmes matching reminders
in the same group as the currently selected shortcut are displayed.
At the top of the parameter input section is the Label entry field.
It allows to give the group a name, which is then used in the reminder
lists and in reminder confirmation messages. Below is a checkbutton
called Temporarily disable all group events. While enabled all
actions for that group are suppressed, i.e. you'll get no popup messages
and scripts are not executed. Note this setting only applies to the
current session and is reset when nxtvepg is restarted (you should clear
the action lists if you want to disable reminder messages permanently.)
The programmes are still marked in the listbox though.
Further below is an entry field where you can give a list of comma separated
values which define at which offsets reminder messages are displayed;
offsets are substracted from the start time, i.e. when you enter ``5'' a
message will appear 5 minutes before the programme's nominal start time.
You can use negative values (e.g. ``-5'') if you want reminders to appear
later than the start time. In addition you can set start times for
commands. Commands are silently executed in the background, unless
you enable Ask before executing script.
Note configuration changes (including group additions or deletions) are
not applied before you leave the dialog with OK.
For message windows there's several buttons which allow to control
further reminder processing. Suppress will prevent any subsequent
messages for the programme. (Note that this is not the same as suppressing
reminders in the main menu, since here you supress only messages but the
programme remains marked as reminder). Repeat allows to schedule
additional reminder messages at arbitrary time offsets. Note that
messages configured for the group are suppressed until the manual repetition
but will re-appear afterwards.
This menu consists of several parts, separated by horizontal lines,
which depend on the currently selected programme and hence are not
always present.
The title text and series filters allow to check very quickly for
repeats of a programme. These filter options are included only if
there is a match, i.e. if there's another programme with the same
title or series code respectively.
You will get an error message if the device is already busy by a
different application (there are some applications which cooperate
well with nxtvepg, but if in doubt you should quit all other video
related applications before starting acquisition) or if you don't have
permission to access the device (UNIX, see also ``FILES'') or to start
the driver (Windows). If you're experiencing problems that might be
hardware or Operating System related, test with a TV application or
teletext decoder first, because these usually allow for easier debugging
(e.g. due to the visible TV image). See also ``GETTING STARTED''.
UNIX: When acquisition is switched off, the /dev/vbi device is freed.
Acquisition can also been switched on and off automatically (i.e. from a
shell script) by sending signal HUP (e.g. with the kill(1) command) to
any of the nxtvepg processes or threads. If you're using a daemon for
acquisition (see the next command) you have to send the signal to one of
the daemon processes/threads. To simplify this, the pid of the process
which needs to be signalled is stored in /tmp/.vbi.pid while the device
is in use.
If you attempt to connect, but no daemon is running, you'll be offered
the option to automatically start the daemon and retry the connect,
provided you have configured server hostname localhost.
The daemon will be started with the same database directory and rcfile
as the browser.
Note that disconnecting from the daemon or terminating the browser does
not stop the acquisition and hence does not free the device. If that's
what you want, choose the Enable acquisition command instead, which
terminates the daemon. Of course this option only is available if your
daemon is running on the same host and with the same user id as the
browser process.
When connected to a acquisition daemon, blocks are only dumped if
they are new to the database or their content changed (because only
those are forwarded by the daemon to the client.)
The array of checkbuttons allows to control which kind of blocks
will be written. The programme information blocks (PI) do contain
the actual programme descriptions; Defective PI contains those
PI which were not accepted into the database because of inconsistencies
like a zero or overlapping running time. For an explanation of the
other block types please see the ETSI specification 707.
You can also export the database in this format via the command
line by using option "-dump raw". In this case the options last
used in the dialog are effective.
Note that the data can also be exported directly from the command
line by using -dump raw (see ``OPTIONS'')
The generated text file can be loaded directly into a relational
database. It's not formatted for viewing in a regular text editor.
Networks and themes are represented as numerical indices into the
network and themes table respectively. Hence these tables are
required in addition to the programme table. To load them into
a database, you need to export them into different files.
For MySQL you could create the following tables:
Note that the database can also be exported directly from the command
line by using -dump pi, -dump ai or -dump pdc (see ``OPTIONS'')
Hint: If you want to restrict the amount of exported data, configure
a merged database. This is possible even for a single provider.
This way you can exclude certain networks or attributes, e.g. to omit
theme categories from the output (see the ``Configure'' sub-menu in the
merge configuration dialog.)
Some TV applcations are known to not parse XMLTV timestamps correctly.
As a work-around for such buggy applications, there's an option which
allows to export dates and times in local time instead of UTC (also
known as Greenwhich Mean Time or GMT.) If all programme data
appears shifted by one or two hours in your TV app's schedule, try
this option.
Note that the database can also be exported directly from the command
line by using the -dump xml switch (see ``OPTIONS'').
At the top of the dialog window you have to enter the output file name;
if you don't include an extension, .html is automatically appended.
Click on the little folder button to the right for a file selection dialog.
Press the Export button to create the HTML document and Dismiss to
close the dialog window.
By default the checkbutton All matching programmes, but max ... is
enabled. In this mode all programmes that match current filter setting will
be exported, but only up the given number of programmes. It's recommended
to limit the number of programmes because else very large HTML documents
are created which may take a long time to load into your Web browser.
Use mode Selected programme only to export only the programme which
is currently selected in the main window. In combination with the
Append to file mode this allows to incrementally build a document
with exactly your programmes of interest.
In the box below there are three radio buttons with which you can select
the output format. If you choose Write titles you'll get a table in the
same configuration as in the programme title list in the main window.
If you want to have different column types, you can build a separate column
configuration by selection Different columns than main window and then
pressing the Configure button to select which column types to display.
If you select Write descriptions you'll get for each exported programme
a feature summary and description, similiar to the info in the lower part
of the main window.
If you select Write titles and descriptions you'll get the title table
on top and all descriptions separately below. In this mode you can select
Add hyperlinks to titles to add hyperlinks from titles in the table
to the descriptions.
The look of the generated document is almost entirely determined by use
of an internal CSS stylesheet. If you don't like the look you can override
it with your own stylesheet. Save it to a file named nxtvhtml.css and
put it in the same directory as the generated HTML file. For more
information on HTML and style sheets see <http://www.w3.org/>. If your
column configuration contains images (see ``COMPOSITE ATTRIBUTES''),
you have to put them into a subdirectory called images; also your
browser has to support the PNG image format.
If you leave the dialog with Ok, the selected provider's database will
be loaded into the browser. If the database hasn't been updated for a
long time, the programme list might initially be empty, but if you have
selected ``Follow-UI'' acquisition mode, the provider's TV channel will be
tuned to update the database content (see ``ACQUISITION MODES'' for
more details.)
To remove obsolete providers (i.e. such which have ceased to provide
Nextview service or which you can no longer receive), you should start a
provider scan in refresh mode (see ``CONFIGURATION: Provider scan'')
You cannot remove active providers even if you're not interested in their
EPG information, because nxtvepg would add them back automatically in
the next scan or when their TV channel is tuned externally.
Open a dialog which allows to enable and configure the teletext EPG
grabber. The grabber works by cyclically tuning all TV channels,
loading the TV overview teletext pages (e.g. 301-309 in Germany)
and building a small database from them. For titles which contain
references to other teletext pages, the grabber loads these pages
too and extracts descriptions from them. Finally the grabber's
output is written into separate files in XMLTV format.
The main intention of the grabber is to improve on the data provided
by Nextview EPG. The main disadvantage of teletext compared to
Nextview is the long time it takes to grab teletext. The cause for
the long duration is that most TV networks use sub-pages in their
TV-schedules, so that it takes several cycles until all parts of a
given page are loaded, usually at least 90 seconds. Assuming only
30 TV networks, the total load time is already 45 minutes. Another
difficulty encountered by the teletext grabber is the lack of a
standardized format for the schedules. Hence the data extraction
cannot always work correctly. In particular the capabilities to
extract theme categories and additional attributes are very limited.
But these disadvantages can be compensated by merging teletext EPG
with a Nextview EPG database (see ``MERGED DATABASES'')
To be able to use the grabber, you have to install a programm called
``Perl'' on your PC. Perl is included within virtually every UNIX
and Linux installation, so you probably already have it if you use
one of these operating systems. If not, you'll probably find it in
section ``programming languages'' on your distribution's CD or DVD.
M$-Windows users have to download and install Perl manually (from
<http://www.activestate.com/Products/ActivePerl/?mp=1> or
<http://www.cygwin.com/>) and then specify the path to perl in the
configuration dialog. (Alternatively you can extend your "PATH"
environment variable so that perl.exe is automatically found.)
By the default, the grabber is disabled since it's still experimental.
To enable it, check the box at the top of the configuration dialog.
If you haven't configured a TV application yet you'll get an error
message, since the grabber requires a TV channel table. The grabber
will retrieve EPG data starting with the first channel listed in
the TV app's channel table, and then switch through one-by-one.
Currently you cannot change the order or skip any programmes, but
you can limit the number of channels in the configuration dialog.
Note: When acquisition mode ``Cyclic: Now - All'' is selected
(see ``ACQUISITION MODES'') the grabber uses an optimized
strategy during the ``Now'' stage in which waiting times are
minimized by changing the order in which EPG data is read.
This way the grabber requires about 15-20 seconds per channel
in average. In the ``Full'' stage the grabber waits for the time
given after capture duration in the configuration dialog;
by default that's 90 seconds (such a large value is required
because programme descriptions are often transmitted on
so-called ``sub-pages'' which are not included in every teletext
cycle.)
To use the grabbed data you have to wait until each channel has
been visited at least once. After that you should see an XML
file for each TV channel in the nxtvepg directory (named
``ttx-XXX.xml'' where XXX is the TV channel name.) These files
will appear in the provider selection and merge dialogs and
can then be used just like Nextview EPG providers.
If you live in France, select the French frequency table
(which implies the Secam L TV norm) to be used for the EPG scan;
else use the default frequency table which covers common cable network
frequencies in Western Europe with the PAL TV norm.
Other countries are not supported, since there currently
are no Nextview providers. If you live in an area where you receive
both PAL and SECAM stations, you should perform the EPG scan twice
with different channel tables.
The Use TV app. button is automatically checked if an xawtv
configuration file is found in your home directory (on UNIX) or
a TV application was set up in the TV app. interaction dialog.
Instead of searching all possible TV channels or frequencies in
all bands, nxtvepg then just checks the TV channels defined there,
which usually saves a lot of time and is also more reliable.
Check the Slow button if you have bad reception on some channels.
In slow mode the scanner will not skip channels with ``unstable''
video signal (i.e. no PLL H-lock within 0.150 seconds) and wait
twice as long as normal for everything, i.e. up to 4 seconds for a
VPS/PDC channel identification and up to 90 seconds if potential
EPG data packets were found. Note that you
can change this setting while the scan is running.
Use the Refresh only mode if you deleted your database files (or if you
upgrade from an incompatible software version) or if you want to identify or
remove obsolete providers. In this mode only the channels on which Nextview
data was received before are checked (the frequencies are kept both in the
databases and your rc/ini file). This allows to regain your complete
provider selection very quickly. If no data transmission is found on a
provider's channel, a Remove this provider button will be added to the
output window, which you can use after the scan has finished to remove
the database and any information recorded about the provider. Note that
removal will fail if the database is currently in use, so you may have to
stop acquisition and select a different provider.
Technical background information on how the EPG scan works:
The scan will visit every physical TV frequency (or subsets thereof if
you use one of the options described above) and check for a TV signal.
If one is detected within 150 ms or if at least one teletext packet
was received, the scan waits up to two seconds for a valid VPS/PDC
channel identification. At the same time it receives packets from all
potential EPG teletext page addresses. If valid data packets have
been received (which does not necessarily mean it's EPG, because other
services could use the same encoding) the scan waits up to 45 seconds
for EPG inventory messages (BI and AI blocks). You can watch these
proceedings in the message output window.
Even though the scan tries very hard, it can not warrent that every
EPG provider is found every time. For example some providers do have
pauses of more than 45 seconds in their EPG transmission; or they
might have technical problems. So the safest way is to check the
nxtvepg web site (see About in the Help menu) for a list of known
Nextview EPG providers. If you receive TV channels for which a provider
is listed, repeat the scan until they are found, e.g. at different times
of the day. If you find new providers not listed on the web site,
please write a note in the discussion forum on the web site.
This dialog contains more options on Windows than on UNIX platforms
because on UNIX the driver is part of the operating system, whereas
on Windows it's part of the application and has to be configured
separately for every application. Hence, before you can use nxtvepg
you must firstly decide between using the internal ``dsdrv'' driver
and the card vendor's WDM driver; secondly, if using ``dsdrv'', you
need to configure the driver for your hardware in the Configure card
sub-dialog. Please refer to ``GETTING STARTED'' for a detailed
description of these steop.
Video source allows to choose which video input source to use,
i.e. where you have connected an video input cable to the TV card:
Tuner or Television refer to input via antenna cable (also
known as RF cable, i.e. terrestrial reception or cable TV);
Composite refers to a cinch video cable as used by satellite
receivers or cheap video records; S-Video is an variant of Composite
with improved image quality (often wrongly called S-VHS cable since
it's mostly used by S-VHS video recorders) and easily recognized
by the Sub-D connectors (called ``Hosidenstecker'' in German).
Depending o your hardware you may only see a sub-set of these
input types, or additional ones (e.g. Radio, which will obviously
not work as input for nxtvepg.)
Note if you don't choose a TV tuner as input nxtvepg will not be able
to automatically switch to your EPG provider's channel.
See also ``DATA ACQUISITION''.
If you have more than one TV tuner card, you can also choose which
one to use, just like with the -card command line option
(see ``OPTIONS'')
The popup menu will list all card types as configured in the driver.
Note that changing the card may also affect the input selection,
in particular if the cards use a different ordering for input types.
The slicer quality option selects between different algorithms by which
teletext is extracted from the analog video signal. The simple
algorithm works only for excellent TV reception, but has the advantage
of using very little CPU resources. The elaborate algorithm
(copied from zapping's libzvbi and originally developed for the Linux
teletext viewer alevt) is much more error tolerant. When you select
automatic acquisition will always start with the simple algorithmm
but switch to the elaborate one when the transmission error rate is
above recommended limits (see also
``STATISTICS: Acquisition statistics'').
Windows only: at the bottom of the dialog window there are additional
options, which you only need to try if acquisition does not work
correctly.
If you experience data loss due to heavy system load, you can raise
the acquisition thread priority (may require special privileges on
certain Windows versions.) Default is normal, i.e. the same as
for all user applications.
The second checkbutton allows to enable logging during driver startup and
shutdown. The output is appended to a file named dsdrv.log in the
nxtvepg working directory. Enable this option if you're not able to
start the driver and cannot find out why. But first see the explanation
of driver error messages in the README file. Note that the logging
option is not remembered across program starts, i.e. to make use of it
you have to enable the acquisition via the Control menu and not by
restarting nxtvepg.
The third option currently only applies to CX23881 based cards: it
allows to disable a vendor's WDM driver for the same card. This is a
work-around for the fact that CX23881 WDM drivers are known to access
the TV card even while no application is using them. You should only
use it as a last resort, i.e. when you can't get the card to work
at all. It's still an experimental feature, some users have reported
that their card configuration was lost or WDM drivers remained
disabled even after nxtvepg was stopped (in both cases other applications
will probably not work properly anymore.) You can verify if the WDM
drivers are cause of acquisition problems by de-installing them,
rebooting and then trying nxtvepg again (note nxtvepg doesn't require
any vendor supplied drivers.)
The dialog contains settings of which some refer to the server-side only,
some to the client-side only and some to both server and client. To avoid
confusion, there are three radio buttons at the top of the dialog which
allow to grey out items that do not refer to the client or server
respectively. Note: for server configuration changes to take effect, the
daemon must be restarted. If it's running locally, you can do this via
the Control menu (see ``CONTROL: Connect to acq. daemon'')
Note: on Windows currently only TCP/IP is supported, i.e. you have
to enable this option if you want to start the daemon.
Note: on systems that support it, TCP/IP sockets are created in the
IPv6 domain (PF_INET6) by default. On some systems (e.g. NetBSD)
you cannot connect via IPv4 to an IPv6 server and vice versa, i.e. you
need to use the same domain on both ends. If your client only supports
IPv4, you can force your server to create an IPv4 socket by binding to
an IPv4 address. If you fail to connect to a local IPv6 server via
the IPv4 loopback address 127.0.0.1, use the IPv6 equivalent ``::1''.
The following settings are available: ``no logging'' disables logging;
``error'' enables logging of internal errors that lead to an immediate
exit of the daemon; ``warning'' additionally enables logging of
unexpected events, i.e. internal errors which do not lead to exit;
``notice'' additionally enables logging of server status changes,
i.e. startup and shutdown; ``info'' additionally enables logging of
connection establishment or shutdown.
Note that while network mode is enabled configuration of acquisition
mode and TV card input has no effect and no EPG scan is possible.
If you use the same rc/ini file for daemon and GUI the changed settings
will however be used by the daemon upon the next start.
The first four (only three on UNIX) options allow to
switch interaction features on or off. If you want to improve startup
time on UNIX, turn them all off; in this case nxtvepg does not need to
search for the xawtv toplevel window (which can take up to several
seconds if you have many applications running or a slow connection to
your X server.) By default all interaction features are enabled.
Note the button has a little context menu which opens with right
mouse button. It contains several remote controls; which one actually
work depends on the TV application.
If you have just a network filter enabled, it will be switched to the
new network so that you'll get a complete listing of that network's
programmes, starting with the currently running one. This works even
when you have excluded this network in the network selection configuration.
If there are more or other filters than network enabled, then they will
remain unchanged. If the current programme on the new network does not
match this filter setting, then neither cursor nor listbox content will
be changed.
After a change of channel or current programme title, the info about
the currently running title will be displayed in the TV application.
On Windows it's entirely up to the TV application how this information
is displayed.
On UNIX the display format can be selected by the following radio buttons:
With Separate popup nxtvepg will generate a small popup window and
put it right beneath the xawtv window. The blue area in the small bar
on top represents how much of the (nominal) running time lies in the past.
With Video overlay nxtvepg will generate a similar popup, however it's
placed on top of the video image (please note that this option only works
properly with XFree86 version 4 and the XVideo extension; use the xvinfo
command to check if your server supports this feature). You can change
fonts and colors in this popup via X resources (see ``FILES'' for details.)
Video overlay, 2 lines is the same except that it writes running time
and title in separate lines and additionally contains the percentage of
expired running time.
With Xawtv window title the info will be sent to xawtv and displayed
in the window title. Except for this last option, you can configure the
desired display duration with the slider at the bottom of the dialog.
A duration of zero means the display will never be removed.
Finally, with Use external application an arbitrary external
application can be invoked to display the information. Title and runtime
information can be passed on the command line, in the same way as for
external commands in the context menu
(see ``CONFIGURATION: Context menu configuration'')
In the middle of the dialog there's one line that
indicates the current TV application connection status. It contains
the name of the connected application, or not connected either if
no TV application is running or if it doesn't support interaction with
nxtvepg (see also ``GETTING STARTED: Configuring a TV application''.)
You can connect to different applications than configured below, but if
the network names are not synchronized with nxtvepg, the interaction
will not work optimally (i.e. nxtvepg might not be able to identify
all networks, and hence not be able to provide programme titles).
In the lower part of the dialog window you can configure
type and path of your preferred TV application. This information
is used to access the TV app's channel table (i.e. TV tuner frequencies
and station names) during an EPG provider scan
(see ``CONFIGURATION: Provider scan'') and in the network name
configuration dialog (see ``CONFIGURATION: Network names'').
After you've changed the setting, you can press the Test button to
check if nxtvepg can parse the channel table correctly. It will complain
if it fails to open the file or registry key and if no channels are found.
After the test was successful, you shoud open the network names
configuration dialog and synchronize network names with nxtvepg.
If your TV application is not supported, choose none. (If it's a
freeware application feel free to mail me a download URL and I will
consider supporting it. However I will not support proprietary
closed-source software, unless on request by the author.)
Note that not all of the TV applications listed in the popup menu can
currently interact with nxtvepg. The interaction requires modifications
in the TV applications; it's up to the respective authors if they want
to implement these. (If you are an author of a TV app, feel free to mail
me if you want to add EPG support to your application; a demo application
and reference implementation source code are available on the nxtvepg
home page.)
The listbox on the right contains the types currently selected for
display. The topmost entry appears on the left side of the listbox.
Press Apply to refresh the browser listbox with the new column
selection and save the new configuration to the config file.
In the ``single list'' layout (see ``CONFIGURATION: List layout'') each
attribute has it's own column in the TV schedule and and associated
filter menu in the button on top of the column (provided column headers
have not been disabled, see ``CONFIGURATION: Show/Hide''.) You can
change the width of each column by moving the mouse pointer to the
very right of the menu button and then dragging the border to a new
position while keeping the left mouse button pressed down.
In the ``spearate network columns'' layout attributes are printed beneath
each other in separate lines in the TV schedule's network columns, unless
you select No new line after element while the respective attribute
is selected in the right listbox. Empty rows are automatically suppressed,
e.g. in contrary to the ``single list'' layout the number of attributes actually
displayed may vary. This is particularily useful for user-defined
attributes, e.g. you could specify that theme categories are only
printed for movies to keep the listing more compact.
For a general description of composite attributes see
``COMPOSITE ATTRIBUTES''. This chapter only describes usage
of the configuration dialog. This chapter also assumes you're familiar
with the concept of filter shortcuts (see ``FILTER SHORTCUTS'') and
reminders (see ``REMINDERS'')
The dialog consists of three sections: at the top to the right there is a
drop-down menu which lists all currently defined composite attributes. Here you
select which attribute definition you want to edit. Below to the left is a
list of shortcuts and reminder groups and 4 buttons to edit the list. On
the right side of the shortcut list there are various controls for defining
how programmes matching shortcuts or reminder groups should be displayed.
Note that there are dependencies between those sections: when you change
to a different attribute definition with the drop-down menu at the top,
the rest of the dialog is immediately updated to display the current
definition of the composite attribute (you'll get a warning if there any
unsaved changes in the previous assignments). Also, when you select a
shortcut in the listbox, the display attributes at the right are updated.
To create a new composite attribute, you will start by selecting the
Create new definition command in the menu at the top right of the dialog
window. You should give the label right away, so that you can keep your
definitions apart, see ``CONFIGURATION: Select attributes''.
You should also assign a column header text (only used in the ``single list''
layout), which will appear above the programme list in the main windiw;
you'll probably use a shorter text here than in the label.
Then you add one or more filters to the list by use of the Add shortcut
or Add reminder
drop-down menus to the left of the listbox. New entries are always appended
at the end of the list, but you can change the ordering by use of the
up/down arrow buttons. To remove a shortcut or reminder group from the list,
first select it then click the Delete button or key. Note: ordering is
important when a programme is matched by more than one shortcut, or if you
mix shortcuts with reminder groups, because the display format will be
determined by the first matching entry in the list, strting at the top
(see also ``COMPOSITE ATTRIBUTES''.)
At the right of the shortcut list there are controls which defines what's
displayed in the programme list depending on a shortcut or reminder match
(for programmes which don't match any of the given shortcuts nothing will
be displayed, unless you have a *no match* entry.)
By default a match is displayed as the name of the matching shortcut or
reminder group, but you can easily change that with the controls to
the right of the listbox. The choices are: freely defined but static
text, one of the pre-defined images or one of the programme's attributes
(i.e. if you select Time the programme's start time will be displayed).
In case you chose to use text (including attributes), you can select
bold, underlined or overstrike font and the text color. For all types
you can also select a background color. Colors can be applied either
just to the user-defined attribute itself, or the entire column
(in single list layout; or the entire element in grid layout)
The resulting appearance is shown in a Text sample
above the controls. These display options can be configured separately
for every shortcut match. An exception is the entire-column background
color; if such a format is found in multiple attributes, the last one
counts.
When you want to try out your attribute definition, press the Apply
button at the bottom. The definition is saved and the browser content
is updated. If the attribute is not currently used in the browser,
you're offered in a popup message to automatically append the attribute
to the TV schedule. You can later change it's position by using
the Select attributes configuration dialog.
There's also a Delete button at the bottom which allows to remove
obsolete definitions. If the composite attribute is still displayed in
the browser, it's automatically removed. Note that a deletion cannot be
undone, i.e. the information is lost irrecoverably.
This window has two lists: on the left you'll find all networks that are
covered by the provider in their original order, on the right those that
are selected for the programme listing in your preferred order. By default,
both lists will have exactly the same content. If you want to exclude
networks, select them in the right list and press Delete. You can always
include them again by selecting them in the left list and pressing Add.
You can change the order in the right list by selecting one or more networks
and pressing the up or down arrows.
At the bottom of the dialog window there's an entry field named
Air times that allows to limit the program listing for a network
to a given time frame. For example if you receive Arte only from
19:00 until 07:00 o'clock, select ``Arte'' either
in the left or right list, then enter ``19:00'' and ``07:00'' in the fields
(make sure to always use 4 digits and the separating colon). Programmes
that fall completely outside that window will not appear in the browser
window. If you want to undo the limitation, enter 00:00 until 00:00
or any other equal time values.
Note: you can also operate this dialog (and all other dialogs with similar
listbox selections) with he keyboard: use the TAB key or the mouse to move
the keyboard input focus to the left or right listbox. Use the cursor
up/down keys to select an item; hold down SHIFT to select multiple items.
In the left list, press Return to add a network to the right list. In the
right list, press the Delete key to remove a network, or press CONTROL
and the up/down cursor keys to change the selected items' position in
the list.
If you're not using UNIX, you first need to select which TV application
you want to synchronize with and where the configuration files are
located. This is done in the TV app. interaction dialog in the Configure
menu (see ``CONFIGURATION: TV application interaction'').
Another use of this dialog is to make network naming consistent across
all Nextview providers. The names you specify here will be used in the
programme listbox and all filter menus, independently of the provider.
On the left side of the dialog you find a list of all networks of
all known Nextview providers. The names used here are the ones you
configured before, or if you haven't done so yet, the names that match
the station names of your TV application best. Unmatched names are
marked red. If no TV application is configured, the network names
used by your currently selected EPG provider are used.
On the right side, you're offered four ways to change the name: topmost
is a simple entry field where you can type in an arbitrary name. Below
is a popup menu which contains all network names defined in your TV app.'s
channel table. Below is a button which contains the one name in your
TV app.'s channel table which resembles the current string in the entry
field most, or none. It's marked red
until it's identical to the entry field. You can copy the name to the
entry field by clicking the button. Below is a listbox with the original
names used in the various provider databases. When you select a name from
the menu or the listbox, it will be copied into the entry field and the
network name list on the left. If you want to save the changed list,
leave the dialog with Save, else use Abort.
Note: if you receive channels that carry multiple networks, e.g.
in Germany ``Arte / Kinderkanal'', it's recommended to include all
networks' names in the network name on side of the TV application,
separated by a slash. The slash is recognized as separator by nxtvepg
and all resulting segments can be used as network names.
At the top of the dialog window there's a list of titles of all
currently defined menu items. When you open the dialog for the
first time, you'll see only pre-defined ``pseudo commands'' (such as
``Add programme filters''.) These don't show up like that in the context
menu, they just represent menu commands which are automatically
inserted in their place at run-time, depending on the currently
selected programme entries and current filter settings (e.g. to add
a filter for the network of the curently selected programme.)
As usual, you can change the ordering of items in the list by selecting
an item and then clicking the buttons with up/down arrows.
To remove an entry, select
it and press Delete. If you make an error you can leave the dialog
with Abort; changes aren't applied and saved until you leave the
dialog with Ok.
The Add new menu button allows to insert a new menu item below the
currently selected one:
The dialog's entry field labeled Title defines the text which will
be included to the popup menu. The field labeled Command defines the
command line
would create a command that switches the TV app's channel to that of
the currently selected programme (i.e. the same what the Tune TV
button does). You should refer to the documentation of your TV app
to see which commands it supports.
When you press the menu button Add Example a list pops up which
contains a few example commands which can be copied into the title and
command entry fields.
As mentioned above, external commands and TV app. remote commands allow
to include placeholders enclosed in ${} which are replaced by attributes
of the programme selected in the browser listbox at the time the context
menu command is invoked. The following is a list of such formal variables
The meaning of the variables should be self-explanatory, except possibly
for CNI: this is a hexadecimal network code, and e/p_rating: these are
editorial and parental ratings respectively.
Start and stop time related keywords can optionally be followed by either
a plus or minus sign and a time offset. The offset value is assumed to be
given as minutes. For relstart and duration the precision can be changed
by means of the format (see below.) Example: to print the start time
minus 5 minutes (e.g. to start a recording 5 minutes earlier)
use "${start-5:%H:%M}"
The keywords can optionally be followed by a colon and an output format
specification. Options depend on the type of variable substitution:
For all other variables modifiers are currently ignored.
On UNIX the resulting substrings which replace the formal variables are
always enclosed in single quotes, because the command line is passed
to a system shell for execution (/bin/sh, i.e. the Bourne Shell by means
of the system function; see also system man pages sh or bash)
and there are many characters with special meaning. Single quotes inside
he substituted string are correctly escaped.
Example: The command line
could for example on UNIX systems result in
On Windows only single- and double quotes and spaces characters are
escaped with a backslash. Hence the above example would result in:
Note if you want to prevent the backslash inbetween date and time (if
the called program doesn't understand it), you can simply use two
separate substitutions for date and time. Example:
You can join several columns in a single column via the Control
menu (meant for networks which share the same channel; use this in
conjunction with air times restriction as described in
``CONFIGURATION: Select networks''.) The control menu is part of the
drop-down menu below the button at the top of the column. This menu also
holds commands to increase or decrease the number of visible columns.
In both layouts you can select which types of attributes are printed
for each programme by clicking on the icon in the button row at the top
of the list (unless column header buttons are hidden.)
The last 4 digits of the file names are the hexadecimal CNI (Country
and Network Identifier) of the provider.
Alternatively you can make yourself a member of a group in /etc/groups
which has access to the devices or create such a group.
The device is only kept open during a provider search
(see ``CONFIGURATION: Provider scan''). Else, it's just
opened shortly to set the input source and tuner frequency. If the device
is busy (e.g. while you watch TV), acquisition starts on the currently
selected channel and automatically follows any externally controlled
changes (this will be reported, e.g. in the status line at the bottom
of the browser window, as forced passive acquisition mode, see
``STATISTICS: Status line'').
Note: it's mandatory that the video device has the same index as the
VBI device. If you have a video device at index 0 which does not
support teletext (a webcam, for example) the VBI device belonging to
video device #1 may appear at index 0. You should force the driver
to assign device index #1 to the VBI index. On Linux this is possible
by using insmod parameters in /etc/modules.conf, e.g. for bttv:
Note that the daemon is not kept alive when acquisition is disabled,
so that sending HUP to the daemon equals sending TERM. You can restart
acquisition by starting a new daemon. The browser attempts to reconnect
every 10 seconds when the connection was broken, but you can also trigger
an immediate reconnect be sending the GUI process SIGHUP.
To restart acquisition in non-daemon mode, signal again with SIGHUP,
either to the acquisition slave process or the browser process.
Defaults for all officially supported options are listed in the
so-called ``app-defaults'' file Nxtvepg.ad which is usually installed
in /usr/X11/lib/X11/app-defaults (the .ad extension is omitted during
installation.) You should not change values there however, because they
would be overwritten when you install new versions. Instead copy changed
lines into your .Xdefaults file (without the leading comment ! sign.)
Note you have to restart nxtvepg for changes to take effect. When X11 is
already running you can override individual settings with xrdb like this:
Color values can specified either symbolically (e.g. ``red'') or as hexadecimal
RGB values in #RRGGBB format. A special case are the 7 colors for weekday
background colors in the main window's date scale: it's resource value
consists of a comma separated list of 7 colors.
Fonts must be specified as triplets of family,
size (use negative values to specify the size in pixels and positive values
for sizes given in points) and appearance (only ``normal'' or ``bold'' are
recommended). Lines starting with a ! sign are treated as comment and hence
ignored. Entries that do not adhere to this syntax are silently discarded.
The best way to provide feedback is via the discussion forum at the
nxtvepg homepage.
Many thanks
to Néo for providing the installer for MS-Windows releases
and for the French translation of several web pages;
to Kurt Lettmaier and Olaf Nöhring for the German translation of the manual;
to Thierry Ménétrier and Peter Rolf for their valuable feedback and suggestions;
to Simon Barner for the FreeBSD port;
to Matthieu for the French translation of PDC theme descriptors;
to E-nek for the DScaler driver port and cooperation
in develepment of the TV application interaction;
to John Adcock for the DScaler driver;
to Jan Schuster for beta testing nxtvepg 0.7.0;
to Mario Kemper for the NetBSD port and early beta testing;
to ``Mario's brother'' for beta testing the first Windows port;
to Gerd Knorr for xawtv and maintaining the Debian and SuSE nxtvepg packages;
to Ralph Metzler for his teletext decoder;
to Edgar Toernig for the Latin-1 conversion tables in alevt;
and last but not least to the authors of bttv and v4l for their excellent work,
and the authors of the Cygwin GNU and XFree86 port, without which nxtvepg
would never have been ported to M$ Windows.
Additional copyrights apply to portions of the code herein.
Please see file COPYRIGHT and source file headers for details.
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, e.g. at
<http://www.fsf.org/>
This program is distributed in the hope that it will be useful, but
WITHOUTANYWARRANTY; without even the implied warranty of
merchantability or fitness for a particular purpose. See the
file COPYRIGHT for more details.
You can also have Nextview directly inside your television set - check
out the catalogues of Grundig, Loewe, Metz, Sony, Philips, Thompson,
Telefunken or Quelle Universum. However be aware that not all models do
support the same set of Nextview features.
DESCRIPTION
nxtvepg
is an X11 and Win32 application to receive, analyze and browse TV programme
schedules transmitted on top of Teletext as defined by the European
Telecommunications Standards Institute (ETSI) in ETS 300 707:
``Protocol for a TV Guide using electronic data transmission''.
OPTIONS
Summary of command line options:
su nobody -c "/usr/local/bin/nxtvepg -daemon \
-rcfile /usr/local/etc/nxtvepgrc"
nxtvepg -dump ai -prov d92 > networks.txt
nxtvepg -dump ai -prov d92 | more
GETTING STARTED
Before you can start reading in TV programme schedules (called
acquisition
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
recommendation how to get to data in the browser window,
highlighted by a yellow background.
TV card Setup on M$ Windows
Windows users first have to configure the driver for their TV card
in the ``TV card input'' dialog via the Configure menu (for additional
information see also ``CONFIGURATION: TV card input'').
UNIX users can skip this section.
Dsdrv driver configuration on M$ Windows
To start driver configuration, press the Configure card button in
the middle of the ``TV card input'' dialog window, which will open another
dialog. If this button is disabled, this means no supported TV capture
chips were found in your system. (You'll also see an error message
popup stating ``PCI scan failed''; see also the README file for more
details on driver error messages.) In this case your only option is to
use the WDM driver (see the previous chapter.)
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
TV card input dialog in the Configure menu
(for more in-depth information see also ``CONFIGURATION: TV card input'').
Search for Nextview providers (EPG scan)
This section only applies if you chose to use your TV card's internal
tuner. In this case the next step to get started is to run a provider
scan from the Configure menu. During the scan all TV channels are
checked for Nextview transmissions and a list of Nextview providers
is built from the result.
Configuring a TV application
nxtvepg can cooperate in the following ways with TV applications:
BASIC BROWSING
The browser mainly consists of two windows: the upper one contains
a list of programme titles, sorted by start time. All currently running
programmes (or rather: all programmes that should be running according
to their start time) are marked by a light blue background color.
One line in the list is selected by a cursor; the lower window contains
the attributes and description for this selected title. The amount of
information available here depends entirely on the content provider.
DATA ACQUISITION
As long as acquisition is enabled, programme titles are constantly being
acquired or updated in the background. You will notice that all incoming
programme information is instantly inserted to the programme listing.
Every effort is taken to not alter the cursor position or title selection,
except if the cursor is on the very first item - then the cursor
stays on top.
ACQUISITION MODES
The acquisition mode configuration dialog enables you to control for which providers
data is collected, and in which order. It's mainly intended for users who use
more than one provider's database, i.e. in a merged database, or want to
optimize startup time. If you're happy with a single provider or don't
want to browse immediately after program start, you should keep the
default, which is loading data always for the provider selected in the
browser.
STATISTICS
There are currently three ways to obtain information about the state of the
databases and the acquisition process: the first and most obvious is the
status line at the bottom of the main window (only if enabled, see
``CONFIGURATION''). The second one are the timescale popup windows,
which visualize for each TV network the time ranges which are covered
with TV programme data. The third one are the database statistics popup
windows which offer technical details about the database, e.g. which
percentage of entries is already loaded etc., both in textual form and
as charts.
Status line
The status line separately summarizes the state of the browser database
(unless it's a merged database) and the acquisition process. Since there's
not much room only the most relevant information is included there, i.e.
the kind of information presented depends on the current state.
Timescale popup windows
You can monitor the progress of acquisition with the timescale windows
which can be opened from the Control menu. There's one window for
the browser database, and one for the acquisition database. The
acquisition window is updated whenenever new EPG blocks are received.
Database statistics
There are two popup windows available from the Control menu which contain
statistical information about the browser database and the acquisition
database and progress. The window is horizontally divided in two parts:
the upper part lists static information; the lower part lists dynamic info
and is available only while acquisition is active.
Acquisition statistics
MERGED DATABASES
If you compare databases of different Nextview providers, you will
often find that each has one or more nice features, or covers networks,
that the others lack. Instead of changing back and forth between
several providers all the time, database merging allows to select and
combine features or networks from several original databases into one
newly created database.
NAVIGATE
The Navigate menu contains a tree of filtering options, that's transmitted
by the selected provider together with the programme data. Filtering enables
to restrict the listing of programme information to those titles matching
the selected menu entry.
FILTERING
Similar to Navigate,
this menu allows to control which of the programmes in the database
are presented in the listing. However here, you are not limited to a
preselection of filter options. There's a filter for every kind of
attributes that can be attached to a program, e.g. it's network,
start time, theme descriptors, and so on.
Filter Types
The following filter types are available:
Inverting filters
Near the end of the filter menu there's the Invert sub-menu which allows
to invert the outcome of filtering. There are two levels of inversion:
global and individual.
FILTER SHORTCUTS
There's a number of predefined filter options in the main window below
the clock. These shortcuts enable you to invoke filters by a single click
of the mouse. You can freely add, change or remove entries in this list.
Editing Filter Shortcuts
To change names and/or organisation of your shortcuts, open the edit
dialog (e.g. via the main menu.) On the left of the
dialog window there's a list of all your shortcuts. In the middle there's
a row of command buttons which operate on the shortcut selected at the
left (explained below). At the right there's an editable field with
shortcut name, a read-only display of the filter settings currently
assigned to the shortcut, and popup menus to change the filter's mask
and combination rules (also explained in detail below.)
Filter Masks
When you deselect a shortcut, either by selecting another shortcut
or clicking on it a second time with CTRL held down, all it's
filters will automatically be undone. Hence when you have two themes
shortcuts, e.g. ``Movies'' and ``Sports'', and select first Movies, then
Sports, you'll see only sports programmes afterwards. However if you
had selected theme movies manually, e.g. by the context menu explained
in the next chapter, the movies filter might remain set, so that you'd
get all programmes of theme movies OR sports. Since that is usually
not what one expects, a filter mask has been introduced to the shortcut
setting.
Shortcut combination modes
By default when combining multiple shortcuts, all filters of all selected
shortcuts are simply thrown together (i.e. ``merged'') and then processed
as if they belonged all to one shortcut. The same combination rules
apply as described in ``FILTERING''.
Shortcut update dialog
When you select the Shortcut Update command in the main menu, there
will be a small dialog with a list of all shortcuts. The filter settings
of the shortcut you select in this list will be overwritten with the
currently active filter setting once you press the Update button.
You can also use the Update & Edit button to jump directly into the
filter edit dialog (see further above in this chapter)
COMPOSITE ATTRIBUTES
By default the TV schedule contains for each programme ``basic'' attributes
like its date, starting time, title, TV network in a pre-defined textual format.
By using composite attributes you can customize the TV schedule according
to your personal preferences. For example you could (1) alter the display
format of pre-defined attributes (e.g. use colors for highlighting),
(2) add new attributes, for example with images as markers for favorite
programmes and/or (3) compact display by combining several attributes into one.
REMINDERS
Reminders allow to mark TV shows which interest you and have nxtvepg mark
them in the programme list and display a message or execute an external
command when they start. You can select either individual programmes in
the programme list or complete filter shortcuts, e.g. for TV series.
Edit reminder list
Opens a list of all reminders. Single programmes and shortcuts are
listed in separate ``tabs''; switch between them by clicking on the
buttons at the top.
Reminder group configuration
Opens a configuration dialog for reminder groups. Every reminder is
assigned to exactly one group which determines which actions are executed
at the programmes' start time. Having groups allows to change actions
(and especially: disable them if you're not in the mood to watch TV)
easily without having to edit every single reminder. When you create
a new reminder with the simple ``add reminder'' menu command it will be
assigned to group zero.
Reminder Messages
Once the nominal start time of a ``reminded'' programme (minus the configured
time offset) is reached, a message window will appear. If there's more
than one message triggered at the same time, or if you leave the window
open and reminders for additional programmes are triggered, they will all
be collected in this window; in this case there's a cursor which determines
to which reminders the controls explained below apply.
When you press Ok all messages are marked as ``done'' and will not appear
again. With a double-click or the Tune-TV button you can switch the
channel of a connected TV application to the selected programme, just as
in the main programme list.
CONTEXT MENU
A quick way to select and deselect filters is by using the
context menu, which opens when clicking with the right mouse button
onto a programme entry in the main browser window.
CONTROL
Summary of commands available from the Control menu:
Enable acquisition
Toggles acquisition on or off. When you start the browser, acquisition
is automatically enabled (although failure to do so is silently ignored).
You can suppress automatic start with the -noacq command line switch.
Switching off acquisition allows other applications (e.g. a teletext
decoder) to use the TV card while you browse the database, if you have
only one TV card.
Connect to acq. daemon
Connect to or disconnect from an acquisition daemon, running in the
background on the same host, or somewhere else in the network. The
address of the daemon and other parameters are configured in the
Client/Server menu (see ``CONFIGURATION: Client/Server'').
By default the daemon
is started on the local host. The main advantage of using the daemon
is that you can keep running acquisition permanently in the background,
even if you terminate the browser, or on UNIX even the X11 server (i.e.
the windowing system). On M$ Windows the daemon is terminated when you
log off.
Dump stream
UNIX only: The contents of all incoming Nextview blocks are dumped to
stdout in a free text format. This is mainly intended for developers,
but it may also help to debug reception problems, because in the dump
you'll find any block that could be decoded without hamming errors,
even before an inventory block (AI) has been received. This may help
if you have very bad reception, because it may take a long time
until a error-free copy of the usually large AI block is received.
Dump raw database
Open a dialog that allows to dump all blocks in the database to
stdout (UNIX only) or into the named file in a raw text format,
which is actually the same as with the Dump stream command.
This feature is mainly intended for developers. To understand all
the infos in the text dump, you'll have to look at the source in
epgui/epgtxtdump.c in the nxtvepg source package.
Export as text
Open a dialog that allows to export the complete database into a text
file. Each line in the file will represent one item in the database.
The item's different fields are separated by TAB characters; the line
is terminated by a single new-line character (no line feed character,
even on Windows). In some cases missing values are represented by
"\N" which is the MySQL NULL identifier (currently only used for
the VPS/PDC field).
CREATE TABLE PI (
netwop smallint(2) unsigned NOT NULL,
Dstart date NOT NULL,
Hstart time NOT NULL,
Hstop time NOT NULL,
vpspdc_pil datetime,
prat tinyint(2) unsigned,
erat tinyint(2) unsigned,
sound enum("mono","2-chan","stereo","surround"),
is_wide BOOL,
is_palplus BOOL,
is_digital BOOL,
is_encrypted BOOL,
is_live BOOL,
is_repeat BOOL,
is_subtitled BOOL,
theme_0 tinyint(3) unsigned,
theme_1 tinyint(3) unsigned,
theme_2 tinyint(3) unsigned,
theme_3 tinyint(3) unsigned,
theme_4 tinyint(3) unsigned,
theme_5 tinyint(3) unsigned,
theme_6 tinyint(3) unsigned,
title varchar(40) NOT NULL,
descr text,
PRIMARY KEY (netwop, Dstart, Hstart)
);
CREATE TABLE AI (
netwop_idx smallint(2) unsigned NOT NULL,
cni smallint(5) unsigned,
lto_mins smallint(5),
daycount smallint(5) unsigned,
alphabet smallint(5) unsigned,
addinfo smallint(5) unsigned,
name text,
UNIQUE netwop_idx (netwop_idx)
);
CREATE TABLE pdc_themes (
theme_idx smallint(3) unsigned NOT NULL,
cat_idx smallint(3) unsigned,
name_eng text,
name_ger text,
name_fra text,
UNIQUE theme_idx (theme_idx)
);
Export as XMLTV
Open a dialog that allows to export the complete database in XML format,
as defined by the xmltv.dtd version 0.5
(see <http://xmltv.org/>)
The generated file contains both the channel table and the complete
TV schedule, including any networks you might have suppressed from the
listing inside nxtvepg.
Export as HTML
Opens a dialog that allows to export the complete database or selected
programmes into a file in HTML format (Hypertext Markup Language) which can
then be loaded into a WWW browser, e.g. Netscape or Opera. This is
particularily useful if you want to print out TV descriptions.
View statistics/timescales
The following four commands are used to open windows with statistics
about the databases and acquisition progress.
See ``STATISTICS'' for details.
Quit
Close all windows and terminate the application.
If you have started acquisition as a daemon, it will not be terminated
(see ``CONTROL: Connect to acq. daemon'').
CONFIGURATION
Summary of commands available from the Configure menu:
Select provider
Open the provider selection dialog. This dialog lists all TV channels
from which Nextview data can be received. When you select a channel
name on the list, you'll see the name of the Nextview service that's
transmitted there and a list of all networks covered by it on the right.
Merge providers
Open a dialog that allows to merge several databases into one.
See ``MERGED DATABASES'' for details.
Acquisition mode
Open a dialog that allows to control the background acquisition process.
See ``ACQUISITION MODES'' for more details.
Teletext grabber
Note this is still an experimental feature. Support is still
limited to German networks and configuration options are limited.
Provider scan
Open a dialog that allows to start a scan across all TV channels for
Nextview transmissions. You should perform this search at least once,
firstly to find out which providers are available in your area, and
secondly to determine the TV frequencies of all EPG providers. Those
are required for most acquisition modes, and due to driver limitations
often not available without a scan (e.g. on Windows or Linux with bttv
driver <= 0.7.50). Note that the provider scan only works if you use
the internal tuner as input source. See also ``GETTING STARTED'' and
the subsequent chapter on TV card configuration.
TV card input
Open a dialog where the TV card hardware parameters can be configured.
Client/Server
Opens a dialog that allows to configure the connection between browser
and an acquisition daemon (i.e. a separate instance of nxtvepg which is
running in server mode, see -daemon command line switch in ``OPTIONS'')
The daemon allows to forward all newly acquired EPG data to one or more
connected browsers and to monitor the it's acquisition progress.
TV application interaction
Opens a dialog that allows to configure the interaction between a
TV application and nxtvepg.
You should at least configure your TV application type
and path here if you're using one of the supported applications; this
is a recommended step during the initial installation to speed up
the EPG provider search, as described in ``GETTING STARTED''.
Select attributes
Open the programme attribute display configuration dialog, which allows
to select which attributes are displayed for the listed TV programmes.
In the listbox on the left of the dialog window there's a list of all
available attribute categories, e.g. title, running time, weekday,
TV network name, ratings, ... i.e. mostly the same which are available
for filtering. You can create your own attributes to extend this list
with the dialog described in the next chapter.
Attribute composition
Open the configuration dialog for composite attributes, which allows
to create new column types for the ``single list'' TV schedule layout
(see ``CONFIGURATION: List layout'') or new rows respectively
in the ``spearate network columns'' layout, which can afterwards be
selected in addition to the predefined attribute types (e.g. ``Title''
and ``Theme'') as described in the previous chapter.
Select networks
Open the network selection dialog. It allows to permanently suppress
TV networks in a provider's listing, e.g. if you can not receive the
channel. You can also change the order of the networks, e.g. to put
your favorite networks at the top of the filter menus.
Network names
Open the network names configuration dialog. It's main purpose is to
synchronize the network names between nxtvepg and your TV application.
This is required because the network name is used in communication when
you use the Tune TV remote controls, and as well for channel change
notifications by the TV applications. For many networks there will be
no need to change anything, but for some there exist different variants,
e.g. in Germany ``Super RTL'' vs. ``S-RTL'' or ``MDR3'' vs. ``MDR''.
Context menu configuration
Open the context menu configuration dialog which allows to change the
order of automatically generated menu entries or to extend the popup
menu with user-defined external commands (for a general description of
the context menu see ``CONTEXT MENU'').
setstation ${network}
${title}
${network}
${start}
${stop}
${relstart}
${duration}
${CNI}
${description}
${themes}
${VPS} or ${PDC}
${e_rating}
${p_rating}
${sound}
${format}
${digital}
${encrypted}
${live}
${repeat}
${subtitle}
plan ${start:%d.%m.%Y %H:%M} ${title}
plan '22.08.2001 13:05' 'Käpt'\''n Blaubärs Seemannsgarn'
plan 22.08.2001\ 13:05 Käpt\'n\ Blaubärs\ Seemannsgarn
plan ${start:%d.%m.%Y} ${start:%H:%M} ${title}
Themes language
Select the language for programme themes (i.e. content category, see
``FILTERING'') in the main window and the filter menu. By default
it's set to automatic; in this case the language is derived from the
selected provider's database. Please note that the language of the
menus, help etc. currently can not be changed from English.
Show/Hide
Toggle visibility of various components in the main window:
List layout
Select layout of the programme list in the main window:
FILES
Files used on UNIX systems
chmod 666 /dev/vbi
options bttv video_nr=1 vbi_nr=1
kill -HUP `cat /tmp/.vbi0.pid`
echo "nxtvepg*text_bg: #E9E9EC" | xrdb -merge
Files used on Windows systems
KNOWN BUGS
Under Windows there's a risk of system crash (``blue screen'') when the
application is terminated by force, e.g. via the task manager. This
is unavoidable because in this case there's no chance to stop the
driver and hence the TV card continues to capure data into RAM.
In normal operation this should be very unlikely because all software
exceptions (e.g. page faults) and shutdown messages are caught and the
driver then stopped before the exit.
REPORTING BUGS
Feel free to mail any bug reports to me, but please make sure that
(a) you have the latest version of this software, (b) it's not already
in the TODO file and (c) it's not just an error in your provider's EPG
transmission. And note that I've got no telepathic capabilities, so
please be comprehensive in describing your problem. See the README file
for instructions on which information must be included in a bug report.
AUTHOR
Th. ``Tom'' Zoerner
"tomzo (at) users (dot) sourceforge (dot) net"
COPYRIGHT
Copyright (C) 1999 - 2008 by Th. Zoerner.
All rights reserved.
SEE ALSO
For in-depth information about Nextview please refer to the specifications
ETS 300 707 (data structures and basic principles), ETS 300 708
(transmission protocol) and ETR 288 (code of practice). These specs
are available from <http://www.etsi.org/>