I need a suggestion if you don't mind. Firstly, I want to state that I have no experience in graphics framework of Wayland, X11, etc. I am a fresh learner.
Currently, I am trying to show video using GStreamer and paint it with GLES2.
My GStreamer pipeline is :
rtspsrc location=rtsp://192.168.1.102:554/axis-media/media.amp latency=150
! queue ! rtph264depay ! h264parse
! v4l2h264dec ! imxvideoconvert_g2d
Using handoff signals, I am trying to get the buffer and going to use it on openGL.
However, I cannot get the display and its context on wayland.
I am trying to adapt the idea on qglwtextureshare example of plugins-base-1.0, https://github.com/GStreamer/gst-plugins-base/blob/master/tests/examples/gl/qt/qglwtextureshare/qglr...
Please, check the initializeGL() function.
- How can we replace "(GstGLDisplay *) gst_gl_display_x11_new_with_display (QX11Info::display())" and "gst_gl_context_new_wrapped (display, (guintptr) glXGetCurrentContext (), GST_GL_PLATFORM_GLX, GST_GL_API_OPENGL);" for Wayland? How can we get display and context?
I would also appreciate any other suggestions.
Firstly, thanks for the reply.
I don't actually know what amp is. It is the link for streaming from rtsp server on Axis ip camera.
I have no problem with displaying video via gst-launch-1.0 or cpp implementation of pipeline gst-1.0 api to a sink such as autovideosink, waylandsink or glimagesink. My actual problem is interfering with video buffers, I want to draw things just before or after every decoded frame, on top of the texture which shows video frames.
What is that file media.amp?, for gstreamer you can add this pipeline
gst-launch-1.0 filesrc location=jellyfish-20-mbps-hd-h264.mkv ! video/x-matroska ! aiurdemux ! \
queue ! h264parse ! v4l2h264dec ! imxvideoconvert_g2d ! queue ! waylandsink
and everything seems to work at 1080p h264.
You can see the video decoder supported with gst-inspect-1.0