[Bug 797308] New: vaapiencoder: Surface concurrency issues, failed to encode frame due to 'surface in use'
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Oct 19 13:21:51 UTC 2018
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-bugs at lists.freedesktop.org
Reporter: myles.inglis at vcatechnology.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
CC: bsreerenj at gmail.com, vjaquez at 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.
More information about the gstreamer-bugs
mailing list