Project

General

Profile

Feature #4243 ยป SAT-IP-Multiple-freq-for-IPTV-inputs.patch

Patch - Mono Polimorph, 2017-09-05 19:34

View differences:

src/input/mpegts/iptv/iptv_mux.c
259 259
    },
260 260
    {
261 261
      .type     = PT_U32,
262
      .id       = "iptv_satip_dvbc_freq",
263
      .name     = N_("SAT>IP DVB-C frequency (Hz)"),
264
      .off      = offsetof(iptv_mux_t, mm_iptv_satip_dvbc_freq),
265
      .opts     = PO_ADVANCED
266
    },
267
    {
268
      .type     = PT_U32,
269
      .id       = "iptv_satip_dvbs_freq",
270
      .name     = N_("SAT>IP DVB-S frequency (Hz)"),
271
      .off      = offsetof(iptv_mux_t, mm_iptv_satip_dvbs_freq),
272
      .opts     = PO_ADVANCED
273
    },
274
    {
275
      .type     = PT_U32,
262 276
      .id       = "iptv_buffer_limit",
263 277
      .name     = N_("Buffering limit (ms)"),
264 278
      .desc     = N_("Specifies the incoming buffering limit in "
src/input/mpegts/iptv/iptv_private.h
132 132
  char                 *mm_iptv_hdr;
133 133
  char                 *mm_iptv_tags;
134 134
  uint32_t              mm_iptv_satip_dvbt_freq;
135
  uint32_t              mm_iptv_satip_dvbc_freq;
136
  uint32_t              mm_iptv_satip_dvbs_freq;
135 137

136 138
  uint32_t              mm_iptv_rtp_seq;
137 139

src/input/mpegts/satip/satip.c
202 202
  "DVBS2-2,DVB-C2",
203 203
  "DVBC-1,DVBS2-1",
204 204
  "DVBC-2,DVBS2-2",
205
  "DVBS2-4,DVBT-2",
206
  "DVBS2-4,DVBC-2",
205 207
  NULL
206 208
};
207 209

src/satip/rtsp.c
553 553
      }
554 554
#if ENABLE_IPTV
555 555
      if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) {
556
        LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link)
556
        LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link) {
557 557
          if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbt_freq) < 2000)
558 558
            break;
559
          if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbc_freq) < 2000)
560
            break;
561
          if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbs_freq) < 2000)
562
            break;
563
          }
559 564
        if (mux) {
560 565
          dmc = rs->dmc;
561 566
          rs->perm_lock = 1;
src/satip/server.c
152 152
#if ENABLE_IPTV
153 153
    else if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) {
154 154
      mpegts_mux_t *mm;
155
      LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link)
155
      LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) {
156 156
        if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbt_freq) {
157 157
          dvbt++;
158
          break;
159 158
        }
159
        if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbc_freq) {
160
          dvbc++;
161
        }
162
        if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbs_freq) {
163
          dvbs++;
164
        }
165
      }
160 166
    }
161 167
#endif
162 168
  }
169
  // The SAT>IP specification only supports 1-9 tuners (1 digit)!
170
  if (dvbt > 9) dvbt = 9;
171
  if (dvbc > 9) dvbc = 9;
172
  if (dvbs > 9) dvbs = 9;
173
  if (atsc > 9) atsc = 9;
163 174
  for (p = xtab; p->id; p++) {
164 175
    i = *p->cptr;
165 176
    if (i > 0) {
166 177

    (1-1/1)