]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: I now have working table input (PAT) for tsfile
authorAdam Sutton <dev@adamsutton.me.uk>
Sat, 27 Apr 2013 21:04:31 +0000 (22:04 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Sat, 27 Apr 2013 21:04:31 +0000 (22:04 +0100)
src/input/mpegts.h
src/input/mpegts/mpegts_input.c
src/input/mpegts/mpegts_table.c
src/input/mpegts/psi.c

index b81865e700ed55bd91642737e43c9caf3a29e4e9..664460d921d7219c1228d79dce0c26bd2478de2c 100644 (file)
@@ -417,7 +417,7 @@ int mpegts_input_is_free ( mpegts_input_t *mi );
 int mpegts_input_current_weight ( mpegts_input_t *mi );
 
 void mpegts_table_dispatch
-  (mpegts_table_t *mt, const uint8_t *sec, int r);
+  (const uint8_t *sec, size_t r, void *mt);
 void mpegts_table_release
   (mpegts_table_t *mt);
 void mpegts_table_add
index 4073c946eb41491d4b9f7a89d7d4edae18a018e6..7adf8226112a00dff50206b113ad2343bd5d9683 100644 (file)
@@ -148,7 +148,8 @@ mpegts_input_table_dispatch ( mpegts_mux_t *mm, mpegts_table_feed_t *mtf )
   for (i = 0; i < len; i++) {
     mt = vec[i];
     if (!mt->mt_destroyed && mt->mt_pid == pid)
-      psi_section_reassemble(&mt->mt_sect, mtf->mtf_tsb, 0, NULL, mt);
+      psi_section_reassemble(&mt->mt_sect, mtf->mtf_tsb, 0,
+                             mpegts_table_dispatch, mt);
     mpegts_table_release(mt);
   }
 }
index 3479fa3526564fa3b752409828083e2a9b896789..aded6467f5f204241917476fd19e221505755786 100644 (file)
 
 void
 mpegts_table_dispatch
-  ( mpegts_table_t *mt, const uint8_t *sec, int r )
+  ( const uint8_t *sec, size_t r, void *aux )
 {
   int tid, len, ret;
+  mpegts_table_t *mt = aux;
   int chkcrc = mt->mt_flags & MT_CRC;
 
   if(mt->mt_destroyed)
index 22110f39a5ffb65f151476047fdedd20918858b0..bea76a7afa4e72da8cb8d3be00580f002d98a381 100644 (file)
@@ -125,7 +125,8 @@ psi_section_reassemble0(psi_section_t *ps, const uint8_t *data,
     return -1;
 
   ps->ps_offset = 0;
-  cb(ps->ps_data, tsize - (crc ? 4 : 0), opaque);
+  if (cb)
+    cb(ps->ps_data, tsize - (crc ? 4 : 0), opaque);
   return len - excess;
 }