[Bug 705821] vaapi/wayland: add support for external wl_surface/wl_display

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Oct 15 14:43:22 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=705821

--- Comment #78 from Matteo Valdina <matteo.valdina at gmail.com> ---
Thanks,
I imagined that.
I'm digging a little deeper in these patches. 

The first issue that I found was when there is a caps renegotiation the whole
frame is rendered black.

This was caused in the gstvaapisink.c function gst_vaapisink_set_caps.

The current code (after the patch) was 

...
 gst_vaapisink_ensure_window_size (sink, &win_width, &win_height);
  if (sink->window) {
    if (!sink->foreign_window || sink->fullscreen)
      gst_vaapi_window_set_size (sink->window, win_width, win_height);
  } else {
...

The problem that when the caps are renegotiated (like change the src) it will
skip assigning the window_vaapi_size and will assign the size of 0x0 to the
sink->window_width and sink->window_height.
...
  gst_vaapisink_ensure_window_size (sink, &win_width, &win_height);
  if (sink->window) {
    if (!sink->foreign_window || sink->fullscreen) {
      gst_vaapi_window_set_size (sink->window, win_width, win_height);
    }
    else if (sink->foreign_window) {
      gst_vaapi_window_get_size (sink->window, &win_width, &win_height);
    }
  } else {
...
this make it work but I don't know if it is good or not.


The second problem is related to the VPP, after the first run it operate
correctly but after that, it is not rescaled or it fails to re-create the
surface for an invalid VADisplay.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list