diff --git a/src/satip/rtsp.c b/src/satip/rtsp.c index e194bcc..04832e8 100644 --- a/src/satip/rtsp.c +++ b/src/satip/rtsp.c @@ -857,7 +857,14 @@ parse_pids(char *p, mpegts_apids_t *pids) if (x == NULL) break; if (strcmp(x, "all") == 0) { - pids->all = 1; + if (satip_server_conf.satip_replace_pids_all) { + pids->all = 0; + for (pid = 1; pid <= 20; pid++) { + mpegts_pid_add(pids, pid, MPS_WEIGHT_RAW); + } + } else { + pids->all = 1; + } } else { pids->all = 0; pid = atoi(x); diff --git a/src/satip/server.c b/src/satip/server.c index e6b5fdf..67ed976 100644 --- a/src/satip/server.c +++ b/src/satip/server.c @@ -678,6 +678,16 @@ const idclass_t satip_server_class = { .group = 1, }, { + .type = PT_BOOL, + .id = "satip_replace_pids_all", + .name = N_("Disable \"pids=all\""), + .desc = N_("Replace the Full Transport Stream with a range " + "0x00-0x16 pids only."), + .off = offsetof(struct satip_server_conf, satip_replace_pids_all), + .opts = PO_EXPERT, + .group = 1, + }, + { .type = PT_INT, .id = "satip_weight", .name = N_("Subscription weight"), diff --git a/src/satip/server.h b/src/satip/server.h index 054e481..4171ff5 100644 --- a/src/satip/server.h +++ b/src/satip/server.h @@ -51,6 +51,7 @@ struct satip_server_conf { int satip_notcp_mode; int satip_anonymize; int satip_noupnp; + int satip_replace_pids_all; int satip_iptv_sig_level; int satip_force_sig_level; int satip_dvbs;