[Bug 778163] parsebin: Don't expose endpad if corresponding decoder is not supported

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Feb 6 04:40:19 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=778163

--- Comment #5 from HoonHee Lee <hoonh83.lee at gmail.com> ---
(In reply to Edward Hervey from comment #4)
> This will be quite unfortunate if the sink supports that format (like
> passthrough HDMI) but there is no decoder present.
> 
> Also this will totally break the behaviour of parsebin outside of
> decodebin3. One might want to use parsebin for re-muxing purposes for
> example.
> 
> I would say the solution here is to (finally) implement the signals that
> were removed from db3/pb3 : https://bugzilla.gnome.org/show_bug.cgi?id=769079

As general purpose for parsebin, I agree with your opinion.

Let's pretend that there is a stream 1 video and 1 audio but, we can not find
available decoder for the audio.
When playbin2, we can play video without audio.
But, negotiation failure is happened and can not play in playbin3.
So, I think that most developers and end users may recognize this is a kind of
side effect or regression compared with playbin2.
Also, they want to play without audio in playbin3.


1) Can you acceptable my approach if I add new property likes 'needs-decoder'
in parsebin and then checking expose endpad or not?

2) I am not sure I can cope unsupported decoder after I implement the removed
signals from https://bugzilla.gnome.org/show_bug.cgi?id=769079.
Can I get a hint how to handle it with these signals?

Below is my observations after non available audio stream is exposed in
parsebin.
First one, we may have to handle then negotiation failure problem by Accept
Caps query from gstdecodebin3-parse.c.
Second, we may have to synchronize between available and non-available audio
stream by clock(e.g. running time) and drop buffers likes MQ or input-selector
if non-available audio stream is exposed in parsebin.
Third, we have have to handle preroll state by sending gap event when
transiting paused state if non-available audio stream is exposed in parsebin.

It would be very helpful if either my patch would be acceptable or you give a
hint to use these removed signals as well.

Thanks.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list