gstreamer/gst/vaapi
Víctor Manuel Jáquez Leal af3e6a8d16 vaapiencode: h264: find profile in available and allowed caps
The commit 67e33d3de2 ("vaapiencode: h264:
find best profile in those available") changed the code to pick a profile
that is actually supported by the hardware. Unfortunately it dropped the
downstream constraints. This can cause negotiation failures under certain
circumstances.

The fix is split in two cases:

1\ the available VA-API caps doesn't intersect with pipeline's allowed
caps:
 * The best allowed profile (pipeline's caps) is set as the encoding
   target profile (it will be adjusted later by the available profiles
   and properties)

2\ the available VA-API caps does intersect with pipeline's allowed
caps:
 * The intersected caps are fixed, and its profile is set as the
   encoding target profile. In this case the is not the best profile,
   but the minimal one (if VA-API reports the profiles in order).
   Setting the minimal profile of the intersected caps is better for
   compatibility.

This patch fixes other tests related with caps negotiation, for
example, it handles baseline profile, even when VA only supports
constrained-baseline.

Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>

https://bugzilla.gnome.org/show_bug.cgi?id=794306
2018-06-06 11:04:02 +02:00
..
gstcompat.h Remove old gst version guards 2016-01-25 12:09:40 +00:00
gstvaapi.c vaapi: register vaapisink as marginal on wayland 2018-02-13 17:13:20 +01:00
gstvaapi.h vaapidecodebin: Register element if no VPP support is available too 2017-10-20 12:59:10 +02:00
gstvaapidecode.c vaapih264dec: add constrained and progressive profiles 2018-04-30 12:48:26 +02:00
gstvaapidecode.h vaapidecode: update internal decoder sink caps 2017-01-18 11:30:49 +01:00
gstvaapidecode_props.c vaapidecode: set h264 base-only to decoder 2017-08-03 17:07:14 +02:00
gstvaapidecode_props.h vaapidecode_props: h264: add base-only property 2017-08-03 17:07:01 +02:00
gstvaapidecodebin.c vaapidecodebin: Register element if no VPP support is available too 2017-10-20 12:59:10 +02:00
gstvaapidecodebin.h vaapidecodebin: skips configuration once it's done 2017-04-21 11:48:16 +02:00
gstvaapidecodedoc.c docs: replace vaapidecode with each codec 2016-10-27 13:04:37 +02:00
gstvaapiencode.c Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest" 2018-02-27 17:51:02 -05:00
gstvaapiencode.h FEI: plugin: Add virtual methods to base encode 2017-09-01 11:36:49 +02:00
gstvaapiencode_h264.c vaapiencode: h264: find profile in available and allowed caps 2018-06-06 11:04:02 +02:00
gstvaapiencode_h264.h vaapiencode: h264: verify if requested profile is supported 2017-07-03 15:33:20 +02:00
gstvaapiencode_h264_fei.c FEI: plugin: Add vaapih264feienc element 2017-09-01 13:15:05 +02:00
gstvaapiencode_h264_fei.h FEI: plugin: Add vaapih264feienc element 2017-09-01 13:15:05 +02:00
gstvaapiencode_h265.c vaapiencode: h265: compare an unsigned int if not zero 2017-08-01 18:38:40 +02:00
gstvaapiencode_h265.h HEVC_Encode: Add HEVC(h265) Encoder plugin 2015-05-25 11:58:20 +03:00
gstvaapiencode_jpeg.c vaapi: use new gst_element_class_add_static_pad_template() 2016-09-23 12:33:58 +02:00
gstvaapiencode_jpeg.h plugins: Add JPEG encoder element 2015-02-04 11:18:29 +02:00
gstvaapiencode_mpeg2.c vaapi: use new gst_element_class_add_static_pad_template() 2016-09-23 12:33:58 +02:00
gstvaapiencode_mpeg2.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencode_vp8.c vaapi: use new gst_element_class_add_static_pad_template() 2016-09-23 12:33:58 +02:00
gstvaapiencode_vp8.h plugins: Add VP8 Encoder 2015-02-13 13:45:32 +02:00
gstvaapiencode_vp9.c Add vp9 encode element to "vaapi" plugin 2016-05-30 11:24:14 +03:00
gstvaapiencode_vp9.h Add vp9 encode element to "vaapi" plugin 2016-05-30 11:24:14 +03:00
gstvaapifeivideometa.c FEI: plugin: Add fei specific video meta 2017-09-01 11:36:49 +02:00
gstvaapifeivideometa.h FEI: plugin: Add fei specific video meta 2017-09-01 11:36:49 +02:00
gstvaapipluginbase.c plugin: remove custom GstGL context handling 2018-04-26 19:37:54 +02:00
gstvaapipluginbase.h plugins: add gst_vaapi_copy_va_buffer() 2018-02-20 10:57:12 -06:00
gstvaapipluginutil.c plugins: guard GstGL code 2018-05-21 13:57:08 +02:00
gstvaapipluginutil.h plugins: memory:DMABuf only handles planar formats 2017-09-27 11:46:33 +02:00
gstvaapipostproc.c vaapipostproc: change how the metadata is copied 2018-03-01 09:48:38 -06:00
gstvaapipostproc.h vaapipostproc: make it enable/disable pass-through mode 2016-07-22 12:08:20 +02:00
gstvaapipostprocutil.c vaapipostproc: remove spurious code 2018-01-18 20:46:22 +01:00
gstvaapipostprocutil.h vaapipostproc: move gst_vaapipostproc_fixate_srccaps() 2016-05-09 16:56:10 +02:00
gstvaapisink.c vaapisink: don't mask button events for foreign windows 2018-02-05 11:36:35 +01:00
gstvaapisink.h vaapisink: add support for GST_TAG_IMAGE_ORIENTATION 2016-07-05 20:17:12 +02:00
gstvaapivideobuffer.c remove the video converter from vaapi buffer meta 2016-11-24 18:32:34 +01:00
gstvaapivideobuffer.h plugins: re-indent all GstVaapiVideo* related source code. 2014-08-22 15:54:32 +02:00
gstvaapivideobufferpool.c vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer() 2018-02-20 10:57:12 -06:00
gstvaapivideobufferpool.h vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer() 2018-02-20 10:57:12 -06:00
gstvaapivideocontext.c plugin: remove custom GstGL context handling 2018-04-26 19:37:54 +02:00
gstvaapivideocontext.h plugin: remove custom GstGL context handling 2018-04-26 19:37:54 +02:00
gstvaapivideomemory.c vaapivideomemory: add gst_vaapi_dmabuf_can_map() 2017-06-23 18:44:42 +02:00
gstvaapivideomemory.h vaapivideomemory: remove unused macro 2018-02-07 09:22:29 +01:00
gstvaapivideometa.c remove the video converter from vaapi buffer meta 2016-11-24 18:32:34 +01:00
gstvaapivideometa.h remove the video converter from vaapi buffer meta 2016-11-24 18:32:34 +01:00
gstvaapivideometa_texture.c plugins: fix code style for errors 2016-10-25 19:38:26 +02:00
gstvaapivideometa_texture.h plugins: re-indent all GstVaapiVideo* related source code. 2014-08-22 15:54:32 +02:00
Makefile.am vaapi: dist new header 2018-02-15 18:29:04 +00:00
meson.build vaapidecode_props: add skeleton for h264 decoder properties 2017-07-07 19:32:11 +02:00