Feature #4505 » SAT-IP-RTP_over_TCP-at-tuner-level.diff
src/input/mpegts/satip/satip.c | ||
---|---|---|
198 | 198 |
"DVBS2-2,DVBT-2", |
199 | 199 |
"DVBT-1,DVBS2-1", |
200 | 200 |
"DVBT-2,DVBS2-2", |
201 |
"DVBS2-1,DVB-C1",
|
|
202 |
"DVBS2-2,DVB-C2",
|
|
201 |
"DVBS2-1,DVBC-1",
|
|
202 |
"DVBS2-2,DVBC-2",
|
|
203 | 203 |
"DVBC-1,DVBS2-1", |
204 | 204 |
"DVBC-2,DVBS2-2", |
205 |
"DVBS2-4,DVBT-2", |
|
206 |
"DVBS2-4,DVBC-2", |
|
207 |
"DVBS2-4,DVBT-2,DVBC-2", |
|
208 |
"DVBS2-8,DVBT-4,DVBC-4", |
|
205 | 209 |
NULL |
206 | 210 |
}; |
207 | 211 | |
... | ... | |
257 | 261 |
{ |
258 | 262 |
.type = PT_BOOL, |
259 | 263 |
.id = "tcp_mode", |
260 |
.name = N_("RTP/AVP/TCP (embedded data)"), |
|
261 |
.desc = N_("Enable or disable RTP/AVP/TCP transfer mode " |
|
262 |
"(embedded data in the RTSP session) support."), |
|
264 |
.name = N_("RTP/AVP/TCP transport supported"), |
|
265 |
.desc = N_("The server suports the Interlaved TCP transfer mode " |
|
266 |
"(embedded data in the RTSP session). And this option " |
|
267 |
"enables this mode in all tuners by default."), |
|
263 | 268 |
.opts = PO_ADVANCED, |
264 | 269 |
.off = offsetof(satip_device_t, sd_tcp_mode), |
265 | 270 |
}, |
src/input/mpegts/satip/satip_frontend.c | ||
---|---|---|
29 | 29 |
#include <sys/socket.h> |
30 | 30 |
#endif |
31 | 31 | |
32 | ||
33 |
typedef enum rtp_transport_mode |
|
34 |
{ |
|
35 |
RTP_SERVER_DEFAULT, // Use server configuretion |
|
36 |
RTP_UDP, // Use regular RTP |
|
37 |
RTP_INTERLAVED, // Use Interlaved RTP/AVP/TCP |
|
38 |
} rtp_transport_mode_t; |
|
39 | ||
40 | ||
32 | 41 |
/* |
33 | 42 |
* |
34 | 43 |
*/ |
... | ... | |
136 | 145 |
return m; |
137 | 146 |
} |
138 | 147 | |
148 |
static htsmsg_t * |
|
149 |
satip_frontend_transport_mode_list ( void *o, const char *lang ) |
|
150 |
{ |
|
151 |
static const struct strtab tab[] = { |
|
152 |
{ N_("SERVER Config"), RTP_SERVER_DEFAULT }, |
|
153 |
{ N_("RTP over UDP"), RTP_UDP }, |
|
154 |
{ N_("TCP Interlaved"), RTP_INTERLAVED }, |
|
155 |
}; |
|
156 |
return strtab2htsmsg(tab, 1, lang); |
|
157 |
} |
|
158 | ||
139 | 159 |
CLASS_DOC(satip_frontend) |
140 | 160 | |
141 | 161 |
const idclass_t satip_frontend_class = |
... | ... | |
156 | 176 |
}, |
157 | 177 |
{ |
158 | 178 |
.type = PT_INT, |
179 |
.id = "transport_mode", |
|
180 |
.name = N_("Transport mode"), |
|
181 |
.desc = N_("Select the transport used for this tuner."), |
|
182 |
.list = satip_frontend_transport_mode_list, |
|
183 |
.off = offsetof(satip_frontend_t, sf_transport_mode), |
|
184 |
.opts = PO_ADVANCED, |
|
185 |
}, |
|
186 |
{ |
|
187 |
.type = PT_INT, |
|
159 | 188 |
.id = "udp_rtp_port", |
160 | 189 |
.name = N_("UDP RTP port number (2 ports)"), |
161 | 190 |
.desc = N_("Force the local UDP Port number here. The number " |
... | ... | |
1569 | 1598 |
seq = -1; |
1570 | 1599 |
lfe->sf_seq = -1; |
1571 | 1600 |
play2 = 1; |
1572 |
rtsp_flags = lfe->sf_device->sd_tcp_mode ? SATIP_SETUP_TCP : 0;
|
|
1601 |
rtsp_flags = (lfe->sf_transport_mode == RTP_SERVER_DEFAULT)? lfe->sf_device->sd_tcp_mode : (lfe->sf_transport_mode == RTP_INTERLAVED )? SATIP_SETUP_TCP : 0;
|
|
1573 | 1602 | |
1574 | 1603 |
if ((rtsp_flags & SATIP_SETUP_TCP) == 0) { |
1575 | 1604 |
if (udp_bind_double(&rtp, &rtcp, |
src/input/mpegts/satip/satip_private.h | ||
---|---|---|
134 | 134 |
char *sf_type_override; |
135 | 135 |
int sf_master; |
136 | 136 |
int sf_udp_rtp_port; |
137 |
int sf_transport_mode; |
|
137 | 138 |
int sf_play2; |
138 | 139 |
int sf_tdelay; |
139 | 140 |
int sf_grace_period; |
- « Previous
- 1
- 2
- 3
- Next »