[Bug 620323] [mpegaudioparse] Add support for LAME tags and adjust segments based on the padding information from it

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 1 08:58:44 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=620323
  GStreamer | gst-plugins-good | 0.10.15

Carlos Rafael Giani <dv> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dv at pseudoterminal.org

--- Comment #11 from Carlos Rafael Giani <dv at pseudoterminal.org> 2012-08-01 15:58:36 UTC ---
I have been developing a plugin for MP3 playback using mpg123 to decode the
frames, with GstAudioDecoder as the base class, and relied on mpegaudioparse
for seeking. This has worked well, except for the gapless part, which has
turned out to be fairly difficult to achieve. I have tried out several ideas,
but they all fail when seeking occurs. 

One big problem I have encountered is that the number of padding samples
indicated by the LAME tag sometimes exceed the frame size. Example: frame size
1152 samples, encoder padding 1941 samples. I looked at the mpg123 code, which
can do gapless internally (I will refer to that later), and what it apparently
does is that it estimates the total length of the MP3, and subtracts the
padding length from that. Once decoding reaches the calculated length, playback
stops.

However, I could be wrong, and maybe I misinterpreted the number 1941.

Either way, one possibility would be to somehow truncate the start and end of
the segment, as Sebastian Dröge suggested above. That leaves one question open,
though: do sinks that have their sync property set to FALSE still respect the
start/end times of the segment? If not, the gap would return if sync=FALSE.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the gstreamer-bugs mailing list