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 556734 - [decodebin] stripped id3 tags
[decodebin] stripped id3 tags
Status: RESOLVED DUPLICATE of bug 580318
Product: GStreamer
Classification: Platform
Component: dont know
0.10.21
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-10-17 14:10 UTC by Stanislav Ochotnicky
Modified: 2009-05-31 22:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Output from running gst-launch with 'identity' after decodebin (5.63 KB, text/plain)
2008-10-19 18:50 UTC, Stanislav Ochotnicky
Details
Short MP3 with replygain tags. (38.35 KB, audio/mpeg)
2008-10-20 16:38 UTC, Scott Robinson
Details

Description Stanislav Ochotnicky 2008-10-17 14:10:47 UTC
When trying to convert mp3 file to lower bitrate mp3  using pipeline:
gst-launch-0.10 -v filesrc location=foo.mp3 ! decodebin ! identity ! audioconvert ! lame  ! id3v2mux ! filesink location=bar.mp3

Output file "bar.mp3" does not have id3 tags of original file, and output of 'identity' plugin also shows that 'decodebin' output has no tags.

Command
gst-launch-0.10 -t playbin uri=file://foo.mp3

displays tags present in original file. This problem exists for all (as far as I could tell) my mp3 files. The tags should be id3v2.4 (easytag - libid3tag).

If instead of mp3 file I try to convert ogg, the tags (author, album, etc.) are decoded and added to resulting mp3 file as id3 tags.


If it helps I am using Gentoo, but AFAIK there are no major Gentoo-specific patches used. Will try HEAD revision during the weekend.
Comment 1 Sebastian Dröge (slomo) 2008-10-19 11:58:13 UTC
Which versions of gstreamer, gst-plugins-base, gst-plugins-good and gst-plugins-ugly do you have installed?

Also, do you have the Fluendo MP3 decoder plugin installed?

There was a bug in previous releases of gst-plugins-ugly that would cause this behaviour but with the latest releases this should be fixed, no idea if this bug is also present in the Fluendo MP3 decoder.
Comment 2 Stanislav Ochotnicky 2008-10-19 18:50:15 UTC
Created attachment 120877 [details]
Output from running gst-launch with 'identity' after decodebin
Comment 3 Stanislav Ochotnicky 2008-10-19 18:56:08 UTC
I updated my packages to these versions without changes in behaviour:
gstreamer - 0.10.21
gst-plugins-base - 0.10.21
gst-plugins-good - 0.10.10
gst-plugins-ugly - 0.10.9

Gentoo has changed the way they install plugins so even when package gst-plugins-good exists it doesn't install all plugins (some have their own ebuilds). I don't think that's the case but it sure makes ensuring that I am up to date a bit harder. There are few plugins from other versions left, but they are not used in example pipeline (ogg, theora, xv, etc.). I will update them also, so we will see.


When I encountered this problem I also tried Fluendo and it didn't work either.

I added attachment with output from 'identity' plugin, maybe it will help.
Comment 4 Stanislav Ochotnicky 2008-10-19 19:26:22 UTC
I just found workaround and reason for the problems.

Apparently for some reason demuxer stops processing tags after finding replaygain tags. If I remove replaygain tags with:
mp3gain -s d foobar.mp3

Everything works as expected and bug doesn't show up.
I think that this should make it easier to pinpoint the problem.
Comment 5 Scott Robinson 2008-10-20 08:49:30 UTC
I too am having the same issue, same symptoms.

ReplayGain tags appear to cause the bug to occur.
Comment 6 Sebastian Dröge (slomo) 2008-10-20 11:04:35 UTC
Could you attach such an MP3 file with replaygain tags that shows this behaviour? A small testcase with 10 seconds of silence or something would be good enough already ;)
Comment 7 Tim-Philipp Müller 2008-10-20 11:41:26 UTC
As moch on IRC remarked earlier, it might have to do with tagdemux not caching tag events received on the sink pad when the source pad is not yet linked, so that id3demux ! apedemux ! ... would drop the id3 tags, for example.
Comment 8 Scott Robinson 2008-10-20 16:38:15 UTC
Created attachment 120941 [details]
Short MP3 with replygain tags.

Attached is a test file. I created it using:

$ gst-launch-0.10 audiotestsrc num-buffers=100 ! taginject tags="title=testt,artist=testa" ! lame ! id3v2mux ! filesink location=test.mp3
[...]
$ mp3gain test.mp3

You can validate it has tags:

$ gst-launch-0.10 -m filesrc location=test.mp3 ! id3demux ! fakesink silent=TRUE 2>/dev/null | grep taglist
Got Message from element "id3demux0" (tag): taglist, title=(string)testt, artist=(string)testa;

And you can validate it fails:

$ gst-launch-0.10 filesrc location=test.mp3 ! decodebin ! audioconvert ! lame ! id3v2mux ! filesink location=verify.mp3
[...]
$ gst-launch-0.10 -m filesrc location=verify.mp3 ! id3demux ! fakesink silent=TRUE 2>/dev/null | grep taglist
[Nothing!]
Comment 9 Tobias Mueller 2009-04-21 10:35:28 UTC
Hey Sebastian :) I think, your question in comment #6 has been answered. I am thus reopening.
Comment 10 Tim-Philipp Müller 2009-05-31 22:40:45 UTC
Should be fixed in the next -base release (0.10.24):

tpm@zingle:~/gst/git/gstreamer$ gst-launch-0.10 filesrc location=~/samples/556734-multiple-id3-tags.mp3 ! decodebin ! fakesink -v 2>&1 | grep tag
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstApeDemux:apedemux0.GstPad:sink: caps = application/x-apetag
/GstPipeline:pipeline0/GstFakeSink:fakesink1: last-message = "event   ******* E (type: 118, taglist, title=(string)testt, artist=(string)testa;) 0x1eacb80"
/GstPipeline:pipeline0/GstFakeSink:fakesink1: last-message = "event   ******* E (type: 118, taglist, replaygain-track-gain=(double)-12.43, replaygain-track-peak=(double)0.76876299999999997;) 0x1eb2000"
/GstPipeline:pipeline0/GstFakeSink:fakesink1: last-message = "event   ******* E (type: 118, taglist, audio-codec=(string)\"MPEG\\ 1\\ Audio\\,\\ Layer\\ 3\\ \\(MP3\\)\";) 0x1ebfe80"
/GstPipeline:pipeline0/GstFakeSink:fakesink1: last-message = "event   ******* E (type: 118, taglist, bitrate=(guint)128000, has-crc=(boolean)false, channel-mode=(string)mono;) 0x1eb2400"


*** This bug has been marked as a duplicate of 580318 ***