GNOME Bugzilla – Bug 617563
matroskademux: pelicula.mkv doesn't preroll/play due to audio track without data
Last modified: 2016-02-16 17:32:47 UTC
Open Bug in Launchpad https://bugs.launchpad.net/bugs/574712 "Not work totem with movie. With VLC work fine" Movie: http://launchpadlibrarian.net/47627924/pelicula.mkv
The file advertises an AC-3 audio track, but there's not actually any audio data in the file, so the pipeline never prerolls. Not really sure who's fault this is - matroskademux? playbin2?
$ dpkg -l | grep gstreamer0.10-plugins-base ii gstreamer0.10-plugins-base 0.10.28-1 GStreamer plugins from the "base" set ii gstreamer0.10-plugins-base-apps 0.10.28-1 GStreamer helper programs from the "base" se
(In reply to comment #1) > The file advertises an AC-3 audio track, but there's not actually any audio > data in the file, so the pipeline never prerolls. Not really sure who's fault > this is - matroskademux? playbin2? I guess this should be fixed in decodebin2... if a pad was exposed but never had data while all other pads had a lot of data (maybe 1-2s of data?) it should be removed again.
(In reply to comment #3) > (In reply to comment #1) > > The file advertises an AC-3 audio track, but there's not actually any audio > > data in the file, so the pipeline never prerolls. Not really sure who's fault > > this is - matroskademux? playbin2? > > I guess this should be fixed in decodebin2... if a pad was exposed but never > had data while all other pads had a lot of data (maybe 1-2s of data?) it should > be removed again. This is going to be tricky, when the demuxer fired no_more_pads, we link the sinks and stop looking for the queue overrun signals..
See bug 651968
> I guess this should be fixed in decodebin2... if a pad was exposed but never > had data while all other pads had a lot of data (maybe 1-2s of data?) it should > be removed again. We'd need that "sparse" event then, so as to avoid removing subtitles and the like which might not come through till after a good while.
I think the demuxer should send a GAP event here, and that should make everything and the audio sink preroll as if there was silence data. Also see bug #685273 (Pre-rolling on GAP events doesn't work properly for audio sinks).
Plays fine for me now after commit 77403d0afee635f2de6c2e53a23e1f50ad0d00fa Author: Tim-Philipp Müller <tim@centricular.com> Date: Fri Aug 21 14:15:18 2015 +0100 matroska-demux: send GAP events for lagging audio and video streams too Send GAP events for non-subtitle streams too if they lag too much behind, but use a higher threshold than for subtitles. This helps with fixing prerolling with a file where one of the audio streams only has data starting from 19s onwards. It's not a complete fix yet, it also requires changes elsewhere, such as in baseparse, to make sure caps are propagated. https://bugzilla.gnome.org/show_bug.cgi?id=614460 https://bugzilla.gnome.org/show_bug.cgi?id=753899