1. glcontextid function is replaced by gstreamer gst_gl_context_new_wrapped . 2. call gst_init before gst_gl_display_new , seems gst_gl_display_new depends on gst_allocator_register , which only worked after gst_init called 3. flush gstreamer OpenGL context before using shared texture, fix flicker problem. https://bugzilla.gnome.org/show_bug.cgi?id=735566