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 633466 - [katedec] Pushes events before the final caps are known
[katedec] Pushes events before the final caps are known
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal critical
: 0.10.21
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on: 600929
Blocks:
 
 
Reported: 2010-10-29 14:03 UTC by Sebastian Dröge (slomo)
Modified: 2010-12-27 10:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
katedec: Only push events downstream when the final caps are known (14.16 KB, patch)
2010-10-29 17:15 UTC, Sebastian Dröge (slomo)
rejected Details | Review

Description Sebastian Dröge (slomo) 2010-10-29 14:03:16 UTC
WARNING: from element /GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:tbin/GstSubtitleOverlay:suboverlay: Internal GStreamer error: negotiation problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer. Additional debug info: gstsubtitleoverlay.c(736): _pad_blocked_cb (): /GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:tbin/GstSubtitleOverlay:suboverlay: Subtitle sink is blocked but we have no subtitle caps


This happens if the peer of the subtitleoverlay pad doesn't give any caps on get_negotiated_caps() or doesn't give fixed caps on get_caps() although a buffer or newsegment event arrived already.
Comment 1 Sebastian Dröge (slomo) 2010-10-29 15:57:55 UTC
Ok, working on it now. That's easy to fix.
Comment 2 Sebastian Dröge (slomo) 2010-10-29 17:14:55 UTC
Not, not easy to fix. The bug is in katedec in bad.

The problem is, that it pushes events before the final tags are known. And it can't be easily fixed because the final tags are only known after the first subtitle buffer arrived... and this could be 1000 hours into the file, which would let the pipeline stall.

No idea how to fix this, attached is a patch that caches events and tags but for the above reason it doesn't work with Sintel.
Comment 3 Sebastian Dröge (slomo) 2010-10-29 17:15:48 UTC
Created attachment 173509 [details] [review]
katedec: Only push events downstream when the final caps are known

See bug #633466.
Comment 4 ogg.k.ogg.k 2010-10-30 09:23:25 UTC
This looks like part of what this patch does:
https://bugzilla.gnome.org/attachment.cgi?id=153537&action=diff
Any chance the patches in
https://bugzilla.gnome.org/show_bug.cgi?id=600929
could be looked at, if they were merely unnoticed ?
I was waiting for feedback as I was (and still am) not at east with gst, and very unsure if I was heading in the right direction.
Comment 5 ogg.k.ogg.k 2010-10-30 17:43:37 UTC
Nevermind, these patches seem to have rotted since I posted them, and were ignored anyway, so strike my last comment.
Comment 6 Tim-Philipp Müller 2010-10-30 18:08:37 UTC
Maybe what we can do is look at the category in the header and just either set pango markup caps or subpic caps on the sink pad depending on that. I'll try that later.


> [T]hese patches ... were ignored anyway

I don't think they were (actively) ignored, it's just that no one has had time to look at them closely enough yet. That's a bit unfortunate of course given how long it's been, but segment handling here is not entirely trivial, and there's just so much other stuff, and it's easy to overlook/forget about some patches. Maybe you could post a ping on the bug every now and then to attract attention to it. (Anyway)
Comment 7 ogg.k.ogg.k 2010-10-30 19:13:39 UTC
Sorry, I do realize there's a lot of more important things to do in too little time :) It's just that I was very unsure of what I was doing with that segment handling code, and wanted to get feedback before working more on it.
I'll just wait till slomo's patch is in, then post updated patches, I guess.
Comment 8 Sebastian Dröge (slomo) 2010-10-31 08:45:16 UTC
(In reply to comment #6)
> Maybe what we can do is look at the category in the header and just either set
> pango markup caps or subpic caps on the sink pad depending on that. I'll try
> that later.

What do you mean by category in the header? Note that you can't change the caps from pango markup to plaintext or the other way around unless you use a real getcaps function on the srcpad.

(In reply to comment #7)
> Sorry, I do realize there's a lot of more important things to do in too little
> time :) It's just that I was very unsure of what I was doing with that segment
> handling code, and wanted to get feedback before working more on it.
> I'll just wait till slomo's patch is in, then post updated patches, I guess.

...and Tim's patch to extract the type from the header :) I'll take a look at your patches this evening and give you some feedback about the segment handling. I planned to look at them ages ago already but forgot about it for some reason. Sorry for that.
Comment 9 ogg.k.ogg.k 2010-10-31 11:46:05 UTC
Thanks much.
As for the markup/plaintext switch, the category can't distinguish, but there's a markup type in the header that's already used to set caps on the buffers (see gbbolean plain in gstkatedec.c). It sounds like I'd need one of these getcaps functions, so I'll look around to see if I can find another element that does something similar to see how that's used.
Comment 10 Tim-Philipp Müller 2010-10-31 12:13:58 UTC
We don't necessarily have to distinguish between plain text and markup. We could just always output markup and escape plain text as needed.

With category I mean this in the header: http://wiki.xiph.org/OggKate#Category_definition (plus legacy version) - we already use this to determine the kate caps in oggdemux.