[eglglessink] Is eglglessink reusable?
Ilya Kulakov
kulakov.ilya at gmail.com
Wed Feb 26 06:44:57 PST 2014
I'm trying to reuse sink in order to prevent "flickering" when source is changed.
My pipeline consists of:
src_bin
filesrc
qtdemux
h264parse
omxh264dec
sink_bin
eglglessink
In order to "smoothly" switch sources, I added probe of type "GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM" to sink pad of sink_bin.
Once this probe is called I check for whether event is EOS and if it is, I add callback via g_idle_add, where I:
- Unlink src_bin from sink_bin
- Remove src_bin and set its state to NULL
- Create new src_bin that points to a different file
- Add new src_bin to the pipeline and link if with sink_bin
- Synchronize state of the src_bin via gst_element_sync_state_with_parent
However, instead of smooth "gapless" switch I get this:
- First frame of the new src_bin is displayed
- All other frames are dropped (i.e. lots of QOS messages are sent by omxh264dec)
I tend to think that this is either bug in omxh264dec or eglglessink. I think so because the same code with almost the same pipeline perfectly
works on my Mac:
src_bin
filesrc
qtdemux
h264parse
avdec_h264
sink_bin
videoconvert
osxvideosink
Is it by design/known bug for omxh264dec-eglglessink combination?
Best Regards,
Ilya Kulakov
More information about the gstreamer-devel
mailing list