---
-# Overview
+## Overview
Bouquets are broadcaster-defined groupings and orders of channels.
+<tvh_include>inc/caclient_contents</tvh_include>
+
+---
+
+## Overview
+
Tvheadend supports connecting to card clients via the cwc (newcamd) and
capmt (linux network dvbapi) protocols for so-called 'softcam' descrambling.
-
+
---
-### Menu Bar/Buttons
-
-The following functions are available:
+## Buttons
-Button | Function
---------------------|---------
-**Save** | Save any changes made to the CA client configuration.
-**Undo** | Undo any changes made to the CA client configuration since the last save.
-**Add** | Add a new CA client configuration.
-**Delete** | Delete an existing CA client configuration.
-**Clone** | Clone the currently selected configuration.
-**Move Up** | Move the selected CA client configuration up in the list.
-**Move Down** | Move the selected CA client configuration down in the list.
-**Show/Hide Passwords** | Reveal/Hide any stored CA client passwords.
-**Help** | Display this help page.
+<tvh_include>inc/buttons</tvh_include>
---
-### Available CA types
+## Client Types
-The following configuration parameters are used, depending on the type
-of CA access:
+Type | Description
+------------------------------------------------------------|------------
+[Linux DVB CAM Client](class/caclient_dvbcam) | For use with devices that have a CAM module.
+[Code Word Client (CWC) / newcamd](class/caclient_cwc) | For newcamd or CWC.
+[CCCam](class/caclient_cccam) | For CCCam connections.
+[CAPMT (Linux DVBAPI)](class/caclient_capmt) | For DVBAPI connections
+[CSA CBC Constant Code Word](class/caclient_ccw_csa_cbc) | For Constant Code Word connections (CSA/CBC variant)
+[DES NCB Constant Code Word](class/caclient_ccw_des_ncb) | For Constant Code Word connections (DES/NCB variant)
+[AES ECB Constant Code Word](class/caclient_ccw_aes_ecb) | For Constant Code Word connections (AES/ECB variant)
+[AES ECB Constant Code Word](class/caclient_ccw_aes128_ecb) | For Constant Code Word connections (AES128/ECB variant)
-* List of types
+Click a type to see its properties (below).
- - [CAPMT (Linux Network DVBAPI)](class/caclient_capmt)
- - [Code word client (newcamd)](class/caclient_cwc)
- - [DES constant code word client](class/caclient_ccw_des)
- - [AES constant code word client](class/caclient_ccw_aes)
---
-### Connection Status
+## Connection Status
-The icon next to each entry within the grid indicates the client's
+The icon next to each entry within the grid indicates the clients
connection status.
Icon | Description
 | The client is disabled.
