[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