
-<tvh_include>inc/users_table</tvh_include>
-
### Notes on Access Entries
* Wildcard (anonymous) accounts (that require no username or password)
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
+* Tvheadend verifies access by scanning through all enabled access control
+entries in sequence, from the top of the list to the bottom.
+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.
+<tvh_include>inc/channels_contents</tvh_include>
+
+---
+
+# Overview
+
Bouquets are broadcaster-defined groupings and orders of channels.
-
+
To use bouquets, ensure to add and scan all available muxes using the
predefined muxes or manual configuration.
---
-<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
----------------|---------
-**Force Scan** | Rescan the selected mux for changes to the bouquet.
-
----
-
-### Example
-
-
-
-Note that the URL must begin with `file://` or `http(s)://`.
-
----
-
-### Detaching Channels
+## Detaching Channels
If you're mapping another service to a channel created by a bouquet you
must first detach the channel to prevent unexpected
the grid and then pressing the *Detach selected channels from bouquet*
option from the *[Map services]* button.
-
+
If you do not detach channel(s) before mapping additional
services the following changes can occur..
-This tab lists all defined channels.
-
-
+<tvh_include>inc/channels_contents</tvh_include>
---
-<tvh_include>inc/common_button_table_start</tvh_include>
-
-<tvh_include>inc/common_button_table_end</tvh_include>
+# Overview
-The following tab specific functions are available:
-
-Button | Function
-----------------------------|-------------------
-**Reset Icon** | Reset the selected channel(s) *User Icon* / *Icon URL*, especially useful if you change your Picon settings.
-**Map Services** | Drop down menu (see mapping button table below).
-**Number Operations** | Drop down menu (see numbering button table below).
+This tab lists all defined channels.
-Mapping Button | Function
-----------------------------|--------------------
-**Map services** | Map [services](class/mpegts_service).
-**Map all services** | Map all available [services](class/mpegts_service) as channels
+
-Numbering Button | Function
-----------------------------|--------------------
-**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.
+You can play a stream by clicking the play icon. This will automatically launch an appropriate player, otherwise you will need to manually open the playlist to start watching (normally a double-click on the downloaded file).
+Note, the links don't link to the actual stream but to a 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 for more info.
---
-### Example
-
-
-
-In the above example image, we're creating a channel called Channel 4
-and mapping it to the service of the same name. You can name a channel
-whatever you like, it doesn't have to match the service it's linking
-to.
-
-If you have a lot of services you may want to use the [Map services](class/mpegts_service)
-functions or a [Bouquet](class/bouquet).
-
-Note, that editing a channel created by a bouquet can have unexpected
-results, please see *Detaching Channels* on the [Bouquet](class/bouquet) page for info.
-
----
+## Buttons
-<tvh_include>inc/play</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
+<tvh_include>inc/channels_contents</tvh_include>
+
+---
+
+# Overview
+
This tab is used to configure channel tags. Tags are used to define a
set of channels - to group them, to aid searches, and similar.
Tags are not required by Tvheadend itself, but are useful in media
applications such as Kodi and are a requirement for using Tvheadend
with Movian.
-
+
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
---
--- /dev/null
+<tvh_include>inc/stream_contents</tvh_include>
+
+---
+
+# Overview
+
+This tab allows you to manage the codec settings used by stream profiles.
+
+
+
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
+
+---
+
<tvh_include>inc/config_contents</tvh_include>
-
---
<tvh_include>inc/config_overview</tvh_include>

