diff options
author | Stefan Sauer <ensonic@users.sf.net> | 2014-07-15 10:20:22 +0200 |
---|---|---|
committer | Stefan Sauer <ensonic@users.sf.net> | 2015-08-26 22:33:57 +0200 |
commit | e651e094ed60398dc89e99aea82bc70030c3cd7a (patch) | |
tree | d4612a6e47cba3b50fcc3630ddbd558ec6987488 | |
parent | 29e5c32b12711ee70b25f43c0e2467c46794ace1 (diff) |
gst-stats: filter complete thread section if we have no pads
-rw-r--r-- | tools/gst-stats.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/tools/gst-stats.c b/tools/gst-stats.c index ba3c803ca..9ed50a043 100644 --- a/tools/gst-stats.c +++ b/tools/gst-stats.c @@ -372,7 +372,11 @@ find_pad_stats_for_thread (gconstpointer value, gconstpointer user_data) { const GstPadStats *stats = (const GstPadStats *) value; - return (stats->thread_id == GPOINTER_TO_UINT (user_data)) ? 0 : 1; + if ((stats->thread_id == GPOINTER_TO_UINT (user_data)) && + (stats->num_buffers)) { + return 0; + } + return 1; } static void @@ -416,7 +420,13 @@ print_pad_stats (gpointer value, gpointer user_data) static void print_thread_stats (gpointer key, gpointer value, gpointer user_data) { - GSList *list = user_data, *node; + GSList *list = user_data; + GSList *node = g_slist_find_custom (list, key, find_pad_stats_for_thread); + + /* skip stats if there are no pads for that thread (e.g. a pipeline) */ + if (!node) + return; + #if 0 GstThreadStats *stats = (GstThreadStats *) value; guint cpuload = 0; @@ -442,11 +452,9 @@ print_thread_stats (gpointer key, gpointer value, gpointer user_data) (guint) time_percent); printf (" Avg/Max CPU load: %u %%, %u %%\n", cpuload, stats->max_cpuload); #endif - /* skip stats if there are no pads for that thread (e.g. a pipeline) */ - if ((node = g_slist_find_custom (list, key, find_pad_stats_for_thread))) { - puts (" Pad Statistics:"); - g_slist_foreach (node, print_pad_stats, key); - } + + puts (" Pad Statistics:"); + g_slist_foreach (node, print_pad_stats, key); } static void |