-Setting up access control is an important initial step as **the system
-is initially wide open**.
-
-Tvheadend verifies access by scanning through all enabled access control
-entries in sequence, from the top of the list to the bottom. The permission
-flags, streaming profiles, DVR config profiles, channel tags, and channel
-number ranges are combined for all matching access entries. You can
-control which parameters are merged (on a per-entry basis), see
-*Change parameters* [below](#items) for details.
-
-An access entry is said to match if the username and the IP source
-address of the requesting peer is within the prefix (*Allowed networks*).
-Wildcard ([anonymous](#anonymous-access)) accounts are matched using the
-prefix only.
-
-*The order of entries is **extremely** important!* It's recommended
-that you put the wildcard (asterisk `*`) accounts at top and all other
-accounts (with special permissions) at the bottom.
-
-
+<tvh_include>inc/users_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
+<tvh_include>inc/users_overview</tvh_include>
-<tvh_include>inc/common_button_table_end</tvh_include>
+
-Entries are checked in order (when logging in, etc), the following
-functions allow you to change the ordering:
-
-Button | Function
------------------------|---------
-**Move Up** | Move the selected entry up the grid.
-**Move Down** | Move the selected entry down the grid.
-
----
+<tvh_include>inc/users_table</tvh_include>
-### Example
+### Notes on Access Entries
-This is an example of a limited user entry.
+* Wildcard (anonymous) accounts (that require no username or password)
+can be created by entering an asterisk `*` in the username/password field.
+These accounts are matched using the network prefix *(Allowed networks)*,
+acting similar to a username.
-
+* The order of entries is **extremely** important! It's recommended
+that you put wildcard (anonymous) accounts at top and all others
+(with special permissions) at the bottom.
-Remember to also add a password entry in the
-*[Passwords](class/passwd)* tab - not required for wildcard accounts.
+* An access entry is said to match if the username and the IP source
+address of the requesting peer is within the prefix *(Allowed networks)*,
+wildcard (anonymous) accounts will match **ANY** username.
-**Tips**:
-* Be as limiting as possible especially when making Tvheadend available
-over the Internet.
-* For extra security always enter (a comma-separated list of)
-network prefix(es) (*Allowed networks*).
-* You can have multiple entries using the same username with varying
-rights, allowing you to enable / disable each as needed. Note, matching
-(enabled) accounts will have permissions combined.
+* The permission flags, streaming profiles, DVR config profiles, channel tags, and channel
+number ranges are combined (for all matching access entries). You can
+control which parameters are merged, see *Change parameters* [below](#items).
---
-### Emergency/Backdoor Access
+## Buttons
-Tvheadend includes functionality that allows you to regain access to
-your Tvheadend instance in case of emergency or if you find yourself
-locked out, this is known as a superuser account. On some systems you
-may been asked to enter a superuser username and password during
-installation.
+<tvh_include>inc/buttons</tvh_include>
-To create a superuser account you must have access to your Tvheadend
-configuration directory (most commonly `$HOME/.hts/tvheadend`) and
-be able to create a plain-text file named `superuser` with the following
-(JSON formatted) content:
-
-```
-{
-"username": "superuser",
-"password": "superpassword"
-}
-```
-
-Once you've created this file you must restart Tvheadend for it to take
-affect. Note that for security the superuser account is not listed in the
-access entries grid.
-
-**Tip**: Remember to set the correct permissions so that Tvheadend
-is able to read the superuser file.
---
-### Anonymous Access
-
-If you would like to allow anonymous access to your Tvheadend server
-you may set-up a wildcard account, you can do this by creating a new
-user and entering an asterisk `*` in the username field.
-
-**WARNING**: Permissions given to a wildcard account apply
-to **all** accounts.
-
----
-This tabs allow configuration of several general parameters that affect
-the core Tvheadend functionality.
+<tvh_include>inc/config_contents</tvh_include>
-
---
-### Menu Bar/Buttons
+<tvh_include>inc/config_overview</tvh_include>
-The following functions are available:
+
-Button | Function
------------------------|-------------------
-**Save** | Save the current configuration.
-**Undo** | Undo changes since the last save.
-**Start wizard** | Display the first-run set-up wizard.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/config_table</tvh_include>
+
+<tvh_include>inc/config_notes</tvh_include>
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
-This tab controls EPG-driven recording rules.
-
-
+<tvh_include>inc/dvr_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/dvr_overview</tvh_include>
---
-### Example
-
-If you wanted to record any programs matching "BBC News" on
-BBC One you would enter something like this into the add entry dialog:
-
-
+## Buttons
-This uses a regular expression (regex) to match the program title
-"BBC News" exactly, otherwise event titles containing the phrase would
-also match, e.g "BBC News at One" and "BBC News at Six" etc.
-
-Regular expressions examples:
-
-Regex | Description
-----------------------------------|------------
- `^BBC News$` | Matches "BBC News" exactly.
- `^(New\\: )?Regular Show$` | Matches "Regular Show" and (if it exists) "New: Regular Show".
-
-Matching events will be added to the
-*[Upcoming/Current Recordings](class/dvrentry)* tab.
-**Note that if your rule matches any in-progress events they will
-automatically start being recorded.**
+<tvh_include>inc/buttons</tvh_include>
---
+
-This tab is where you manage your recordings. Each entry is moved
-between the *Upcoming / Current Recordings*, *Finished Recordings* and
-*Failed Recordings* sub-tabs depending on its status.
-
-**Upcoming / Current Recordings**
-: This sub-tab lists current and upcoming recording entries. Entries
-shown here are either currently recording or are soon-to-be recorded.
-
-**Finished Recordings**
-: This sub-tab lists all completed recording entries. Entries shown
-here have reached the end of the scheduled (or EITp/f defined)
-recording time.
-
-**Failed Recordings**
-: This sub-tab lists all failed recording entries. Entries shown here
-have failed to record due to one (or more) errors that occurred during
-the recording.
-
-**Removed Recordings**
-: This sub-tab lists all recording entries that have missing file(s).
-Entries shown here link to file(s) that Tvheadend cannot locate
-(files which have been externally removed).
-
-
-
----
-
-### Menu Bar/Buttons
-
-The following functions are available (tab dependant):
-
-Button | Function
------------------------------|---------
-**Add** | Add a new (one-time-only) recording entry.
-**Save** | Save changes made to the grid entries.
-**Undo** | Revert all changes made to the grid entries since the last save.
-**Stop** | Gracefully stop the selected in-progress recording entries.
-**Abort** | Abruptly stop the selected in-progress recording entries.
-**Delete/Remove** | Delete/Remove the selected grid entries.
-**Edit** | Edit the selected grid entries.
-**Download** | Download the recording.
-**Re-record** | Re-schedule the selected entry/recording if possible.
-**Move to failed** | Move the selected recording entries to the **Failed Recordings** tab.
-**Move to finished** | Move the selected recording entries to the **Finished Recordings** tab.
-<tvh_include>inc/common_button_table_end</tvh_include>
-
----
-
-### Entry Overview
-
-The *Details* column gives a quick overview as to the status of each
-entry:
-
-Icon | Description
--------------------------------------------|-------------
- | the program is scheduled (upcoming)
- | recording of the program is active and underway (current)
- | click to display detailed information about the selected recording
- | the program failed to record
- | the program recorded successfully
+<tvh_include>inc/dvr_contents</tvh_include>
---
-### Manual Recording Entry Example
-
-This is an example of a one-time recording entry.
-
-
-
-### Adding an Entry Using the EPG
-
-Using the Electronic Program Guide search functionality, find the
-program/event you would like to record. Click on it, then using the broadcast
-details dialog you can:
-
-* Record the event once by pressing the *[Record program]* button.
-* Automatically record all upcoming events matching the program's title by pressing the *[Autorec]* button.
-* Record all upcoming series episodes by pressing the *[Record series]* button. **This replaces the *[Autorec]* button when series link information is available.**
-
-For full instructions on how to search and record using the EPG take a
-look at the [EPG](epg) page.
-
-### Adding an Entry Using Autorec Rules
-
-Autorec rules allow you to match events using various options.
-
-* Record events using regular expressions, they can be as simple or as powerful as you like.
-* Record events that broadcast between certain times or days of the week.
-
-See [Autorec](class/dvrautorec) for more information.
-
----
-
-### Downloading a Recording
-
-Highlight (select) the desired entry, then press the *[Download]*
-button on the menu bar.
+<tvh_include>inc/dvr_overview</tvh_include>
---
-### Re-recording an Entry/Re-schedule a Recording
+## Buttons
-You can re-schedule an entry by pressing the *[Re-record]* button on the menu bar.
+<tvh_include>inc/buttons</tvh_include>
-**Note**: Your EPG data must have another matching event to be able to re-schedule
-the entry.
---
-This tab controls timer-driven recording rules.
-
-
+<tvh_include>inc/dvr_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/dvr_overview</tvh_include>
---
-### Example
-
-This is an example of a one-time timer-based recording entry.
-
-
+## Buttons
-Note that when you create a rule/entry it will also generate a [DVR Entry](class/dvrentry).
+<tvh_include>inc/buttons</tvh_include>
---
-This will cache any channel icons or other images (such as EPG metadata)
-to be served from the local webserver. This can be useful for
-multi-client systems and, generally, to reduce hits on upstream
-providers.
-
-
+<tvh_include>inc/config_contents</tvh_include>
---
-### Menu Bar/Buttons
+<tvh_include>inc/config_overview</tvh_include>
+
+
+
+<tvh_include>inc/config_table</tvh_include>
+
+<tvh_include>inc/config_notes</tvh_include>
+
+---
-The following functions are available:
+## Buttons
-Button | Function
-----------------------------|-------------------
-**Save** | Save any changes made to the tab.
-**Undo** | Revert any changes made since the last save.
-**Clean image (icon) cache**| Clean-up the stored image files (empty cache and re-fetch icons).
-**Re-fetch images** | Re-refresh image cache (reload images from upstream providers).
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-This tab allows to configure blocked IP ranges. Users within these ranges
-are not allowed to login (use any Tvheadend service).
-
-
+<tvh_include>inc/users_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
+<tvh_include>inc/users_overview</tvh_include>
+
+
+
+<tvh_include>inc/users_table</tvh_include>
+
+### Notes on IP Blocking
-<tvh_include>inc/common_button_table_end</tvh_include>
+* You must enter a network prefix to block. For example, to block just `192.168.6.66`
+enter `192.168.6.66/32` or to block the all addresses in the `192.168.6` range, enter
+`192.168.6.0/24`.
+
+* You can enter whatever you like in the comment field.
---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
This is the list of available parameters for the linuxdvb frontend. It
is used as a base for other frontends.
-See [TV Adapters](tv_adapters).
+See [DVB Inputs](dvbinputs).
---
This panel lists all the available Cable (DVB-C/C2/ISDB-C/ATSC-C) frontend
parameters.
-
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-### Buttons
+## Device Configuration / Types
-The following buttons are available:
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
This panel lists all the available satellite (DVB-S/ISDB-S) frontend
parameters.
-
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-### Buttons
+## Device Configuration / Types
-The following buttons are available:
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
This panel lists all the available Terrestrial (DVB-T/T2/ISDB-T/ATSC-T) frontend
parameters.
-
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-### Buttons
+## Device Configuration / Types
-The following buttons are available:
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
This panel lists all the available satellite (DVB-S/ISDB-S) configuration
parameters.
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
---
-### Buttons
+## Device Configuration / Types
+
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
-The following buttons are available:
+## Buttons
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
also uses the term ‘mux’ to describe a source for multiple IP
streams - so an IP address, in effect.
-
+
---
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-<tvh_include>inc/play</tvh_include>
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
+
Mux Schedulers enable Tvheadend to automatically play channels. This is
useful to get EPG, services or access rights updates.
-
+
+
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
+
A network is the type of carrier for your television signals. Tvheadend
-supports several different types of network, notably:
-
-* [Network Types](class/mpegts_network)
- * Cable TV, delivered via a cable to your house
- - [DVB-C](class/dvb_network_dvbc) - common in most of Europe
- - [ISDB-C](class/dvb_network_isdb_c) - common in Brazil and various other countries throughout south America
- - [ATSC-C](class/dvb_network_atsc_c) - common in north and central America and parts of south Asia
- * Satellite, any signal coming in via a dish
- - [DVB-S](class/dvb_network_dvbs) - Available worldwide
- - [ISDB-S](class/dvb_network_isdb_s) - available worldwide but common in Brazil and various other countries throughout south America
- * Terrestrial, over-the-air broadcasts received through a traditional television aerial
- - [DVB-T](class/dvb_network_dvbt) - common in most of Europe
- - [ISDB-T](class/dvb_network_isdb_t) - common in Brazil and various other countries throughout south America
- - [ATSC-T](class/dvb_network_atsc_t) - common in north and central America
- * IPTV - TV over the Internet via your broadband connection
- - [IPTV](class/iptv_network)
- - [IPTV Automatic Network](class/iptv_auto_network) - IPTV using a playlist as the source - **Please read *IPTV Automatic Network - Don't Probe Services* below for important information!**
+supports several different types of network.
+
+
+
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
+## Network types
+
+[Return to the index](class/mpegts_network)
+
+Network type | Description
+----------------------------------------------------|-------------------
+**C (Cable)** | **Cable TV, delivered via a cable to your house.**
+[DVB-C](class/dvb_network_dvbc) | Common in most of Europe.
+[ISDB-C](class/dvb_network_isdb_c) | Common in Brazil and various other countries throughout south America.
+[ATSC-C](class/dvb_network_atsc_c) | Common in north and central America and parts of south Asia.
+- | -
+**S (Satellite)** | **Satellite, any signal coming in via a dish.**
+[DVB-S](class/dvb_network_dvbs) | Available worldwide.
+[ISDB-S](class/dvb_network_isdb_s) | Available worldwide but common in Brazil and various other countries throughout south America.
+- | -
+**T (Terrestrial)** | Over-the-air broadcasts received through a traditional television aerial/antenna.
+[DVB-T](class/dvb_network_dvbt) | Common in most of Europe.
+[ISDB-T](class/dvb_network_isdb_t) | Common in Brazil and various other countries throughout south America.
+[ATSC-T](class/dvb_network_atsc_t) | Common in north and central America.
+- | -
+**IPTV** | **TV over the Internet via your broadband connection.**
+[IPTV](class/iptv_network) | Manual IPTV input.
+[IPTV Automatic Network](class/iptv_auto_network) | IPTV using a playlist as the source - **Please read *IPTV Automatic Network - Don't Probe Services* below for important information!**
-Click the desired network type (above) to see all available
-[parameters](#items).
-
-
+Click the desired network type (to see all available [items](#items).
---
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
-
-The following tab specific buttons are available:
+## Buttons
-Button | Function
----------------|---------
-**Force Scan** | Force a new scan (i.e. scan all muxes for services) for the selected networks.
+<tvh_include>inc/buttons</tvh_include>
---
Services are automatically pulled from muxes and can be mapped to Channels.
-
+
----
-
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
-
-The following tab specific buttons are available:
-
-Button | Function
----------------------------|---------
-**Map Services** | Drop-down menu (see *Map Services* button table below).
-**Maintenance** | Drop-down menu (see *Maintenance* button table below).
-
-Map Services Button | Function
-----------------------------|--------------------
-**Map selected services** | Map the highlighted services within the grid.
-**Map all services** | Map all available services as channels.
-
-Maintenance Button | Function
-------------------------------------------------|-------------------
-**Remove unseen services (PAT/SDT) (7 days+)** | Remove services marked as *Missing in PAT/SDT* for 7+ days.
-**Remove all unseen services** | Remove all services not seen for 7+ days.
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-### Mapping Services to Channels
-
-There are a number of methods to mapping available services, mapping
-uses the following dialog.
-
-
-
-#### Mapping All
-
-Press the *[Map services]* button and then *[Map all services]*.
-
-
+## Buttons
-The [Map services to channels](class/service_mapper) will now be displayed with **all** services
-checked - feel free to make changes. Once you're happy with the
-selection, press the "Map services" button, you will
-then be taken to the [Service Mapper](status_service_mapper) tab which
-will begin mapping the selected services to channels.
-
-#### Mapping Selected
-
-Click on the services you would like to map as channels,
-once you're done selecting press the "Map services" button and
-then "Map selected services".
-
-
-
-The [Map services to channels](class/service_mapper) dialog will
-now be displayed with the **selected** services checked - feel free to make
-changes. Once you're happy with the selection, press the
-"Map services" button, you will then be taken to the
-[Service Mapper](status_service_mapper) tab which will begin mapping
-the selected services to channels.
-
-**Tip**: By default Tvheadend will only show a small selection of
-available services - you can increase this by using the
-[paging toolbar](webui_general) at the bottom right of the page.
-
-#### Mapping/Removing a Service to/from an Existing Channel
-
-You can map/remove a service to/from an existing channel by doing the following:
-
-**1.** Find the desired service from within the services grid. If you
-have a lot of services you may want to use [filtering](webui_general) to limit the
-number of grid entries.
-
-**2.** Double click on the channel field, a drop down listing of all defined
-channels will appear, check/uncheck the check box next to the channel
-you'd like to associate/disassociate the service with.
-
-
-
-**3.** Press the *[Save]* button from the menu bar, and you're done!
+<tvh_include>inc/buttons</tvh_include>
---
-### Service Information
+## Service Information
-Clicking the 
+Clicking the 
information icon will display service details.
-
-
----
-
-<tvh_include>inc/play</tvh_include>
+
---
-This tab is the second part of Tvheadend's access control mechanism. It is
-where you set and maintain all user passwords (e.g. for streaming or DVR access).
-
-
+<tvh_include>inc/users_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
+<tvh_include>inc/users_overview</tvh_include>
-<tvh_include>inc/common_button_table_end</tvh_include>
+
----
+<tvh_include>inc/users_table</tvh_include>
+
+### Notes on Passwords
-### Example
+* For a password to apply to an account, the username entered must match
+a username in the *Access Entries* tab and only password entries that are
+enabled will apply.
-This is an example of a password entry.
+* You can have multiple passwords matching a single *Access Entry* if you
+wish.
-
+* You can enter whatever you like in the comment field.
-Be aware that the username you enter here must match a username/entry in
-the Access Entries tab for it to apply. You may
-have multiple password entries for the same username if you wish.
+* Wildcard (anonymous) accounts don't actually need a password, but it's
+recommended you add one anyway (enter an asterisk `*`).
---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
+
+
+---
+
This panel displays all available SAT>IP client parameters.
-
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
-### Buttons
+## Device Configuration / Types
-The following buttons are available:
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
This panel displays all available SAT>IP
DVB-T/DVB-S/DVB-C/ATSC-T/ATSC-C frontend parameters.
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
---
-### Buttons
+## Device Configuration / Types
+
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
-The following buttons are available:
+## Buttons
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
This panel lists all the available satellite (DVB-S/ISDB-S) configuration
parameters.
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
---
-### Buttons
+## Device Configuration / Types
+
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
-The following buttons are available:
+## Buttons
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-SAT\>IP Server is something like DVB network tuner. Tvheadend can
-forward mpegts input streams including on-the-fly descrambling to SAT\>IP
-clients.
+<tvh_include>inc/config_contents</tvh_include>
-
+* [Configure Tvheadend as a SAT>IP Server (Basic Guide)](#configure-tvheadend-as-a-sat-ip-server-basic-guide-)
---
-### Menu Bar/Buttons
+<tvh_include>inc/config_overview</tvh_include>
-The following functions are available:
+
-Button | Function
-----------------------------|-------------------
-**Save** | Save all changes.
-**Undo** | Revert all changes since last save.
-**Discover SAT\>IP servers**| Attempt to discover more SAT>IP servers on the network.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/config_table</tvh_include>
+
+<tvh_include>inc/config_notes</tvh_include>
+
+* You can put a custom M3U playlist (which will be advertised to clients) in your tvheadend configuration directory - filename *satip.m3u*.
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
-### How to Configure Tvheadend as a SAT\>IP Server (Basic Guide)
+## Configure Tvheadend as a SAT>IP Server (Basic Guide)
-**1. Define the RTSP Port**
+### 1. Define the RTSP Port
This can be anything you like, it is recommended that you use 9983
(to avoid permission issues). Entering zero (0) in this field will
disable the server.
-**2. Export the Tuners**
+### 2. Export the Tuners
In the *Exported tuners* section, enter the number of tuners (per
delivery system) that you'd like to export. This setting lets the
any number you like here, exporting more tuners than you have can lead
to scanning/tuning failures, e.g. "No free tuner".
-**3. Export Your Networks**
+### 3. Export Your Networks
You must enter a *SAT\>IP source number* for all the
[networks](class/mpegts_network) you want to export. If you don't export
networks, the first matched network containing the mux with the
requested parameters will win (also applies to unknown muxes).
-**4. Configure Your Client**
+### 4. Configure Your Client
Hopefully (and if everything went to plan) your client should have
now detected Tvheadend as a SAT\>IP server. If not, restart or force
it to perform a service discovery.
-### Custom M3U Playlist
-
-You may put your custom m3u playlist which is advertised to clients
-in your tvheadend configuration directory - filename *satip.m3u*.
-
---
+++ /dev/null
-## Before You Begin
-
-There are some basic concepts that will make life much easier if you
-understand them from the outset.
-
-### Hardware/Software Fundamentals
-
-* A **tuner** is the hardware (chipset) needed to interpret a digital
-television signal and extract from it the programme stream. The tuner hardware
-is also responsible for communicating with your satellite dish via the LNB
-in the case of DVB-S.
-
-* **Network tuners** are small (usually [arm](https://en.wikipedia.org/wiki/ARM_architecture) based)
-computers that you connect to your network via Ethernet or Wifi, they often have a large number of tuners
-and are controlled via a web interface or software. Many work out-of-the-box with Tvheadend using SAT>IP or the HDHomeRun protocols.
-
-* A **driver** is the piece of software that your operating system uses to
-talk to the tuner. This can be built into the OS (e.g. 'supported since kernel X')
-or might be a separate piece of software that you need install, and maybe
-even compile, separately.
-
-* **Firmware** is a small piece of binary microcode that your system driver
-sends to the tuner upon initialisation. This is the cause of more problems
-than you'd imagine... if you find yourself in trouble, this is the first
-thing to check along with kernel support for your hardware.
-
-### Application/Tvheadend Fundamentals
-
-The Tvheadend software then sets up a series of configuration elements, and
-the way in which these interact determines how a TV signal ends up in front
-of you. They all use what's known as a *many-to-many* relationship, in that
-one configuration element can be related to multiple elements of the next
-type, and vice versa: one tuner has multiple networks, one network can
-exist on multiple tuners.
-
-* The **network** is the software definition of your carrier network. Broadly,
-it lays out what sort of network it is (such as DVB-T or DVB-S2), how it
-gets scanned, where the DVB-S satellite is in orbit, and similar. Networks
-are used by tuners so the hardware knows where to look for a signal.
-
-* Networks then have **muxes**. These are the carrier frequencies that exist on
-the old analogue channels that are used to transmit multiple digital signals
-rather than a single analogue one. These signals are multiplexed together,
-hence the name _mux_.
-
-* Muxes then carry **services**. These are the individual streams of data.
-They can be TV or radio programmes, they can provide data services such as
-digital teletext, or they can be used as part of the control code for
-catch-up IPTV services.
-
-* And finally, services are mapped to **channels**. These are what you
-and your client software think in terms of: _"I'd like to watch BBC One
-now, please"_.
-
-### Why The Complexity?
-
-Simply, because 'BBC One' might exist in many different places... it
-might have regional variations on multiple frequencies (so different services
-on different muxes); it might exist on more than one source (perhaps on two
-different satellites); and it might thus be accessible through more than one
-piece of hardware (two satellite tuners, or one satellite and one terrestrial
-tuner).
-
-When you select the channel you want to watch or record, Tvheadend can
-then map a path through all those variables to ask a particular tuner to
-go and get the signal for you.
-
-The following diagram explains the relationship between these components:
-
-
+++ /dev/null
-## Configure Tvheadend
-
-This section gives a high-level overview of the steps needed to get Tvheadend
-up and running. For more detailed information, please consult the rest of
-this guide - much of it is arranged in the same order as the tabs on the
-Tvheadend interface so you know where to look.
-
-You can also consult the in-application help text, which mirrors this guide
-to a very great extent.
-
-### 1. Ensure Tuners are Available for Use
-
-**Tvheadend web interface: _Configuration -> DVB Inputs -> TV Adapters_**
-
-On this tab, you'll see a tree structure, with the Linux device list at the
-top level (e.g. `/dev/dvb/adapter0`)
-
-Individual tuners are then the next level down (e.g. `DiBcom 7000PC : DVB-T #0`)
-
-Click on each tuner that you want Tvheadend to use, and ensure "Enabled"
-is checked in the 'Parameters' list
-
-If anything is obviously wrong at this point, you probably have a
-driver/firmware error which you'll need to resolve before going any further.
-
-### 2. Set up Relevant Network(s)
-
-**Tvheadend web interface: _Configuration -> DVB Inputs -> Networks_**
-
-Create a network of the appropriate type here. You can have multiple networks
-of the same type as necessary, e.g. to have two DVB-T networks defined,
-one with HD muxes, one without.
-
-The creation process allows you to select from a series of pre-defined mux
-lists for common DVB sources. These are available [here](https://github.com/tvheadend/dtv-scan-tables) -
-but they do go out of date as broadcasters move services around and national
-authorities change entire pieces of spectrum. As such, you should try the
-pre-defined values, but you may need to add muxes manually.
-
-* When creating a DVB-S network, be sure to set the orbital
-position of the satellite to which your dish is pointing, as some satellites
-provide additional information related to other nearby satellites that
-you may not be able to receive.
-
-* Network discovery (enabled by default) increases the likelihood of
-receiving all available muxes and services.
-
-### 3. Associate the Network with the Respective Tuner(s)
-
-**Tvheadend web interface: _Configuration -> DVB Inputs -> TV Adapters_**
-
-Associate each of your tuners with the correct network through _Parameters -> Basic Settings_.
-
-This can be as simple or as complex as necessary. You may simply have, for
-example, a single DVB-S2 network defined and then associate this with all
-DVB-S2 tuners. Or, you might have multiple networks defined - different
-satellites, different encoding. So, as further examples, you might define
-and then associate an HD DVB-T2 (e.g. H.264) network with HD tuners, while
-having a separate SD network associated with an independent SD (e.g. MPEG-2)
-tuner.
-
-At this point, your tuners now know what networks to use: one network can
-appear on multiple tuners (many-to-one), and one tuner can have multiple
-networks.
-
-### 4. If Necessary, Manually Add Muxes
-
-**Tvheadend web interface: _Configuration -> DVB Inputs -> Muxes_**
-
-Ideally, this is where you'll see a list of the pre-populated muxes as created
-when you set up your initial network. However, should there be any issues,
-this is where you can manually add missing muxes. You only really need to
-worry about this if the pre-defined list didn't work (e.g. because of
-out-of-date data as broadcasters re-arrange their services or because automatic
-detection (network discovery) hasn't successfully found all the muxes over time.
-
-If you do need to add something manually, you'll need to search the Internet
-for details of the appropriate transmitter and settings: satellites tend not
-to change much and are universal over a large area, but terrestrial muxes
-are typically very localised and you'll need to know which specific transmitter
-you're listening to.
-
-**Note**: Some tuners (or drivers) require more tuning parameters than others so
-**be sure to enter as many tuning parameters as possible**.
-
-Good sources of transmitter/mux information include:
-
-* [KingofSat](http://en.kingofsat.net) for all European satellite information
-
-* [ukfree.tv](http://www.ukfree.tv/maps/freeview) for UK DVB-T transmitters
-
-* [Interactive EU DVB-T map](http://www.dvbtmap.eu/mapmux.html) for primarily
-central and northern Europe
-
-* [Lyngsat](http://www.lyngsat.com/) for worldwide satellite information.
-
-You can also use [dvbscan](http://www.linuxtv.org/wiki/index.php/Dvbscan) to
-force a scan and effectively ask your tuner what it can see.
-
-### 5. Scan for Services
-
-**Tvheadend web interface: _Configuration -> DVB Inputs -> Services_**
-
-This is where the services will appear as your tuners tune to the muxes based
-on the network you told them to look on. Again, remember what's happening:
-Tvheadend is telling your tuner hardware (via the drivers) to sequentially
-tune to each mux it knows about, and then see what 'programs' it can see
-on that mux, each of which is identified by a series of unique identifiers
-that describe the audio stream(s), the video stream(s), the subtitle stream(s)
-and language(s), and so on.
-
-(For the technically-minded, these unique identifiers - the elementary streams - are referred to as 'packet identifiers' or 'PIDs').
-
-### 6. Map Services to Channels
-
- **Tvheadend web interface: _Configuration -> DVB Inputs -> Services_**
-
- Once scanning for services is complete, you need to map the services to
- channels so your client can actually request them (i.e. so you can watch
- or record).
-
- See [Services](class/mpegts_service) for a detailed look into service mapping.
-
-#### 6.1. Bouquets
-
- **Tvheadend web interface: _Configuration -> Channel / EPG -> Bouquets_**
-
- Many service providers use bouquets for channel management and just
- like a standard set-top box Tvheadend can use these to automatically
- manage and keep your channels up-to-date.
-
- If you would like to use bouquets see [Bouquets](class/bouquet).
-
-### 7. Watch TV
-
-That's it - you're done. You should now have a working basic Tvheadend
-installation with channels mapped and ready for use!
-
-As required, you may now wish to look into:
-
-* Setting up different EPGs (inc. localised character sets and timing offsets)
-* Setting up channel icons
-* Setting up recording profiles
-* Setting up streaming profiles (including transcoding)
-* Arranging your channels into groups (channel tags)
-* Setting up softcams for descrambling
-* Setting up access control rules for different client types/permission levels
--- /dev/null
+# DVB Inputs
+
+Contents
+
+* [Overview](#overview)
+* [Device Configuration / Types](#device-configuration-types)
+* [The TV Adapters Tree](#the-tv-adapters-tree)
+* [Items](#items)
+
+---
+
+<tvh_include>inc/dvbinputs_overview</tvh_include>
+
+
+
+<tvh_include>inc/dvbinputs_table</tvh_include>
+
+---
+
+## Device Configuration / Types
+
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
+
+---
+
+## The TV Adapters Tree
+
+The adapter tree lists the available frontends, LNB configuration and
+so on related to your device(s) in sections. Clicking on these sections
+will display available parameters and device information. Bold sections
+and a green dot indicate that it's enabled. A red dot indicates that it's
+disabled. Please see the [Introduction](introduction) (Using the Interface) for
+details on how to use the tree/split panel.
+
+### An Example TV Adapter Tree
+
+Here is an example of a device tree - yours will follow the same layout,
+but this is just to give you an idea as to what all the bits mean.
+
+
+
+Number in Image / Text | Description
+-----------------------------------------------------|------------------------------------
+1. /dev/dvb/adapter0 [Panasonic MN88472] #0 | `/dev/dvb/adapter0` indicates the location (or path) of the device.
+ | `[Panasonic MN88472]` is the demodulation chipset name given to it by the kernel driver.
+ | `#0` is the adapter number (also used in the path).
+ - | -
+2. Panasonic MN88472 #0 : DVB-T #0 | `Panasonic MN88472` is the chipset name.
+ | `#0` is the adapter number.
+ | `DVB-T` is the delivery system.
+ | `#0` is the frontend number. A tuner can have many frontends!
+ - | -
+3. Tvheadend:9983 cd33bf4ce5 - 192.168.1.3 | `Tvheadend` is the SAT>IP server name.
+ | `9983` is the RTSP server listening port.
+ | `cd33bf4ce5` is a unique ID.
+ | `192.168.1.3` is the server's IP address.
+ - | -
+4. Position #1 (AA) | A tuner can have multiple positional inputs, `Position #1 (AA)` indicates the tuner (in this case `SAT>IP DVB-S Tuner #1 (192.168.1.3:9983)`) is using position 1 (or AA).
+ | A position is very similar to a network in that it groups multiplexes (or Transponders) for each satellite you're able to receive. It also allows you to set certain configuration options, such as where the dish should move to in order to receive a multiplex.
+ | `192.168.1.3` is the server's IP address.
+ | `9983` is the listening port.
+
+---
+
+## Items
+
+Click on a sub-tab or configuration type (in the tables) to see specific items.
--- /dev/null
+# Digital Video Recorder
+
+<tvh_include>inc/dvr_contents</tvh_include>
+
+---
+
+<tvh_include>inc/dvr_overview</tvh_include>
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
+
+---
+
+## Display Only Grid Items
+
+The following items are display only - they are not part of the entry.
+
+**Details**:
+Gives a quick overview as to the status of each entry:
+
+Icon | Description
+----------------------------------------------------------|-------------
+ | The program is scheduled (upcoming).
+ | Recording of the program is active and underway (current).
+ | Click to display detailed information about the selected recording.
+ | The program failed to record.
+ | The program recorded successfully.
+
+**Play** / 
+:
+Play the selected entry. Downloads an m3u, or opens the m3u in your default media player. **Finished/Failed Recordings tabs only.**
+
+Note, the links don't point to a stream but to an m3u playlist, for
+use with media players such as VLC. If you'd prefer to receive the raw
+stream instead, you can do so by removing the `/play/` path from
+the URL - see [URL Syntax](url) for more info.
+
+---
+
+<tvh_class_items>dvrentry</tvh_class_items>
-## Electronic Program Guide
+# Electronic Program Guide
+
+Contents
+
+* [Overview](#overview)
+* [Filtering (or searching)](#filtering-or-searching-)
+* [Items (grid items)](#items)
+* [Event Details and Recording](#event-details-and-recording)
+* [Auto-recordings](#auto-recordings)
+* [Watching TV and Browser Codec Support](#watching-tv)
+
+---
+
+## Overview
Tvheadend has a built-in Electronic Program Guide. The EPG is an
in-memory database populated with all the information about events
---
-### Menu Bar/Buttons
+## Buttons
-The following functions are available:
+<tvh_include>inc/buttons</tvh_include>
-#### Filtering (or searching)
+---
+
+
+## Filtering (or searching)
In the EPG top tool bar you can access five input fields. These are used
to filter/search for events. The form uses implicit AND between the
Filter | Function
---------------------------| --------
+**All/Now** | Filter between showing all events (*All*), or those that are currently broadcasting (*Now*). Can be used with the other filters.
**Search title...** | Only display events that match the given title.
| The filter uses case-insensitive regular expressions. If you don’t know what a regular expression is, this simply means that you can type just parts of the title and filter on that - there’s no need for full, exact matching. If the fulltext checkbox is checked, the title text is matched against title, subtitle, summary and description.
**Filter channel...** | Only display events from the selected channel.
filter. If you want to clear all filters, just press the *[Reset All]*
button.
-#### Buttons
-
-The following buttons are also available:
-
-Button | Function
---------------------|----------
-**Reset All** | Clears all search filters.
-**Watch TV** | Launches Live TV via HTML5 video (see below).
-**Create Autorec** | Creates an auto-recording rule based on the current filter criteria (see below).
-**Help** | Display this help page.
-
---
-### Grid Items
+## Items
The main grid items have the following functions:
: Displays the current status of a recording event for this program if
one applies:
-Icon | Description
--------------------------------------------------------|-------------
- | the program is scheduled for recording
- | the program is currently recording
- | click to call up more detailed information about an event
- | the program failed to record
+Icon | Description
+----------------------------------------------------------------------|-------------
+ | the program is scheduled for recording
+ | the program is currently recording
+ | click to call up more detailed information about an event
+ | the program failed to record
**Progress**
: A bar graph display of how far through a program we currently are.
---
-### Event Details and Recording
+## Event Details and Recording
If you click on a single event, a popup will display detailed
information about the event. It also allows you to schedule the event
---
-### Autorecordings
+## Auto-recordings
Should you wish to record all events matching a specific query (to
record your favourite show every week, for example) you can press the
---
-### Watch TV
+## Watching TV
If you want to watch live TV in the web UI, the *[Watch TV]* button will
pop up a HTML5 video player, where you can select the channel to watch and a
the stream to a format that is supported by your browser, as browsers only
support certain formats and codecs.
-#### Supported formats (containers)
+### Supported formats (containers)
Browser | MPEG-TS | MPEG-PS | Matroska | WebM
------- | :-----: | :-----: | :------: | :--:
Google Chrome |  |  |  | 
Mozilla Firefox |  |  | | 
-#### Supported video codecs
+### Supported video codecs
Browser | MPEG2 Video | H.264 | VP8
------- | :---------: | :---: | :-:
Google Chrome |  |  | 
Mozilla Firefox |  | | 
-#### Supported audio codecs
+### Supported audio codecs
Browser | MPEG2 Audio | Dolby Digital (AC3) | AAC | Vorbis
------- | :---------: | :-----------------: | :-: | :----:
+++ /dev/null
-## Features of Tvheadend
-
-#### SDTV and HDTV support
-* H.265 (HEVC), H.264 (MPEG-4 AVC) and MPEG2 video supported.
-* AC-3, AAC and MP2 audio supported.
-* DVB subtitles supported.
-* Teletext subtitles supported.
-
-#### Input Sources
-* Satellite signals via DVB-S and DVB-S2
-* Terrestrial/Over-the-Air signals via DVB-T, DVB-T2 and ATSC
-* Cable signals via DVB-C
-* LAN/IPTV signals such as IPTV, SAT>IP, HDHomeRun
-* A general-purpose MPEG-TS `pipe://` for analogue and non-broadcast sources
-* Support for multiple adapters of any mix, with each adapter able to
-receive simultaneously all programmes on the current mux.
-* Powerful many-to-many channel:service:tuner mapping that allows you to select
-channels irrespective of the underlying carrier (for channels that broadcast
-on multiple sources).
-
-#### Output Targets
-* Local or remote disk, via the built-in digital video recorder.
-* HTSP (Home TV Streaming Protocol).
-* HTTP streaming.
-* SAT>IP server (including on-the-fly descrambling).
-
-#### Transcoding Support
-* Subject to your system's capabilities, support for on-the-fly transcoding
-for both live and recorded streams in various formats.
-
-#### Digital Video Recorder
-* Built in video recorder stores recorded programs as Transport Stream (.ts) or Matroska (.mkv) files.
-* Multiple simultaneous recordings are supported.
-* All original streams (multiple audio tracks, etc) are recorded.
-* Streams can be selected and filtered positively or negatively as required.
-* Create rule sets manually or based on EPG queries.
-* Multiple DVR profiles that support different target directories, post-processing options, filtering options, etc.
-
-#### Electronic Program Guide
-* Rich EPG support, with data from DVB/OTA, XMLTV (scheduled and socket).
-* Searchable and filterable from the web user interface.
-* Results can be scheduled for recording with a single click.
-
-#### Rich Browser-Driven Interface
-* The entire application is loaded into the browser.
-* Based on extJS, all pages are dynamic and self-refreshing.
-* All sorting/filtering is then done in C by the main application for speed.
-
-#### Easy to Configure and Administer
-* All setup and configuration is done from the built in web user interface.
-* All settings are stored in human-readable text files.
-* Initial setup can be done by choosing one of the pre-defined [linuxtv](http://git.linuxtv.org/cgit.cgi/dtv-scan-tables.git) networks
-or manually configured.
-* Idle scanning for automatic detection of muxes and services.
-* Support for broadcaster (primarily DVB-S) bouquets for easy channel mapping.
-
-#### Multi-User Support
-* Access to system features (streaming, administration, configurations) can
-be configured based on username/password and/or IP address.
-
-#### Software-Based CSA Descrambling
-* Requires a card server (newcamd and capmt protocol is supported).
-
-#### Fully-Integrated with Mainstream Media Players
-* Movian and Kodi are the main targets.
-* All channel data, channel groups/tags, EPG and TV streaming is carried over a single TCP connection.
-
-#### Mobile/Remote Client Support
-* As well as the web interface, which is accessible through VPN if required,
-third-party clients are available for both
-[Android](https://play.google.com/store/apps/details?id=org.tvheadend.tvhclient&hl=en_GB)
-and [iOS](https://itunes.apple.com/gb/app/tvhclient/id638900112?mt=8) (other
-clients may also be available).
-
-#### Internationalisation
-* All text is encoded in UTF-8 to provide full international support.
-* All major character encodings in DVB are supported (e.g. for localised EPG character sets).
-* [Web interface internationalization](https://tvheadend.org/projects/tvheadend/wiki/Internationalization)
--- /dev/null
+# Configuring for the First Time
+
+Contents
+
+* [Using the Wizard](#using-the-wizard)
+* [Manual Set-up](#manual-set-up)
+
+---
+
+## Using the Wizard
+
+
+
+The wizard helps you get up and running fast, if you don't see the
+wizard on the initial run, or would like to use it, you can do so by
+pressing the **Start wizard** button in **Configuration -> General -> Base**.
+
+**If you haven't already don't so**, please take a look at the
+[Introduction](introduction) before continuing with the wizard, as it
+contains lots of useful info!
+
+### 1. Welcome/Language
+
+The first part of the wizard is where you select the basic language settings,
+if you don't enter a preferred language, US English will be used as a
+default. Not selecting the correct EPG language can result in garbled EPG
+text; if this happens, don't panic, as you can easily change it later.
+
+If you cannot see your preferred language in the language list and would
+like to help translate Tvheadend see
+[here](https://tvheadend.org/projects/tvheadend/wiki/Internationalization).
+
+### 2. Access Control
+
+Here you enter the access control details to secure your system.
+
+The first part of this covers the network details for address-based
+access to the system; for example, 192.168.1.0/24 to allow local access only to
+192.168.1.x clients, or 0.0.0.0/0 or empty value for access from any
+system. This works alongside the second part, which is a familiar
+username/password combination, so provide these for both an
+administrator and regular (day-to-day) user.
+
+* You may enter a comma-separated list of network prefixes (IPv4/IPv6).
+If you were asked to enter a username and password during installation,
+we'd recommend not using the same details for a user here as it may
+cause unexpected behavior, incorrect permissions etc.
+
+* To allow anonymous access for any account (administrative or regular
+user) enter an asterisk ```*``` in the username and password fields. It
+is not recommended that you allow anonymous access to the admin account.
+If you plan on accessing Tvheadend over the Internet, make sure you use
+strong credentials and do not allow anonymous access at all.
+
+### 3. Network Settings
+
+Many tuners are able to receive different signal types, If you receive
+your channels through an..
+
+Signal type | Use tuners with .. in the name
+---------------------------------|-----------------------------------
+Antenna (also known as an aerial)| ```DVB-T/ATSC-T/ISDB-T```
+Satellite dish | ```DVB-S/S2```
+Cable | ```DVB-C/ATSC-C/ISDB-C```
+Internet m3u playlist | ```IPTV```
+
+
+* Tuners already in use will not appear.
+* If using IPTV, the playlist you enter must contain valid links to
+ streams using codecs/containers supported by Tvheadend.
+* For devices with multiple tuners (e.g. either cable or terrestrial),
+ be aware that many only allow you to use one tuner at a time.
+ Selecting more than one tuner per device can thus result in unexpected
+ behavior.
+
+### 4. Assign Predefined Muxes to Networks
+
+Assign predefined muxes to networks. To save you from manually entering
+muxes, Tvheadend includes predefined mux lists. Please select an option
+from the list for each network.
+
+* Select the closest transmitter if using an antenna (T); if using
+ cable (C), select your provider; if using satellite (S), the orbital
+ position of the satellite your dish is pointing towards; or if using
+ IPTV, enter the URL to your playlist.
+* If you're unsure as to which list(s) to select you may want to look
+ online for details about the various television reception choices
+ available in your area.
+* Networks already configured will not be shown.
+* Selecting the wrong list may cause the scan (on the next page) to fail.
+
+### 5. Scanning for Services
+
+Tvheadend should now be scanning for available services. Please wait until the
+scan completes.
+
+* During scanning, the number of muxes and services shown below should
+ increase. If this doesn't happen, check the connection(s) to your
+ device(s)..
+* The status tab (behind this wizard) will display signal information.
+ If you notice a lot of errors or the signal strength appears low then
+ this usually indicates a physical issue with your antenna, satellite
+ dish, cable or network..
+* If you don't see any signal information at all, but the number of
+ muxes or services is increasing anyway, the driver used by your device
+ isn't supplying signal information to Tvheadend. In most cases this
+ isn't an issue and can be ignored.
+
+### 6. Service Mapping
+
+Here you map all discovered services to channels..
+
+In order for your frontend client(s) (such as Kodi, Movian, and similar)
+to see/play channels, you must first map discovered services to
+channels.
+
+**You can omit this step (do not check 'Map all services') and
+map services to channels manually.**
+
+Option | What it does
+---------------------------------|---------------------------
+Map all services | Map all available services, including encrypted, data services and radio.
+Create provider tags | Create and link a provider tag to the mapped channels.
+Create network tags | Create and link a network tag to the mapped channels.
+
+* Many providers include undesirable services - Teleshopping, Adult
+ Entertainment, etc; using the 'Map all services' will include these.
+* You may need to enable specific EPG grabbers to receive OTA EPG data,
+See the *EPG Grabber Modules* Help doc for details.
+
+### 7. Finished
+
+You've now finished the wizard, at this point you should be able to
+view your channels and make further changes; If not, please take a look
+at the manual set-up below.
+
+---
+
+## Manual Set-up
+
+### 1. Ensure Tuners are Available for Use
+
+**Configuration -> DVB Inputs -> TV Adapters**
+
+On this tab, you'll see a tree structure, with the Linux device list at the
+top level (e.g. `/dev/dvb/adapter0`)
+
+Individual tuners are then the next level down (e.g. `DiBcom 7000PC : DVB-T #0`)
+
+
+
+Click on each tuner that you want Tvheadend to use, and ensure "Enabled"
+is checked in the 'Parameters' list
+
+If anything is obviously wrong at this point, you probably have a
+driver/firmware error which you'll need to resolve before going any further.
+
+Note, there may be additional levels shown related to various
+other settings, e.g. satellite positions for SAT>IP tuners and so on -
+these are more advanced options that most will not need to use so can
+be ignored (generally).
+
+### 2. Set up Relevant Network(s)
+
+**Configuration -> DVB Inputs -> Networks**
+
+Create a network of the appropriate type here. You can have multiple networks
+of the same type as necessary, e.g. to have two DVB-T networks defined,
+one with HD muxes, one without.
+
+The creation process allows you to select from a series of pre-defined mux
+lists for common DVB sources. These are available [here](https://github.com/tvheadend/dtv-scan-tables) -
+but they do go out of date as broadcasters move services around and national
+authorities change entire pieces of spectrum. As such, you should try the
+pre-defined values, but you may need to add muxes manually.
+
+* When creating a DVB-S network, be sure to set the orbital
+position of the satellite to which your dish is pointing, as some satellites
+provide additional information related to other nearby satellites that
+you may not be able to receive.
+
+* Network discovery (enabled by default) increases the likelihood of
+receiving all available muxes and services.
+
+### 3. Associate the Network with the Respective Tuner(s)
+
+**Configuration -> DVB Inputs -> TV Adapters**
+
+Associate each of your tuners with the correct network through _Parameters -> Basic Settings_.
+
+This can be as simple or as complex as necessary. You may simply have, for
+example, a single DVB-S2 network defined and then associate this with all
+DVB-S2 tuners. Or, you might have multiple networks defined - different
+satellites, different encoding. So, as further examples, you might define
+and then associate an HD DVB-T2 (e.g. H.264) network with HD tuners, while
+having a separate SD network associated with an independent SD (e.g. MPEG-2)
+tuner.
+
+At this point, your tuners now know what networks to use: one network can
+appear on multiple tuners (many-to-one), and one tuner can have multiple
+networks.
+
+### 4. If Necessary, Manually Add Muxes
+
+**Configuration -> DVB Inputs -> Muxes**
+
+Ideally, this is where you'll see a list of the pre-populated muxes as created
+when you set up your initial network. However, should there be any issues,
+this is where you can manually add missing muxes. You only really need to
+worry about this if the pre-defined list didn't work (e.g. because of
+out-of-date data as broadcasters re-arrange their services or because automatic
+detection (network discovery) hasn't successfully found all the muxes over time.
+
+If you do need to add something manually, you'll need to search the Internet
+for details of the appropriate transmitter and settings: satellites tend not
+to change much and are universal over a large area, but terrestrial muxes
+are typically very localised and you'll need to know which specific transmitter
+you're listening to.
+
+**Note**: Some tuners (or drivers) require more tuning parameters than others so
+**be sure to enter as many tuning parameters as possible**.
+
+Good sources of transmitter/mux information include:
+
+* [KingofSat](http://en.kingofsat.net) for all European satellite information
+
+* [ukfree.tv](http://www.ukfree.tv/maps/freeview) for UK DVB-T transmitters
+
+* [Interactive EU DVB-T map](http://www.dvbtmap.eu/mapmux.html) for primarily
+central and northern Europe
+
+* [Lyngsat](http://www.lyngsat.com/) for worldwide satellite information.
+
+You can also use [dvbscan](http://www.linuxtv.org/wiki/index.php/Dvbscan) to
+force a scan and effectively ask your tuner what it can see.
+
+### 5. Scan for Services
+
+**Configuration -> DVB Inputs -> Services**
+
+This is where the services will appear as your tuners tune to the muxes based
+on the network you told them to look on. Again, remember what's happening:
+Tvheadend is telling your tuner hardware (via the drivers) to sequentially
+tune to each mux it knows about, and then see what 'programs' it can see
+on that mux, each of which is identified by a series of unique identifiers
+that describe the audio stream(s), the video stream(s), the subtitle stream(s)
+and language(s), and so on.
+
+(For the technically-minded, these unique identifiers - the elementary streams - are referred to as 'packet identifiers' or 'PIDs').
+
+### 6. Map Services to Channels
+
+**Configuration -> DVB Inputs -> Services**
+
+Once scanning for services is complete, you need to map the services to
+channels so your client can actually request them (i.e. so you can watch
+or record).
+
+See [Services](class/mpegts_service) for a detailed look into service mapping.
+
+**Bouquets**: Many service providers use bouquets for channel management and just
+like a standard set-top box Tvheadend can use these to automatically
+manage and keep your channels up-to-date. If you would like to use
+bouquets see [here](class/bouquet).
+
+### 7. Watch TV
+
+That's it - you're done. You should now have a working basic Tvheadend
+installation with channels mapped and ready for use!
+
+As required, you may now wish to look into:
+
+* Setting up different EPGs (inc. localised character sets and timing offsets)
+* Setting up channel icons
+* Setting up recording profiles
+* Setting up streaming profiles (including transcoding)
+* Arranging your channels into groups (channel tags)
+* Setting up softcams for descrambling
+* Setting up access control rules for different client types/permission levels
--- /dev/null
+Many of the buttons have tool-tips giving you a hint as to their
+function. If you don't see any, you may need to enable them in
+**Configuration -> General -> Base**.
+Previous versions of this documentation had buttons tables
+everywhere, to make the buttons - and their function/description -
+easier to find, they've all been moved to a single table in the
+[Introduction](introduction) (*Using the Interface*).
--- /dev/null
+Contents
+
+* [Overview](#overview)
+* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
--- /dev/null
+### Notes
+
+* The out-of-the-box default settings should suit most set-ups, you should rarely need to change the them.
+* Changing some of these settings **may** cause unexpected results, you have been warned!\n
\ No newline at end of file
--- /dev/null
+## Overview
+
+This tab is where you configure many of the server features of Tvheadend.
\ No newline at end of file
--- /dev/null
+\t
+
+Sub-tab | Description
+--------------------------------------------------------------|-------------------------------------
+[Base Configuration](class/config) | Config parameters that affect the core Tvheadend functionality.
+[Image Cache](class/imagecache) | Caching of channel icons or other images (such as EPG metadata) to be served from the local webserver. This can be useful for multi-client systems and, generally, to reduce hits on upstream providers.
+[SAT>IP Server](class/satip_server) | SAT>IP Server is like a DVB network tuner. Tvheadend can forward mpegts input streams (including on-the-fly descrambling) to SAT>IP clients.
+
+Click the title (in the table) to display all information ([items](#items) etc.) specific to that tab below.
--- /dev/null
+Contents
+
+* [Overview](dvbinputs) - Return to the index.
+* [Tab Specific Items/Properties](#items)\n
--- /dev/null
+## Overview
+
+This tab is where you configure how tvheadend manages your adapters/input,
+networks, muxes and services.
--- /dev/null
+\t
+
+Tab | Description
+--------------------------------------------------------------|-------------------------------------
+[TV Adapters](dvbinputs) | Where you configure your adapters.
+[Networks](class/mpegts_network) | Where you configure your networks.
+[Muxes](class/mpegts_mux) | Where you configure your multiplexes.
+[Services](class/mpegts_service) | Discovered service(s) management.
+[Mux Schedulers](class/mpegts_mux_sched) | Where you configure mux schedulers - schedule tvheadend to tune to a specific mux to receive different types of data, EMMs, EIT etc.
+
+Click the title (in the table) to display all information ([items](#items) etc.) specific to that tab below.
--- /dev/null
+
+
+Type | Description
+-------------------------------------------------------|--------------------------------------------
+**Frontends** | **Where you configure the frontend, whether or not it's enabled etc.**
+[Master (DVB-S)](class/linuxdvb_frontend_dvbs) | The master DVB-S/S2 frontend (most DVB-S tuners use this type).
+[Master (ISDB-S)](class/linuxdvb_frontend_isdb_s) | The master ISDB-S/S2 frontend.
+[Slave (DVB-S/ISDB-S)](class/linuxdvb_frontend_dvbs_slave) | A slave frontend (can be used to link with a master, mainly used for buggy drivers or frontends that share an input).
+[Master DVB-T](class/linuxdvb_frontend_dvbt) | The master DVB-T/T2 frontend (most DVB-T tuners use this type).
+[ATSC-T](class/linuxdvb_frontend_atsc_t) | The master ATSC-T frontend (most ATSC-T tuners use this type).
+[ISDB-T](class/linuxdvb_frontend_isdb_t) | The master ISDB-T frontend (most ISDB-T tuners use this type).
+[DVB-C](class/linuxdvb_frontend_dvbc) | The master DVB-C/C2 frontend (most DVB-C tuners use this type).
+[ATSC-C](class/linuxdvb_frontend_atsc_c) | The master ATSC-C frontend (most ATSC-C tuners use this type).
+[ISDB-C](class/linuxdvb_frontend_isdb_c) | The master ISDB-C frontend (most ISDB-C tuners use this type).
+[DVB-S (SAT>IP Master)](class/satip_frontend_dvbs) | The master SAT>IP DVB-S/S2 frontend (most SAT>IP DVB-S tuners use this type).
+[DVB-S (SAT>IP Slave)](class/satip_frontend_dvbs_slave)| A slave frontend (can be used to link with a master, mainly used for buggy drivers or frontends that share an input).
+ - | -
+**Satellite Configuration** | **Where you configure various settings related to your DVB-S tuners.**
+[Universal LNB](class/linuxdvb_satconf_lnbonly) | Universal LNB - most DVB-S tuners.
+[2 Port](class/linuxdvb_satconf_2port) | 2 Port configuration.
+[4 Port](class/linuxdvb_satconf_4port) | 4 Port configuration.
+[Advanced LNB](class/linuxdvb_satconf_advanced) | Advanced LNB configuration.
+[Unicable EN50494 (experimental)](class/linuxdvb_satconf_en50494) | Unicable LNB configuration.
+[DiseqC Rotor](class/linuxdvb_rotor) | DiseqC rotor configuration.
+[DiSEqC Switch](class/linuxdvb_switch) | DiSEqC Switch configuration.
+[Rotor (GOTOX)](class/linuxdvb_rotor_gotox) | Rotor (GOTOX) configuration.
+[Rotor (USALS)](class/linuxdvb_rotor_usals) | Rotor (USALS) configuration.
+[SAT>IP Client](class/satip_client) | SAT>IP client configuration.
+[SAT>IP Satellite Configuration](class/satip_satconf) | SAT>IP Satellite Configuration
+
+For more information, click on a type.
--- /dev/null
+Contents
+
+* [Overview](dvr) - Click to return the DVR help index.
+* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
--- /dev/null
+## Overview
+
+This tab is where you manage your recordings. Each entry is moved
+between the *Upcoming / Current Recordings*, *Finished Recordings* and
+*Failed Recordings* sub-tabs depending on status.
+
+
+
+Sub-tab | Description
+--------------------------------------------------------------|-------------------------------------
+[Upcoming / Current Recordings](class/dvrentry) | Lists current and upcoming recording entries. Entries shown here are either currently recording or are soon-to-be recorded.
+[Finished Recordings](class/dvrentry) | Lists all completed recording entries. Entries shown here have reached the end of the scheduled (or EITp/f defined) recording time.
+[Failed Recordings](class/dvrentry) | Lists all failed recording entries. Entries shown here have failed to record due to one (or more) errors that occurred during the recording.
+[Removed Recordings](class/dvrentry) | Lists all recording entries that have missing file(s). Entries shown here link to file(s) that Tvheadend cannot locate (files which have been externally (re)moved).
+[Auto-recording (Autorecs)](class/dvrautorec) | Lists all EPG-driven recording rules. Events matched (by an auto-record rule) will be added to the *Upcoming / Current Recordings* tab - including those currently broadcasting.
+[Time-based Recording (Timers)](class/dvrtimerec) | Lists all time-driven recording rules. Events matched (by a timer rule) will be added to the *Upcoming / Current Recordings* tab - including those currently broadcasting.
+
+Click the title (in the table) to display all information ([items](#items) etc.) specific to that tab.
+
+### Notes About the DVR
+
+* Make sure you have enough tuners free to record (and watch) multiple
+services, insufficient tuners may result in missed recordings. However,
+depending on the tuner, most are able to receive a full multiplex, so
+you usually only need one per frequency/mux. You can quickly check if
+your tuner supports "full mux receive" by going to the *Muxes* tab and
+playing a freq/mux in something like VLC.
+
+* If you're unsure as to why a scheduled recording failed, check the
+status column. Take a look at the *status* property [below](#items) for
+a list of possible reasons.
+
+* You can schedule a one-time only recording by pressing the [Add]
+button from the menu bar in the *Upcoming / Current Recordings* tab.
+You must enter a title, a start (and an end) time, and pick a channel.
+
+* The time-based "Timers" tab allows you to schedule multiple recordings
+based on time and/or day.
+
+* The *Auto-recording (Autorecs)* tab offers many powerful features,
+regular expressions for title, synopsis and description event matching,
+duplicate episode handling, time-frame based rules and much more!
+
+* In the *Upcoming / Current Recordings* tab, duplicates are shown with
+a line-through.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+Contents
+
+* [Overview](#overview)
+* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
--- /dev/null
+## Overview
+
+Setting up access control is an important initial step as **the system
+is initially wide open**.
+
+Tvheadend verifies access by scanning through all enabled access control
+entries in sequence, from the top of the list to the bottom.
--- /dev/null
+\t
+
+Sub-tab | Description
+--------------------------------------------------------------|-------------------------------------
+[Access Entries](class/access) | User account management.
+[Passwords](class/passwd) | Password management.
+[IP Blocking Records](class/ipblocking) | IP address block list.
+
+Click the title (in the table) to display all information ([items](#items) etc.) specific to that tab below.
+++ /dev/null
-# Tvheadend 4.2 User Guide
-
-
-
-# Purpose
-
-This document is intended to give you a high-level overview of how to set
-up Tvheadend for the first time. It does not aim to provide a complete description
-of every step or answer every question: more details are available on the
-tvheadend [wiki](https://tvheadend.org/projects/tvheadend/wiki).
-
-As you set things up, consult the on-line (web interface) help as well.
-Tvheadend includes copies of many of these pages in the application, which
-is easier to find when you're wondering what to do next.
-
-If you get really stuck, there's the [forum](https://tvheadend.org/projects/tvheadend/boards)
-and IRC (*#hts* on *freenode*) - [Kiwi IRC](https://kiwiirc.com/client/chat.freenode.net/?nick=tvhhelp|?#hts) or Freenode's [webchat](http://webchat.freenode.net) are good web
-clients if you don't already have an IRC client installed.
+++ /dev/null
-## Install Your Tuners
-
-This section will give you some basic ideas on how to get your tuner working
-with your operating system. However, it's clearly way beyond the scope of
-this guide to tell you everything: consult specialist forums, search around,
-and at least do some research to work out what's likely to work or not
-before you hand over any money.
-
-There is a discussion about supported hardware on [the Tvheadend
-forums](https://tvheadend.org/boards/5/topics/5102).
-
-### 1. Install the Tuner Hardware
-
-This is obviously a core requirement that's outside of the scope of this guide.
-
-You basically have the choice of:
-
-* External USB tuners that plug in
-* Internal (e.g. PCI) tuners that go inside the computer chassis
-* External SAT>IP tuners that send MPEG-TS streams over a LAN connection
-* External HDHomeRun tuners that send MPEG-TS streams over a LAN connection
-
-Follow the appropriate installation instructions and, if relevant, the
-setup instruction (e.g. for SAT>IP, which are effectively small, standalone
-computers).
-
-#### A Note on USB Tuners
-
-USB tuners are cheap, work well and are frequently well-matched to physically-smaller
-builds (e.g. HTPCs) which simply don't have the internal slots. However, please
-remember that many need external power, or need a powered hub to work properly.
-
-In addition, even USB3 doesn't have the greatest practical bandwidth per bus. That
-means you're probably asking for problems if you have four DVB-S2 dongles on the same USB
-connection to the motherboard.
-
-This is particularly true of systems such as the Raspberry Pi which share USB
-bandwidth with the Ethernet port. Don't be surprised if this kind of platform struggles
-and/or reports errors in a multi-tuner configuration, especially on
-high-bandwidth (e.g. HD) streams.
-
-### 2. Install Firmware and/or Drivers
-
-Similar to the above, Tvheadend can do nothing if your tuners aren't working
-properly. A good place to check how to set up your tuners is the
-[LinuxTV wiki device library](http://www.linuxtv.org/wiki/index.php/Hardware_Device_Information) -
-this will not only tell you what's supported under Linux, but also
-how to get it all working.
-
-As a broad guide, though, you need two main components: a driver, and firmware.
-
-The **driver** is the piece of software that, as far as the operating system is concerned,
-controls the tuner hardware.
-
-Driver software typically comes either built-in to the operating system
-(a clue here is documentation that says *"supported since kernel 3.16"*, for example)
-or as an external program that needs to be compiled in (e.g. how you'd build TBS'
-or Digital Devices drivers, or perhaps where the driver is supported in a later version
-of LinuxTV V4L-DVB than has made it to your kernel - the giveaway here is
-*"compile and install the latest media_build"*).
-
-Many tuners then also require **firmware** - normally, a binary file that's been
-extracted from the proprietary drivers used by Windows.
-
-Many Linux distros include a package for the most common devices (e.g.
-*linux-firmwares* under Ubuntu or *firmware-linux-nonfree* under Debian).
-If this isn't sufficient, a good source of firmware files are the
-[OpenElec](https://github.com/OpenELEC/dvb-firmware) and [LibreELEC](https://github.com/libreELEC/dvb-firmware)
-firmware repositories on Github.
-
-Typically, download the binary file and install it into `/lib/firmware`, owned
-by `root:root`, permissions `rw-r--r--` (0644)
+++ /dev/null
-## Install Tvheadend
-
-This section tells you how to get hold of the software in the first place,
-and how to get it onto your system.
-
-Follow the instructions that are specific to your Linux distribution
-(Ubuntu/Debian/Mint, Arch, Fedora...). This will typically be PPA-and-dpkg
-for Debian, but most other distros will need you to build your own version from source.
-
-* [Debian/Ubuntu installation instructions](https://tvheadend.org/projects/tvheadend/wiki/AptRepository)
-
-* [Instructions on how to build from source](https://tvheadend.org/projects/tvheadend/wiki/Building)
-
-Do not assume that your distro's package manager will give you the latest
-version of Tvheadend - indeed, give you any version at all. Always check.
-
-Where a pre-built package exists, this will usually get you the last official
-stable version. However, more advanced users may be interested in running
-a development version - either a nightly build or a self-compiled version.
--- /dev/null
+# Installation
+
+Contents
+
+* [Basic Requirements](#basic-requirements)
+* [Install Your Tuners](#install-your-tuners)
+* [Install Tvheadend](#install-tvheadend)
+
+---
+
+## Basic Requirements
+
+### Physical Architecture
+
+It's perfectly possible to install and run Tvheadend as a single-seat installation,
+with the software running on the same system as any client software (e.g. Kodi),
+with all files stored locally.
+
+Alternatively, you can run Tvheadend on a server, perhaps on an always-on
+system that houses your media, perhaps on a dedicated low-power system - it's your choice.
+
+Where you have aerial/coax connections might influence your choice - unless
+you use SAT>IP or have some other way to transport your TV signal over a LAN,
+your Tvheadend installation has to live where you can actually connect your
+tuners.
+
+### System Requirements
+
+Wherever you install it, Tvheadend primarily runs on **Linux** - pre-built
+binaries are available for most Debian-based distributions (Debian itself, Ubuntu,
+Mint...) and RPMs for Fedora, or you can build it yourself. It runs on both
+32- and 64-bit x86 and ARM processors, and so also can be built for Android
+(which uses the Linux kernel).
+
+You will only need **c. 30MB disk space** for the application and associated
+files, and maybe anything up to **1GB** for your configuration - depending on
+how many tuners of what type you have, how many channels you receive, your
+choice of programme guide, and so on. You'll clearly need much more for
+your recordings, though: as a guide, an hour of SD MPEG-2 video will take
+about 1GB, while high bitrate HD H.264 will easily consume 5GB+ per hour.
+
+Tvheadend is intended to be lightweight, so it will run on a NAS or similar
+**low-powered CPU**. Note that the exception here is transcoding: if you want
+to convert high-definition video in real time then you will need a powerful,
+multi-core system. It will happily run in less than **1GB of RAM**, and many
+people run it successfully on original Raspberry Pis with perhaps only 256MB
+of usable free memory. This does depend on what else you're using the computer
+for, though, as a GUI will drain your system as will any serious file serving.
+
+And, of course, you'll need one or more **TV tuners** if you want to receive
+regular broadcast television - otherwise, you're limited to IP sources.
+
+An **Internet connection** is recommended but not essential. You need to
+have an accurate clock for EPG timers to work, for example, but this can be
+synchronised from the broadcast signal if you're not in a position to use
+`ntp` or similar.
+
+### How Lightweight?
+
+How about light enough to run on a travel router? Take a look at this
+[example](https://tvheadend.org/boards/4/topics/16579) from one of our users...
+
+---
+
+## Install Your Tuners
+
+This section will give you some basic ideas on how to get your tuner working
+with your operating system. However, it's clearly way beyond the scope of
+this guide to tell you everything: consult specialist forums, search around,
+and at least do some research to work out what's likely to work or not
+before you hand over any money.
+
+There is a discussion about supported hardware on [the Tvheadend
+forums](https://tvheadend.org/boards/5/topics/5102).
+
+### 1. Install the Tuner Hardware
+
+This is obviously a core requirement that's outside of the scope of this guide.
+
+You basically have the choice of:
+
+* External USB tuners that plug in
+* Internal (e.g. PCI) tuners that go inside the computer chassis
+* External SAT>IP tuners that send MPEG-TS streams over a LAN connection
+* External HDHomeRun tuners that send MPEG-TS streams over a LAN connection
+
+Follow the appropriate installation instructions and, if relevant, the
+setup instruction (e.g. for SAT>IP, which are effectively small, standalone
+computers).
+
+#### A Note on USB Tuners
+
+USB tuners are cheap, work well and are frequently well-matched to physically-smaller
+builds (e.g. HTPCs) which simply don't have the internal slots. However, please
+remember that many need external power, or need a powered hub to work properly.
+
+In addition, even USB3 doesn't have the greatest practical bandwidth per bus. That
+means you're probably asking for problems if you have four DVB-S2 dongles on the same USB
+connection to the motherboard.
+
+This is particularly true of systems such as the Raspberry Pi which share USB
+bandwidth with the Ethernet port. Don't be surprised if this kind of platform struggles
+and/or reports errors in a multi-tuner configuration, especially on
+high-bandwidth (e.g. HD) streams.
+
+### 2. Install Firmware and/or Drivers
+
+Similar to the above, Tvheadend can do nothing if your tuners aren't working
+properly. A good place to check how to set up your tuners is the
+[LinuxTV wiki device library](http://www.linuxtv.org/wiki/index.php/Hardware_Device_Information) -
+this will not only tell you what's supported under Linux, but also
+how to get it all working.
+
+As a broad guide, though, you need two main components: a driver, and firmware.
+
+The **driver** is the piece of software that, as far as the operating system is concerned,
+controls the tuner hardware.
+
+Driver software typically comes either built-in to the operating system
+(a clue here is documentation that says *"supported since kernel 3.16"*, for example)
+or as an external program that needs to be compiled in (e.g. how you'd build TBS'
+or Digital Devices drivers, or perhaps where the driver is supported in a later version
+of LinuxTV V4L-DVB than has made it to your kernel - the giveaway here is
+*"compile and install the latest media_build"*).
+
+Many tuners then also require **firmware** - normally, a binary file that's been
+extracted from the proprietary drivers used by Windows.
+
+Many Linux distros include a package for the most common devices (e.g.
+*linux-firmwares* under Ubuntu or *firmware-linux-nonfree* under Debian).
+If this isn't sufficient, a good source of firmware files are the
+[OpenElec](https://github.com/OpenELEC/dvb-firmware) and [LibreELEC](https://github.com/libreELEC/dvb-firmware)
+firmware repositories on Github.
+
+Typically, download the binary file and install it into `/lib/firmware`, owned
+by `root:root`, permissions `rw-r--r--` (0644)
+
+---
+
+## Install Tvheadend
+
+This section tells you how to get hold of the software in the first place,
+and how to get it onto your system.
+
+Follow the instructions that are specific to your Linux distribution
+(Ubuntu/Debian/Mint, Arch, Fedora...). This will typically be PPA-and-dpkg
+for Debian, but most other distros will need you to build your own version from source.
+
+* [Debian/Ubuntu installation instructions](https://tvheadend.org/projects/tvheadend/wiki/AptRepository)
+
+* [Instructions on how to build from source](https://tvheadend.org/projects/tvheadend/wiki/Building)
+
+Do not assume that your distro's package manager will give you the latest
+version of Tvheadend - indeed, give you any version at all. Always check.
+
+Where a pre-built package exists, this will usually get you the last official
+stable version. However, more advanced users may be interested in running
+a development version - either a nightly build or a self-compiled version.
+
--- /dev/null
+# Introduction
+
+Contents
+
+* [Overview](#overview)
+* [Features](#features)
+* [Before You Begin](#before-you-begin)
+* [Using the Interface](#using-the-interface)
+* [About This Guide](#about-this-guide)
+
+---
+
+## Overview
+
+Tvheadend is a lightweight, easily-configured, general-purpose TV/video
+streaming server and recorder (PVR/DVR) for GNU/Linux, FreeBSD and Android.
+
+
+
+It supports input from a number of sources such as DVB-T, DVB-S and more, see
+[Features](#features) for a full list.
+
+As well as being able to record the input, Tvheadend also offers it up to
+client applications via HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP
+streaming.
+
+The code is hosted at [github](https://github.com/tvheadend/tvheadend).
+Please use github's features if you want to provide patches.
+Contributions and improvements are always welcome.
+
+---
+
+## Features
+
+### SDTV and HDTV support
+* H.265 (HEVC), H.264 (MPEG-4 AVC) and MPEG2 video supported.
+* AC-3, AAC and MP2 audio supported.
+* DVB subtitles supported.
+* Teletext subtitles supported.
+
+### Input Sources
+* Satellite signals via DVB-S and DVB-S2.
+* Terrestrial/Over-the-Air signals via DVB-T, DVB-T2 and ATSC.
+* Cable signals via DVB-C.
+* LAN/IPTV signals such as IPTV, SAT>IP, HDHomeRun.
+* A general-purpose MPEG-TS `pipe://` (or `file://`) for analogue and
+non-broadcast sources.
+* Support for multiple adapters of any mix, with each adapter able to
+receive simultaneously all programmes on the current mux.
+* Powerful many-to-many channel:service:tuner mapping that allows you to select
+channels irrespective of the underlying carrier (for channels that broadcast
+on multiple sources).
+
+### Output Targets
+* Local or remote disk, via the built-in digital video recorder.
+* HTSP (Home TV Streaming Protocol).
+* HTTP streaming.
+* SAT>IP server (including on-the-fly descrambling).
+
+### Transcoding Support
+* Subject to your system's capabilities, support for on-the-fly transcoding
+for both live and recorded streams in various formats.
+
+### Digital Video Recorder
+* Built in video recorder stores recorded programs as Transport Stream (.ts) or Matroska (.mkv) files.
+* Multiple simultaneous recordings are supported.
+* All original streams (multiple audio tracks, etc) are recorded.
+* Streams can be selected and filtered positively or negatively as required.
+* Create rule sets manually or based on EPG queries.
+* Multiple DVR profiles that support different target directories, post-processing options, filtering options, etc.
+
+### Electronic Program Guide
+* Rich EPG support, with data from DVB/OTA, XMLTV (scheduled and socket).
+* Searchable and filterable from the web user interface.
+* Results can be scheduled for recording with a single click.
+
+### Rich Browser-Driven Interface
+* The entire application is loaded into the browser.
+* Based on extJS, all pages are dynamic and self-refreshing.
+* All sorting/filtering is then done in C by the main application for speed.
+
+### Easy to Configure and Administer
+* All setup and configuration is done from the built in web user interface.
+* All settings are stored in human-readable text files.
+* Initial setup can be done by choosing one of the pre-defined [linuxtv](http://git.linuxtv.org/cgit.cgi/dtv-scan-tables.git) networks
+or manually configured.
+* Idle scanning for automatic detection of muxes and services.
+* Support for broadcaster (primarily DVB-S) bouquets for easy channel mapping.
+
+### Multi-User Support
+* Access to system features (streaming, administration, configurations) can
+be configured based on username/password and/or IP address.
+
+### Software-Based CSA Descrambling
+* Requires a card server (newcamd and capmt protocol is supported).
+
+### Fully-Integrated with Mainstream Media Players
+* Movian and Kodi are the main targets.
+* All channel data, channel groups/tags, EPG and TV streaming is carried over a single TCP connection.
+
+### Mobile/Remote Client Support
+* As well as the web interface, which is accessible through VPN if required,
+third-party clients are available for both
+[Android](https://play.google.com/store/apps/details?id=org.tvheadend.tvhclient&hl=en_GB)
+and [iOS](https://itunes.apple.com/gb/app/tvhclient/id638900112?mt=8) (other
+clients may also be available).
+
+### Internationalisation
+* All text is encoded in UTF-8 to provide full international support.
+* All major character encodings in DVB are supported (e.g. for localised EPG character sets).
+* [Web interface internationalization](https://tvheadend.org/projects/tvheadend/wiki/Internationalization)
+
+---
+
+## Before You Begin
+
+There are some basic concepts that will make life much easier if you
+understand them from the outset.
+
+### Hardware/Software Fundamentals
+
+* A **tuner** is the hardware (chipset) needed to interpret a digital
+television signal and extract from it the programme stream. The tuner hardware
+is also responsible for communicating with your satellite dish via the LNB
+in the case of DVB-S.
+
+* **Network tuners** are small (usually [arm](https://en.wikipedia.org/wiki/ARM_architecture) based)
+computers that you connect to your network via Ethernet or Wifi, they often have a large number of tuners
+and are controlled via a web interface or software. Many work out-of-the-box with Tvheadend using SAT>IP or the HDHomeRun protocols.
+
+* A **driver** is the piece of software that your operating system uses to
+talk to the tuner. This can be built into the OS (e.g. 'supported since kernel X')
+or might be a separate piece of software that you need install, and maybe
+even compile, separately.
+
+* **Firmware** is a small piece of binary microcode that your system driver
+sends to the tuner upon initialisation. This is the cause of more problems
+than you'd imagine... if you find yourself in trouble, this is the first
+thing to check along with kernel support for your hardware.
+
+### Application/Tvheadend Fundamentals
+
+The Tvheadend software then sets up a series of configuration elements, and
+the way in which these interact determines how a TV signal ends up in front
+of you. They all use what's known as a *many-to-many* relationship, in that
+one configuration element can be related to multiple elements of the next
+type, and vice versa: one tuner has multiple networks, one network can
+exist on multiple tuners.
+
+* The **network** is the software definition of your carrier network. Broadly,
+it lays out what sort of network it is (such as DVB-T or DVB-S2), how it
+gets scanned, where the DVB-S satellite is in orbit, and similar. Networks
+are used by tuners so the hardware knows where to look for a signal.
+
+* Networks then have **muxes**. These are the carrier frequencies that exist on
+the old analogue channels that are used to transmit multiple digital signals
+rather than a single analogue one. These signals are multiplexed together,
+hence the name _mux_.
+
+* Muxes then carry **services**. These are the individual streams of data.
+They can be TV or radio programmes, they can provide data services such as
+digital teletext, or they can be used as part of the control code for
+catch-up IPTV services.
+
+* And finally, services are mapped to **channels**. These are what you
+and your client software think in terms of: _"I'd like to watch BBC One
+now, please"_.
+
+### Why the Complexity?
+
+Simply, because 'BBC One' might exist in many different places... it
+might have regional variations on multiple frequencies (so different services
+on different muxes); it might exist on more than one source (perhaps on two
+different satellites); and it might thus be accessible through more than one
+piece of hardware (two satellite tuners, or one satellite and one terrestrial
+tuner).
+
+When you select the channel you want to watch or record, Tvheadend can
+then map a path through all those variables to ask a particular tuner to
+go and get the signal for you.
+
+The following diagram explains the relationship between these components:
+
+
+
+---
+
+## Using the Interface
+
+Tvheadend is operated primarily through a tabbed web interface.
+
+There are some basic navigation concepts that will help you get around and
+make the best of it.
+
+### Page Structure
+
+The interface is made up of nested tabs, so similar functions are grouped
+together (e.g. all configuration items at the top level, then all configuration
+items for a particular topic are below that). Be aware that not all tabs are
+shown by default, some are hidden depending on the current [view level](#view-level).
+
+
+
+Each tab is then laid out with a [menu bar](#menu-bar-panel-buttons) that provides access
+to Add/Save/Edit-type functions, and a [grid](#grids) like a spreadsheet, a panel, or a list of (grouped) settings/options below that.
+
+### Menu bar/Panel Buttons
+
+
+
+Below is a (VERY) long list of the buttons you'll find in Tvheadend,
+They're listed here so you can quickly refer back to them at a later date (and know where to find them!).
+
+Button | Function
+------------------------------------|-------------------
+Save | Save any changes made to the grid/entries/panel.
+Undo | Revert any changes made since the last save.
+Add | Display the *Add entry* dialog.
+Delete/Remove | Delete the selected entry/entries.
+Edit | Edit the selected entries.
+Reset All | Reset/clear all filters.
+ | **Electronic Program Guide only.**
+Watch TV | Launches Live TV via HTML5 video.
+ | **Electronic Program Guide only.**
+Create Autorec | Creates an auto-recording rule based on the current filter criteria.
+ | **Electronic Program Guide only.**
+Play Program | Play the program.
+ | **Electronic Program Guide/Broadcast details only.**
+Record Program | Record the program/event.
+ | **Electronic Program Guide/Broadcast details only.**
+Autorec/Record Series | Create an Auto-record entry matching the current program query. For events that have series-link information available the *Record Series* button will be shown instead.
+ | **Electronic Program Guide/Broadcast details only.**
+Force Scan | Forces a scan on the selected network(s) or bouquet(s).
+ | **Configuration -> DVB Inputs -> Networks/Configuration -> Channel / EPG -> Bouquets only.**
+Map Services | *Selected*: Map the selected services to channels. *All*: Map all services to channels. *Detach from bouquet*: Detach the (selected) services from it's bouquet (to prevent changes).
+ | **Configuration -> Channel / EPG -> Channels/Configuration -> DVB Inputs -> Services only.**
+Maintenance | *Remove unseen services (PAT/SDT) (7 days+)*: Remove services marked as Missing in PAT/SDT for 7+ days. *Remove all unseen services*: Remove all services not seen for 7+ days.
+ | **Configuration -> DVB Inputs -> Services only.**
+Number Operations | *Assign Number*: Assign the lowest available channel number(s) to the selected channel(s). *Number Up*: Increment the selected channel number(s) by 1. *Number Down*: Decrement the selected channel numbers by 1. *Swap Numbers*: Swap the numbers of the two selected channels.
+ | **Configuration -> Channel / EPG -> Channels only.**
+Trigger OTA EPG Grabber | Force an immediate tune to the OTA EPG mux(es) to request EPG updates.
+ | **Configuration -> Channel / EPG -> EPG Grabber only.**
+Re-run Internal EPG Grabbers | Re-run all enabled internal grabbers.
+ | **Configuration -> Channel / EPG -> EPG Grabber/EPG Grabber Modules only.**
+Move Up | Move the selected entry up in the list.
+ | **Configuration -> Users -> Access entries/Configuration -> Stream -> Stream filters only.**
+Move Down | Move the selected entry down in the list.
+ | **Configuration -> Users -> Access entries/Configuration -> Stream -> Stream filters only.**
+Clone | Clone the currently selected entry.
+ | **Configuration -> Conditional Access (CAs)/Configuration -> Stream -> Stream/Codec Profiles only.**
+Show/Hide Passwords | Reveal/Hide password fields.
+ | **Configuration -> Conditional Access (CAs) only.**
+Stop | Gracefully stop the selected in-progress recording entry/entries.
+ | **Digital Video Recorder -> Upcoming / Current Recordings only.**
+Abort | Abruptly stop the selected in-progress recording entry/entries.
+ | **Digital Video Recorder -> Upcoming / Current Recordings only.**
+Download | Download the selected recording.
+ | **Digital Video Recorder -> Finished/Failed/Removed Recordings only.**
+Re-record | Re-schedule the selected entry/recording if possible.
+ | **Digital Video Recorder -> Finished/Failed/Removed Recordings only.**
+Move to failed | Move the selected recording entries to *Failed Recordings*.
+ | **Digital Video Recorder -> Finished Recordings only.**
+Move to finished | Move the selected recording entries to the *Finished Recordings*.
+ | **Digital Video Recorder -> Failed Recordings only.**
+Start wizard | Start the wizard.
+ | **Configuration -> General -> Base only.**
+Clean image (icon) cache | Clean-up the stored image files (empty cache and re-fetch icons).
+ | **Configuration -> General -> Image cache only.**
+Re-fetch images | Re-refresh image cache (reload images from upstream providers).
+ | **Configuration -> General -> Image cache only.**
+Discover SAT\>IP servers | Attempt to discover more SAT>IP servers on the network.
+ | **Configuration -> General -> SAT>IP Server only.**
+Apply configuration (run time only) | Apply the entered debugging settings.
+ | **Configuration -> Debugging -> Configuration only.**
+Clear all statistics | Reset all stream statistics, e.g. BER, PER etc..
+ | **Status -> Stream only.**
+View Level | Show/Hide more advanced options.
+Help | Display the help page.
+
+Some of these buttons are only displayed in selected tabs/panels (noted in bold underneath).
+For items not listed above, refer to the associated Help page.
+
+### View Level
+
+The *View level* drop-down/button - next to the Help button -
+displays/hides the more advanced features. By default it is set to Basic.
+Note, depending on [configuration](class/config) the view level drop-down isn't
+always visible.
+
+
+
+View level | Description
+----------------------|-------------------------------------------------
+**Basic** | Display the most commonly used tabs/items.
+**Advanced** | Display the more advanced tabs/items.
+**Expert** | Show all tabs/items.
+
+### Grids
+
+Most configuration items - certainly the ones that are common to all types
+of item covered by that tab - are in this grid.
+
+However, some item-specific configuration items are then only available
+through the *Add* and *Edit* dialog boxes. For example, the main
+network configuration tab grid covers parameters common to
+DVB-S, -T, -C and IPTV networks, but specific things such as FEC
+rolloff or mux URL are then only in the dialogs for networks that need
+these values.
+
+#### Displaying and Manipulating Columns
+
+* Not all columns are necessarily visible. If you hover your mouse over a
+ column heading, you'll see a down arrow - click here, and a drop-down menu
+ will appear to give you access to **which columns are shown and which are not**.
+
+* The same drop-down menu gives you access to a **sort** function if defined
+ (it doesn't always make sense to have a sortable column for some parameters).
+ You can also sort a column by simply clicking on the column header; reverse
+ the sort order by clicking again.
+
+* And the same drop-down menu also gives you access to a **filter** function
+ if defined. The filter does simple pattern-matching on any string you
+ provide. A small blue flag or triangle will appear in the top-left
+ corner to indicate that a filter is active. Filters persist until
+ cleared.
+
+* **Re-arrange** the columns by simply dragging he header to a new spot.
+
+* **Re-size** the columns by dragging the very edges of the column header as
+ required.
+
+
+
+Note, a cookie is used to remember your column/filtering preferences; Clearing
+your cookies will reset the interface to default.
+
+### Split panels
+
+The interface also makes use of split panels, examples
+being the *TV Adapters* and *EPG Grabber Modules* tabs. On the left,
+you'll see a list of items (or a tree as shown in the screenshot below), clicking
+on any of the items will display a parameter panel (on the right).
+
+
+
+When making changes (in the parameter panel) be sure to save **before**
+clicking on another item in the list.
+
+### Paging Toolbar
+
+The paging toolbar - at the bottom of most grids - offers many useful
+tools.
+
+
+
+* General paging functions ```|< < > >|``` allow you to quickly move
+between data sets.
+
+* Lists the number of current and maximum (per page) rows displayed, followed by
+the total number of items available.
+
+* The *Per page* drop-down allows you to control how many rows are
+displayed within the grid. By default, this is set to 50, increasing
+the number of rows displayed may affect performance.
+
+* The refresh icon allows you to refresh the currently-displayed rows.
+
+* The *Auto refresh* check-box allows the interface to automatically
+refresh the rows for you, every 30 seconds.
+
+### Tvheadend log
+
+The log contains information relating to the status of Tvheadend such
+as who's accessing it, what client they're using, and so on. it's mainly
+used for debugging (please see the debugging section for more), it can
+be used as a quick "is-it-working" overview too.
+
+To open the log click the bar at the very bottom of the interface..
+
+
+
+The log will remain open for a few moments at a time, if you want to keep
+it open (or to close it), press the chevron ```â–²``` (up) or ```â–¼```
+(down) arrows.
+
+
+
+The cog (or gear) ```âš™``` icon allows you to enable/disable a more
+verbose output.
+
+### Adding, Editing and More
+
+Menu bar buttons that display dialogs - certainly in the case of the
+Add and Edit buttons - show a dialog that share's a layout and buttons,
+these are explained in the table below.
+
+Dialog button | What it does
+-----------------------|-------------------------
+Cancel | Closes the dialog, discarding all unsaved changes.
+Save | Saves (or add a new entry) & closes the dialog.
+Apply | Saves pending changes but doesn't close the dialog, so you can more entries without having to fill in the fields again.
+View Level | Change the dialog view level to show/hide more advanced options.
+Help | Display the help page.
+
+Note, when using Save/Apply, certain fields must differ otherwise existing entries **may** be overwritten.
+
+#### Adding/Editing
+
+To add an entry, click the *Add* button - you should see a
+dialog - you can now fill in the desired/required fields.
+The entry can then be saved (*Create/Save* button), applied
+(*Apply* button), or abandoned (*Cancel* button).
+Note, you may need to make a pre-selection, for example, to pick a
+network, a network type, or tuner.
+
+To edit/delete etc, select the entry (or entries - see multi-select
+below) and press the desired button.
+
+#### Editing (in the Grid)
+
+To edit a single entry, double click on the desired field/cell.
+It should now be editable. Once you've made your changes you can then
+save (*Save* button), or abandon (*Undo* button).
+After a cell is changed, a small red flag or triangle will appear in
+the top-left corner to indicate that it has been changed.
+To change a check box or radio button, click once.
+
+#### Multi-select
+
+Rows (in the grid) are multi-selectable, so you can carry out certain
+actions on more than one entry at a time. So, for example, you can select
+multiple items by using ctrl+click, shift+click to select a range, or
+ctrl+a to select all.
+When dealing with multiple entries, an additional check-box will be
+shown before each field in the dialog, remember to tick this
+check-box so that the changes are applied to all (selected) entries.
+
+
+
+---
+
+## About This Guide
+
+This guide is intended to give you a high-level overview of how to set
+up and use Tvheadend. It does not aim to provide a complete description
+of every step or answer every question: more details are available on the
+tvheadend [wiki](https://tvheadend.org/projects/tvheadend/wiki).
+
+Tvheadend includes copies of many of these pages in the application, which
+is easier to find when you're wondering what to do next.
+
+If you get really stuck, there's the [forum](https://tvheadend.org/projects/tvheadend/boards)
+and IRC (*#hts* on *freenode*) - [Kiwi IRC](https://kiwiirc.com/client/chat.freenode.net/?nick=tvhhelp|?#hts) or Freenode's [webchat](http://webchat.freenode.net) are good web
+clients if you don't already have an IRC client installed.
+++ /dev/null
-## Overview of Tvheadend
-
-### Welcome to Tvheadend!
-
-Tvheadend is a lightweight, easily-configured, general-purpose TV/video
-streaming server and recorder (PVR/DVR) for GNU/Linux, FreeBSD and Android.
-
-
-
-It supports input from:
-
-* Cable TV, delivered via a cable to your house (DVB-C)
-* Satellite, so any signal coming in via a dish (DVB-S and DVB-S2)
-* Terrestrial, so over-the-air broadcasts received through a
-traditional television aerial (DVB-T and DVB-T2 in much of the world, ATSC
-in north and central America)
-* Internet and LAN feeds, such as IPTV, SAT>IP, HDHomeRun and a general-purpose
-MPEG-TS `pipe://`
-
-As well as being able to record the input, Tvheadend also offers it up to
-client applications via HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP
-streaming.
-
-While supported in previous versions, analogue video (V4L) is no longer
-supported directly. If you still need this, or need to input signals
-from video cameras or other non-broadcast sources, use `pipe://`.
-
-The code is hosted at [github](https://github.com/tvheadend/tvheadend).
-Please use github's features if you want to provide patches. Contributions and improvements are always welcome.
+++ /dev/null
-## Basic Requirements
-
-### Physical Architecture
-
-It's perfectly possible to install and run Tvheadend as a single-seat installation,
-with the software running on the same system as any client software (e.g. Kodi),
-with all files stored locally.
-
-Alternatively, you can run Tvheadend on a server, perhaps on an always-on
-system that houses your media, perhaps on a dedicated low-power system - it's your choice.
-
-Where you have aerial/coax connections might influence your choice - unless
-you use SAT>IP or have some other way to transport your TV signal over a LAN,
-your Tvheadend installation has to live where you can actually connect your
-tuners.
-
-### System Requirements
-
-Wherever you install it, Tvheadend primarily runs on **Linux** - pre-built
-binaries are available for most Debian-based distributions (Debian itself, Ubuntu,
-Mint...) and RPMs for Fedora, or you can build it yourself. It runs on both
-32- and 64-bit x86 and ARM processors, and so also can be built for Android
-(which uses the Linux kernel).
-
-You will only need **c. 30MB disk space** for the application and associated
-files, and maybe anything up to **1GB** for your configuration - depending on
-how many tuners of what type you have, how many channels you receive, your
-choice of programme guide, and so on. You'll clearly need much more for
-your recordings, though: as a guide, an hour of SD MPEG-2 video will take
-about 1GB, while high bitrate HD H.264 will easily consume 5GB+ per hour.
-
-Tvheadend is intended to be lightweight, so it will run on a NAS or similar
-**low-powered CPU**. Note that the exception here is transcoding: if you want
-to convert high-definition video in real time then you will need a powerful,
-multi-core system. It will happily run in less than **1GB of RAM**, and many
-people run it successfully on original Raspberry Pis with perhaps only 256MB
-of usable free memory. This does depend on what else you're using the computer
-for, though, as a GUI will drain your system as will any serious file serving.
-
-And, of course, you'll need one or more **TV tuners** if you want to receive
-regular broadcast television - otherwise, you're limited to IP sources.
-
-An **Internet connection** is recommended but not essential. You need to
-have an accurate clock for EPG timers to work, for example, but this can be
-synchronised from the broadcast signal if you're not in a position to use
-`ntp` or similar.
-
-### How Lightweight?
-
-How about light enough to run on a travel router? Take a look at this
-[example](https://tvheadend.org/boards/4/topics/16579) from one of our users...
#### Table of Contents
-[Introduction](index)
-* [Overview](overview)
-* [Basic Requirements](requirements)
-* [Features](features)
-
Getting Started
-* [Before you begin (concepts)](before_begin)
-* [Install hardware](install_hardware)
-* [Install Tvheadend](install_tvheadend)
-* [Configure Tvheadend](configure_tvheadend)
+* [Introduction](introduction)
+* [Installation](installation)
+* [Configuring for the First Time](firstconfig)
Web Interface Guide
-* [General](webui_general)
-
* [Electronic Program Guide](epg)
-
-* Digital Video Recorder
-
- - [Upcoming / Current Recordings](class/dvrentry)
- - [Finished Recordings](class/dvrentry)
- - [Failed Recordings](class/dvrentry)
- - [Removed Recordings](class/dvrentry)
- - [Auto-recording (Autorecs)](class/dvrautorec)
- - [Time-based Recording (Timers)](class/dvrtimerec)
+* [Digital Video Recorder](dvr)
* Configuration
- - General
- * [Base](class/config)
- * [Image Cache](class/imagecache)
- * [SAT>IP Server](class/satip_server)
-
- - Users
-
- * [Access Entries](class/access)
- * [Passwords](class/passwd)
- * [IP Address Block List](class/ipblocking)
-
- - DVB Inputs
-
- * [TV Adapters](tv_adapters)
- * [Networks](class/mpegts_network)
- * [Muxes](class/mpegts_mux)
- * [Services](class/mpegts_service)
- * [Mux Schedulers](class/mpegts_mux_sched)
+ - [General](class/config)
+ - [Users](class/access)
+ - [DVB Inputs](dvbinputs)
- Channel / EPG
+++ /dev/null
-## DVB Inputs - TV Adapters
-
-The adapters and tuners are listed and edited in a tree.
-
-
-
----
-
-### Buttons
-
-The following functions are available:
-
-Button | Function
----------------|---------
-**Save** | Save the current configuration.
-<tvh_include>inc/common_button_table_end</tvh_include>
-
----
-
-### Device Tree
-
-The device tree lists the available frontends, LNB configuration and
-so on related to your device(s) in sections. Clicking on these sections
-will display available parameters and device information.
-
-
-
-**Tip**: Remember to save your changes *before* switching panels.
-
----
-
-### Device Configuration
-
-Click on an item to display more information.
-
-#### Satellite (DVB-S/ISDB-S)
-
-* Frontend
- - [Master](class/linuxdvb_frontend_dvbs)
- - [Master (ISDB-S)](class/linuxdvb_frontend_isdb_s)
- - [Slave](class/linuxdvb_frontend_dvbs_slave)
-* Satellite Configuration
- - [Universal LNB](class/linuxdvb_satconf_lnbonly)
- - [2 Port](class/linuxdvb_satconf_2port)
- - [4 Port](class/linuxdvb_satconf_4port)
-* Satellite Configuration (Advanced)
- - [Advanced LNB](class/linuxdvb_satconf_advanced)
- - [Unicable EN50494 (experimental)](class/linuxdvb_satconf_en50494)
- - [DiseqC Rotor](class/linuxdvb_rotor)
- - [DiSEqC Switch](class/linuxdvb_switch)
- - [Rotor (GOTOX)](class/linuxdvb_rotor_gotox)
- - [Rotor (USALS)](class/linuxdvb_rotor_usals)
-
-#### Terrestrial (DVB-T/ATSC-T/ISDB-T)
-
-* Frontend
- - [DVB-T/DVB-T2](class/linuxdvb_frontend_dvbt)
- - [ATSC-T](class/linuxdvb_frontend_atsc_t)
- - [ISDB-T](class/linuxdvb_frontend_isdb_t)
-
-#### Cable (DVB-C/ATSC-C/ISDB-C)
-
-* Frontend
- - [DVB-C](class/linuxdvb_frontend_dvbc)
- - [ATSC-C](class/linuxdvb_frontend_atsc_c)
- - [ISDB-C](class/linuxdvb_frontend_isdb_c)
-
-#### SAT>IP (DVB-T/ATSC-T/ATSC-C/DVB-S)
-
-* [Client](class/satip_client)
-
-* Frontend
- - [ATSC-T](class/satip_frontend_atsc_t)
- - [ATSC-C](class/satip_frontend_atsc_c)
- - [DVB-T](class/satip_frontend_dvbt)
- - [DVB-S (Master)](class/satip_frontend_dvbs)
- - [DVB-S (Slave)](class/satip_frontend_dvbs_slave)
-
-* [Satellite Configuration](class/satip_satconf)
-
----
+++ /dev/null
-## General Overview of Web Interface
-
-Tvheadend is operated primarily through a tabbed web interface.
-
-There are some basic navigation concepts that will help you get around and
-make the best of it.
-
-### Page Structure
-
-The interface is made up of nested tabs, so similar functions are grouped
-together (e.g. all configuration items at the top level, then all configuration
-items for a particular topic are below that).
-
-
-
-However, be aware that not all tabs are
-shown by default, some are hidden depending on the current [view level](#view-level).
-
-Each tab is then typically laid out with a menu bar that provides access
-to Add/Save/Edit-type functions, and a grid like a spreadsheet below that.
-The grid items are frequently editable.
-
-Most configuration items - certainly the ones that are common to all types
-of item covered by that tab - are in this grid. However, some item-specific
-configuration items are then only available through the *Add* and *Edit*
-dialog boxes. For example, the main network configuration tab grid covers
-parameters common to DVB-S, -T, -C and IPTV networks, but specific things
-such as FEC rolloff or mux URL are then only in the dialogs for networks
-that need these values.
-
-#### View level
-
-The *View level* drop-down/button - next to the Help button,
-displays/hides the more advanced features. By default it is set to Basic.
-Depending on [configuration](class/config), the view-level drop-down is
-not always visible.
-
-
-
-View level | Description
-----------------------|-------------------------------------------------
-**Basic** | Display the most commonly used tabs/items.
-**Advanced** | Display the more advanced tabs/items.
-**Expert** | Show all tabs/items.
-
-#### Paging Toolbar
-
-The paging toolbar - at the bottom of most grids - offers many useful
-tools.
-
-
-
-* General paging functions ```|< < > >|``` allow you to quickly move
-between data sets.
-
-* Lists the number of current and maximum (per page) rows displayed, followed by
-the total number of items available.
-
-* The *Per page* drop-down allows you to control how many rows are
-displayed within the grid. By default, this is set to 50, increasing
-the number of rows displayed may affect performance.
-
-* The refresh icon allows you to refresh the currently-displayed rows.
-
-* The *Auto refresh* check-box allows the interface to automatically
-refresh the rows for you, every 30 seconds.
-
-### Displaying and Manipulating Columns
-
-* Not all columns are necessarily visible. If you hover your mouse over a
- column heading, you'll see a down arrow - click here, and a drop-down menu
- will appear to give you access to **which columns are shown and which are not**.
-
-* The same drop-down menu gives you access to a **sort** function if defined
- (it doesn't always make sense to have a sortable column for some parameters).
- You can also sort a column by simply clicking on the column header; reverse
- the sort order by clicking again.
-
-* And the same drop-down menu also gives you access to a **filter** function
- if defined. The filter does simple pattern-matching on any string you
- provide. A small blue flag or triangle will appear in the top-left
- corner to indicate that a filter is active. Filters persist until
- cleared.
-
-* **Re-arrange** the columns by simply dragging he header to a new spot.
-
-* **Re-size** the columns by dragging the very edges of the column header as
- required.
-
-Note, a cookie is used to remember your column/filtering preferences. Clearing
-your cookies will reset the interface to default.
-
-
-
-### Adding, Editing and More
-
-* Rows (in the grid) are multi-selectable, so you can carry out certain actions on
- more than one entry at the same time. So, for example, you can select
- multiple items by using ctrl+click on each entry or click,
- shift+click to select a range, or ctrl+A to select all.
-
-* To add an entry, click the *Add* button from the menu bar. You'll then
- see a dialog, or in some cases - where a list/split panel is used - a
- parameter panel. You can now fill in the desired/required fields, the
- entry can then be saved (*Create/Save* button), applied (*Apply* button),
- or abandoned (*Cancel* button).
-
-* To edit a single entry in the grid, double click on the desired field/cell.
- It should now be editable. Once you've made your changes you can then
- save (*Save* button), apply (*Apply* button), or abandon (*Cancel* button).
-
- After a cell is changed, a small red flag or triangle will appear in
- the top-left corner to indicate that it has been changed.
-
- To change a check box or radio button, click once.
-
-* To edit multiple entries, select the desired entries (as explained above), and
- then press the *Edit* button - a dialog will be displayed. You can now make
- your changes to each field. These changes can then be kept (*Save* button),
- applied (*Apply* button), or abandoned (*Undo* button). Remember to tick the
- check box before each field when saving/applying, so that the changes are applied
- to all selected entries.
-
-* To delete entries, simply select the entry/entries and press the *Delete* button.
- You will be prompted to confirm deletion.
Welcome to Tvheadend, your TV streaming server and video recorder. This
-wizard will help you get up and running fast. Let's start by configuring
-the basic language settings. Please select the default user interface
-and EPG language(s).
+wizard will help you get up and running fast.
-**This wizard should only be run on initial setup. Please cancel it if
+**This wizard should only be run on initial set-up.** Please cancel it if
you're not willing to touch the current configuration, as continuing in
-such cases can lead to misconfiguration and not all changes made thru
-this wizard will take effect.**
+such cases can lead to misconfiguration, and not all changes made thru
+this wizard will take effect.
-**Notes**:
-* If you cannot see your preferred language in the language list and would
-like to help translate Tvheadend see
-[here](https://tvheadend.org/projects/tvheadend/wiki/Internationalization).
-* If you don't enter a preferred language, US English will be used as a default.
-* Not selecting the correct EPG language can result in garbled EPG
-text; if this happens, don't panic, as you can easily change it later.
+If at any point you need help, or a little more information, press
+the **[Help]** button.
-**The interface will reload in your chosen language (if the translation is available).**
+---
+
+Let's start by configuring the basic language settings. Please select
+the default user interface and EPG language(s).
+
+**Note, the interface will restart in your chosen language (if a
+translation is available).**
Enter the access control details to secure your system.
+
The first part of this covers the network details
for address-based access to the system; for example,
192.168.1.0/24 to allow local access only to 192.168.1.x clients,
username/password combination, so provide these for both
an administrator and regular (day-to-day) user.
+---
-**Notes**:
-
-
-* You may enter a comma-separated list of network prefixes (IPv4/IPv6).
- If you were asked to enter a username and password during installation,
- we'd recommend not using the same details for a user here as it may cause
- unexpected behavior, incorrect permissions etc.
-* To allow anonymous access for any account (administrative or regular user) enter
- an asterisk (*) in the username and password fields. ___It is not___
- recommended that you allow anonymous access to the admin account.
-* If you plan on accessing Tvheadend over the Internet, make sure you use
- strong credentials and ___do not allow anonymous access at all___.
+Be sure to have a quick read of the **[Help]** as it contains some
+important security tips!
Map all discovered services to channels.
-
In order for your frontend client(s) (such as Kodi, Movian, and similar)
to see/play channels, you must first map discovered services to
-channels.
-
-
-If you would like Tvheadend to do this for you, check the
-'Map all services' option below, but be aware that this will also map
-encrypted services you may not have access to.
+channels. If you would like Tvheadend to do this for you, check the
+'Map all services' option below.
-
-**You may omit this step (do not check 'Map all services') and
+**You can skip this step (do not check 'Map all services') and
map services to channels manually.**
+---
-**Notes**:
-* Many providers include undesirable services - Teleshopping, Adult
- Entertainment, etc; using the 'Map all services' will include these.
-* You may need to enable specific EPG grabbers to receive OTA EPG data,
-See the *EPG Grabber Modules* Help doc for details.
-
+You can see more info on the various options here by pressing the
+**[Help]** button!
Assign predefined muxes to networks. To save you from manually entering
-muxes, Tvheadend includes predefined mux lists. Please select a list
-for each network below.
+muxes, Tvheadend includes predefined mux lists. Please select an option
+from the list for each network.
+Note, the pre-defined lists are not always up-to-date, this generally
+isn't a problem provided that one of the muxes - in the predefined list -
+is active, and contains network information.
-**Notes**:
+---
-
-* Select the closest transmitter if using an antenna (T); if using
- cable (C), select your provider; if using satellite (S), the orbital
- position of the satellite your dish is pointing towards; or if using
- IPTV, enter the URL to your playlist.
-* If you're unsure as to which list(s) to select you may want to look
- online for details about the various television reception choices
- available in your area.
-* Networks already configured will not be shown below.
-* Selecting the wrong list may cause the scan (on the next page) to fail.
+Don't forget to check out the **[Help]** for more info!
each of the tuners you would like to use. if you do not assign a
network to a tuner it will __not__ be used.
-**Selecting the Right Network**:
+---
-
-Many tuners are able to receive different signal types..
-
-**If you receive your channels through an antenna (also known as an aerial)**
-then you would select the network under the tuners with DVB-T/ATSC-T/ISDB-T
-in the name.
-
-**If you receive your channels through a satellite dish** then you would
-select the network under the tuners with DVB-S/S2 in the name.
-
-**If you receive your channels via cable** then you would select the
-network under the tuners with DVB-C/ATSC-C/ISDB-C in the name.
-
-
-**Notes**:
-
-
-* Tuners already in use will not appear below.
-* If using IPTV, the playlist you enter must contain valid links to
- streams using codecs supported by Tvheadend.
-* For devices with multiple tuners (e.g. either cable or terrestrial),
- be aware that many only allow you to use one tuner at a time.
- Selecting more than one tuner per device can thus result in unexpected
- behavior.
+Don't forget to check out the **[Help]**!
scan completes..
-**Notes**:
+---
-
-* During scanning, the number of muxes and services shown below should
- increase. If this doesn't happen, check the connection(s) to your
- device(s)..
-* The status tab (behind this wizard) will display signal information.
- If you notice a lot of errors or the signal strength appears low then
- this usually indicates a physical issue with your antenna, satellite
- dish or cable..
-* If you don't see any signal information at all, but the number of
- muxes or services is increasing anyway, the driver used by your device
- isn't supplying signal information to Tvheadend. In most cases this
- isn't an issue..
+While the scan progresses check out the **[Help]** for more info!
const idclass_t mpegts_mux_class =
{
.ic_class = "mpegts_mux",
- .ic_caption = N_("MPEG-TS Multiplex"),
+ .ic_caption = N_("DVB Inputs - Multiplex"),
.ic_event = "mpegts_mux",
.ic_doc = tvh_doc_mpegts_mux_class,
.ic_perm_def = ACCESS_ADMIN,
const idclass_t mpegts_mux_sched_class =
{
.ic_class = "mpegts_mux_sched",
- .ic_caption = N_("Mux Scheduler"),
+ .ic_caption = N_("DVB Inputs - Mux Schedulers"),
.ic_event = "mpegts_mux_sched",
.ic_doc = tvh_doc_mpegts_mux_sched_class,
.ic_changed = mpegts_mux_sched_class_changed,
{
.ic_super = &service_class,
.ic_class = "mpegts_service",
- .ic_caption = N_("MPEG-TS Service"),
+ .ic_caption = N_("DVB Inputs - Services"),
.ic_doc = tvh_doc_mpegts_service_class,
.ic_order = "enabled,channel,svcname",
.ic_properties = (const property_t[]){
.ic_super = &mpegts_input_class,
.ic_class = "satip_frontend",
.ic_doc = tvh_doc_satip_frontend_class,
- .ic_caption = N_("SAT>IP DVB Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP DVB Frontend"),
.ic_changed = satip_frontend_class_changed,
.ic_properties = (const property_t[]) {
{
{
.ic_super = &satip_frontend_class,
.ic_class = "satip_frontend_dvbt",
- .ic_caption = N_("SAT>IP DVB-T Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP DVB-T Frontend"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
{
.ic_super = &satip_frontend_class,
.ic_class = "satip_frontend_dvbs",
- .ic_caption = N_("SAT>IP DVB-S Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP DVB-S Frontend"),
.ic_get_childs = satip_frontend_dvbs_class_get_childs,
.ic_properties = (const property_t[]){
{
{
.ic_super = &satip_frontend_class,
.ic_class = "satip_frontend_dvbs_slave",
- .ic_caption = N_("SAT>IP DVB-S Slave Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP DVB-S Slave Frontend"),
.ic_properties = (const property_t[]){
{
.type = PT_INT,
{
.ic_super = &satip_frontend_class,
.ic_class = "satip_frontend_dvbc",
- .ic_caption = N_("SAT>IP DVB-C Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP DVB-C Frontend"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
{
.ic_super = &satip_frontend_class,
.ic_class = "satip_frontend_atsc_c",
- .ic_caption = N_("SAT>IP ATSC-C Frontend"),
+ .ic_caption = N_("TV Adapters - SAT>IP ATSC-C Frontend"),
.ic_properties = (const property_t[]){
{}
}
cancel: cancel,
uilevel: 'expert',
help: function() {
- new tvheadend.mdhelp('index');
+ new tvheadend.mdhelp('firstconfig');
}
});
}
--- /dev/null
+../epg/tab.png
\ No newline at end of file
};
wizard_page_t *page =
page_init("hello", "wizard_hello",
- N_("Welcome - Tvheadend - your TV streaming server and video recorder"));
+ N_("Wizard - Welcome/Language"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
wizard_hello_t *w;
htsmsg_t *m;
};
wizard_page_t *page =
page_init("login", "wizard_login",
- N_("Welcome - Tvheadend - your TV streaming server and video recorder"));
+ N_("Wizard - Access Control"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
wizard_login_t *w;
access_entry_t *ae;
PREV_BUTTON(login),
NEXT_BUTTON(muxes),
};
- wizard_page_t *page = page_init("network", "wizard_network", N_("Network settings"));
+ wizard_page_t *page = page_init("network", "wizard_network", N_("Wizard - Network Settings"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
wizard_network_t *w;
mpegts_network_t *mn;
{
wizard_page_t *p = o;
wizard_muxes_t *w = p->aux;
- snprintf(prop_sbuf, PROP_SBUF_LEN, "%s", tvh_gettext_lang(w->lang, N_("Scan progress")));
+ snprintf(prop_sbuf, PROP_SBUF_LEN, "%s", tvh_gettext_lang(w->lang, N_("Progress")));
return &prop_sbuf_ptr;
}
PREV_BUTTON(network),
NEXT_BUTTON(status),
};
- wizard_page_t *page = page_init("muxes", "wizard_muxes", N_("Assign predefined muxes to networks"));
+ wizard_page_t *page = page_init("muxes", "wizard_muxes", N_("Wizard - Assign Predefined Muxes to Networks"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
wizard_muxes_t *w;
mpegts_network_t *mn;
NEXT_BUTTON(mapping),
{}
};
- wizard_page_t *page = page_init("status", "wizard_status", N_("Scan status"));
+ wizard_page_t *page = page_init("status", "wizard_status", N_("Wizard - Scanning for Services"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
ic->ic_properties = props;
ic->ic_groups = groups;
NEXT_BUTTON(channels),
{}
};
- wizard_page_t *page = page_init("mapping", "wizard_mapping", N_("Service mapping"));
+ wizard_page_t *page = page_init("mapping", "wizard_mapping", N_("Wizard - Service Mapping"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
wizard_mapping_t *w;
ic->ic_properties = props;
LAST_BUTTON(),
{}
};
- wizard_page_t *page = page_init("channels", "wizard_channels", N_("Finished"));
+ wizard_page_t *page = page_init("channels", "wizard_channels", N_("Wizard - Finished"));
idclass_t *ic = (idclass_t *)page->idnode.in_class;
access_entry_t *ae;