[Bug 785054] New: if downstream doesn't support GstVideoMeta, VAAPI has to copy to another buffer and convert the stride

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jul 18 10:07:53 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=785054

            Bug ID: 785054
           Summary: if downstream doesn't support GstVideoMeta, VAAPI has
                    to copy to another buffer and convert the stride
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer-vaapi
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: vjaquez at igalia.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: bsreerenj at gmail.com, vjaquez at igalia.com
     GNOME version: ---

VAAPI decoder and postprocessor have a historical problem with downstream
elements without GstVideoMeta support, since VA surfaces use special strides.

In bug 766184 we added a wrong solution, forcing the GstVideoMeta even if it is
not requested.

The correct solution is to copy the VA surface onto another buffer (provided
perhaps by downstream).

For sake of completion I add the IRC discussion:

2017-07-18 11:26:58    slomo    ceyusa: is vaapidec always adding GstVideoMeta,
or first checking if downstream can actually handle that and if not do
something else (copying)?
2017-07-18 11:31:35    ceyusa    slomo: when the vaapi buffer pool is
configured, if the configuation doesn't request
GST_BUFFER_POOL_OPTION_VIDEO_META, it adds it
2017-07-18 11:32:12    ceyusa    then, when the buffer pool allocs a buffer,
checks for the configuration and if it is, the meta is added
2017-07-18 11:33:04    slomo    ceyusa: what if downstream does not provide any
buffer pool?
2017-07-18 11:35:10    ceyusa    slomo: vaapi always use its own buffer pool
(except for sink pad in decoders)
2017-07-18 11:35:24    slomo    ok, so that's wrong
2017-07-18 11:35:43    ceyusa    why?
2017-07-18 11:36:05    slomo    you must not put videometa on buffers unless
downstream claims to support videometa in the response to the allocation query
2017-07-18 11:37:41    ceyusa    slomo it was added because of
https://bugzilla.gnome.org/show_bug.cgi?id=766184
2017-07-18 11:38:29    slomo    ceyusa: if downstream does not support it, you
have to use the default strides/offsets. and if you can't, you have to copy to
another buffer and convert the stride
2017-07-18 11:40:47    slomo    ceyusa: without that, people using vaapi will
get corrupted data if they use appsink, fakesink, or their own sink that does
not support videometa
2017-07-18 11:41:03    slomo    if videometa is not supported, you have to use
the defaults

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