Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upNegotiate GL textures and render them in player example #182
Conversation
8914c53
to
250e0a8
|
Right now, WebRTC GStreamer backend doesn't compile: there are multiple errors of this type
|
ec686bc
to
503940a
|
Last Friday I confirmed my suspicion that the media's frame should keep a living reference to the associated GStreamer buffer, otherwise the buffer gets unreffed and the texture turns invalid. Since media's frame is backend's agnostic, it would be hard to keep a reference to a opaque structure, so I tried out to turn frame into a trait. But soon I got hit by FrameRenderer trait, which function |
8da43f7
to
36c0488
Won't get to that today but I'll put it on my list. |
5fd9fb1
to
67ec36c
This implies * to use glib::GString for media_info data * gst::Buffer::from_slice() doesn't fail * New returns as Result simplifyng code * Rewrite ServoSrc element using subclassing * add life times to media_capture caps builder * enable NLL for gstreamer crate
For programming errors it is better to panic using expect(). This patch does this for GObject's set_property and get_property.
And implement it in GStreamer backend. The purpose of this trait is to keep alive the reference of the backend's buffer while it is used.
Since the current unreleased version has merged the required API to get the used EGL Display.
The purpose of this argument is to select if the user wants to render textures or images. *This is just a mock up*, textures are not handled yet.
Move upper the player_wrapper instantiation in order to set the gl usage as soon as possible.
If buffer contains a GL texture it will return the texture id
If gl display and context are set, the glsinkbin is used, otherwise only appsink. Now GL textures are negotiated and rendered.
|
I guess all (or most of) the issues were solved :) |
|
|
@bors-servo r+ |
|
@bors-servo r=ferjm |
|
|
Negotiate GL textures and render them in player example This PR goes above PR #196 It needs to update the CI GStreamer setup, because it requires a new version of glib and gstreamer-gl library. It contains * Port to webrender 0.58 * Port to gstreamer git head version (0.13.0) -- this implied a complete rewrite of servosrc * Add a new trait in Frame to hold a reference to the backend's buffer * Update glutin version tu current git head * Add a method to set the GL parameters in the backend's player * Use glsinkbin in gstreamer player in GL parameters are negotiated * A lot of changes in example player to render gl textures is --gl argument is passed Fixes: #166
|
|
ceyusa commentedJan 23, 2019
•
edited
This PR goes above PR #196
It needs to update the CI GStreamer setup, because it requires a new version of glib and gstreamer-gl library.
It contains
Fixes: #166