]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: use 32-bit tsid/onid to define the NONE /unset/ state properly
authorJaroslav Kysela <perex@perex.cz>
Sun, 30 Jun 2019 14:36:14 +0000 (16:36 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sun, 30 Jun 2019 14:41:25 +0000 (16:41 +0200)
src/input/mpegts.h
src/input/mpegts/mpegts_dvb.h
src/input/mpegts/mpegts_mux.c
src/input/mpegts/mpegts_mux_dvb.c
src/input/mpegts/mpegts_network.c
src/input/mpegts/mpegts_network_dvb.c

index 98085edc1a362b501c9d0110b535a388df97ea2a..88a5fe9d1980541e2c2d65537100570f07b46798 100644 (file)
@@ -30,8 +30,8 @@
 #include "mpegts/dvb.h"
 #include "subscriptions.h"
 
-#define MPEGTS_ONID_NONE        0xFFFF
-#define MPEGTS_TSID_NONE        0xFFFF
+#define MPEGTS_ONID_NONE        0x10000
+#define MPEGTS_TSID_NONE        0x10000
 #define MPEGTS_FULLMUX_PID      0x2000
 #define MPEGTS_TABLES_PID       0x2001
 #define MPEGTS_PID_NONE         0xFFFF
@@ -338,7 +338,7 @@ struct mpegts_network
   void              (*mn_display_name) (mpegts_network_t*, char *buf, size_t len);
   htsmsg_t *        (*mn_config_save)  (mpegts_network_t*, char *filename, size_t fsize);
   mpegts_mux_t*     (*mn_create_mux)
-    (mpegts_network_t*, void *origin, uint16_t onid, uint16_t tsid,
+    (mpegts_network_t*, void *origin, uint32_t onid, uint32_t tsid,
      void *conf, int force);
   mpegts_service_t* (*mn_create_service)
     (mpegts_mux_t*, uint16_t sid, uint16_t pmt_pid);
@@ -429,8 +429,8 @@ struct mpegts_mux
   LIST_ENTRY(mpegts_mux)  mm_network_link;
   mpegts_network_t       *mm_network;
   char                   *mm_provider_network_name;
-  uint16_t                mm_onid;
-  uint16_t                mm_tsid;
+  uint32_t                mm_onid;
+  uint32_t                mm_tsid;
   int                     mm_tsid_checks;
   int                     mm_tsid_accept_zero_value;
   tvhlog_limit_t          mm_tsid_loglimit;
@@ -853,7 +853,7 @@ static inline mpegts_network_t *mpegts_network_find(const char *uuid)
   { return idnode_find(uuid, &mpegts_network_class, NULL); }
 
 mpegts_mux_t *mpegts_network_find_mux
-  (mpegts_network_t *mn, uint16_t onid, uint16_t tsid, int check);
+  (mpegts_network_t *mn, uint32_t onid, uint32_t tsid, int check);
 
 mpegts_service_t *mpegts_network_find_active_service
   (mpegts_network_t *mn, uint16_t sid, mpegts_mux_t **rmm);
@@ -873,7 +873,7 @@ void mpegts_network_wizard_create ( const char *clazz, htsmsg_t **nlist, const c
 
 mpegts_mux_t *mpegts_mux_create0
   ( mpegts_mux_t *mm, const idclass_t *class, const char *uuid,
-    mpegts_network_t *mn, uint16_t onid, uint16_t tsid,
+    mpegts_network_t *mn, uint32_t onid, uint32_t tsid,
     htsmsg_t *conf );
 
 #define mpegts_mux_create(type, uuid, mn, onid, tsid, conf)\
@@ -934,8 +934,8 @@ int mpegts_mux_instance_start
 int mpegts_mux_instance_weight ( mpegts_mux_instance_t *mmi );
 
 int mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name );
-int mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid, int force );
-int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid );
+int mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint32_t tsid, int force );
+int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint32_t onid );
 int mpegts_mux_set_crid_authority ( mpegts_mux_t *mm, const char *defauth );
 
 void mpegts_mux_open_table ( mpegts_mux_t *mm, mpegts_table_t *mt, int subscribe );
index f22e8b0b9c8c93683ea49c1a52e7a915deda3ebc..a3e79212ee461519581c664d95aea98ddf6f5924 100644 (file)
@@ -70,7 +70,7 @@ dvb_network_t *dvb_network_create0
   ( const char *uuid, const idclass_t *idc, htsmsg_t *conf );
 
 dvb_mux_t *dvb_network_find_mux
-  ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint16_t onid, uint16_t tsid, int check, int approx_match );
+  ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint32_t onid, uint32_t tsid, int check, int approx_match );
 
 const idclass_t *dvb_network_mux_class(mpegts_network_t *mn);
 int dvb_network_get_orbital_pos(mpegts_network_t *mn);
