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

index 3d76875932daa25a889af4ba7ffc39c26e1016d5..8f51bbde4a8f324f7cc4bb0fbf4e257e547f2fd0 100644 (file)
@@ -18,6 +18,9 @@
 
 #include "input.h"
 #include "mpegts/fastscan.h"
+#include "memoryinfo.h"
+
+extern memoryinfo_t mpegts_input_queue_memoryinfo;
 
 void
 mpegts_init ( int linuxdvb_mask, int nosatip, str_list_t *satip_client,
@@ -30,6 +33,9 @@ mpegts_init ( int linuxdvb_mask, int nosatip, str_list_t *satip_client,
   idclass_register(&mpegts_service_class);
   idclass_register(&mpegts_service_raw_class);
 
+  /* Memory info */
+  memoryinfo_register(&mpegts_input_queue_memoryinfo);
+
   /* FastScan init */
   dvb_fastscan_init();
 
index 656b471fad59d478faf69bad7d0c36cdb3d5c68d..762776ee550a2404573321fff6e1707ced0dabf9 100644 (file)
 #include "notify.h"
 #include "idnode.h"
 #include "dbus.h"
+#include "memoryinfo.h"
 
 #include <pthread.h>
 #include <assert.h>
 #include <fcntl.h>
 #include <sys/stat.h>
 
+memoryinfo_t mpegts_input_queue_memoryinfo = { .my_name = "MPEG-TS input queue" };
 
 static void
 mpegts_input_del_network ( mpegts_network_link_t *mnl );
@@ -1121,6 +1123,7 @@ retry:
 
     pthread_mutex_lock(&mi->mi_input_lock);
     if (mmi->mmi_mux->mm_active == mmi) {
+      memoryinfo_alloc(&mpegts_input_queue_memoryinfo, sizeof(mpegts_packet_t) + len2);
       TAILQ_INSERT_TAIL(&mi->mi_input_queue, mp, mp_link);
       tvh_cond_signal(&mi->mi_input_cond, 0);
     } else {
@@ -1470,6 +1473,7 @@ mpegts_input_thread ( void * p )
       tvh_cond_wait(&mi->mi_input_cond, &mi->mi_input_lock);
       continue;
     }
+    memoryinfo_free(&mpegts_input_queue_memoryinfo, sizeof(mpegts_packet_t) + mp->mp_len);
     TAILQ_REMOVE(&mi->mi_input_queue, mp, mp_link);
     pthread_mutex_unlock(&mi->mi_input_lock);