[gst-devel] Fwd: [Rhythmbox-devel] tagging hit GStreamer

in7y118 at public.uni-hamburg.de in7y118 at public.uni-hamburg.de
Tue Nov 25 05:10:02 CET 2003


I suck at using email.
This time with right email adrress.

----- Forwarded message from Benjamin Otte <in7y118 at public.uni-hamburg.de> ----
-
    Date: Mon, 24 Nov 2003 13:36:25 +0100 (NFT)
    From: Benjamin Otte <in7y118 at public.uni-hamburg.de>
Reply-To: gstreamer-devel at sourceforge.net
 Subject: [Rhythmbox-devel] tagging hit GStreamer
      To: gstreamer-devel at sourceforge.net

Hi people,

I finally (after 0.7.2 was out) committed the tagging stuff.
Don't forget to rerun gst-register after updating your cvs!

If you want to get a feel how it works and what it does, I suggest the
following ways:
- Look at the code. gst/gsttag.h is the API.
gst/gsttaginterface contains the GstTagSetter interface for
elements that allow setting tags.
- Look at example code. tools/gst-launch.c includes a new -t switch to
output tags when they arrive. examples/retag contains simple example code
for retagging and transcoding while extracting Artist and Title from the
filename.
- Look at plugins that already implement the shiny new stuff. In the
plugins package look at ext/mad/gstmad.c for a decoding element,
ext/vorbis/vorbisenc.c for an encoding element and gst/tags/vorbistag.c or
ext/mad/gstid3tag.c for a retagging/extraction element. gst/tags/*.[ch]
contains general code for common tag conversions.

What does work currently?
- transcoding with supported plugins. gst-launch file:///path/to/file.mp3
! mad ! vorbisenc ! file:///path/to/file.ogg should preserve tags (at
least ID3v2).
- (reasonably fast) tag extraction using spider. gst-launch -t
file:///path/to/file.{mp3|ogg} ! spider ! application/x-gst-metadata !
fakesink should print out your tags.
- The examples. (d'uh)

Some things that will probably become FAQs:
Q: GStreamer tagging sucks. It doesn't extract tags from $format.
A: That's because noone wrote/updated the plugin for it. It should be
quite easy to write a simple tag retagging/extraction element for most
formats. Look at gst/tags/vorbisfile.c. It's not that hard.
This is also a call to all our hackers: Please adapt plugins to the new
tagging system. I can't do them all myself as I only have so much time
myself.

Q: Hey, my oh so important $something tag is not supported by
GStreamer or its plugins.
A: I only converted the Rhythmbox/monkey-media tags which in turn is more
or less a copy of the vorbis comment suggestions. GStreamer should in
general support a lot of tags. But I don't have a clue which one that
would be. You probably know that better.
If there is a tag you want included (or removed), please drop a mail and
suggest a name (like "place"), a type (string) and a
description (oneliner, like "place this media was recorded."). If you know
them, please also add correct vorbiscomment, ID3v2 or other tagging system
identifiers.
If we reject some tag, you still have the option to register it yourself
in your app/plugin. :)
if (!gst_tag_exists ("mytag")) gst_element_register ("mytag", G_TYPE_MINE,
        _("my tag"), _("my important and often misunderstood tag."));

Q: The API for tagging misses feature X.
A: I only can imagine so much. While I think this API is quite cool myself
(I already implemented 4 plugins using it, I did not just invent it) there
might be something you are missing. If that's the case, please get
in contact and suggest a change. The API is in no way frozen yet.

Q: Dude, there's no way to autoplug tag changing in Rh^H^Hmy tag editor.
A: Sorry, I know. It's something that's not easy and I have to think
about a bit more. It depends on a new autoplugger, too. For now I suggest
hardcoding tag editing for common types and reject it for others.
create a pipeline src ! typefind, wait for the have_type signal and
continue connecting depending on type. Tag extraction should work with
spider though.

So now it's your turn. I'm especially hoping for some people to fix
existing plugins (like lame and vorbisfile), write more tag
extractor/retagger, the Rhythmbox guys to implement tag reading/writing
and someone to do a Sound Juicer patch to use the new TagSetter interface.

I hope it works. I rewrote that stuff 4 times since joinging the
project and this time is the first time I think it's ok. :)

Benjamin

_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel at gnome.org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel

----- End forwarded message -----






More information about the gstreamer-devel mailing list