]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
htsp server: pass network_type information in the sourceinfo / subscriptionStart
authorJaroslav Kysela <perex@perex.cz>
Thu, 14 Jan 2016 07:52:34 +0000 (08:52 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 14 Jan 2016 07:52:34 +0000 (08:52 +0100)
src/htsp_server.c
src/input/mpegts/mpegts_service.c
src/service.c
src/service.h

index d33200278025be0b6c92337d328f2f88d559d254..69bd10657d05a9af6e237b5c0a0f20dd6b467ade 100644 (file)
@@ -3876,6 +3876,7 @@ htsp_subscription_start(htsp_subscription_t *hs, const streaming_start_t *ss)
   if(si->si_adapter ) htsmsg_add_str(sourceinfo, "adapter",  si->si_adapter );
   if(si->si_mux     ) htsmsg_add_str(sourceinfo, "mux"    ,  si->si_mux     );
   if(si->si_network ) htsmsg_add_str(sourceinfo, "network",  si->si_network );
+  if(si->si_network_type) htsmsg_add_str(sourceinfo, "network_type",  si->si_network_type );
   if(si->si_provider) htsmsg_add_str(sourceinfo, "provider", si->si_provider);
   if(si->si_service ) htsmsg_add_str(sourceinfo, "service",  si->si_service );
   if(si->si_satpos  ) htsmsg_add_str(sourceinfo, "satpos",   si->si_satpos  );
index d18e69cb93ee50885899fcfc05e65cd7aba2dd14..fa209f1dd32fddd505b1d7d9b9f3fade287dc99e 100644 (file)
@@ -434,6 +434,17 @@ mpegts_service_setsourceinfo(service_t *t, source_info_t *si)
 
   if(m->mm_network->mn_network_name != NULL)
     si->si_network = strdup(m->mm_network->mn_network_name);
+#if ENABLE_MPEGTS_DVB
+  dvb_fe_type_t ftype;
+  ftype = dvb_fe_type_by_network_class(m->mm_network->mn_id.in_class);
+  if (ftype == DVB_TYPE_NONE)
+    strcpy(buf, "IPTV");
+  else
+    snprintf(buf, sizeof(buf), "%s", dvb_type2str(ftype));
+#else
+  strcpy(buf, "IPTV");
+#endif
+  si->si_network_type = strdup(buf);
 
   m->mm_display_name(m, buf, sizeof(buf));
   si->si_mux = strdup(buf);
index 215cbfaa69a20882f6d414b36492f76e64eeedaa..b6382e24012f4c229d93af1ba17d9eae8eaf64b8 100644 (file)
@@ -1470,6 +1470,7 @@ service_source_info_free(struct source_info *si)
 {
   free(si->si_adapter);
   free(si->si_network);
+  free(si->si_network_type);
   free(si->si_mux);
   free(si->si_provider);
   free(si->si_service);
@@ -1484,6 +1485,7 @@ service_source_info_copy(source_info_t *dst, const source_info_t *src)
 #define COPY(x) if (src->si_##x) dst->si_##x = strdup(src->si_##x)
   COPY(adapter);
   COPY(network);
+  COPY(network_type);
   COPY(mux);
   COPY(provider);
   COPY(service);
index 7a6e3d90cf39626dfbb8df160099c8944f718ad1..7fa2bcff5123b603b9a78d3a5954d9b81d214c89 100644 (file)
@@ -44,6 +44,7 @@ typedef struct source_info {
   tvh_uuid_t si_mux_uuid;
   char *si_adapter;
   char *si_network;
+  char *si_network_type;
   char *si_satpos;
   char *si_mux;
   char *si_provider;