[Bug 705832] eglglesink: support window handle changes in PAUSED

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Aug 13 06:53:51 PDT 2013


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

--- Comment #4 from Sebastian Dröge (slomo) <slomo at circular-chaos.org> 2013-08-13 13:53:48 UTC ---
(In reply to comment #3)
> Even if no other sink supports this, it does not mean that the feature is not
> useful.
> 
> On android, whenever the screen is rotated, first you lose the surface handle
> and then you get a new one. That means that if we keep the sink as is, we need
> to send the pipeline to READY, change the window id and then go back to the
> previous position of the playback, which implies a seek and thus download again
> any source that you where downloading, fill the queues again, etc, etc, you get
> the idea :)

Yes, just saying :) It can be useful indeed, you just can't expect every sink
to implement that as it's not guaranteed by the interface.

> As you said, the render_region_changed = TRUE is not done from the streaming
> thread nor the GL thread, that's why on the android side, we don't set the new
> surface until the pipeline has reached the PAUSED state.
> 
> So, to be able to change the window while PLAYING, I suppose the streaming
> thread/gl thread must be taken. Comparing the window as you propose, is not
> possible, nothing guarantees that a new window will be sent to the sink with
> the same pointer but a real new window. And thus all the textures/vbo/whatever
> context related objects are no longer valid. That's why this patch is to be
> able to change the window on PAUSED :)

At least all the cleanup must happen when the GL and streaming thread are not
running, otherwise stuff will crash.

-- 
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