"GStreamer" (GNOME Bugzilla)
2018-10-19 13:21:51 UTC
https://bugzilla.gnome.org/show_bug.cgi?id=797308
Bug ID: 797308
Summary: vaapiencoder: Surface concurrency issues, failed to
encode frame due to 'surface in use'
Classification: Platform
Product: GStreamer
Version: 1.12.2
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-***@lists.freedesktop.org
Reporter: ***@vcatechnology.com
QA Contact: gstreamer-***@lists.freedesktop.org
CC: ***@gmail.com, ***@igalia.com
GNOME version: ---
Created attachment 373971
--> https://bugzilla.gnome.org/attachment.cgi?id=373971&action=edit
Add lock to gstvaapisurface patch
It seems that gstreamer-vaapi currently does not synchronise access to the
vaapi surfaces correctly.
Attempting to use a VASurface while it is mapped (with vaMapBuffer) results in
a surface is in use error from vaapi. This was causing an issue for us where
one branch of the pipeline would map a GstBuffer and another branch of the
pipeline would attempt to encode the buffer with the vaapiencoder while it is
mapped. The result is that gstvaapiencoder fails to encode the buffer, and the
whole pipeline is stopped.
I've attached the patch we have used to fix the issue. This adds a mutex to
gstvaapisurface that is used to correctly synchronise access.
We're using a slightly older version of gstreamer but it doesn't seem like this
has changed in the latest master.
Bug ID: 797308
Summary: vaapiencoder: Surface concurrency issues, failed to
encode frame due to 'surface in use'
Classification: Platform
Product: GStreamer
Version: 1.12.2
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-***@lists.freedesktop.org
Reporter: ***@vcatechnology.com
QA Contact: gstreamer-***@lists.freedesktop.org
CC: ***@gmail.com, ***@igalia.com
GNOME version: ---
Created attachment 373971
--> https://bugzilla.gnome.org/attachment.cgi?id=373971&action=edit
Add lock to gstvaapisurface patch
It seems that gstreamer-vaapi currently does not synchronise access to the
vaapi surfaces correctly.
Attempting to use a VASurface while it is mapped (with vaMapBuffer) results in
a surface is in use error from vaapi. This was causing an issue for us where
one branch of the pipeline would map a GstBuffer and another branch of the
pipeline would attempt to encode the buffer with the vaapiencoder while it is
mapped. The result is that gstvaapiencoder fails to encode the buffer, and the
whole pipeline is stopped.
I've attached the patch we have used to fix the issue. This adds a mutex to
gstvaapisurface that is used to correctly synchronise access.
We're using a slightly older version of gstreamer but it doesn't seem like this
has changed in the latest master.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.