From: Ronald S. Bultje Date: Mon, 11 Oct 2004 12:02:09 +0000 (+0000) Subject: ext/cdparanoia/gstcdparanoia.c: Report discid as metadata, add duration. X-Git-Tag: BRANCH-GSTREAMER-0_8-ROOT~521 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4c826232ada1869cd414999cef080002a8f9bc6;p=platform%2Fupstream%2Fgst-plugins-base.git ext/cdparanoia/gstcdparanoia.c: Report discid as metadata, add duration. Original commit message from CVS: * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init), (cdparanoia_get), (cdparanoia_open): Report discid as metadata, add duration. --- diff --git a/ChangeLog b/ChangeLog index 1a4f5af..1dcc728 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-10-11 Ronald S. Bultje + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init), + (cdparanoia_get), (cdparanoia_open): + Report discid as metadata, add duration. + 2004-10-11 Wim Taymans * gst/playback/gstplaybasebin.c: (setup_source): diff --git a/ext/cdparanoia/gstcdparanoia.c b/ext/cdparanoia/gstcdparanoia.c index 2b95a8c..f1a95f6 100644 --- a/ext/cdparanoia/gstcdparanoia.c +++ b/ext/cdparanoia/gstcdparanoia.c @@ -272,6 +272,11 @@ cdparanoia_class_init (CDParanoiaClass * klass) g_param_spec_string ("discid", "discid", "The dics id", NULL, G_PARAM_READABLE)); + /* tags */ + gst_tag_register ("discid", GST_TAG_FLAG_META, G_TYPE_STRING, + _("discid"), _("CDDA discid for metadata retrieval"), + gst_tag_merge_use_first); + gobject_class->set_property = cdparanoia_set_property; gobject_class->get_property = cdparanoia_get_property; gobject_class->dispose = cdparanoia_dispose; @@ -520,6 +525,9 @@ cdparanoia_get (GstPad * pad) buf = gst_buffer_new_and_alloc (CD_FRAMESIZE_RAW); memcpy (GST_BUFFER_DATA (buf), cdda_buf, CD_FRAMESIZE_RAW); GST_BUFFER_TIMESTAMP (buf) = timestamp; + gst_pad_convert (pad, GST_FORMAT_BYTES, CD_FRAMESIZE_RAW, + &format, ×tamp); + GST_BUFFER_DURATION (buf) = timestamp; /* update current sector */ src->cur_sector++; @@ -650,6 +658,7 @@ add_index_associations (CDParanoia * src) static gboolean cdparanoia_open (CDParanoia * src) { + GstTagList *taglist; gint i; gint paranoia_mode; @@ -704,6 +713,11 @@ cdparanoia_open (CDParanoia * src) g_object_notify (G_OBJECT (src), "discid"); g_object_thaw_notify (G_OBJECT (src)); + taglist = gst_tag_list_new (); + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, "discid", src->discid, NULL); + gst_element_found_tags (GST_ELEMENT (src), taglist); + /* no need to forward, because discid is useless to other elements */ + if (src->toc_bias) { src->toc_offset -= cdda_track_firstsector (src->d, 1); }