]> 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:36:14 +0000 (16:36 +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 7eae6216b3fdd12865126350cb267740b97c6e86..9dda3bacaae49f59d7564b47e7eb8b730517618c 100644 (file)
@@ -32,8 +32,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
@@ -357,7 +357,7 @@ struct mpegts_network
   int               (*mn_bouquet_comment) (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);
@@ -439,8 +439,8 @@ struct mpegts_mux
   mpegts_network_t       *mm_network;
   char                   *mm_nicename;
   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;
@@ -852,7 +852,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);
@@ -876,7 +876,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)\
@@ -942,8 +942,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 );
 int mpegts_mux_set_epg_module ( mpegts_mux_t *mm, const char *modid );
 
index 87f5faf71527928558ebe5efdb8b00c66b4e18d6..9261a48594e4d68d15485411ee6dcfabcd9d1813 100644 (file)
@@ -72,7 +72,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);
@@ -97,7 +97,7 @@ extern const idclass_t dvb_mux_dtmb_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 92dfe22fab893824c2349b137ba010e5ca4567f0..b5a313f91d63f34564a85d103f4e4f987ce91c81 100644 (file)
@@ -590,7 +590,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."),
@@ -598,7 +598,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 "
@@ -1208,7 +1208,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 )
 {
   if (idnode_insert(&mm->mm_id, uuid, class, 0)) {
     if (uuid)
@@ -1326,7 +1326,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;
@@ -1337,7 +1337,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 dfe8eac792e4f89c2ad05000d73fb22e99b693e5..35c70fdf5c72c0da252112f9e83ea68f1438f85d 100644 (file)
@@ -1171,7 +1171,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 701bad77935e1b454c3aa9f42d560d0bdbd3e3a7..0d52bebd71d644ee16520204ad13639aaaee5c74 100644 (file)
@@ -438,7 +438,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;
@@ -762,7 +762,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 698ca8aebd59e0488917bde2e30768ec7a5db2db..da85abb0870a218f94eed09226739795aeee88d5 100644 (file)
@@ -533,7 +533,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;
@@ -676,7 +676,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;