@@ -93,7 +93,7 @@ extern const idclass_t dvb_mux_isdb_s_class;
 extern const idclass_t dvb_mux_dab_class;
 
 dvb_mux_t *dvb_mux_create0
-  (dvb_network_t *ln, uint16_t onid, uint16_t tsid,
+  (dvb_network_t *ln, uint32_t onid, uint32_t tsid,
    const dvb_mux_conf_t *dmc, const char *uuid, htsmsg_t *conf);
 
 #define dvb_mux_create1(n, u, c)\
index f02c9c535243d9e8cd8ad3808b99ac6a5ab6f19b..f9f73af70551a6732814a5503ddfebaba107c1b2 100644 (file)
@@ -575,7 +575,7 @@ const idclass_t mpegts_mux_class =
       .opts     = PO_RDONLY | PO_HIDDEN | PO_EXPERT,
     },
     {
-      .type     = PT_U16,
+      .type     = PT_U32,
       .id       = "onid",
       .name     = N_("Original network ID"),
       .desc     = N_("The provider's network ID."),
@@ -583,7 +583,7 @@ const idclass_t mpegts_mux_class =
       .off      = offsetof(mpegts_mux_t, mm_onid),
     },
     {
-      .type     = PT_U16,
+      .type     = PT_U32,
       .id       = "tsid",
       .name     = N_("Transport stream ID"),
       .desc     = N_("The transport stream ID of the mux within the "
@@ -1166,7 +1166,7 @@ again:
 mpegts_mux_t *
 mpegts_mux_create0
   ( mpegts_mux_t *mm, const idclass_t *class, const char *uuid,
-    mpegts_network_t *mn, uint16_t onid, uint16_t tsid, htsmsg_t *conf )
+    mpegts_network_t *mn, uint32_t onid, uint32_t tsid, htsmsg_t *conf )
 {
   char buf[256];
 
@@ -1268,7 +1268,7 @@ mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name )
 }
 
 int
-mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid )
+mpegts_mux_set_onid ( mpegts_mux_t *mm, uint32_t onid )
 {
   if (onid == mm->mm_onid)
     return 0;
@@ -1283,7 +1283,7 @@ mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid )
 }
 
 int
-mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid, int force )
+mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint32_t tsid, int force )
 {
   if (tsid == mm->mm_tsid)
     return 0;
index 45e4e4629e727840c1dc051fd342d4f82307f5d4..6a526097d9fd6ad6023892f259b314fb79869905 100644 (file)
@@ -1005,7 +1005,7 @@ dvb_mux_delete ( mpegts_mux_t *mm, int delconf )
 dvb_mux_t *
 dvb_mux_create0
   ( dvb_network_t *ln,
-    uint16_t onid, uint16_t tsid, const dvb_mux_conf_t *dmc,
+    uint32_t onid, uint32_t tsid, const dvb_mux_conf_t *dmc,
     const char *uuid, htsmsg_t *conf )
 {
   const idclass_t *idc;
index 96452faa0ceeec1cd9c8643cba1aeb65fa604adc..fc413eefa8d59cd5a63e946a572bad1db3c638cd 100644 (file)
@@ -330,7 +330,7 @@ mpegts_network_config_save
 
 static mpegts_mux_t *
 mpegts_network_create_mux
-  ( mpegts_network_t *mn, void *origin, uint16_t sid, uint16_t tsid,
+  ( mpegts_network_t *mn, void *origin, uint32_t sid, uint32_t tsid,
     void *aux, int force )
 {
   return NULL;
@@ -645,7 +645,7 @@ mpegts_network_build
 
 mpegts_mux_t *
 mpegts_network_find_mux
-  ( mpegts_network_t *mn, uint16_t onid, uint16_t tsid, int check )
+  ( mpegts_network_t *mn, uint32_t onid, uint32_t tsid, int check )
 {
   mpegts_mux_t *mm;
 
index 0efe6ffe56fc87b62a9677d24ec6d428a797ea0c..8e99beb1727a6928eb3b38e55b29a6cdde9b10df 100644 (file)
@@ -494,7 +494,7 @@ dvb_network_check_orbital_pos ( int satpos1, int satpos2 )
 
 dvb_mux_t *
 dvb_network_find_mux
-  ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint16_t onid, uint16_t tsid, int check, int approx_match )
+  ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint32_t onid, uint32_t tsid, int check, int approx_match )
 {
   int deltaf, deltar;
   mpegts_mux_t *mm, *mm_alt = NULL;
@@ -632,7 +632,7 @@ dvb_network_mux_class
 
 static mpegts_mux_t *
 dvb_network_create_mux
-  ( mpegts_network_t *mn, void *origin, uint16_t onid, uint16_t tsid,
+  ( mpegts_network_t *mn, void *origin, uint32_t onid, uint32_t tsid,
     void *p, int force )
 {
   int save = 0, satpos;