Audio Metadata

Sree Gowri sreegowris at gmail.com
Wed Apr 11 21:23:32 PDT 2012


Hi,

I am trying to extract audio metadata like
streamurl,streamtitle,artist,genre,album.However I am not able to extract
the metadata using GstTagList. Below is the snippet of the code. Does
anyone suggest what are the additions to be done in order to extract the
metadata?

Only the following data has been extracted.
             layer: 3
             mode: joint
             emphasis: none
             audio codec: MPEG-1 layer 3
             bitrate: 128000

Pipeline is as follows:

[code]
app->pipeline= gst_parse_launch("appsrc name=mysource ! audio/mpeg  ! mad
!  alsasink", NULL);
[/code]

Audio data fed to the appsrc element

[code]
buf =( GstBuffer *) gst_app_buffer_new (data, READBUF, g_free, data);
g_signal_emit_by_name (GST_APP_SRC (app->appsrc), "push-buffer", buf, &ret);
[/code]

Bus message

[code]
case GST_MESSAGE_TAG:
{
    GstTagList *tags = NULL;
        char *artist;
        gst_message_parse_tag (message, &tags);
        g_print ("Got tags from element %s:\n", GST_OBJECT_NAME
(message->src));
        if (gst_tag_list_get_string (tags, GST_TAG_ARTIST, &artist))
        {
           printf("got artist: %s\n",artist);
        }
        else
        {
          printf("no artist!! \n");
        }
        gst_tag_list_foreach (tags, print_tag, NULL);
        g_print ("\n");
        gst_tag_list_free (tags);
        break;
[/code]

print_tag function code
[code]
static void print_tag (const GstTagList * list, const gchar * tag, gpointer
unused)
{
  gint i, count;
  count = gst_tag_list_get_tag_size (list, tag);
  for (i = 0; i < count; i++) {
    gchar *str;
    if (gst_tag_get_type (tag) == G_TYPE_STRING) {
      if (!gst_tag_list_get_string_index (list, tag, i, &str))
        g_assert_not_reached ();

    } else {
      str =
          g_strdup_value_contents (gst_tag_list_get_value_index (list, tag,
i));
    }
    if (i == 0) {
      g_print ("  %15s: %s\n", gst_tag_get_nick (tag), str);
    } else {
      g_print ("                 : %s\n", str);
    }
    g_free (str);
  }
}
[/code]

Thanks and Regards,
Sree Gowri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20120412/4c7bb663/attachment.html>


More information about the gstreamer-devel mailing list