gstreamer/gst-libs/gst/vaapi
Víctor Manuel Jáquez Leal 21dd66b5e4 libs: context: select vaCreateSurfaces version according attributes
This commit tries to centralize the selection of vaCreateSurfaces
version, instead of having fallbacks everywhere.

These fallbacks are hacks, added because new drivers use the latest
version of vaCreateSurfaces (with surface attributes) [1], meanwhile
old drivers (or profiles as JPEG decoder in i965) might rather use the
old version.

In order to select which method, there's detected hack: each config
context has a list of valid formats, in the case of JPEG decoder the
list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
handled correctly by the current gstreamer-vaapi code [2].

The hack consist in identify if the format list contains an arbitrary
preferred format (which is suposedly well supported by
gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
the the old version of vaCreateSurfaces is used, and the surfaces wil
be mapped into a image with their own color format.

1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
2020-01-23 21:24:28 +01:00
..
egl_compat.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
egl_vtable.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
gstvaapiblend.c libs: blend: guard VA_BLEND_GLOBAL_ALPHA 2020-01-22 20:22:07 +01:00
gstvaapiblend.h libs: blend: simplify generator API 2020-01-14 19:52:18 +01:00
gstvaapibufferproxy.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapibufferproxy.h libs: move memory types conversions to gstvaapiutils 2019-08-19 17:26:55 +00:00
gstvaapibufferproxy_priv.h libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapicodec_objects.c vaapi: bump the minimum vaapi version requirement to 0.39.0 2019-01-07 17:46:42 +00:00
gstvaapicodec_objects.h build: consolidate the VA sub API includes 2017-08-13 18:08:19 +02:00
gstvaapicodedbuffer.c libs: codedbuffer: port to GstMiniObject 2019-12-20 05:01:07 +00:00
gstvaapicodedbuffer.h libs: codedbuffer: port to GstMiniObject 2019-12-20 05:01:07 +00:00
gstvaapicodedbuffer_priv.h libs: codedbuf: delete a useless field. 2020-01-08 23:42:21 +08:00
gstvaapicodedbufferpool.c libs: context: port to a plain C structure 2019-12-20 05:01:07 +00:00
gstvaapicodedbufferpool.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapicodedbufferproxy.c Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapicodedbufferproxy.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapicodedbufferproxy_priv.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapicompat.h vaapi: bump the minimum vaapi version requirement to 0.39.0 2019-01-07 17:46:42 +00:00
gstvaapicontext.c libs: context: select vaCreateSurfaces version according attributes 2020-01-23 21:24:28 +01:00
gstvaapicontext.h libs: context: select vaCreateSurfaces version according attributes 2020-01-23 21:24:28 +01:00
gstvaapidebug.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidecoder.c libs: decoder: Don't unref null object 2020-01-13 09:03:47 +01:00
gstvaapidecoder.h libs: decoder: remove gst_vaapi_decoder_unref() 2018-09-03 17:54:19 +02:00
gstvaapidecoder_dpb.c libs: fix code style for errors 2016-11-03 12:51:44 +01:00
gstvaapidecoder_dpb.h legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
gstvaapidecoder_h264.c vaapih264dec: Add a property to assume constrained-baseline 2020-01-19 15:55:47 +00:00
gstvaapidecoder_h264.h vaapih264dec: Add a property to assume constrained-baseline 2020-01-19 15:55:47 +00:00
gstvaapidecoder_h265.c libs: decoder: h265: skip all pictures prior the first I-frame 2019-11-29 15:34:05 +00:00
gstvaapidecoder_h265.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_jpeg.c libs: decoder: jpeg: add support 400/411/422/444 chroma type 2019-06-26 10:36:56 +00:00
gstvaapidecoder_jpeg.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_mpeg2.c libs: remove already include string.h 2018-09-25 18:22:35 +02:00
gstvaapidecoder_mpeg2.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_mpeg4.c libs: remove already include string.h 2018-09-25 18:22:35 +02:00
gstvaapidecoder_mpeg4.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_objects.c libs: remove already include string.h 2018-09-25 18:22:35 +02:00
gstvaapidecoder_objects.h decoder: add initial infrastructure for marking corrupted output. 2015-07-20 15:25:46 +02:00
gstvaapidecoder_priv.h libs: decoder: remove destoy() and create() callbacks 2018-09-03 17:54:19 +02:00
gstvaapidecoder_unit.c libs: humongous code style fix 2016-02-03 20:03:47 +01:00
gstvaapidecoder_unit.h libs: remove unused header 2017-08-13 18:08:19 +02:00
gstvaapidecoder_vc1.c libs: remove already include string.h 2018-09-25 18:22:35 +02:00
gstvaapidecoder_vc1.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_vp8.c libs: decoder: vp8: implement reset() callback 2018-09-03 17:54:19 +02:00
gstvaapidecoder_vp8.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidecoder_vp9.c libs: dec: vp9: do not use display size as decoded size 2019-06-28 18:42:42 +02:00
gstvaapidecoder_vp9.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02:00
gstvaapidisplay.c Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapidisplay.h libs: display: remove gst_vaapi_display_ref() 2018-06-14 16:41:00 +02:00
gstvaapidisplay_drm.c Use G_DEFINE_TYPE_WITH_PRIVATE if applicable 2018-12-10 10:54:53 +01:00
gstvaapidisplay_drm.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidisplay_drm_priv.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidisplay_egl.c libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config() 2018-06-14 16:41:00 +02:00
gstvaapidisplay_egl.h libs: display: egl: add gst_vaapi_display_egl_set_current_display() 2017-11-02 11:18:50 +01:00
gstvaapidisplay_egl_priv.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidisplay_glx.c libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config() 2018-06-14 16:41:00 +02:00
gstvaapidisplay_glx.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidisplay_glx_priv.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapidisplay_priv.h libs: display: refine the profile/entrypoint map. 2019-12-20 07:39:43 +00:00
gstvaapidisplay_wayland.c libs: wayland: add support for XDG-shell protocol 2019-02-16 23:55:42 +01:00
gstvaapidisplay_wayland.h libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display() 2018-04-18 18:01:06 +02:00
gstvaapidisplay_wayland_priv.h libs: wayland: add support for XDG-shell protocol 2019-02-16 23:55:42 +01:00
gstvaapidisplay_x11.c libs: display: fix a resource leak in X11 pixmap format. 2020-01-03 06:49:07 +00:00
gstvaapidisplay_x11.h libs: display: x11: add gst_vaapi_display_x11_new_with_va_display() 2017-07-18 18:50:39 +02:00
gstvaapidisplay_x11_priv.h libs: display: GstVaapiDisplay as GstObject descendant 2016-11-03 08:24:59 +01:00
gstvaapiencoder.c libs: encoder: unref formats array if none 2020-01-19 10:37:02 +00:00
gstvaapiencoder.h vaapiencode: DMABuf only if PRIME is available 2020-01-17 11:31:57 +01:00
gstvaapiencoder_h264.c libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc() 2020-01-19 14:57:38 +01:00
gstvaapiencoder_h264.h libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc() 2020-01-19 14:57:04 +01:00
gstvaapiencoder_h265.c plugin: encode: Add H265 main-444 profile. 2020-01-17 11:02:44 +00:00
gstvaapiencoder_h265.h libs: encoder: delete old set_property and property enum in h265 2019-08-30 21:21:04 +08:00
gstvaapiencoder_jpeg.c libs: encoder: set context info profile by encoder 2019-12-29 17:58:36 +01:00
gstvaapiencoder_jpeg.h libs: encoder: delete old set_property and property enum in jpeg 2019-08-30 21:21:04 +08:00
gstvaapiencoder_mpeg2.c libs: encoder: set context info profile by encoder 2019-12-29 17:58:36 +01:00
gstvaapiencoder_mpeg2.h libs: encoder: delete old set_property and property enum in mpeg2 2019-08-30 21:21:04 +08:00
gstvaapiencoder_mpeg2_priv.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencoder_objects.c Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapiencoder_objects.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapiencoder_priv.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapiencoder_vp8.c libs: encoder: set context info profile by encoder 2019-12-29 17:58:36 +01:00
gstvaapiencoder_vp8.h libs: encoder: delete old set_property and property enum in vp8 2019-08-30 21:21:04 +08:00
gstvaapiencoder_vp9.c libs: encoder: vp9: fix code style 2019-12-29 17:58:36 +01:00
gstvaapiencoder_vp9.h libs: encoder: delete old set_property and property enum in vp9 2019-08-30 21:21:04 +08:00
gstvaapifilter.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapifilter.h vaapipostproc: Use level value for skin-tone-enhancement filter. 2019-09-30 18:14:53 +00:00
gstvaapiimage.c libs: image: init all image fields correctly. 2020-01-06 17:55:09 +00:00
gstvaapiimage.h libs: image: port to GstMiniObject base class 2019-12-20 05:01:07 +00:00
gstvaapiimage_priv.h libs: image: port to GstMiniObject base class 2019-12-20 05:01:07 +00:00
gstvaapiimagepool.c libs: fix code style for errors 2016-11-03 12:51:44 +01:00
gstvaapiimagepool.h videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapiminiobject.c libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapiminiobject.h libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapiobject.c libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapiobject.h libs: object: separation of internal API and plugins 2018-09-25 17:41:55 +02:00
gstvaapiobject_priv.h libs: object: separation of internal API and plugins 2018-09-25 17:41:55 +02:00
gstvaapiparser_frame.c libs: fix code style for errors 2016-11-03 12:51:44 +01:00
gstvaapiparser_frame.h libs: parser_frame: change macros for inlined functions 2018-09-25 17:41:55 +02:00
gstvaapipixmap.c libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapipixmap.h legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
gstvaapipixmap_priv.h libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapipixmap_x11.c libs: pixmap: Fix a pixmap creation crash. 2019-12-29 02:00:51 +08:00
gstvaapipixmap_x11.h legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
gstvaapiprofile.c Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapiprofile.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapiprofilecaps.c vaapiencode: DMABuf only if PRIME is available 2020-01-17 11:31:57 +01:00
gstvaapiprofilecaps.h vaapiencode: DMABuf only if PRIME is available 2020-01-17 11:31:57 +01:00
gstvaapisubpicture.c libs: image: port to GstMiniObject base class 2019-12-20 05:01:07 +00:00
gstvaapisubpicture.h legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
gstvaapisurface.c libs: context: select vaCreateSurfaces version according attributes 2020-01-23 21:24:28 +01:00
gstvaapisurface.h libs: context: select vaCreateSurfaces version according attributes 2020-01-23 21:24:28 +01:00
gstvaapisurface_drm.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapisurface_drm.h libs: change gst_vaapi_surface_new_with_dma_buf_handle() 2016-06-08 10:19:01 +02:00
gstvaapisurface_egl.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapisurface_egl.h egl: allow for EGLImage imports into VA Surfaces. 2015-02-24 15:20:03 +01:00
gstvaapisurface_priv.h libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapisurfacepool.c libs: Fix a typo in comments. 2019-03-01 12:35:00 +08:00
gstvaapisurfacepool.h gstvaapisurfacepool: Add new API to create surface pool based on chroma type 2015-12-08 15:16:00 +02:00
gstvaapisurfaceproxy.c Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapisurfaceproxy.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapisurfaceproxy_priv.h Remove all FEI related 2020-01-15 07:30:15 +00:00
gstvaapitexture.c libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapitexture.h plugins: add support for GstVideoGLTextureOrientation. 2015-02-24 15:20:03 +01:00
gstvaapitexture_egl.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapitexture_egl.h egl: add texture abstraction. 2015-02-24 15:20:03 +01:00
gstvaapitexture_glx.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapitexture_glx.h texture: move to core libgstvaapi base library. 2015-01-27 18:11:44 +01:00
gstvaapitexture_priv.h libs: remove dependency on IN_LIBGSTVAAPI_CORE 2018-09-25 17:41:55 +02:00
gstvaapitexturemap.c libs: vaapitexturemap: trivial code-style fix 2016-11-03 08:31:16 +01:00
gstvaapitexturemap.h libs: vaapitexturemap: implement GstVaapiTextureMap 2016-09-22 14:19:05 +02:00
gstvaapitypes.h libs: encoder: h264: support ICQ/QVBR bitrate control mode 2019-08-05 11:01:19 +08:00
gstvaapiutils.c libs: utils: add missing break in switch 2019-09-19 10:56:46 -07:00
gstvaapiutils.h libs: move memory types conversions to gstvaapiutils 2019-08-19 17:26:55 +00:00
gstvaapiutils_core.c libs: util: Fix a memory leak in config_surface_attributes_get 2019-08-27 01:30:36 +08:00
gstvaapiutils_core.h libs: utils: remove unused function gst_vaapi_get_surface_formats() 2019-08-19 17:26:55 +00:00
gstvaapiutils_egl.c egl: Fix racyness in display thread creation 2019-09-18 05:36:52 +00:00
gstvaapiutils_egl.h egl: Fix racyness in display thread creation 2019-09-18 05:36:52 +00:00
gstvaapiutils_glx.c glx: Stop specifying GLX_DEPTH_SIZE 2019-02-17 09:26:55 +00:00
gstvaapiutils_glx.h libs: remove unused header 2017-08-13 18:08:19 +02:00
gstvaapiutils_h26x.c libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit() 2017-03-20 19:02:04 +01:00
gstvaapiutils_h26x_priv.h libs: encoder: h264,h265: extend max periodic keyframe. 2018-02-19 22:34:53 +01:00
gstvaapiutils_h264.c libs: Move from g_debug to GST_DEBUG. 2018-10-09 16:58:43 +02:00
gstvaapiutils_h264.h libs: h264: Update level table to "Recommendation H.264 (04/17)". 2018-09-27 12:29:10 +02:00
gstvaapiutils_h264_priv.h libs: remove unused header 2017-08-13 18:08:19 +02:00
gstvaapiutils_h265.c plugin: encode: Add H265 main-444 profile. 2020-01-17 11:02:44 +00:00
gstvaapiutils_h265.h libs: utils: move gstvaapisurface.h to private headers 2017-08-13 18:08:19 +02:00
gstvaapiutils_h265_priv.h libs: dec: h265: Consider chroma_bit_depth to choose chrome type 2019-06-28 16:49:51 +02:00
gstvaapiutils_mpeg2.c libs: Move from g_debug to GST_DEBUG. 2018-10-09 16:58:43 +02:00
gstvaapiutils_mpeg2.h libs: utils: move gstvaapisurface.h to private headers 2017-08-13 18:08:19 +02:00
gstvaapiutils_mpeg2_priv.h libs: remove unused header 2017-08-13 18:08:19 +02:00
gstvaapiutils_x11.c doc: fix some incorrect gtk-doc links 2019-05-29 01:41:37 +02:00
gstvaapiutils_x11.h libs: remove unused header 2017-08-13 18:08:19 +02:00
gstvaapivalue.c vaapipostproc: element warning if video direction is unsupported 2019-08-19 16:48:49 +00:00
gstvaapivalue.h vaapipostproc: element warning if video direction is unsupported 2019-08-19 16:48:49 +00:00
gstvaapivideopool.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapivideopool.h videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapivideopool_priv.h libs: videopool: remove unneeded code 2018-09-25 17:41:55 +02:00
gstvaapiwindow.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapiwindow.h libs: window: remove custom ref() and unref() 2018-12-24 12:20:00 +00:00
gstvaapiwindow_drm.c libs: window: use its own debug category 2018-12-24 12:20:00 +00:00
gstvaapiwindow_drm.h libs: window: refactor as gobject 2018-12-24 12:20:00 +00:00
gstvaapiwindow_egl.c libs: window: use its own debug category 2018-12-24 12:20:00 +00:00
gstvaapiwindow_egl.h libs: window: refactor as gobject 2018-12-24 12:20:00 +00:00
gstvaapiwindow_glx.c doc: fix some incorrect gtk-doc links 2019-05-29 01:41:37 +02:00
gstvaapiwindow_glx.h libs: window: refactor as gobject 2018-12-24 12:20:00 +00:00
gstvaapiwindow_priv.h libs: window: refactor as gobject 2018-12-24 12:20:00 +00:00
gstvaapiwindow_wayland.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapiwindow_wayland.h libs: window: refactor as gobject 2018-12-24 12:20:00 +00:00
gstvaapiwindow_x11.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapiwindow_x11.h doc: fix some incorrect gtk-doc links 2019-05-29 01:41:37 +02:00
gstvaapiwindow_x11_priv.h doc: fix some incorrect gtk-doc links 2019-05-29 01:41:37 +02:00
gstvaapiworkarounds.h legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
meson.build Remove all FEI related 2020-01-15 07:30:15 +00:00
ogl_compat.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
sysdeps.h remove unused glibcompat.h 2016-06-23 12:47:52 +02:00
video-format.c libs: video-format: remove dead code 2019-11-27 01:45:29 +01:00
video-format.h libs: video-format: add GST_VAAPI_FORMATS_ALL 2019-11-27 01:44:49 +01:00