-<tvh_include>inc/config_table</tvh_include>
-
<tvh_include>inc/config_notes</tvh_include>
---
+<tvh_include>inc/channels_contents</tvh_include>
+
+---
+
+# Overview
+
This tab is used to configure the Electronic Program Guide (EPG)
[grabbing](class/epggrab_mod) capabilities.
-
+
---
-### Menu Bar/Buttons
-
-The following functions are available:
-
-Button | Function
----------------------------------|-------------------
-**Save** | Save any changes made to the tab.
-**Undo** | Revert any changes made since the last save.
-**Trigger OTA EPG Grabber** | Force an immediate tune to the OTA EPG mux(es) to request EPG updates.
-**Re-run Internal EPG Grabbers** | Re-run all enabled [grabbers](class/epggrab_mod).
+## Buttons
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
+<tvh_include>inc/channels_contents</tvh_include>
+
+---
+
+## Overview
+
This tab displays EPG data used by channels.
-
+
---
-### Menu Bar/Buttons
-
-The following functions are available:
+## Buttons
-Button | Function
-----------------------------|-------------------
-**Save** | Save any changes made to the grid.
-**Undo** | Revert any changes made since the last save.
-**Delete** | Delete the selected grid entries.
-**Edit** | Edit the selected grid entries.
+<tvh_include>inc/buttons</tvh_include>
---
+<tvh_include>inc/channels_contents</tvh_include>
+
+---
+
+# Overview
+
This tab is used to configure the Electronic Program Guide (EPG)
grabber modules. Tvheadend supports a variety of different EPG
grabbing mechanisms. These fall into 3 broad categories, within which
there are a variety of specific grabber implementations.
-
+
----
+Type | Description
+----------------------------------------------|----------------------------
+[Over-the-air (OTA)](class/epggrab_mod_ota) | This type of grabber pulls EPG data directly from the broadcast signal.
+[Internal XMLTV](class/epggrab_mod_int_xmltv) | This type of grabber executes an internal (local) [XMLTV](http://xmltv.org) grabber script & parses the output.
+[External XMLTV](class/epggrab_mod_ext_xmltv) | This type of grabber reads EPG data from a socket pushed to it using an [XMLTV](http://xmltv.org) grabber script.
+[Internal PyEPG](class/epggrab_mod_int_pyepg) | This type of grabber executes an internal (local) [PyEPG](https://github.com/adamsutton/PyEPG) grabber script & parses the output. This isn't widely used!
+[External PyEPG](class/epggrab_mod_ext_pyepg) | This type of grabber reads EPG data from a socket pushed to it using an [PyEPG](https://github.com/adamsutton/PyEPG) grabber script. This isn't widely used!
-### Menu Bar/Buttons
-
-The following functions are available:
+---
-Button | Function
-----------------------------|-------------------
-**Save** | Save any changes made to the tab.
-**Undo** | Revert any changes made since the last save.
+## Buttons
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-### Notes
+## Notes
-* Only OTA EIT and PSIP (ATSC) grabbers are enabled by default. If
+Only OTA EIT and PSIP (ATSC) grabbers are enabled by default. If
you're missing EPG data, make sure to enable the correct grabber(s)
-for your location/provider.
-* If you use more than one grabber, be sure to give a higher priority
-to the grabber that provides you with richer data.
+for your location/provider. If you use more than one grabber, be sure
+to give a higher priority to the grabber that provides you with richer data.
-**Tip**: Don't forget to set the *EIT time offset* for your network(s).
-
----
+Don't forget to set the *EIT time offset* for your network(s)!
### OTA Scrapper
+<tvh_include>inc/stream_contents</tvh_include>
+
+---
+
+# Overview
+
This tab allows you to define rules that filter and order various
elementary streams.
-
-
----
+
-<tvh_include>inc/common_button_table_start</tvh_include>
+Filter type | Description
+-------------------------------------------------------|-----------------------
+[Video Stream Filters](class/esfilter_video) | Video stream filter.
+[Audio Stream Filters](class/esfilter_audio) | Audio stream filter.
+[Teletext Stream Filters](class/esfilter_teletext) | Teletext stream filter.
+[Subtitle Stream Filters](class/esfilter_subtit) | Subtitle stream filter.
+[CA Stream Filters](class/esfilter_ca) | Conditional Access (CA) stream filter.
+[Other Stream Filters](class/esfilter_other) | Other stream filter.
-<tvh_include>inc/common_button_table_end</tvh_include>
+---
-Tab specific functions:
+## Buttons
-Button | Function
------------------------|---------
-**Move Up** | Move the selected entry up the grid.
-**Move Down** | Move the selected entry down the grid.
+<tvh_include>inc/buttons</tvh_include>
---
-### Filter Basics
+## Filter Basics
* Each rule is executed in sequence (as displayed in the grid).
* If a rule removes a stream, it will not be available to other rules
* USE / EMPTY rules have precedence against IGNORE (if the stream is
already selected - it cannot be ignored).
----
-
### Visual Verification of Filtering
For visual verification of filtering, there is the service
info dialog in the [Services](class/mpegts_service) tab.
This dialog shows the received PIDs and filtered PIDs in one window.
----
-
### Filtering out a Stream
-
+
Here we're removing the Bulgarian language audio from the
input (first rule). However, if Bulgarian is the only language

-<tvh_include>inc/config_table</tvh_include>
-
<tvh_include>inc/config_notes</tvh_include>
---

-<tvh_include>inc/users_table</tvh_include>
-
### Notes on IP Blocking
* You must enter a network prefix to block. For example, to block just `192.168.6.66`
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel lists all the available Cable (DVB-C/C2/ISDB-C/ATSC-C) frontend
parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
---
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel lists all the available satellite (DVB-S/ISDB-S) frontend
parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
----
+---
\ No newline at end of file
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel lists all the available Terrestrial (DVB-T/T2/ISDB-T/ATSC-T) frontend
parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
----
+---
\ No newline at end of file
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel lists all the available satellite (DVB-S/ISDB-S) configuration
parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
-<tvh_include>inc/buttons</tvh_include>
+## Device Types and Configuration
----
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
\ No newline at end of file
+Contents | Description
+---------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Items/Properties](#items) | Items and Properties
+
+---
+
+## Overview
+
Muxes are locations at which services can be found. On traditional
networks (DVB-C, -T and -S), these are carrier signals on which the
individual channels are multiplexed, hence the name. However, Tvheadend
---
-<tvh_include>inc/dvbinputs_table</tvh_include>
-
----
-
## Buttons
<tvh_include>inc/buttons</tvh_include>
+Contents | Description
+---------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Items/Properties](#items) | Items and Properties
+
+---
+
+## Overview
+
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/networks_contents</tvh_include>
+
+---
+
+## Overview
+
A network is the type of carrier for your television signals. Tvheadend
supports several different types of network.

-<tvh_include>inc/dvbinputs_table</tvh_include>
+---
+
+## Buttons
+
+<tvh_include>inc/buttons</tvh_include>
+
+---
## Network types
[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!**
---
-## Buttons
-
-<tvh_include>inc/buttons</tvh_include>
-
----
-
-### Force Scanning
+## Force Scanning
Force scanning can take some time. You may continue to use Tvheadend
while a scan is in progress, but doing so will increase the time needed
---
-### IPTV Automatic Network - Don't Probe Services
+## Service Probing (IPTV only)
Tvheadend will by default probe each playlist entry for service information.
Some service providers do not allow such probing & will deny (or rate
+Contents | Description
+-------------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Service information](#service-information)| How to display service information
+[Items/Properties](#items) | Items and Properties
+
+---
+
+## Overview
+
Services are automatically pulled from muxes and can be mapped to Channels.


-<tvh_include>inc/users_table</tvh_include>
-
### Notes on Passwords
* For a password to apply to an account, the username entered must match
-Stream Profiles are the settings for output formats. These are used for Live TV
-streaming and recordings. The profiles are assigned through
-the [Access Entries](class/access),
-DVR Profiles or as parameter for HTTP Streaming.
+<tvh_include>inc/stream_contents</tvh_include>
-
-
-* Types
- * Built-in
- - [HTSP Profile](class/profile-htsp)
- - [MPEG-TS Pass-thru Profile](class/profile-mpegts)
- - [Matroska Profile](class/profile-matroska)
+---
- * Requires Tvheadend to be built with transcoding/ffmpeg enabled.
- - [MPEG-TS/libav Profile](class/profile-libav-mpegts)
- - [Matroska/libav Profile](class/profile-libav-matroska)
- - [MP4/libav Profile](class/profile-libav-mp4)
- - [Transcode Profile](class/profile-transcode)
-
-If you do not have a build of Tvheadend with transcoding enabled
-some of the above profiles (and their associated Help pages) will not
-be available.
+# Overview
----
+Stream Profiles are the settings for output formats. These are used for Live TV
+streaming and recordings. The profiles can be assigned through Access Entries,
+DVR Profiles or as parameter for HTTP Streaming.
-### Menu Bar/Buttons
+
+
+Type | Description
+-------------------------------------------------------------------|-------------
+**Built-in** | **These profiles are always available.**
+[HTSP Profile](class/profile-htsp) | The HTSP profile, generally used with HTSP clients such as Kodi and Movian.
+[MPEG-TS Pass-thru Profile](class/profile-mpegts) | MPEG-TS pass-thru, this is a simple profile that just passes on the data received, can be configured to remove unneeded data packets.
+[MPEG-TS Spawn](class/profile-mpegts-spawn) | Pipe stream out to script/binary for transcoding. Spawned script/binary must pipe the output back in as MPEG-TS.
+[Matroska Profile](class/profile-matroska) | A general Matroska container profile.
+[Audio Profile](class/profile-audio) | An audio-only profile.
+**FFMPEG** | **The following profiles (and their help docs) require Tvheadend to be built with transcoding/ffmpeg enabled.**
+[MPEG-TS/libav Profile](class/profile-libav-mpegts) | MPEG-TS profile.
+[Matroska/libav Profile](class/profile-libav-matroska) | Matroska profile.
+[MP4/libav Profile](class/profile-libav-mp4) | MP4 profile.
+[Transcode Profile](class/profile-transcode) | General avlib profile.
-The following functions are available:
+---
-Button | Function
---------------------|---------
-**Save** | Save any changes made to the selected configuration.
-**Undo** | Undo any changes made to the selected configuration since the last save.
-**Add** | Add a new profile.
-**Delete** | Delete the selected entry.
-**Clone** | Clone the currently selected profile.
+## Buttons
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-This panel displays all available SAT>IP client parameters.
-
-<tvh_include>inc/dvbinputs_table</tvh_include>
+<tvh_include>inc/linuxdvb_contents</tvh_include>
---
-## Device Configuration / Types
+## Overview
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+This panel displays all available SAT>IP client parameters.
+
+<tvh_include>inc/dvbinputs_table</tvh_include>
---
<tvh_include>inc/buttons</tvh_include>
---
+
+## Device Types and Configuration
+
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
+
+---
\ No newline at end of file
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel displays all available SAT>IP
DVB-T/DVB-S/DVB-C/ATSC-T/ATSC-C frontend parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
----
+---
\ No newline at end of file
+<tvh_include>inc/linuxdvb_contents</tvh_include>
+
+---
+
+## Overview
+
This panel lists all the available satellite (DVB-S/ISDB-S) configuration
parameters.
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
----
+---
\ No newline at end of file
<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-)
-
---
<tvh_include>inc/config_overview</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*.
# DVB Inputs
-Contents
-
-* [Overview](#overview)
-* [Device Configuration / Types](#device-configuration-types)
-* [The TV Adapters Tree](#the-tv-adapters-tree)
-* [Items](#items)
+Contents | Description
+-----------------------------------------------------------------|-------------------------------------
+[Overview](#overview) | Tab overview
+[Device Types and Configuration](#device-types-and-configuration)| Table of device types and their respective configuration options
+[TV Adapters](#tv-adapters) | Where you configure adapters
+[Networks](class/mpegts_network) | Where you configure networks
+[Muxes](class/mpegts_mux) | Where you configure 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
---
-<tvh_include>inc/dvbinputs_overview</tvh_include>
+## Overview
+
+This tab is where you configure how tvheadend manages your adapters/input,
+networks, muxes and services.
-
-<tvh_include>inc/dvbinputs_table</tvh_include>
+
---
-## Device Configuration / Types
+## Buttons
-<tvh_include>inc/dvbinputs_type_table</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-## Buttons
+## Device Types and Configuration
-<tvh_include>inc/buttons</tvh_include>
+<tvh_include>inc/dvbinputs_type_table</tvh_include>
---
-## The TV Adapters Tree
+## TV Adapters
The adapter tree lists the available frontends, LNB configuration and
so on related to your device(s) in sections. Clicking on these sections
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.
# 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)
+Contents | Description
+-----------------------------------------------------------------------|--------------------------------------------
+[Overview](#overview) | EPG overview
+[Filtering (or searching)](#filtering-or-searching-) | Filtering the EPG
+[Items (grid items)](#items) | EPG tab items
+[Event Details and Recording](#event-details-and-recording) | Program event details and recording
+[Auto-recordings](#auto-recordings) | Auto-recording
+[Watching TV and Browser Codec Support](#watching-tv) | Watching TV and browser codec support
---
# Configuring for the First Time
-Contents
-
-* [Using the Wizard](#using-the-wizard)
-* [Manual Set-up](#manual-set-up)
+Contents | Description
+----------------------------------------------------|-----------------------------
+[Using the Wizard](#using-the-wizard) | Getting to know the first-time-user wizard
+[Manual Set-up](#manual-set-up) | Set-up Tvheadend manually
---
--- /dev/null
+Contents | Description
+---------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Items/Properties](#items) | Items and Properties
+[Channels](class/channel) | Channel management
+[Channel Tags](class/channeltag) | Channel tagging management
+[Bouquets](class/bouquet) | Provider-based channel grouping and ordering
+[EPG Grabber Channels](class/epggrab_channel) | EPG data sources used by channels
+[EPG Grabber](class/epggrab) | EPG grabber configuration
+[EPG Grabber Modules](class/epggrab_mod) | EPG grabber module management
+
+
+
+
-Contents
-
-* [Overview](#overview)
-* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
+Contents | Description
+------------------------------------------------------|-------------
+[Overview](#overview) | Overview of the tab
+[Items/Properties](#items) | Tab specific items and properties
+[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
\ 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.
-
-
Type | Description
-------------------------------------------------------|--------------------------------------------
**Frontends** | **Where you configure the frontend, whether or not it's enabled etc.**
[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.
-Contents
-
-* [Overview](dvr) - Click to return the DVR help index.
-* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
+Contents | Description
+----------------------------------------------------------|------------------------------
+[Overview](dvr) | Click to return the DVR help index
+[Items/Properties](#items) | Items and Properties
+[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.
\ No newline at end of file

-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
--- /dev/null
+Contents | Description
+------------------------------------------------------------------|----------------------------------
+[Overview](#overview) | Tab overview
+[Device Types and Configuration](#device-types-and-configuration) | Table of device types and their respective configuration options
+[Items/Properties](#items) | Items and Properties
+
+
+[Return to TV Adapters overview](dvbinputs)
\ No newline at end of file
--- /dev/null
+Contents | Description
+------------------------------------------------------------|----------------------------------
+[Overview](#overview) | Tab overview
+[Network types](#network-types) | Available network types (with links to their Help page)
+[Force Scanning](#force-scanning) | Force scanning a network
+[Service Probing (IPTV only)](#service-probing-iptv-only-) | Service probing information (IPTV only)
+[Items/Properties](#items) | Items and properties
--- /dev/null
+Contents | Description
+--------------------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Items/Properties](#items) | Items and Properties
+[Stream Profiles](class/profile) | Stream profile types and profile settings
+[Codec Profiles](class/codec_profile) | Codec profiles and settings (for use with stream profiles)
+[Stream Filters](class/esfilter_video) | Elementary stream filtering
-Contents
-
-* [Overview](#overview)
-* [Tab Specific Items/Properties](#items)\n
\ No newline at end of file
+Contents | Description
+------------------------------------------------------------|------------------------------------
+[Overview](#overview) | Tab overview
+[Items/Properties](#items) | Tab specific items and properties
+[Access Entries](class/access) | User account management.
+[Passwords](class/passwd) | Password management.
+[IP Blocking Records](class/ipblocking) | IP address block list.
## 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.
+is initially wide open**.
\ No newline at end of file
+++ /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.
# Installation
-Contents
-
-* [Basic Requirements](#basic-requirements)
-* [Install Your Tuners](#install-your-tuners)
-* [Install Tvheadend](#install-tvheadend)
+Contents | Description
+---------------------------------------------------------|------------------------------------
+[Basic Requirements](#basic-requirements) | What's needed to run Tvheadend
+[Install Your Tuners](#install-your-tuners) | Installing and setting up your hardware
+[Install Tvheadend](#install-tvheadend) | Where to get Tvheadend and how-to install it
---
# Introduction
-Contents
-
-* [Overview](#overview)
-* [Features](#features)
-* [Before You Begin](#before-you-begin)
-* [Using the Interface](#using-the-interface)
-* [About This Guide](#about-this-guide)
+Contents | Description
+--------------------------------------------------|--------------------------
+[Overview](#overview) | Overview of Tvheadend
+[Features](#features) | List of features
+[Before you Begin](#before-you-begin) | Useful information you'll need to know before using Tvheadend
+[Using the Interface](#using-the-interface) | Getting to grips with the interface
+[About This Guide](#about-this-guide) | About this guide and where to get help if you're stuck
---
---
-## Before You Begin
+## Before you Begin
There are some basic concepts that will make life much easier if you
understand them from the outset.
- [General](class/config)
- [Users](class/access)
- [DVB Inputs](dvbinputs)
-
- - Channel / EPG
-
- * [Channels](class/channel)
- * [Channel Tags](class/channeltag)
- * [Bouquets](class/bouquet)
- * [EPG Grabber Channels](class/epggrab_channel)
- * [EPG Grabber](class/epggrab)
- * [EPG Grabber Modules](class/epggrab_mod)
- - [OTA Module](class/epggrab_mod_ota)
- - [Internal PyEPG](class/epggrab_mod_int_pyepg)
- - [Internal XMLTV](class/epggrab_mod_int_xmltv)
- - [External PyEPG](class/epggrab_mod_ext_pyepg)
- - [External XMLTV](class/epggrab_mod_ext_xmltv)
-
- - Stream
-
- * Stream Profiles
-
- - [HTSP Profile](class/profile-htsp)
- - [MPEG-TS Pass-thru Profile](class/profile-mpegts)
- - [Matroska Profile](class/profile-matroska)
- - [MPEG-TS/libav Profile](class/profile-libav-mpegts)
- - [Matroska/libav Profile](class/profile-libav-matroska)
- - [MP4/libav Profile](class/profile-libav-mp4)
- - [Transcode Profile](class/profile-transcode)
- * [Video Stream Filters](class/esfilter_video)
- * [Audio Stream Filters](class/esfilter_audio)
- * [Teletext Stream Filters](class/esfilter_teletext)
- * [Subtitle Stream Filters](class/esfilter_subtit)
- * [CA Stream Filters](class/esfilter_ca)
- * [Other Stream Filters](class/esfilter_other)
-
+ - [Channel / EPG](class/channel)
+ - [Stream](class/profile)
- Recording
* [Digital Video Recorder Profiles](class/dvrconfig)
:
-Option | Function
--------------------------------|-------------
-**Map zero-numbered channels** | Include channels with no channel number.
-**Map unnamed channels** | Include channels with no name.
-**Map radio channels**: | Include radio channels.
-**Map encrypted services** | Include channels even if the linked service is flagged as encrypted.
-**Merge same name** | Combine channels with the same name into a single channel.
+Option | Function
+--------------------------------------------|-------------
+**Map zero-numbered channels** | Include channels with no channel number.
+**Map unnamed channels** | Include channels with no name.
+**Map radio channels**: | Include radio channels.
+**Map encrypted services** | Include channels even if the linked service is flagged as encrypted.
+**Merge same name** | Combine channels with the same name into a single channel.
+**Use fuzzy mapping if merging same name** | Use fuzzy name comparison when mapping - used with *Merge same name*.
+**Tidy channel name** | Remove common suffixes, e.g., HD/UHD.
-Welcome to Tvheadend, your TV streaming server and video recorder. This
-wizard will help you get up and running fast.
+Welcome to Tvheadend, your TV streaming server and video recorder.
**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.
-If at any point you need help, or a little more information, press
-the **[Help]** button.
+If at any point you get stuck (or need a little more information),
+press **[Help]**.
---
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).**
+**The interface will restart in your chosen language (if a translation
+is available).**
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.
+isn't a problem provided that one of the muxes in list
+is active, and contains network information.
+
+**If you don't see any options below, you need to go back and assign a
+network type to a tuner.**
---
Now let's get your tuners configured. Go ahead and select a network for
-each of the tuners you would like to use. if you do not assign a
-network to a tuner it will __not__ be used.
+each of the tuners you would like to use. If you don't assign a
+network to a tuner it __won't__ be used.
---
const idclass_t bouquet_class = {
.ic_class = "bouquet",
- .ic_caption = N_("Bouquets"),
+ .ic_caption = N_("Channels / EPG - Bouquets"),
.ic_doc = tvh_doc_bouquet_class,
.ic_event = "bouquet",
.ic_perm_def = ACCESS_ADMIN,
const idclass_t channel_class = {
.ic_class = "channel",
- .ic_caption = N_("Channels"),
+ .ic_caption = N_("Channels / EPG - Channels"),
.ic_doc = tvh_doc_channel_class,
.ic_event = "channel",
.ic_changed = channel_class_changed,
const idclass_t channel_tag_class = {
.ic_class = "channeltag",
- .ic_caption = N_("Channel Tags"),
+ .ic_caption = N_("Channels / EPG - Channel Tags"),
.ic_doc = tvh_doc_channeltag_class,
.ic_event = "channeltag",
.ic_changed = channel_tag_class_changed,
const idclass_t epggrab_class = {
.ic_snode = &epggrab_conf.idnode,
.ic_class = "epggrab",
- .ic_caption = N_("EPG Grabber Configuration"),
+ .ic_caption = N_("Channels / EPG - EPG Grabber Configuration"),
.ic_doc = tvh_doc_epgconf_class,
.ic_event = "epggrab",
.ic_perm_def = ACCESS_ADMIN,
const idclass_t epggrab_channel_class = {
.ic_class = "epggrab_channel",
- .ic_caption = N_("EPG Grabber Channel"),
+ .ic_caption = N_("Channels / EPG - EPG Grabber Channels"),
.ic_doc = tvh_doc_epggrabber_channel_class,
.ic_event = "epggrab_channel",
.ic_perm_def = ACCESS_ADMIN,
const idclass_t epggrab_mod_class = {
.ic_class = "epggrab_mod",
- .ic_caption = N_("EPG Grabber"),
+ .ic_caption = N_("Channels / EPG - EPG Grabber Modules"),
.ic_doc = tvh_doc_epggrabber_modules_class,
.ic_event = "epggrab_mod",
.ic_perm_def = ACCESS_ADMIN,
const idclass_t epggrab_mod_ota_class = {
.ic_super = &epggrab_mod_class,
.ic_class = "epggrab_mod_ota",
- .ic_caption = N_("Over-the-air EPG grabber"),
+ .ic_caption = N_("EPG - Over-the-air EPG Grabber"),
.ic_properties = (const property_t[]){
{}
}
const idclass_t epggrab_mod_int_pyepg_class = {
.ic_super = &epggrab_mod_int_class,
.ic_class = "epggrab_mod_int_pyepg",
- .ic_caption = N_("Internal PyEPG Grabber"),
+ .ic_caption = N_("EPG - Internal PyEPG Grabber"),
};
const idclass_t epggrab_mod_ext_pyepg_class = {
.ic_super = &epggrab_mod_ext_class,
.ic_class = "epggrab_mod_ext_pyepg",
- .ic_caption = N_("External PyEPG Grabber"),
+ .ic_caption = N_("EPG - External PyEPG Grabber"),
};
const idclass_t epggrab_mod_int_xmltv_class = {
.ic_super = &epggrab_mod_int_class,
.ic_class = "epggrab_mod_int_xmltv",
- .ic_caption = N_("Internal XMLTV EPG Grabber"),
+ .ic_caption = N_("EPG - Internal XMLTV EPG Grabber"),
.ic_properties = (const property_t[]){
{
.type = PT_INT,
const idclass_t epggrab_mod_ext_xmltv_class = {
.ic_super = &epggrab_mod_ext_class,
.ic_class = "epggrab_mod_ext_xmltv",
- .ic_caption = N_("External XMLTV EPG Grabber"),
+ .ic_caption = N_("EPG - External XMLTV EPG Grabber"),
.ic_properties = (const property_t[]){
{
.type = PT_BOOL,
const idclass_t esfilter_class_video = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_video",
- .ic_caption = N_("Video Stream Filter"),
+ .ic_caption = N_("Stream Filters - Video"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t esfilter_class_audio = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_audio",
- .ic_caption = N_("Audio Stream Filter"),
+ .ic_caption = N_("Stream Filters - Audio"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t esfilter_class_teletext = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_teletext",
- .ic_caption = N_("Teletext Stream Filter"),
+ .ic_caption = N_("Stream Filters - Teletext"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t esfilter_class_subtit = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_subtit",
- .ic_caption = N_("Subtitle Stream Filter"),
+ .ic_caption = N_("Stream Filters - Subtitles"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t esfilter_class_ca = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_ca",
- .ic_caption = N_("CA Stream Filter"),
+ .ic_caption = N_("Stream Filters - CA"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t esfilter_class_other = {
.ic_super = &esfilter_class,
.ic_class = "esfilter_other",
- .ic_caption = N_("Other Stream Filter"),
+ .ic_caption = N_("Stream Filters - Other"),
.ic_properties = (const property_t[]){
{
.type = PT_STR,
const idclass_t profile_class =
{
.ic_class = "profile",
- .ic_caption = N_("Stream Profile"),
+ .ic_caption = N_("Stream - Stream Profiles"),
.ic_event = "profile",
.ic_doc = tvh_doc_profile_class,
.ic_perm_def = ACCESS_ADMIN,
"priority."),
.list = profile_class_priority_list,
.off = offsetof(profile_t, pro_prio),
- .opts = PO_SORTKEY | PO_ADVANCED,
+ .opts = PO_SORTKEY | PO_ADVANCED | PO_DOC_NLIST,
.def.i = PROFILE_SPRIO_NORMAL,
.group = 1
},
"multiple services are available for a channel."),
.list = profile_class_svfilter_list,
.off = offsetof(profile_t, pro_svfilter),
- .opts = PO_SORTKEY | PO_ADVANCED,
+ .opts = PO_SORTKEY | PO_ADVANCED | PO_DOC_NLIST,
.def.i = PROFILE_SVF_NONE,
.group = 1
},
.type = PT_INT,
.id = "killsig",
.name = N_("Kill signal (pipe)"),
+ .desc = N_("Kill signal to send to the spawn."),
.off = offsetof(profile_mpegts_spawn_t, pro_killsig),
.list = proplib_kill_list,
- .opts = PO_EXPERT,
+ .opts = PO_EXPERT | PO_DOC_NLIST,
.def.i = TVH_KILL_TERM,
.group = 2
},
.type = PT_INT,
.id = "kill_timeout",
.name = N_("Kill timeout (pipe/secs)"),
+ .desc = N_("Number of seconds to wait for spawn to die."),
.off = offsetof(profile_mpegts_spawn_t, pro_killtimeout),
.opts = PO_EXPERT,
.def.i = 15,
.id = "type",
.name = N_("Audio type"),
.desc = N_("Pick the stream with given audio type only."),
+ .opts = PO_DOC_NLIST,
.off = offsetof(profile_audio_t, pro_mc),
.list = profile_class_mc_audio_list,
.group = 1
.off = offsetof(profile_transcode_t, pro_mc),
.def.i = MC_MATROSKA,
.list = profile_class_mc_list,
+ .opts = PO_DOC_NLIST,
.group = 1
},
{
.desc = N_("Select video codec profile to use for transcoding."),
.off = offsetof(profile_transcode_t, pro_vcodec),
.list = profile_class_pro_vcodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{
.get = profile_class_src_vcodec_get,
.set = profile_class_src_vcodec_set,
.list = profile_class_src_vcodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{
.desc = N_("Select audio codec profile to use for transcoding."),
.off = offsetof(profile_transcode_t, pro_acodec),
.list = profile_class_pro_acodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{
.get = profile_class_src_acodec_get,
.set = profile_class_src_acodec_set,
.list = profile_class_src_acodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{
.desc = N_("Select subtitle codec profile to use for transcoding."),
.off = offsetof(profile_transcode_t, pro_scodec),
.list = profile_class_pro_scodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{
.get = profile_class_src_scodec_get,
.set = profile_class_src_scodec_set,
.list = profile_class_src_scodec_list,
- .opts = PO_ADVANCED,
+ .opts = PO_ADVANCED | PO_DOC_NLIST,
.group = 2
},
{ }
/* codec_profile_class */
-
+CLASS_DOC(codec_profile)
const codec_profile_class_t codec_profile_class = {
{
.ic_class = "codec_profile",
- .ic_caption = N_("Codec Profile"),
+ .ic_caption = N_("Stream - Codec Profiles"),
.ic_event = "codec_profile",
.ic_perm_def = ACCESS_ADMIN,
+ .ic_doc = tvh_doc_codec_profile_class,
.ic_save = codec_profile_class_save,
.ic_delete = codec_profile_class_delete,
.ic_groups = (const property_group_t[]) {