[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