After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 518933 - mp3 tags are not copied when converting to another format
mp3 tags are not copied when converting to another format
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
0.10.17
Other Linux
: Normal normal
: 0.10.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-02-26 21:53 UTC by Gautier Portet
Modified: 2008-02-27 13:17 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22



Description Gautier Portet 2008-02-26 21:53:28 UTC
The tags from a mp3 file are lost when converting.

I tried the following command:

gst-launch-0.10 -t filesrc location=test.mp3 ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location=test.mp3.ogg

The resulting Ogg Vorbis file doesn't contains tags at all.
The source mp3 have id3v2 tags.
The -t option does print correct tags.
The output format doesn't matter, it's also broken when converting to flac or mp3.
Comment 1 Sebastian Dröge (slomo) 2008-02-27 07:30:35 UTC
This might be caused by id3demux to output the tags before any NEWSEGMENT event is sent... Tim, what do you think?
Comment 2 Sebastian Dröge (slomo) 2008-02-27 11:49:22 UTC
No, it isn't.

I can reproduce it though, vorbisenc only gets the tags from mp3parse it seems.
Comment 3 Sebastian Dröge (slomo) 2008-02-27 12:16:26 UTC
Ok, when using ... ! id3demux ! mp3parse ! mad ! audioconvert ! ... it works.

Reason is, that decodebin didn't link mp3parse to mad yet, thus the TAG event is dropped:

0:00:01.561236115 10263 0x8173f78 DEBUG             GST_PADS gstpad.c:4150:gst_pad_push_event:<mpegaudioparse0:src> Dropping event because pad is not linked
Comment 4 Sebastian Dröge (slomo) 2008-02-27 13:17:50 UTC
2008-02-27  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/mad/gstmad.c: (gst_mad_dispose), (gst_mad_sink_event),
	(gst_mad_chain):
	* ext/mad/gstmad.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_dispose),
	(gst_mp3parse_sink_event), (gst_mp3parse_emit_frame):
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	Cache all events except EOS if we still have to send a NEWSEGMENT
	event. This will let TAG events be forwarded until after decodebin
	to an encoder for example as decodebin only links the pads
	after NEWSEGMENT. Fixes bug #518933.