GNOME Bugzilla – Bug 339878
Add ogg vorbis re-tagging
Last modified: 2006-05-03 12:26:53 UTC
Rhythmbox should use the "vorbistag" element in development on bug 335635 to edit tags in ogg vorbis files.
Created attachment 64364 [details] [review] patch Adds ogg vorbis re-tagging using the "vorbistag" element from bug 335635. Requires oggmux/oggdemux/vorbisparse from cvs (I've set the version requirement to 0.10.6 because gst-plugin-base should be out soon. drop the reqs to build against cvs). ID3 tag editing appears to still work with 0.8 and 0.10, so I don't think I've broken it.
Erm, ID3 tag editing stopped working for me after applying patch. Tags looked they had changed in the interface, but upon restart ID3 tag changes were lost and reverted to their pre-retagging values. For me, ogg retagging doesn't work at all (Properties window remains uneditable). I do have the vorbistag element installed: GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10/ gst-inspect-0.10 vorbistag Factory Details: Long name: VorbisTag Class: Formatter/Metadata Description: Retags vorbis streams Author(s): James Livingston <doclivingston@gmail.com> Rank: none (0) Plugin Details: Name: vorbistag Description: Vorbis retagging plugin Filename: /usr/local/lib/gstreamer-0.10/libgstvorbistag.so Version: 0.10.2.1 License: LGPL Source module: gst-plugins-bad Binary package: GStreamer Bad Plug-ins CVS/prerelease Origin URL: Unknown package origin Couldn't find much useful in the "-d" debug log.
Ah, as far as OGG tagging goes, that would probably be because I need to drop the version to 0.10.5. Let me try that.
OK tagging works now, but has the same problem that I have pointed in connection with id3 retagging: it is lossy (bug #334375). Here is the tag info before retagging: ogginfo orig.ogg Processing file "orig.ogg"... New logical stream (#1, serial: 536eed2c): type vorbis Vorbis headers parsed for stream 1, information follows... Version: 0 Vendor: Xiphophorus libVorbis I 20010225 (1.0 beta 4) Channels: 1 Rate: 44100 Nominal bitrate: 128.000000 kb/s Upper bitrate not set Lower bitrate not set User comments section follows... title=Free Software Song artist=Fenster license=Creative Commons copyright=Copyright (C) 2002, Fenster LLC. Verbatim copying of this entire recording is permitted in any medium, provided this notice is preserved. Performers: Paul Robinson (vocals), Roman Kravec (guitar), Ed D'Angelo (bass), Dave Newman (drums), Brian Yarbrough (trumpet), Tony Moore (trumpet). Free software info at www.gnu.org speeches at audio-video.gnu.org/audio date=2004 album=None genre=Better composer=JS Bach Vorbis stream 1: Total data length: 2766048 bytes Playback length: 2m:59s Average bitrate: 123.221836 kbps Logical stream 1 ended and after retagging in RB (I don't know why the tags are now uppercase, is that standard?), note the loss of the custom "composer" tag: ogginfo many-tags.ogg Processing file "many-tags.ogg"... New logical stream (#1, serial: 25d6a48d): type vorbis Vorbis headers parsed for stream 1, information follows... Version: 0 Vendor: Xiphophorus libVorbis I 20010225 (1.0 beta 4) Channels: 1 Rate: 44100 Nominal bitrate: 128.000000 kb/s Upper bitrate not set Lower bitrate not set User comments section follows... TITLE=Free Software Song REPLAYGAIN_TRACK_PEAK=0.000000 ARTIST=Fenster REPLAYGAIN_ALBUM_GAIN=0.000000 ALBUM=Changed REPLAYGAIN_ALBUM_PEAK=0.000000 COPYRIGHT=Copyright (C) 2002, Fenster LLC. Verbatim copying of this entire recording is permitted in any medium, provided this notice is preserved. Performers: Paul Robinson (vocals), Roman Kravec (guitar), Ed D'Angelo (bass), Dave Newman (drums), Brian Yarbrough (trumpet), Tony Moore (trumpet). Free software info at www.gnu.org speeches at audio-video.gnu.org/audio DATE=2004-01-01 GENRE=Better LICENSE=Creative Commons TRACKNUMBER=0 DISCNUMBER=0 REPLAYGAIN_TRACK_GAIN=0.000000 Warning: EOS not set on stream 1 Vorbis stream 1: Total data length: 2766048 bytes Playback length: 2m:59s Average bitrate: 123.221836 kbps
As discussed on IRC, adding: gst_tag_setter_set_tag_merge_mode (GST_TAG_SETTER (mux), GST_TAG_MERGE_REPLACE); around line 186 just above: gst_tag_setter_merge_tags (GST_TAG_SETTER (mux), md->priv->tags, GST_TAG_MERGE_REPLACE_ALL); fixes the id3 retagging. (There is some inconsistency in implementation of the specs between plugins, see: bug #339918).
I've committed the patch to cvs, so we can use the vorbistag element if the user had it (I'm hoping to get it in -bad soon).