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 623824 - Choppy audio on WebM files produced by ffmpeg -acodec copy
Choppy audio on WebM files produced by ffmpeg -acodec copy
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Windows
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-07-08 11:19 UTC by Philip Jägenstedt
Modified: 2012-03-01 18:26 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Philip Jägenstedt 2010-07-08 11:19:08 UTC
http://code.google.com/p/webm/issues/detail?id=83

I've verified that this problem reproduces in Opera 10.60 and in GStreamer from git master.

Find a test case OGGTV.webm attached to the original bug.

I'm guessing this is related to the demuxer, but could be wrong.
Comment 1 Philip Jägenstedt 2010-07-08 13:59:55 UTC
Reproducable with this pipeline:

$ gst-launch filesrc location=OGGTV.webm ! matroskademux ! vorbisdec ! audioconvert ! autoaudiosink

Adding a vorbisparse element fixes the problem:


$ gst-launch filesrc location=OGGTV.webm ! matroskademux ! vorbisparse ! vorbisdec ! audioconvert ! autoaudiosink

This could indicate some kind of timestamping problem which is fixed by vorbisparse but which vorbisdec doesn't handle.
Comment 2 Sebastian Dröge (slomo) 2010-07-08 14:32:11 UTC
Yes, from a short look the timestamps in this file look a bit off, which then confuses vorbisdec. vorbisparse will correct the timestamps.

So I'd say this is a broken file or the jitter tolerance in vorbisdec should be increased.
Comment 3 Philip Jägenstedt 2010-07-08 14:39:48 UTC
Do you have some handy tool to look at the timestamps? I resorted to grepping the output of GST_DEBUG=vorbisdec:5. Here's how things in the choppy case:

0:00:00.141078842 25871  0x947e940 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.001000000, dur 0:00:00.012000000
0:00:00.141811127 25871  0x947e940 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.003000000, dur 0:00:00.021333333
0:00:00.142077362 25871  0x947e940 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.004000000, dur 0:00:00.021333333
0:00:00.142341642 25871  0x947e940 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.005000000, dur 0:00:00.021333333
0:00:00.142605991 25871  0x947e940 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.007000000, dur 0:00:00.021333333

And here's what it looks like with vorbisparse upstream:

0:00:00.503789262 25888  0x97bae68 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.000000000, dur 0:00:00.012000000
0:00:00.505079510 25888  0x97bae68 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.012000000, dur 0:00:00.021333333
0:00:00.505333243 25888  0x97bae68 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.033333333, dur 0:00:00.021333333
0:00:00.505576989 25888  0x97bae68 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.054666667, dur 0:00:00.021333333
0:00:00.505818011 25888  0x97bae68 DEBUG              vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.076000000, dur 0:00:00.021333333
Comment 4 Sebastian Dröge (slomo) 2010-07-08 14:42:58 UTC
You could use "identity" and run gst-launch-0.10 with -v
Comment 5 Tim-Philipp Müller 2012-03-01 18:26:28 UTC
This plays fine with the new GstAudioDecoder-based vorbisdec for me (which tolerates some jitter). Please re-open if it's still an issue for you with the latest releases.