]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts service: fix enlist callback for raw (SAT>IP, scan) services, fixes #3746
authorJaroslav Kysela <perex@perex.cz>
Tue, 26 Apr 2016 06:38:05 +0000 (08:38 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 26 Apr 2016 06:38:05 +0000 (08:38 +0200)
src/input/mpegts/mpegts_service.c

index 704369ee852f44f751511892e86b7e1f32d749d1..8ff8f77f66e48437e9b3618f4253b83e0839b0c9 100644 (file)
@@ -281,7 +281,7 @@ mpegts_service_config_save ( service_t *t, char *filename, size_t fsize )
  * Service instance list
  */
 static int
-mpegts_service_enlist
+mpegts_service_enlist_raw
   ( service_t *t, tvh_input_t *ti, struct service_instance_list *sil,
     int flags, int weight )
 {
@@ -330,6 +330,21 @@ mpegts_service_enlist
   return 0;
 }
 
+/*
+ * Service instance list
+ */
+static int
+mpegts_service_enlist
+  ( service_t *t, tvh_input_t *ti, struct service_instance_list *sil,
+    int flags, int weight )
+{
+  /* invalid PMT */
+  if (t->s_pmt_pid <= 0 || t->s_pmt_pid >= 8191)
+    return SM_CODE_INVALID_SERVICE;
+
+  return mpegts_service_enlist_raw(t, ti, sil, flags, weight);
+}
+
 /*
  * Start service
  */
@@ -1023,7 +1038,7 @@ mpegts_service_create_raw ( mpegts_mux_t *mm )
   s->s_delete         = mpegts_service_delete;
   s->s_is_enabled     = mpegts_service_is_enabled;
   s->s_config_save    = mpegts_service_config_save;
-  s->s_enlist         = mpegts_service_enlist;
+  s->s_enlist         = mpegts_service_enlist_raw;
   s->s_start_feed     = mpegts_service_start;
   s->s_stop_feed      = mpegts_service_stop;
   s->s_refresh_feed   = mpegts_service_refresh;