Project

General

Profile

Feature #4505 » SAT-IP-RTP_over_TCP-at-tuner-level.diff

patch - Mono Polimorph, 2017-09-21 22:19

View differences:

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;
(3-3/3)