<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif">Hi,<br><br>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?<br><br>Only the following data has been extracted.<br>             layer: 3<br>             mode: joint<br>             emphasis: none<br>             audio codec: MPEG-1 layer 3<br>
             bitrate: 128000<br><br>Pipeline is as follows:<br><br>[code]<br>app-&gt;pipeline= gst_parse_launch(&quot;appsrc name=mysource ! audio/mpeg  ! mad !  alsasink&quot;, NULL);<br>[/code]<br><br>Audio data fed to the appsrc element<br>
<br>[code]<br>buf =( GstBuffer *) gst_app_buffer_new (data, READBUF, g_free, data);<br>g_signal_emit_by_name (GST_APP_SRC (app-&gt;appsrc), &quot;push-buffer&quot;, buf, &amp;ret);<br>[/code]<br><br>Bus message<br><br>[code]<br>
case GST_MESSAGE_TAG:<br>{<br>    GstTagList *tags = NULL;<br>        char *artist;<br>        gst_message_parse_tag (message, &amp;tags);<br>        g_print (&quot;Got tags from element %s:\n&quot;, GST_OBJECT_NAME (message-&gt;src));<br>
        if (gst_tag_list_get_string (tags, GST_TAG_ARTIST, &amp;artist))<br>        {<br>           printf(&quot;got artist: %s\n&quot;,artist);<br>        }<br>        else<br>        {<br>          printf(&quot;no artist!! \n&quot;);<br>
        }<br>        gst_tag_list_foreach (tags, print_tag, NULL);<br>        g_print (&quot;\n&quot;);<br>        gst_tag_list_free (tags);<br>        break;<br>[/code]<br><br>print_tag function code<br>[code]<br>static void print_tag (const GstTagList * list, const gchar * tag, gpointer unused)<br>
{<br>  gint i, count;<br>  count = gst_tag_list_get_tag_size (list, tag);<br>  for (i = 0; i &lt; count; i++) {<br>    gchar *str;<br>    if (gst_tag_get_type (tag) == G_TYPE_STRING) {<br>      if (!gst_tag_list_get_string_index (list, tag, i, &amp;str))<br>
        g_assert_not_reached ();<br> <br>    } else {<br>      str =<br>          g_strdup_value_contents (gst_tag_list_get_value_index (list, tag, i));<br>    }<br>    if (i == 0) {<br>      g_print (&quot;  %15s: %s\n&quot;, gst_tag_get_nick (tag), str);<br>
    } else {<br>      g_print (&quot;                 : %s\n&quot;, str);<br>    }<br>    g_free (str); <br>  }<br>}<br>[/code]<br><br>Thanks and Regards,<br>Sree Gowri<br></font>