[Bug 728107] gl: No surface resizing logic on Android/iOS

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Apr 13 06:20:58 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=728107
  GStreamer | gst-plugins-bad | git

--- Comment #4 from Julien Isorce <julien.isorce at gmail.com> 2014-04-13 13:20:55 UTC ---
There are some options:

1: do like osxvideosink, i.e. manage an internal UIView and then set it as a
subview (addSubView) of the one you get from gst_set_window_handle. Then in you
internal UIView you could override "layoutSubviews" method. For the NSView it
was the "reshape" method.
(By the way I noticed osxvideosink implement navigation interface, shouldn't be
hard to move that code in cocoa backend of gstgl)

2: do like in cocoa backend of gstgl, not sure if this is practical here as I
decided to pass the NSWindow handle. But then it relies on the NSView too.
"reshape" method here too.

3: add an observer to  "bounds" property of the UIView you get from
gst_set_window_handle. Not sure what would be the result but worth to try.

4: Override UIView::layoutSubviews in your application but then it would
requires to add a new function to the GstVideoOverlay.
gst_video_overlay_set_window_size. (or modify the description of
gst_video_overlay_set_window_rectangle)
waylandsink is in this 4th situation when using subsurface/st_window_handle,
http://cgit.collabora.com/git/user/gkiagia/gst-wayland-gtk-demo.git/tree/main.c#n177
(gst_wayland_video_set_surface_size) . For me it would make sense to add
gst_video_overlay_set_window_size for this purpose.

With iOS/UIView I'm not sure in which situation you will fall but polling is
not the right thing to do.
So if possible do it the way Matthew described, if not your are in case 4.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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