GL: external-oes shader places precision qualifier before #extension (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update)
After updating to 1.15.90 or 1.16.0
Video streaming decoding no longer works on Android.
I use libgstreamer_android my config is:
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS := coreelements udp rtsp rtpmanager rtp webrtc videoparsersbad openh264 videoconvert opengl androidmedia
GSTREAMER_EXTRA_LIBS := -liconv
G_IO_MODULES := gnutls
GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk
and stream config is :
rtspsrc location=%1$s " + "tls-validation-flags=generic-error " + "latency=1000 ! "
+ "rtph264depay ! " + "h264parse ! " + "amcviddec-(hw decoder found on Android with MediaCodecList) !" + "videoconvert ! "
+ "glimagesink queue2
with 1.15.2 Gstreamer stream playback is working fine, however after update to 1.15.90 or 1.16.0 stream is failing with such error:
2019-04-20 14:11:02.570 com.bshg.homeconnect.android.dev D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [1440x859]-format:2
2019-04-20 14:11:02.571 com.bshg.homeconnect.android.dev E/GStreamer+glslstage: 0:04:23.385090209 0x71c9b721e0 ../gst-libs/gst/gl/gstglslstage.c:507:_compile_shader: fragment shader compilation failed:0:4: P0001: Extension directive must occur before any non-preprocessor tokens 0:6: L0001: Typename expected, found 'samplerExternalOES'
2019-04-20 14:11:02.571 com.bshg.homeconnect.android.dev E/GStreamer+glimagesink: 0:04:23.385431917 0x71c9b721e0 ../ext/gl/gstglimagesink.c:2045:gst_glimage_sink_thread_init_redisplay: Failed to link shader: fragment shader compilation failed:0:4: P0001: Extension directive must occur before any non-preprocessor tokens 0:6: L0001: Typename expected, found 'samplerExternalOES'
2019-04-20 14:11:02.571 com.bshg.homeconnect.android.dev W/GStreamer+glimagesink: 0:04:23.385605125 0x71c988cb70 ../ext/gl/gstglimagesink.c:1792:gst_glimage_sink_show_frame: error: Window redisplay failed
can somebody please help? is this a GStreamer lib error or I'm missing some config?