summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAnton Belka <antonbelka@gmail.com>2012-05-08 20:12:42 +0300
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-05-09 12:24:11 +0200
commit9667e1e75c8187593c3a6115567385720d120b2e (patch)
treeed946e98e2d6c730533df8dccdbf5478b2ef7838 /tools
parent63234a9dab0e92642666de278cd61a87ca40f394 (diff)
downloadgstreamer-9667e1e75c8187593c3a6115567385720d120b2e.tar.gz
gst-launch: print tags in toc
Diffstat (limited to 'tools')
-rw-r--r--tools/gst-launch.c25
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,