Project

General

Profile

Feature #5717

SAT>IP Map Different sources between each other

Added by Flole Systems about 5 years ago. Updated about 5 years ago.

Status:
New
Priority:
Normal
Category:
SAT>IP
Target version:
-
Start date:
2019-08-19
Due date:
% Done:

0%

Estimated time:

Description

Sometimes it is necessary to map sources, for example if you want to have a DVB-S transponder in a network thats usually DVB-C only it is necessary to map the DVB-S Frequency/Mux to a DVB-C Frequency. It would probably be a good idea to extend the IPTVs Map functionality to also cover the other DVB variants.

History

#2

Updated by Flole Systems about 5 years ago

@saen acro
Thanks, not really the same. I came up with a patch that at least does dvb-s to dvb-c/dvb-t mapping, everything else is just copy and paste which I didnt want to do (because I dont need it and because changes will be harder then). Basically all that we need to do now is go through all the sources and add dvb-c/dvb-t/dvb-s where appropriate (dvb-s doesnt need to be mapped to dvb-s, so skip that one). In terms of the patch that would mean copying the top part and adapting it where necessary.

Patch:

--- ./src/input/mpegts/mpegts_mux_dvb.c
+++ ./src/input/mpegts/mpegts_mux_dvb.c
@@ -530,6 +530,22 @@
       .get      = dvb_mux_dvbs_class_orbital_get,
       .opts     = PO_ADVANCED | PO_RDONLY
     },
+    {
+      .type     = PT_U32,
+      .id       = "dvb_satip_dvbc_freq",
+      .name     = N_("SAT>IP DVB-C frequency (Hz)"),
+      .off      = offsetof(dvb_mux_t, mm_dvb_satip_dvbc_freq),
+      .desc     = N_("For example: 312000000. This frequency is 312Mhz."),
+      .opts     = PO_ADVANCED
+    },
+    {
+      .type     = PT_U32,
+      .id       = "dvb_satip_dvbt_freq",
+      .name     = N_("SAT>IP DVB-T frequency (Hz)"),
+      .off      = offsetof(dvb_mux_t, mm_dvb_satip_dvbt_freq),
+      .desc     = N_("For example: 312000000. This frequency is 312Mhz."),
+      .opts     = PO_ADVANCED
+    },
     {}
   }
 };
--- ./src/input/mpegts/mpegts_dvb.h
+++ ./src/input/mpegts/mpegts_dvb.h
@@ -38,6 +38,13 @@
    * Tuning information
    */
   dvb_mux_conf_t lm_tuning;
+
+  /*
+   * Frequencies for Mapping
+   */
+  uint32_t mm_dvb_satip_dvbt_freq;
+  uint32_t mm_dvb_satip_dvbc_freq;
+  uint32_t mm_dvb_satip_dvbs_freq;
 } dvb_mux_t;

 /*
--- ./src/satip/rtsp.c
+++ ./src/satip/rtsp.c
@@ -641,6 +641,24 @@
         }
       }
 #endif
+      if (idnode_is_instance(&mn->mn_id, &dvb_network_class)) {
+        LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link) {
+          if (rs->dmc.dmc_fe_type == DVB_TYPE_T &&
+              deltaU32(rs->dmc.dmc_fe_freq, ((dvb_mux_t *)mux)->mm_dvb_satip_dvbt_freq) < 2000)
+            break;
+          if (rs->dmc.dmc_fe_type == DVB_TYPE_C &&
+              deltaU32(rs->dmc.dmc_fe_freq, ((dvb_mux_t *)mux)->mm_dvb_satip_dvbc_freq) < 2000)
+            break;
+          if (rs->dmc.dmc_fe_type == DVB_TYPE_S &&
+              deltaU32(rs->dmc.dmc_fe_freq, ((dvb_mux_t *)mux)->mm_dvb_satip_dvbs_freq) < 2000)
+            break;
+          }
+        if (mux) {
+          dmc = rs->dmc;
+          rs->perm_lock = 1;
+          break;
+        }
+      }
     }
     if (mux == NULL && mn2 &&
         (rtsp_muxcnf == MUXCNF_AUTO || rtsp_muxcnf == MUXCNF_KEEP)) {

@Jaroslav: What do you think about this?

Also available in: Atom PDF