[Bug 780442] gtreamer-vaapi render multi video in single pipeline causing videos not killed with vaapisink in wayland
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 18 03:00:07 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=780442
Hyunjun Ko <zzoon at igalia.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #349933|reviewed |none
status| |
Attachment #349933|0 |1
is obsolete| |
--- Comment #17 from Hyunjun Ko <zzoon at igalia.com> ---
Created attachment 349965
--> https://bugzilla.gnome.org/attachment.cgi?id=349965&action=edit
libs: window: wayland: refactor event-handling
Seperates handling-event loop to new thread, which includes:
- Using mutex to protect each frame information.
- Dropping frame if there's pending frame.
- Fixing counter of pending frames.
Problem description as the following:
1\ Racy condition in case that same wl_display/fd is being used in different
threads.
In this case, if a thread swallows other's events, another thread could be
stuck on poll forever. The problem usually happens during destruction of
GstVaapiWindow in case that multiple piplelines running on a process.
At this time, it calls gst_vaapi_window_wayland_sync sequentially when
destruction
from one vaapisink to another vaapisink, which leads that the first
gst_vaapi_window_wayland_sync is likely to swallow other's events.
If it happens, another vaapisink got stuck and can't be finished.
2\ Wrong counter of pending frames and buffer leakage.
This is another main problem on GstVaapiWindowWayland, which is described on
#774029.
It needs to send null buffer while destruction, so that it assures all wl
buffers are
released. Otherwise, usually the last buffer's callback is not called,
which leads to leak of GstVaapiDisplay. This is motivated by gstwaylandsink.
Note that, when the last buffer's callback is called,
relevant frame's callback is usually not called.
https://bugzilla.gnome.org/show_bug.cgi?id=772455
https://bugzilla.gnome.org/show_bug.cgi?id=774029
--
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