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 675189 - [0.11] [matroskademux] Send gap event for subtitle streams
[0.11] [matroskademux] Send gap event for subtitle streams
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.11.x
Other All
: Normal blocker
: 0.11.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 678385
 
 
Reported: 2012-04-30 21:01 UTC by Matej Knopp
Modified: 2012-06-19 10:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch (1.94 KB, patch)
2012-04-30 21:01 UTC, Matej Knopp
committed Details | Review

Description Matej Knopp 2012-04-30 21:01:56 UTC
Created attachment 213142 [details] [review]
Patch

Currently the demuxer sends segment events
Comment 1 Mark Nauwelaerts 2012-05-01 12:59:17 UTC
Suffice it to say this would (only?) make sense if the change is done "system-wide" for other such instances as well (in demuxers, collectpads, etc ?).

Btw, should these other instances also include using the gap event as a packet-lost replacement in jitterbuffer (using newsegment up to now for that) ?

[nitpick: there is a "Synchornizing" in the patch]
Comment 2 Matej Knopp 2012-05-01 17:00:04 UTC
I don't think I can fix this in all gstreamer demuxers, however IIRC the current code that sends segment events in matroska is currently broken anyway, as segment base is always 0.
Comment 3 Sebastian Dröge (slomo) 2012-05-01 21:34:12 UTC
The handling of the GAP event should at least be implemented in textoverlay (and ideally basesink, at least for prerolling) to make sure that the implementation in matroskademux works at all and makes sense this way.

Patching every single demuxer and other element is of course not necessary :)
Comment 4 Matej Knopp 2012-06-19 05:39:10 UTC
Guys, this one is actually more important than it seems (possibly applies for other muxers as well), not sending gap event causes the pipeline to stall.

Decodebin will not block the subtitle stream on sticky events (because doing that would possible block the stream before allocation query, which is serialized now), so caps and segment event will not block the GstDecodePad.

source_pad_blocked_cb in gstdecodebin2 needs a non-sticky event or data to trigger the blocking.

Otherwise, if the subtitle pad does not get blocked, other pads will not get exposed.
Comment 5 Sebastian Dröge (slomo) 2012-06-19 06:28:27 UTC
Yes, I agree that this is really important to fix. Not only in the demuxers but also in sinks and overlay elements (and without changes there sending the events in the demuxer doesn't make a difference anyway)
Comment 6 Matej Knopp 2012-06-19 06:34:58 UTC
Sending the event in demuxer makes difference, because without it decodebin gets stuck (as described in previous comment) so you don't even get basic playback working. Also for muxers GstCollectPads probably needs gap support as well.
Comment 7 Sebastian Dröge (slomo) 2012-06-19 10:22:38 UTC
Comment on attachment 213142 [details] [review]
Patch

commit c55e492e80e3e9c29c88176dca5759fd86988195
Author: Matej Knopp <matej.knopp@gmail.com>
Date:   Mon Apr 30 22:59:58 2012 +0200

    matroska-demux: Send gap events for subtitle streams