plugins: distinguish allocation and negotiation caps
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 9 Jun 2017 11:05:36 +0000 (13:05 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 12 Jun 2017 16:41:14 +0000 (18:41 +0200)
commit7a20692364b67809e2a77769fe591557f445c170
tree68f8775845e29df296e7469aecb58954b62ae5e3
parent36cf510ce8b197bdf2f33af630e7a9e04e103d1c
plugins: distinguish allocation and negotiation caps

The vaapi video decoders might have different allocation caps from
the negotiation caps, thus the GstVideoMeta shall use the negotiation
caps, not the allocation caps.

This was done before reusing gst_allocator_get_vaapi_video_info(),
storing there the negotiation caps if they differ from the allocation
ones, but this strategy felt short when the allocator had to be reset
in the vaapi buffer pool, since we need both.

This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
gst_allocator_get_vaapi_negotiated_video_info() to store the
negotiated video info in the allocator, and distinguish it from
the allocation video info.

https://bugzilla.gnome.org/show_bug.cgi?id=783599
gst/vaapi/gstvaapipluginbase.c
gst/vaapi/gstvaapivideobufferpool.c
gst/vaapi/gstvaapivideomemory.c
gst/vaapi/gstvaapivideomemory.h