From: Mark Clarkstone Date: Wed, 11 May 2016 00:00:16 +0000 (+0100) Subject: mdhelp: update/add various help docs + screenies mdhelp: update captions X-Git-Tag: v4.2.1~526 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c1b2d35c3736e98a23294f6bdeb0f7a47a8d9bc2;p=thirdparty%2Ftvheadend.git mdhelp: update/add various help docs + screenies mdhelp: update captions --- diff --git a/docs/class/channel.md b/docs/class/channel.md index 2b61f5e2c..f14c4435b 100644 --- a/docs/class/channel.md +++ b/docs/class/channel.md @@ -45,3 +45,7 @@ Numbering Button | Function inc/del_grid_entries --- + +inc/play + +--- diff --git a/docs/class/dvrconfig.md b/docs/class/dvrconfig.md index 73a3d052d..cb29ba534 100644 --- a/docs/class/dvrconfig.md +++ b/docs/class/dvrconfig.md @@ -1,8 +1,49 @@ -##Configuration - Recording - Digital Video Recorder Profiles - This tab is used to configure operation of the Digital Video Recorder. It is not used for scheduling or administration of individual recordings. -!['Digital Video Recorder Profiles' Tab 1](static/img/doc/configdvrtab.png) +!['Digital Video Recorder Profiles' Tab 1](static/img/doc/dvrprofiles.png) + +--- + +###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. + +inc/common_button_table_end + +--- + +###Adding/Editing a Profile + +To create a new profile press the *[Add]* button from the +menu bar, a new entry "! New config" will be added to the grid, click +on that entry to configure it - don't forget to save! + +!['Add New Profile'](static/img/doc/dvrnewprofile.png) + +To edit an existing configuration, click on it from within the grid, the +*Parameters* panel should then appear on the right hand side. + +**Tips**: +* Remember to *[Save]* your changes before selecting another profile +from within the grid. +* You can clone an existing profile by clicking the *[Clone]* +button. + +--- + +###Deleting a Profile + +Highlight (select) the desired entry from the grid, then press the +*[Delete]* button from the menu bar. +--- diff --git a/docs/class/filters.md b/docs/class/filters.md new file mode 100644 index 000000000..ad00e6911 --- /dev/null +++ b/docs/class/filters.md @@ -0,0 +1,46 @@ +This tab defines rules to filter and order the elementary streams +(PIDs) like video or audio from the input feed. The execution order of +commands is granted. It means that first rule is executed for all +available streams then second and so on. + +!['Stream filters'](static/img/doc/streamfiltertab.png) + +If any elementary stream is not marked as ignored or exclusive, it is +used. If you like to ignore unknown elementary streams, add a rule to +the end of grid with the any (not defined) comparisons and with the +action ignore. + +The rules for different elementary stream groups (video, audio, +teletext, subtitle, CA, other) are executed separately (as visually edited). + +For the visual verification of the filtering, there is a service +info dialog in the [Services](class/mpegts_service) tab. +This dialog shows the received PIDs and filtered PIDs in one window. + +--- +inc/common_button_table_start + +inc/common_button_table_end + +Tab specific functions: + +Button | Function +-----------------------|--------- +**Move Up** | Move the selected entry up the grid. +**Move Down** | Move the selected entry down the grid. + +--- + +inc/add_grid_entry + +!['Stream filter dialog'](static/img/doc/addfilterdialog.png) + +--- + +inc/edit_grid_entries + +--- + +inc/del_grid_entries + +--- diff --git a/docs/class/mpegts_mux.md b/docs/class/mpegts_mux.md index fb58053cf..0f878ef26 100644 --- a/docs/class/mpegts_mux.md +++ b/docs/class/mpegts_mux.md @@ -68,17 +68,6 @@ automatically be re-added. --- -###Playing a Mux - -You can stream a complete multiplex by copying/pasting the *Play* icon link -into the desired player/software. - -**Notes**: -* 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 -transport stream instead, you can do so by removing the `/play/` path from -the URL. -* Not all devices support receiving a complete mux, notably low -powered set-top-boxes and older USB tuners. +inc/play --- diff --git a/docs/class/mpegts_service.md b/docs/class/mpegts_service.md index 6402ab3c0..0d44431f3 100644 --- a/docs/class/mpegts_service.md +++ b/docs/class/mpegts_service.md @@ -99,3 +99,14 @@ you'd like to associate/disassociate the service with. inc/del_grid_entries --- + +###Service Information + +Clicking the !['Information Icon'](static/icons/information.png) +information icon will display service details. + +--- + +inc/play + +--- diff --git a/docs/class/profile.md b/docs/class/profile.md index 4c7d24a77..d7b05bd56 100644 --- a/docs/class/profile.md +++ b/docs/class/profile.md @@ -1,6 +1,6 @@ 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_entry), +the [Access Entries](class/access), DVR Profiles or as parameter for HTTP Streaming. !['Stream Profiles'](static/img/doc/configstreamprofiles.png) diff --git a/docs/class/service_mapper.md b/docs/class/service_mapper.md new file mode 100644 index 000000000..9d1fc2f8a --- /dev/null +++ b/docs/class/service_mapper.md @@ -0,0 +1,10 @@ +The map services to channels dialog allows you to control how +services are mapped. The options selected here get passed to the +[Service Mapper](status_service_mapper) tab when you press +the *[Map services]* button. + +!['Service mapper dialog'](static/img/doc/mapservicesdialog.png) + +See [Services](class/mpegts_service) for more details on service mapping. + +--- diff --git a/docs/markdown/inc/play.md b/docs/markdown/inc/play.md new file mode 100644 index 000000000..9ff24b17e --- /dev/null +++ b/docs/markdown/inc/play.md @@ -0,0 +1,11 @@ +###Playing a Stream/File + +You can play a stream/file by copying/pasting the Play icon link from +the grid into the desired player/software. + +**Notes**: +* 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](url) for more. + diff --git a/docs/markdown/status_connections.md b/docs/markdown/status_connections.md index 40635d9ea..3c551c544 100644 --- a/docs/markdown/status_connections.md +++ b/docs/markdown/status_connections.md @@ -4,33 +4,35 @@ This tab shows information about all active connections. This is a read-only tab; nothing is configurable. -!['Status - Subscriptions' Tab](static/img/doc/statusconnections.png) +!['Status - Subscriptions' Tab](static/img/doc/status_connections.png) --- -####Menu Bar/Buttons +###Menu Bar/Buttons The following functions are available: Button | Function -----------|--------- **Help** | Display this help page. -**View Level**| Change the interface view level to show/hide more advanced options. --- -####Grid Items +###Grid Items The main grid items have the following functions: -**Item** -: Description +**!['Cancel'](static/icons/cancel.png)** +: Forcefully kill the connection. Note that many applications such as Kodi will automatically reconnect when a connection is dropped. -**Item** -: Description +**Type** +: Connection type - HTSP or HTTP. -**Item** -: Description +**IP Address** +: The IP address of the device. -**Item** -: Description +**Username** +: The username used to access tvheadend (a blank cell indicates no username was supplied). + +**Started** +: Date the connection started - YYYY-MM-DD HH:MM:SS. diff --git a/docs/markdown/status_service_mapper.md b/docs/markdown/status_service_mapper.md index 473faf77b..f1721b926 100644 --- a/docs/markdown/status_service_mapper.md +++ b/docs/markdown/status_service_mapper.md @@ -1,14 +1,18 @@ -##Status - Service Mapper +##Service Mapper -This tab shows information about current service mapping activity. +This tab shows information about current service mapping activity. -This is a read-only tab; nothing is configurable. +This is a read-only tab; nothing is configurable. -!['Status - Subscriptions' Tab](static/img/doc/statusservicemapper.png) +!['Status - Subscriptions' Tab](static/img/doc/statusservicemapper.png) + + +The [Map services to channels](class/service_mapper) dialog +determines how services are mapped. --- -####Menu Bar/Buttons +###Menu Bar/Buttons The following functions are available: @@ -18,18 +22,16 @@ Button | Function --- -####Grid Items - -The main grid items have the following functions: +###Items -**Item** -: Description +**Mapped** +: Number of services mapped. -**Item** -: Description +**Ignored** +: Number of services ignored. -**Item** -: Description +**Failed** +: Number of services that failed to be mapped. -**Item** -: Description +**Active** +: Progress bar indicating mapping status. diff --git a/docs/markdown/status_stream.md b/docs/markdown/status_stream.md index 077bb1abe..14e659887 100644 --- a/docs/markdown/status_stream.md +++ b/docs/markdown/status_stream.md @@ -4,11 +4,11 @@ This tab shows information about all currently-open streams. This is a read-only tab; nothing is configurable. -!['Status - Stream' Tab](static/img/doc/statusstream.png) +!['Status - Stream' Tab](static/img/doc/streamtab.png) --- -####Menu Bar/Buttons +###Menu Bar/Buttons The following functions are available: @@ -18,18 +18,50 @@ Button | Function --- -####Grid Items +###Grid Items The main grid items have the following functions: -**Item** -: Description +**Sweep/Clean Icon !['Status - Stream' Tab](static/icons/clean.png)** +: Clear all "Uncorrected Blocks", "BER", etc stats. -**Item** -: Description +**Input** +: Device used to receive the stream. -**Item** -: Description +**Sub No** +: Number of subscriptions using the stream. + +**Weight** +: Stream weighting. + +**Bandwidth** +: Total stream input bandwidth. + +**BER** +: [Bit Error Ratio](https://en.wikipedia.org/wiki/Bit_error_rate) + +**PER** +: [Packet Error Ratio](https://en.wikipedia.org/wiki/Bit_error_rate#Packet_error_ratio) + +**Uncorrected Blocks** +: Number of uncorrected blocks. A value higher than 0 can indicate a +weak signal or interference, note that some devices can send a false value. + +**Transport Errors** +: Number of transport streams errors. A fast increasing value here can +indicate signal issues. Device drivers can sometimes send garbage data at +the beginning of a stream, as long as the value doesn't increase at a fast +pace and you have no playback issues, there is nothing to worry about. + +**Continuity Errors** +: Continuity Count Error. Number of stream errors, a high value here can indicate a signal problem. + +**SNR** +: Signal (To) Noise Ratio. [The level of a desired signal to the level of background noise](https://en.wikipedia.org/wiki/Signal-to-noise_ratio), +note that not all devices supply correct signal information, +the value here can sometimes be ambiguous. + +**Signal Strength** +: The signal strength as reported by the device, note that not all devices +supply correct signal information, the value here can sometimes be ambiguous -**Item** -: Description diff --git a/docs/property/cache_scheme.md b/docs/property/cache_scheme.md new file mode 100644 index 000000000..f77055ddf --- /dev/null +++ b/docs/property/cache_scheme.md @@ -0,0 +1,16 @@ +: + +Whenever you read or write data to the filesystems, the information is +kept (cached) in memory for a while. This means that regularly-access +files are available quickly without going back to the disc; it also +means that there’s a disconnect when writing between the write request +(from the application) and the actual write itself (to the disc/storage) +as changes are buffered to be written in one go. + +Scheme | Description +-----------------------|------------ +**Unknown** | A placeholder status, meaning that the configuration isn’t properly set. +**System** | Change nothing and rely on standard (default) system caching to behave as it normally would. +**Don't keep** | Tell the system that you’re not expecting to re-use the data soon, so don’t keep it in cache. The data will still be buffered for writing. Useful e.g. in a RAM-limited system like a Pi (given that you’re unlikely to be watching while recording, so data can be discarded now and read back from disc later). +**Sync** | Tell the system to write the data immediately. This doesn’t affect whether or not it’s cached. Useful e.g. if you’ve a particular problem with data loss due to delayed write (such as if you get frequent transient power problems). +**Sync + Don't keep** | A combination of last two variants above - data is written immediately and then discarded from cache. diff --git a/src/dvr/dvr_config.c b/src/dvr/dvr_config.c index 6ac78d22c..ffdd5973a 100644 --- a/src/dvr/dvr_config.c +++ b/src/dvr/dvr_config.c @@ -796,10 +796,11 @@ PROP_DOC(preprocessor) PROP_DOC(postprocessor) PROP_DOC(postremove) PROP_DOC(pathname) +PROP_DOC(cache_scheme) const idclass_t dvr_config_class = { .ic_class = "dvrconfig", - .ic_caption = N_("DVR - Configuration Profile"), + .ic_caption = N_("DVR - Profiles"), .ic_event = "dvrconfig", .ic_doc = tvh_doc_dvrconfig_class, .ic_changed = dvr_config_class_changed, @@ -887,10 +888,11 @@ const idclass_t dvr_config_class = { .desc = N_("The cache scheme to use/used to store recordings. " "Leave as \"system\" unless you have a special use " "case for one of the others. See Help for details."), + .doc = prop_doc_cache_scheme, .off = offsetof(dvr_config_t, dvr_muxcnf.m_cache), .def.i = MC_CACHE_DONTKEEP, .list = dvr_config_class_cache_list, - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, .group = 1, }, { diff --git a/src/esfilter.c b/src/esfilter.c index 7be72ddf4..f7bd67c5f 100644 --- a/src/esfilter.c +++ b/src/esfilter.c @@ -591,9 +591,12 @@ esfilter_class_action_enum(void *o, const char *lang) return l; } +CLASS_DOC(filters) + const idclass_t esfilter_class = { .ic_class = "esfilter", .ic_caption = N_("Elementary stream filter"), + .ic_doc = tvh_doc_filters_class, .ic_event = "esfilter", .ic_perm_def = ACCESS_ADMIN, .ic_save = esfilter_class_save, @@ -606,14 +609,14 @@ const idclass_t esfilter_class = { .type = PT_INT, .id = "class", .name = N_("Class"), - .opts = PO_RDONLY | PO_HIDDEN, + .opts = PO_RDONLY | PO_HIDDEN | PO_DOC_NLIST, .off = offsetof(esfilter_t, esf_class), }, { .type = PT_INT, .id = "index", .name = N_("Index"), - .opts = PO_RDONLY | PO_HIDDEN, + .opts = PO_RDONLY | PO_HIDDEN | PO_DOC_NLIST, .off = offsetof(esfilter_t, esf_index), }, { @@ -630,7 +633,7 @@ const idclass_t esfilter_class = { const idclass_t esfilter_class_video = { .ic_super = &esfilter_class, .ic_class = "esfilter_video", - .ic_caption = N_("Video stream filter"), + .ic_caption = N_("Video Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -652,6 +655,7 @@ const idclass_t esfilter_class_video = { .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, @@ -722,7 +726,7 @@ const idclass_t esfilter_class_video = { const idclass_t esfilter_class_audio = { .ic_super = &esfilter_class, .ic_class = "esfilter_audio", - .ic_caption = N_("Audio stream filter"), + .ic_caption = N_("Audio Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -744,6 +748,7 @@ const idclass_t esfilter_class_audio = { .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, @@ -814,7 +819,7 @@ const idclass_t esfilter_class_audio = { const idclass_t esfilter_class_teletext = { .ic_super = &esfilter_class, .ic_class = "esfilter_teletext", - .ic_caption = N_("Teletext stream filter"), + .ic_caption = N_("Teletext Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -836,6 +841,7 @@ const idclass_t esfilter_class_teletext = { .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, @@ -906,7 +912,7 @@ const idclass_t esfilter_class_teletext = { const idclass_t esfilter_class_subtit = { .ic_super = &esfilter_class, .ic_class = "esfilter_subtit", - .ic_caption = N_("Subtitle stream filter"), + .ic_caption = N_("Subtitle Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -928,6 +934,7 @@ const idclass_t esfilter_class_subtit = { .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, @@ -998,7 +1005,7 @@ const idclass_t esfilter_class_subtit = { const idclass_t esfilter_class_ca = { .ic_super = &esfilter_class, .ic_class = "esfilter_ca", - .ic_caption = N_("CA stream filter"), + .ic_caption = N_("CA Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -1101,7 +1108,7 @@ const idclass_t esfilter_class_ca = { const idclass_t esfilter_class_other = { .ic_super = &esfilter_class, .ic_class = "esfilter_other", - .ic_caption = N_("Other stream filter"), + .ic_caption = N_("Other Stream Filter"), .ic_properties = (const property_t[]){ { .type = PT_STR, @@ -1123,6 +1130,7 @@ const idclass_t esfilter_class_other = { .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, diff --git a/src/parsers/parser_teletext.c b/src/parsers/parser_teletext.c index a51dc1b92..236098f63 100644 --- a/src/parsers/parser_teletext.c +++ b/src/parsers/parser_teletext.c @@ -1,6 +1,6 @@ /* * Teletext parsing functions - * Copyright (C) 2007 Andreas Öman + * Copyright (C) 2007 Andreas Öman * Copyright (C) 2014 Jaroslav Kysela * * This program is free software: you can redistribute it and/or modify diff --git a/src/service_mapper.c b/src/service_mapper.c index 1b3ed70c5..1c81625b1 100644 --- a/src/service_mapper.c +++ b/src/service_mapper.c @@ -475,10 +475,13 @@ service_mapper_services_enum ( void *obj, const char *lang ) return m; } +CLASS_DOC(service_mapper) + static const idclass_t service_mapper_conf_class = { .ic_snode = &service_mapper_conf.idnode, .ic_class = "service_mapper", - .ic_caption = N_("Service mapper"), + .ic_caption = N_("Service Mapping (Map services to channels)"), + .ic_doc = tvh_doc_service_mapper_class, .ic_event = "service_mapper", .ic_perm_def = ACCESS_ADMIN, .ic_save = service_mapper_conf_class_save, @@ -488,7 +491,7 @@ static const idclass_t service_mapper_conf_class = { .islist = 1, .id = "services", .name = N_("Services"), - .desc = N_("Select services to map."), + .desc = N_("Select/Selected services to map."), .get = service_mapper_services_get, .set = service_mapper_services_set, .list = service_mapper_services_enum, diff --git a/src/webui/static/img/doc/addfilterdialog.png b/src/webui/static/img/doc/addfilterdialog.png new file mode 100644 index 000000000..32319c2e9 Binary files /dev/null and b/src/webui/static/img/doc/addfilterdialog.png differ diff --git a/src/webui/static/img/doc/configstreamprofiles.png b/src/webui/static/img/doc/configstreamprofiles.png index 7826ba3f7..a868b7bca 100644 Binary files a/src/webui/static/img/doc/configstreamprofiles.png and b/src/webui/static/img/doc/configstreamprofiles.png differ diff --git a/src/webui/static/img/doc/dvrnewprofile.png b/src/webui/static/img/doc/dvrnewprofile.png new file mode 100644 index 000000000..27d07d27f Binary files /dev/null and b/src/webui/static/img/doc/dvrnewprofile.png differ diff --git a/src/webui/static/img/doc/dvrprofiles.png b/src/webui/static/img/doc/dvrprofiles.png new file mode 100644 index 000000000..d9cf35790 Binary files /dev/null and b/src/webui/static/img/doc/dvrprofiles.png differ diff --git a/src/webui/static/img/doc/status_connections.png b/src/webui/static/img/doc/status_connections.png new file mode 100644 index 000000000..f959cc5ca Binary files /dev/null and b/src/webui/static/img/doc/status_connections.png differ diff --git a/src/webui/static/img/doc/statusservicemapper.png b/src/webui/static/img/doc/statusservicemapper.png new file mode 100644 index 000000000..190856eb0 Binary files /dev/null and b/src/webui/static/img/doc/statusservicemapper.png differ diff --git a/src/webui/static/img/doc/streamfiltertab.png b/src/webui/static/img/doc/streamfiltertab.png new file mode 100644 index 000000000..d89e71fcb Binary files /dev/null and b/src/webui/static/img/doc/streamfiltertab.png differ diff --git a/src/webui/static/img/doc/streamtab.png b/src/webui/static/img/doc/streamtab.png new file mode 100644 index 000000000..db483fb72 Binary files /dev/null and b/src/webui/static/img/doc/streamtab.png differ