diff options
author | Anton Belka <antonbelka@gmail.com> | 2012-05-08 20:12:42 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-05-09 12:24:11 +0200 |
commit | 9667e1e75c8187593c3a6115567385720d120b2e (patch) | |
tree | ed946e98e2d6c730533df8dccdbf5478b2ef7838 /tools | |
parent | 63234a9dab0e92642666de278cd61a87ca40f394 (diff) | |
download | gstreamer-9667e1e75c8187593c3a6115567385720d120b2e.tar.gz |
gst-launch: print tags in toc
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gst-launch.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/tools/gst-launch.c b/tools/gst-launch.c index 2113bf431b..9161594f35 100644 --- a/tools/gst-launch.c +++ b/tools/gst-launch.c @@ -438,6 +438,27 @@ print_tag (const GstTagList * list, const gchar * tag, gpointer unused) } } +static void +print_tag_foreach (const GstTagList * tags, const gchar * tag, + gpointer user_data) +{ + GValue val = { 0, }; + gchar *str; + gint depth = GPOINTER_TO_INT (user_data); + + gst_tag_list_copy_value (&val, tags, tag); + + if (G_VALUE_HOLDS_STRING (&val)) + str = g_value_dup_string (&val); + else + str = gst_value_serialize (&val); + + g_print ("%*s%s: %s\n", 2 * depth, " ", gst_tag_get_nick (tag), str); + g_free (str); + + g_value_unset (&val); +} + #define MAX_INDENT 40 static void @@ -461,7 +482,9 @@ print_toc_entry (gpointer data, gpointer user_data) PRINT ("\n"); indent += 2; - /* TODO: print tags */ + /* print tags */ + gst_tag_list_foreach (entry->tags, print_tag_foreach, + GINT_TO_POINTER (indent)); /* loop over sub-toc entries */ g_list_foreach (entry->subentries, print_toc_entry, |