]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts mux: add original provider network name, fixes #3311
authorJaroslav Kysela <perex@perex.cz>
Sat, 28 Nov 2015 21:14:20 +0000 (22:14 +0100)
committerJaroslav Kysela <perex@perex.cz>
Sat, 28 Nov 2015 21:14:20 +0000 (22:14 +0100)
src/input/mpegts.h
src/input/mpegts/dvb_psi.c
src/input/mpegts/mpegts_mux.c

index 46a252fc5e9d2a6958fe3dc6f60b85ba61d2e8f7..b854c32535e7ae1ce2c73450556fbf381d473d7b 100644 (file)
@@ -405,7 +405,8 @@ struct mpegts_mux
    */
   
   LIST_ENTRY(mpegts_mux)  mm_network_link;
-  mpegts_network_t        *mm_network;
+  mpegts_network_t       *mm_network;
+  char                   *mm_provider_network_name;
   uint16_t                mm_onid;
   uint16_t                mm_tsid;
 
@@ -863,6 +864,7 @@ 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_crid_authority ( mpegts_mux_t *mm, const char *defauth );
index 21c4183e97d3301361a1b6ece752b9556394b4ed..537c2257d6785a30a573c53d2f0ac46e42b9e33a 100644 (file)
@@ -1394,6 +1394,8 @@ dvb_nit_callback
     save |= mpegts_network_set_network_name(mn, name);
     if (save)
       mn->mn_config_save(mn);
+    if (mpegts_mux_set_network_name(mm, name))
+      mm->mm_config_save(mm);
   }
 
   /* Transport length */
index efe717e151324efaeb51845c4609c309aa2da7d5..e47a35a1b1a92b067a0ae8f03e730926fc9b0cae 100644 (file)
@@ -529,6 +529,13 @@ const idclass_t mpegts_mux_class =
       .opts     = PO_RDONLY | PO_NOSAVE,
       .get      = mpegts_mux_class_get_name,
     },
+    {
+      .type     = PT_STR,
+      .id       = "pnetwork_name",
+      .name     = N_("Provider network name"),
+      .off      = offsetof(mpegts_mux_t, mm_provider_network_name),
+      .opts     = PO_RDONLY | PO_HIDDEN,
+    },
     {
       .type     = PT_U16,
       .id       = "onid",
@@ -1138,6 +1145,16 @@ mpegts_mux_save ( mpegts_mux_t *mm, htsmsg_t *c )
   idnode_save(&mm->mm_id, c);
 }
 
+int
+mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name )
+{
+  if (strcmp(mm->mm_provider_network_name ?: "", name ?: "")) {
+    tvh_str_update(&mm->mm_provider_network_name, name ?: "");
+    return 1;
+  }
+  return 0;
+}
+
 int
 mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid )
 {