From: Mark Clarkstone Date: Tue, 21 Jun 2016 11:19:08 +0000 (+0100) Subject: mdhelp: add more property descriptions, add priority and streaming_priority property... X-Git-Tag: v4.2.1~370 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dd8dbebf22c51ab605b70b7c65de6d0a04f525fc;p=thirdparty%2Ftvheadend.git mdhelp: add more property descriptions, add priority and streaming_priority property docs --- diff --git a/docs/property/priority.md b/docs/property/priority.md new file mode 100644 index 000000000..e0c98d47c --- /dev/null +++ b/docs/property/priority.md @@ -0,0 +1,18 @@ +: + +The tuner (or network if using IPTV) with the highest priority value +will be used out of preference. If the tuner is busy the next available +with the highest priority value will be used. + +An example: + +Tuner | Tuner A | Tuner B | Tuner C +-----------------|---------|---------|-------- +Priority | 100 | 50 | 80 +Status | BUSY | IDLE | IDLE + +In the above table *Tuner A* is busy so Tvheadend will have to use the +next available idle tuner which in this example is *Tuner B* and *Tuner C* +but because *Tuner C* has the higher priority of the two Tvheadend will +use that instead of *Tuner B*. If no priority value is set for any tuners +Tvheadend will use the first available idle tuner. diff --git a/docs/property/streaming_priority.md b/docs/property/streaming_priority.md new file mode 100644 index 000000000..d08f0b2f4 --- /dev/null +++ b/docs/property/streaming_priority.md @@ -0,0 +1,5 @@ +: + +Streaming priority is like the *Priority* setting (above) but only +applies when streaming over HTTP or HTSP. If no streaming priority value +is set (0) the priority value is used instead. diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index 3e0477944..55102966b 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -699,6 +699,9 @@ iptv_network_class_icon_url_set( void *in, const void *v ) return iptv_url_set(&mn->in_icon_url, &mn->in_icon_url_sane, v, 1, 0); } +PROP_DOC(priority) +PROP_DOC(streaming_priority) + extern const idclass_t mpegts_network_class; const idclass_t iptv_network_class = { .ic_super = &mpegts_network_class, @@ -710,6 +713,7 @@ const idclass_t iptv_network_class = { .type = PT_BOOL, .id = "scan_create", .name = N_("Scan after creation"), + .desc = N_("After creating the network scan it for services."), .off = offsetof(iptv_network_t, in_scan_create), .def.i = 1, .opts = PO_ADVANCED @@ -718,6 +722,7 @@ const idclass_t iptv_network_class = { .type = PT_U16, .id = "service_sid", .name = N_("Service ID"), + .desc = N_("The network's service ID"), .off = offsetof(iptv_network_t, in_service_id), .def.i = 0, .opts = PO_EXPERT @@ -726,7 +731,11 @@ const idclass_t iptv_network_class = { .type = PT_INT, .id = "priority", .name = N_("Priority"), + .desc = N_("The network's priority. The network with the " + "highest priority value will be used out of " + "preference if available. See Help for details."), .off = offsetof(iptv_network_t, in_priority), + .doc = prop_doc_priority, .def.i = 1, .opts = PO_ADVANCED }, @@ -734,6 +743,10 @@ const idclass_t iptv_network_class = { .type = PT_INT, .id = "spriority", .name = N_("Streaming priority"), + .desc = N_("When streaming a service (via http or htsp) " + "Tvheadend will use the network with the highest " + "streaming priority set here. See Help for details."), + .doc = prop_doc_streaming_priority, .off = offsetof(iptv_network_t, in_streaming_priority), .def.i = 1, .opts = PO_ADVANCED @@ -742,6 +755,8 @@ const idclass_t iptv_network_class = { .type = PT_U32, .id = "max_streams", .name = N_("Maximum # input streams"), + .desc = N_("The maximum number of input streams allowed " + "on this network."), .off = offsetof(iptv_network_t, in_max_streams), .def.i = 0, }, @@ -749,6 +764,7 @@ const idclass_t iptv_network_class = { .type = PT_U32, .id = "max_bandwidth", .name = N_("Maximum bandwidth (Kbps)"), + .desc = N_("Maximum input bandwidth."), .off = offsetof(iptv_network_t, in_max_bandwidth), .def.i = 0, }, @@ -756,6 +772,8 @@ const idclass_t iptv_network_class = { .type = PT_U32, .id = "max_timeout", .name = N_("Maximum timeout (seconds)"), + .desc = N_("Maximum time to wait (in seconds) for a stream " + "before a timeout."), .off = offsetof(iptv_network_t, in_max_timeout), .def.i = 15, .opts = PO_ADVANCED @@ -764,6 +782,7 @@ const idclass_t iptv_network_class = { .type = PT_STR, .id = "icon_url", .name = N_("Icon base URL"), + .desc = N_("Icon base URL."), .off = offsetof(iptv_network_t, in_icon_url), .set = iptv_network_class_icon_url_set, .opts = PO_MULTILINE | PO_ADVANCED @@ -823,6 +842,7 @@ const idclass_t iptv_auto_network_class = { .type = PT_STR, .id = "url", .name = N_("URL"), + .desc = N_("The URL to the playlist."), .off = offsetof(iptv_network_t, in_url), .set = iptv_auto_network_class_url_set, .notify = iptv_auto_network_class_notify_url, @@ -832,6 +852,7 @@ const idclass_t iptv_auto_network_class = { .type = PT_BOOL, .id = "bouquet", .name = N_("Create bouquet"), + .desc = N_("Create a bouquet from the playlist."), .off = offsetof(iptv_network_t, in_bouquet), .notify = iptv_auto_network_class_notify_bouquet, }, @@ -839,6 +860,7 @@ const idclass_t iptv_auto_network_class = { .type = PT_STR, .id = "ctx_charset", .name = N_("Content character set"), + .desc = N_("The playlist's character set."), .off = offsetof(iptv_network_t, in_ctx_charset), .list = iptv_auto_network_class_charset_list, .notify = iptv_auto_network_class_notify_url, @@ -849,12 +871,14 @@ const idclass_t iptv_auto_network_class = { .intextra = CHANNEL_SPLIT, .id = "channel_number", .name = N_("Channel numbers from"), + .desc = N_("Lowest starting channel number."), .off = offsetof(iptv_network_t, in_channel_number), }, { .type = PT_U32, .id = "refetch_period", .name = N_("Re-fetch period (mins)"), + .desc = N_("Time (in minutes) to re-fetch the playlist."), .off = offsetof(iptv_network_t, in_refetch_period), .def.i = 60, .opts = PO_ADVANCED @@ -863,6 +887,7 @@ const idclass_t iptv_auto_network_class = { .type = PT_BOOL, .id = "ssl_peer_verify", .name = N_("SSL verify peer"), + .desc = N_("Verify the peer's SSL."), .off = offsetof(iptv_network_t, in_ssl_peer_verify), .opts = PO_EXPERT }, @@ -876,6 +901,8 @@ const idclass_t iptv_auto_network_class = { .type = PT_STR, .id = "remove_args", .name = N_("Remove HTTP arguments"), + .desc = N_("Key and value pairs to remove from the query " + "string in the URL."), .off = offsetof(iptv_network_t, in_remove_args), .def.s = "ticket", .opts = PO_EXPERT diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 910044b37..2180015a7 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -219,6 +219,9 @@ mpegts_input_class_linked_enum( void * self, const char *lang ) return m; } +PROP_DOC(priority) +PROP_DOC(streaming_priority) + const idclass_t mpegts_input_class = { .ic_super = &tvh_input_class, @@ -242,7 +245,8 @@ const idclass_t mpegts_input_class = .id = "priority", .name = N_("Priority"), .desc = N_("The tuner priority value (a higher value means to " - "use this tuner out of preference)."), + "use this tuner out of preference). See Help for details."), + .doc = prop_doc_priority, .off = offsetof(mpegts_input_t, mi_priority), .def.i = 1, .opts = PO_ADVANCED @@ -254,7 +258,8 @@ const idclass_t mpegts_input_class = .desc = N_("The tuner priority value for streamed channels " "through HTTP or HTSP (a higher value means to use " "this tuner out of preference). If not set (zero), " - "the standard priority value is used."), + "the standard priority value is used. See Help for details."), + .doc = prop_doc_streaming_priority, .off = offsetof(mpegts_input_t, mi_streaming_priority), .def.i = 1, .opts = PO_ADVANCED