"DVBS2-2,DVBT-2",
"DVBT-1,DVBS2-1",
"DVBT-2,DVBS2-2",
- "DVBS2-1,DVB-C1",
- "DVBS2-2,DVB-C2",
+ "DVBS2-1,DVBC-1",
+ "DVBS2-2,DVBC-2",
"DVBC-1,DVBS2-1",
"DVBC-2,DVBS2-2",
+ "DVBS2-4,DVBT-2",
+ "DVBS2-4,DVBC-2",
+ "DVBS2-4,DVBT-2,DVBC-2",
+ "DVBS2-8,DVBT-4,DVBC-4",
NULL
};
{
.type = PT_BOOL,
.id = "tcp_mode",
- .name = N_("RTP/AVP/TCP (embedded data)"),
- .desc = N_("Enable or disable RTP/AVP/TCP transfer mode "
- "(embedded data in the RTSP session) support."),
+ .name = N_("RTP/AVP/TCP transport supported"),
+ .desc = N_("The server suports the Interlaved TCP transfer mode "
+ "(embedded data in the RTSP session). And this option "
+ "enables this mode in all tuners by default."),
.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_tcp_mode),
},
#include <sys/socket.h>
#endif
+
+typedef enum rtp_transport_mode
+{
+ RTP_SERVER_DEFAULT, // Use server configuretion
+ RTP_UDP, // Use regular RTP
+ RTP_INTERLEAVED, // Use Interleaved RTP/AVP/TCP
+} rtp_transport_mode_t;
+
+
/*
*
*/
return m;
}
+static htsmsg_t *
+satip_frontend_transport_mode_list ( void *o, const char *lang )
+{
+ static const struct strtab tab[] = {
+ { N_("Default server config"), RTP_SERVER_DEFAULT },
+ { N_("RTP over UDP"), RTP_UDP },
+ { N_("TCP Interleaved"), RTP_INTERLEAVED },
+ };
+ return strtab2htsmsg(tab, 1, lang);
+}
+
CLASS_DOC(satip_frontend)
const idclass_t satip_frontend_class =
.opts = PO_RDONLY | PO_NOSAVE,
.off = offsetof(satip_frontend_t, sf_number),
},
+ {
+ .type = PT_INT,
+ .id = "transport_mode",
+ .name = N_("Transport mode"),
+ .desc = N_("Select the transport used for this tuner."),
+ .list = satip_frontend_transport_mode_list,
+ .off = offsetof(satip_frontend_t, sf_transport_mode),
+ .opts = PO_ADVANCED,
+ },
{
.type = PT_INT,
.id = "udp_rtp_port",
seq = -1;
lfe->sf_seq = -1;
play2 = 1;
- rtsp_flags = lfe->sf_device->sd_tcp_mode ? SATIP_SETUP_TCP : 0;
+ rtsp_flags = lfe->sf_device->sd_tcp_mode;
+ if (lfe->sf_transport_mode != RTP_SERVER_DEFAULT)
+ rtsp_flags = lfe->sf_transport_mode == RTP_INTERLEAVED ? SATIP_SETUP_TCP : 0;
if ((rtsp_flags & SATIP_SETUP_TCP) == 0) {
if (udp_bind_double(&rtp, &rtcp,