After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758981 - waylandsink: need to set wl_proxy_set_queue() to get wl_signal about wl_buffer destory from wayland-server which is not based on SHM
waylandsink: need to set wl_proxy_set_queue() to get wl_signal about wl_buffe...
Status: RESOLVED INVALID
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.6.1
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-12-03 02:26 UTC by Hyunil Park
Modified: 2016-09-21 19:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] waylandsink : Add wl_proxy_set_queue for receiving wl_signal from all wayland-compositor which is modified by open source project (1.19 KB, patch)
2015-12-03 02:49 UTC, Hyunil Park
rejected Details | Review

Description Hyunil Park 2015-12-03 02:26:40 UTC
We don't need to set wl_proxy_set_queue() for wl_buffer_add_listener() if we use wl_registry from wl_display base on SHM(Shared memory) as below.

  self->registry = wl_display_get_registry (self->display);
  wl_proxy_set_queue ((struct wl_proxy *) self->registry, self->queue);
  wl_registry_add_listener (self->registry, &registry_listener, self);

but, if we use other wayland libray such as wayland-tbm(DRM) for TIZEN,
We need to set set wl_proxy_set_queue() for wl_buffer as below.
  wl_buffer_add_listener (self->wlbuffer, &buffer_listener, self);
  wl_proxy_set_queue ((struct wl_proxy *) self->wlbuffer, self->display->queue);

I think that above code can satisfied all wayland library
Comment 1 Hyunil Park 2015-12-03 02:49:23 UTC
Created attachment 316687 [details] [review]
[PATCH] waylandsink : Add wl_proxy_set_queue for receiving wl_signal from all wayland-compositor which is modified by open source project

waylandsink need to set wl_proxy_set_queue for receiving wl_signal about buffer release.
If set clearly, 
waylandsink can wl_signal event from all wayland-compositor Which is modified by open source project.
Comment 2 Hyunil Park 2016-01-12 01:27:03 UTC
How about you?
thank you!!
Comment 3 Daniel Stone 2016-02-13 09:44:06 UTC
Sounds good to me.
Comment 4 George Kiagiadakis 2016-02-14 12:44:42 UTC
Hmm, this sounds strange to me. Why is your wl_buffer not inherited from the registry? In this case probably there are other wl_proxy objects in waylandsink that also explicitly need to be set to use the local queue?

Also, the queue definitely should be set when the wl_buffer is created, not when the listener is added.
Comment 5 Daniel Stone 2016-02-14 15:44:29 UTC
My guess is that it's a TBM (Tizen's fork of GBM ... :\) buffer, but you could also have others which aren't created by the sink. Though, hmm, you're right that it doesn't seem particularly plausible as there isn't a way to get wl_buffers pre-created from upstream ...

Hyunil, how are these buffers created, and how are you getting them to waylandsink?
Comment 6 Hyunil Park 2016-02-29 02:54:59 UTC
TBM buffer is created by CODEC. so it is not wayland buffer pool.
TBM buffer can be got by below function, buffer pointer too.

gst_wayland_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
Comment 7 Nicolas Dufresne (ndufresne) 2016-09-21 19:28:17 UTC
To access the wl_buffer you upstream you need to extract the QData. This QData is in a structure that is private to the waylandsink plugin. So until the day this private structure is exposed, there is no point merging this. I'm not saying it's a bad idea though.