---
+
+## OSCam Modes
+
+| Mode | Notes |
+|-----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OSCam net protocol (rev >= 10389) | A TCP connection to the server is created. All EMM/ECM data is sent to OSCam using this connection without the need for real linuxdvb devices to be present in the system. This mode is suitable for all DVB devices including SAT\>IP and IPTV. If you run your OSCam server on the same machine as TVHeadend, set *Camd.socket filename / IP Address (TCP mode)* field to 127.0.0.1 and *Listen / Connect port* to 9000 (or your preferred TCP port). Note that the TCP port must match OSCam's configuration. The following lines are required in **[dvbapi]** section of oscam.conf: ```boxtype = pc pmt_mode = 4 listen_port = 9000 # or your preferred port```.|
+| OSCam new pc-nodmx (rev >= 10389) | Similar to *OSCam net protocol (rev >= 10389)* mode, but a namedpipe (/tmp/camd.socket) connection is used instead of the TCP connection. |
+| OSCam TCP (rev >= 9574) | A TCP connection to the server is created. All EMM/ECM data is sent to OSCam using this connection without the need for real linuxdvb devices to be present in the system. This mode is suitable for all DVB devices including SAT\>IP and IPTV. The following lines are required in **[dvbapi]** section of oscam.conf: ```boxtype = pc pmt_mode = 4 listen_port = 9000 # or your preferred port``` |
+| OSCam pc-nodmx (rev >= 9756) | Similar to *OSCam TCP (rev >= 9574)* mode, but a named pipe(/tmp/camd.socket) connection is used instead of the TCP connection. |
+| OSCam (rev >= 9095) | This mode uses named pipe (/tmp/camd.socket). The difference between *Older OSCam* mode is that no UDP connections are required. All communication is processed through the named pipe(/tmp/camd.socket). The configuration for OSCam is same as the previous *Older OSCam* mode. |
+| Older OSCam | This mode uses named pipe (/tmp/camd.socket). If selected, connection will be made directly to OSCam without using the LD\_PRELOAD / wrapper hack. TVH listens on a range of UDP ports starting with the specified port number (standard port range starts with 9000). The following lines are required in **[dvbapi]** section of oscam.conf: ```boxtype = pc pmt_mode = 4``` |
+| Wrapper (capmt_ca.so) | This mode uses named pipe (/tmp/camd.socket). With the LD\_PRELOAD / wrapper hack active. TVH listens on the local specified UDP port (standard is 9000) for the code words. Only onechannel can be decoded at a time. |
+
+Note, because of how markdown generates tables, the OSCam variables ```highlighted``` above must be on separate lines in your config file.
+
+For example..
+```
+boxtype = pc
+pmt_mode = 4
+listen_port = 9000 # or your preferred port
+```
+
+---
+++ /dev/null
-Tvheadend supports connecting to card clients via the cwc (newcamd) and
-capmt (linux network dvbapi) protocols for so-called 'softcam' descrambling.
-
-
-
----
-
-### Menu Bar/Buttons
-
-The following functions are available:
-
-Button | Function
---------------------|---------
-**Save** | Save any changes made to the CA client configuration.
-**Undo** | Undo any changes made to the CA client configuration since the last save.
-**Add** | Add a new CA client configuration.
-**Delete** | Delete an existing CA client configuration.
-**Clone** | Clone the currently selected configuration.
-**Move Up** | Move the selected CA client configuration up in the list.
-**Move Down** | Move the selected CA client configuration down in the list.
-**Show/Hide Passwords** | Reveal/Hide any stored CA client passwords.
-**Help** | Display this help page.
-
----
-
-### Connection Status
-
-The icon next to each entry within the grid indicates the client's
-connection status.
-
-Icon | Description
----------------------------------------------|------------
- | The client is connected.
- | There was an error.
- | The client is disabled.
-
----
-
-### Modes
-
-#### OSCam net protocol (rev >= 10389)
-
-**This is the most preferred mode for the latest OSCam.** It supports
-the latest features like ECM status.
-
-A TCP connection to the server is created. All EMM/ECM data is sent to
-OSCam using this connection without the need for real linuxdvb
-devices to be present in the system. This mode is suitable for all DVB
-devices including SAT\>IP and IPTV.
-
-If you run your OSCam server on the same machine as TVHeadend, set
-*Camd.socket filename / IP Address (TCP mode)* field to 127.0.0.1
-and *Listen / Connect port* to 9000 (or your preferred TCP port).
-Note that the TCP port must match OSCam's configuration.
-
-The following lines are required in **[dvbapi]** section of oscam.conf:
-
-```
-boxtype = pc
-pmt_mode = 4
-listen_port = 9000 # or your preferred port
-```
-
-#### OSCam new pc-nodmx (rev >= 10389)
-
-Similar to *OSCam net protocol (rev >= 10389)* mode, but a named
-pipe (/tmp/camd.socket) connection is used instead of the TCP connection.
-
-#### OSCam TCP (rev >= 9574)
-
-A TCP connection to the server is created. All EMM/ECM data is sent to
-OSCam using this connection without the need for real linuxdvb
-devices to be present in the system. This mode is suitable for all DVB
-devices including SAT\>IP and IPTV.
-
-The following lines are required in **[dvbapi]** section of oscam.conf:
-
-```
-boxtype = pc
-pmt_mode = 4
-listen_port = 9000 # or your preferred port
-```
-
-#### OSCam pc-nodmx (rev >= 9756)
-
-Similar to *OSCAM TCP (rev >= 9574)* mode, but a named pipe
-(/tmp/camd.socket) connection is used instead of the TCP connection.
-
-#### OSCam (rev >= 9095)
-
-This mode uses named pipe (/tmp/camd.socket).
-
-The difference between *Older OSCam* mode is that no UDP connections
-are required. All communication is processed through the named pipe
-(/tmp/camd.socket). The configuration for OSCam is same as the previous
-*Older OSCam* mode.
-
-#### Older OSCam
-
-This mode uses named pipe (/tmp/camd.socket).
-
-If selected, connection will be made directly to OSCam without using the
-LD\_PRELOAD / wrapper hack. TVH listens on a range of UDP ports
-starting with the specified port number (standard port range starts
-with 9000).
-
-The following lines are required in **[dvbapi]** section of oscam.conf:
-
-```
-boxtype = pc
-pmt_mode = 4
-```
-
-#### Wrapper (capmt_ca.so)
-
-This mode uses named pipe (/tmp/camd.socket).
-
-With the LD\_PRELOAD / wrapper hack active. TVH listens on the local
-specified UDP port (standard is 9000) for the code words. Only one
-channel can be decoded at a time.
-
----
---
-# Overview
+## Overview
This tab lists all defined channels.
---
-# Overview
+## 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.
---
-# Overview
+## Overview
This tab allows you to manage the codec settings used by stream profiles.
<tvh_include>inc/buttons</tvh_include>
---
-
+Contents | Description
+--------------------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Subsystems](#subsystems) | Available debugging subsystems
+[Items/Properties](#items) | Items/Properties
+
+---
+
+## Overview
+
This tab is used to configure various debugging options in tvheadend.

-Changes to any of these settings must be confirmed by pressing the
+### Notes
+
+* Changes to any of these settings must be confirmed by pressing the
*[Apply configuration]* button before taking effect.
-Note that settings are not saved to a storage. Any change is available
+* Settings are not saved to a storage. Any change is available
only while Tvheadend is running, and will be lost on a restart.
To change the default behaviour permanently, use command line options
such as `-l,` `–debug`, `–trace`.
-Depending on your distribution, the default command-line configuration
+* Depending on your distribution, the default command-line configuration
is usually stored in the `/etc/sysconfig` tree or an init script.
You may also be able to change `/etc/default/tvheadend` to add additional
command-line parameters.
---
-### Menu Bar/Buttons
-
-The following functions are available:
+## Buttons
-Button | Function
------------|---------
-**Apply configuration (run-time only)** | Apply the entered debugging settings.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
-### Subsystems
+## Subsystems
The following options can be passed to tvheadend to provide detailed debugging
information while the application is running.
-Subsystem | Name
-----------------|------------------------
- START | START
- STOP | STOP
- CRASH | CRASH
- main | Main
- gtimer | Global timer
- mtimer | Monitonic timer
- CPU | CPU
- thread | Thread
- tvhpoll | Poll multiplexer
- time | Time
- spawn | Spawn
- fsmonitor | Filesystem monitor
- lock | Locking
- uuid | UUID
- idnode | Node subsystem
- url | URL
- tcp | TCP Protocol
- rtsp | RTSP Protocol
- upnp | UPnP Protocol
- settings | Settings
- config | Configuration
- access | Access (ACL)
- cron | Cron
- dbus | DBUS
- avahi | Avahi
- bonjour | Bonjour
- api | API
- http | HTTP Server
- httpc | HTTP Client
- htsp | HTSP Server
- htsp-sub | HTSP Subscription
- htsp-req | HTSP Request
- htsp-ans | HTSP Answer
- imagecache | Image Cache
- tbl | DVB SI Tables
- tbl-base | Base DVB SI Tables (PAT,CAT,PMT,SDT etc.)
- tbl-csa | DVB CSA (descrambling) Tables
- tbl-eit | DVB EPG Tables
- tbl-time | DVB Time Tables
- tbl-atsc | ATSC SI Tables
- tbl-pass | Passthrough Muxer SI Tables
- tbl-satip | SAT>IP Server SI Tables
- fastscan | Fastscan DVB
- parser | MPEG-TS Parser
- TS | Transport Stream
- globalheaders | Global Headers
- tsfix | Time Stamp Fix
- hevc | HEVC - H.265
- muxer | Muxer
- pass | Pass-thru muxer
- mkv | Matroska muxer
- service | Service
- channel | Channel
- subscription | Subscription
- service-mapper | Service Mapper
- bouquet | Bouquet
- esfilter | Elementary Stream Filter
- profile | Streaming Profile
- descrambler | Descrambler
- caclient | CA (descrambling) Client
- csa | CSA (descrambling)
- capmt | CAPMT CA Client
- cwc | CWC CA Client
- dvbcam | DVB CAM Client
- dvr | Digital Video Recorder
- epg | Electronic Program Guide
- epgdb | EPG Database
- epggrab | EPG Grabber
- charset | Charset
- dvb | DVB
- mpegts | MPEG-TS
- muxsched | Mux Scheduler
- libav | libav / ffmpeg
- transcode | Transcode
- iptv | IPTV
- iptv-pcr | IPTV PCR
- linuxdvb | LinuxDVB Input
- diseqc | DiseqC
- en50221 | CI Module
- en50494 | Unicable (EN50494)
- satip | SAT>IP Client
- satips | SAT>IP Server
- tvhdhomerun | TVHDHomeRun Client
- psip | ATSC PSIP EPG
- opentv | OpenTV EPG
- pyepg | PyEPG Import
- xmltv | XMLTV EPG Import
- webui | Web User Interface
- timeshift | Timeshift
- scanfile | Scanfile
- tsfile | MPEG-TS File
+Subsystem | Short Description
+--------------------------------------|------------------------
+ START | START
+ STOP | STOP
+ CRASH | CRASH
+ main | Main
+ gtimer | Global timer
+ mtimer | Monitonic timer
+ CPU | CPU
+ thread | Thread
+ tvhpoll | Poll multiplexer
+ time | Time
+ spawn | Spawn
+ fsmonitor | Filesystem monitor
+ lock | Locking
+ uuid | UUID
+ idnode | Node subsystem
+ url | URL
+ tcp | TCP Protocol
+ rtsp | RTSP Protocol
+ upnp | UPnP Protocol
+ settings | Settings
+ config | Configuration
+ access | Access (ACL)
+ cron | Cron
+ dbus | DBUS
+ avahi | Avahi
+ bonjour | Bonjour
+ api | API
+ http | HTTP Server
+ httpc | HTTP Client
+ htsp | HTSP Server
+ htsp-sub | HTSP Subscription
+ htsp-req | HTSP Request
+ htsp-ans | HTSP Answer
+ imagecache | Image Cache
+ tbl | DVB SI Tables
+ tbl-base | Base DVB SI Tables (PAT,CAT,PMT,SDT etc.)
+ tbl-csa | DVB CSA (descrambling) Tables
+ tbl-eit | DVB EPG Tables
+ tbl-time | DVB Time Tables
+ tbl-atsc | ATSC SI Tables
+ tbl-pass | Passthrough Muxer SI Tables
+ tbl-satip | SAT>IP Server SI Tables
+ fastscan | Fastscan DVB
+ pcr | PCR Clocks
+ parser | MPEG-TS Parser
+ TS | Transport Stream
+ globalheaders | Global Headers
+ tsfix | Time Stamp Fix
+ hevc | HEVC - H.265
+ muxer | Muxer
+ pass | Pass-through muxer
+ audioes | Audio muxer
+ mkv | Matroska muxer
+ service | Service
+ channel | Channel
+ subscription | Subscription
+ service-mapper | Service Mapper
+ bouquet | Bouquet
+ esfilter | Elementary Stream Filter
+ profile | Streaming Profile
+ descrambler | Descrambler
+ descrambler-emm | Descrambler EMM
+ caclient | CA (descrambling) Client
+ csa | CSA (descrambling)
+ capmt | CAPMT CA Client
+ cwc | CWC CA Client
+ cccam | CWC CCCam Client
+ dvbcam | DVB CAM Client
+ dvr | Digital Video Recorder
+ epg | Electronic Programme Guide
+ epgdb | EPG Database
+ epggrab | EPG Grabber
+ charset | Charset
+ dvb | DVB
+ mpegts | MPEG-TS
+ muxsched | Mux Scheduler
+ libav | libav / ffmpeg
+ transcode | Transcode
+ iptv | IPTV
+ iptv-pcr | IPTV PCR
+ iptv-sub | IPTV Subcription
+ linuxdvb | LinuxDVB Input
+ diseqc | DiseqC
+ en50221 | CI Module
+ en50494 | Unicable (EN50494)
+ satip | SAT>IP Client
+ satips | SAT>IP Server
+ tvhdhomerun | TVHDHomeRun Client
+ psip | ATSC PSIP EPG
+ opentv | OpenTV EPG
+ pyepg | PyEPG Import
+ xmltv | XMLTV EPG Import
+ webui | Web User Interface
+ timeshift | Timeshift
+ scanfile | Scanfile
+ tsfile | MPEG-TS File
+ tsdebug | MPEG-TS Input Debug
+ codec | Codec
+ vaapi | VA-API
+
---
+<tvh_include>inc/recording_contents</tvh_include>
+
+---
+
+## Overview
+
This tab is used to configure operation of the Digital Video Recorder.
It is not used for scheduling or administration of individual
recordings.
-
+
---
-### Menu Bar/Buttons
-
-The following functions are available:
-
-Button | Function
---------------------|---------
-**Save** | Save any changes made to the selected profile.
-**Undo** | Undo any changes made to the selected profile since the last save.
-**Add** | Add a new profile.
-**Delete** | Delete an existing profile.
-**Clone** | Clone the currently selected profile.
+## Buttons
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
---
-# Overview
+## Overview
This tab is used to configure the Electronic Program Guide (EPG)
[grabbing](class/epggrab_mod) capabilities.
---
-# Overview
+## Overview
This tab is used to configure the Electronic Program Guide (EPG)
grabber modules. Tvheadend supports a variety of different EPG
---
-# Overview
+## Overview
This tab allows you to define rules that filter and order various
elementary streams.
---
-# Overview
+## 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,
+<tvh_include>inc/recording_contents</tvh_include>
+
+---
+
+## Overview
+
This tab is used to configure timeshift properties.
-
+
---
-### Menu Bar/Buttons
-
-The following functions are available:
+## Buttons
-Button | Function
------------|---------
-**Save** | Save the current configuration.
-**Undo** | Revert the changes made since last save.
-<tvh_include>inc/common_button_table_end</tvh_include>
+<tvh_include>inc/buttons</tvh_include>
---
--- /dev/null
+Contents | Description
+--------------------------------------------------|------------------------
+[Overview](#overview) | Tab overview
+[Client Types](#client-types) | Available CA client types
+[Connection Status](#connection-status) | Connection status indicators
+[OSCam Modes](#oscam-modes) | OSCam Modes
+[Items/Properties](#items) | Items/Properties
--- /dev/null
+Contents | Description
+------------------------------------------------------|-------------
+[Overview](#overview) | Overview of the tab
+[Digital Video Recorder Profiles](class/dvrconfig) | DVR profiles and related settings
+[Timeshift](class/timeshift) | Timeshift settings
+[Items/Properties](#items) | Tab specific items and properties
- [DVB Inputs](dvbinputs)
- [Channel / EPG](class/channel)
- [Stream](class/profile)
- - Recording
-
- * [Digital Video Recorder Profiles](class/dvrconfig)
- * [Timeshift](class/timeshift)
-
- - Conditional Access (CA)
-
- * [CAPMT (Linux Network DVBAPI)](class/caclient_capmt)
- * [Code word client (newcamd)](class/caclient_cwc)
- * [DES constant code word client](class/caclient_ccw_des)
- * [AES constant code word client](class/caclient_ccw_aes)
-
+ - [Recording (Profiles/Timeshift)](class/dvrconfig)
+ - [Conditional Access (CA)](class/caclient)
- [Debugging](class/tvhlog_conf)
- Status
return strtab2htsmsg(tab, 1, lang);
}
-CLASS_DOC(caclient_capmt)
+CLASS_DOC(caclient)
const idclass_t caclient_capmt_class =
{
.ic_super = &caclient_class,
.ic_class = "caclient_capmt",
.ic_caption = N_("CAPMT (Linux Network DVBAPI)"),
- .ic_doc = tvh_doc_caclient_capmt_class,
+ .ic_doc = tvh_doc_caclient_class,
.ic_properties = (const property_t[]){
{
.type = PT_INT,
.off = offsetof(capmt_t, capmt_oscam),
.list = caclient_capmt_class_oscam_mode_list,
.def.i = CAPMT_OSCAM_NET_PROTO,
+ .opts = PO_DOC_NLIST,
},
{
.type = PT_STR,
.off = offsetof(capmt_t, capmt_cwmode),
.list = caclient_capmt_class_cwmode_list,
.def.i = CAPMT_CWMODE_AUTO,
+ .opts = PO_DOC_NLIST,
},
{ }
}
.off = offsetof(cccam_t, cccam_version),
.list = caclient_cccam_class_cccam_version_list,
.def.i = CCCAM_VERSION_2_3_0,
+ .opts = PO_DOC_NLIST,
},
#if 0
{
cccam->cccam_version = CCCAM_VERSION_2_3_0;
return (caclient_t *)cccam;
}
-
.desc = N_("Selection method for CAID"),
.list = caclient_dvbcam_class_caid_selection_list,
.off = offsetof(dvbcam_t, caid_select),
+ .opts = PO_DOC_NLIST,
},
{
.type = PT_STR,