]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
memoryinfo: add 'MPEG-TS table queue' entry
authorJaroslav Kysela <perex@perex.cz>
Fri, 13 May 2016 07:23:27 +0000 (09:23 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 13 May 2016 07:23:27 +0000 (09:23 +0200)
src/input/mpegts.c
src/input/mpegts/mpegts_input.c

index 8f51bbde4a8f324f7cc4bb0fbf4e257e547f2fd0..72265cde5da13f5f74b7c1525df0b727be0e2c7a 100644 (file)
@@ -21,6 +21,7 @@
 #include "memoryinfo.h"
 
 extern memoryinfo_t mpegts_input_queue_memoryinfo;
+extern memoryinfo_t mpegts_input_table_memoryinfo;
 
 void
 mpegts_init ( int linuxdvb_mask, int nosatip, str_list_t *satip_client,
@@ -35,6 +36,7 @@ mpegts_init ( int linuxdvb_mask, int nosatip, str_list_t *satip_client,
 
   /* Memory info */
   memoryinfo_register(&mpegts_input_queue_memoryinfo);
+  memoryinfo_register(&mpegts_input_table_memoryinfo);
 
   /* FastScan init */
   dvb_fastscan_init();
index d95586e9f89707ba6c30d9f235bd96215a56dd3a..a9d599a9b15449f41d5fb7f1a2b0b595a6778c7a 100644 (file)
@@ -34,6 +34,7 @@
 #include <sys/stat.h>
 
 memoryinfo_t mpegts_input_queue_memoryinfo = { .my_name = "MPEG-TS input queue" };
+memoryinfo_t mpegts_input_table_memoryinfo = { .my_name = "MPEG-TS table queue" };
 
 static void
 mpegts_input_del_network ( mpegts_network_link_t *mnl );
@@ -1389,6 +1390,7 @@ mpegts_input_process
               memcpy(mtf->mtf_tsb, tsb, llen);
               mtf->mtf_mux = mm;
               mi->mi_table_queue_size += llen;
+              memoryinfo_alloc(&mpegts_input_table_memoryinfo, sizeof(mpegts_table_feed_t) + llen);
               TAILQ_INSERT_TAIL(&mi->mi_table_queue, mtf, mtf_link);
               table_wakeup = 1;
             }
@@ -1527,6 +1529,7 @@ mpegts_input_thread ( void * p )
 
   /* Flush */
   while ((mp = TAILQ_FIRST(&mi->mi_input_queue))) {
+    memoryinfo_free(&mpegts_input_queue_memoryinfo, sizeof(mpegts_packet_t) + mp->mp_len);
     TAILQ_REMOVE(&mi->mi_input_queue, mp, mp_link);
     free(mp);
   }
@@ -1553,6 +1556,7 @@ mpegts_input_table_thread ( void *aux )
       continue;
     }
     mi->mi_table_queue_size -= mtf->mtf_len;
+    memoryinfo_free(&mpegts_input_table_memoryinfo, sizeof(mpegts_table_feed_t) + mtf->mtf_len);
     TAILQ_REMOVE(&mi->mi_table_queue, mtf, mtf_link);
     pthread_mutex_unlock(&mi->mi_output_lock);
     
@@ -1576,6 +1580,7 @@ mpegts_input_table_thread ( void *aux )
 
   /* Flush */
   while ((mtf = TAILQ_FIRST(&mi->mi_table_queue)) != NULL) {
+    memoryinfo_free(&mpegts_input_table_memoryinfo, sizeof(mpegts_table_feed_t) + mtf->mtf_len);
     TAILQ_REMOVE(&mi->mi_table_queue, mtf, mtf_link);
     free(mtf);
   }