gstreamer/gst-libs/gst/vaapi
He Junyan 36fd4d5d8a plugin: encode: List all possible profiles to detect input formats.
The current get_profile just return one possible profile for the encode,
which is not enough.  For example, if we want to support HEVC 4:4:4
profile, the input of encode should be VYUA rather than NV12 in HEVC
main profile. So the command line:

gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
tune=low-power init-qp=30 ! fakesink

can not work because vaapih265enc just report NV12 in sink caps, we need
to specify the profile obviously like:

gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
profile=main-444 ! fakesink

The encode should have the ability to choose the profile based on input
format automatically. If the input video format is VUYA, the main-444
profile should be auto choosed.

We modify to let get_allowed_profiles of each encode sub class to return
an array of all supported profiles based on downstream's allowed caps, or
return NULL if no valid profiles specified by downstream.
If no allowed profiles found, all profiles which belong to the current
encoder's codec will be the candidates.
The function gst_vaapi_encoder_get_surface_attributes collects the surface's
attributes for that profile list we just get.

So for this case, both NV12 and VUYA should be returned.

TODO: some codec like VP9, need to implement the get_profile() function.
2020-01-14 11:36:18 +00: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: update to new mini-object API 2020-01-06 19:56:10 +00:00
gstvaapiblend.h libs: add a vaapi blend class 2020-01-06 19:56:10 +00: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 libs: codedbuffer: port to GstMiniObject 2019-12-20 05:01:07 +00:00
gstvaapicodedbufferproxy.h FEI: libs: Add fei codec objects in codedbufferproxy 2017-09-01 11:32:24 +02:00
gstvaapicodedbufferproxy_priv.h FEI: libs: Add fei codec objects in codedbufferproxy 2017-09-01 11:32:24 +02: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: add invalid entrypoint symbol 2019-12-29 17:58:36 +01:00
gstvaapicontext.h libs: context: port to a plain C structure 2019-12-20 05:01:07 +00: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 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse 2019-09-27 10:53:14 +02:00
gstvaapidecoder_h264.h libs: decoder: refactor decoders as gobject 2018-09-03 17:54:19 +02: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 libs: display: code clean up 2019-12-20 08:40:54 +01: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 plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencoder.h plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencoder_h264.c libs: encoder: set entrypoint based on tune automatically 2019-12-29 17:58:36 +01:00
gstvaapiencoder_h264.h libs: encoder: delete old set_property and property enum in h264 2019-08-30 21:21:04 +08:00
gstvaapiencoder_h264_fei.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapiencoder_h264_fei.h libs: encoder: delete old set_property and property enum in h264 fei 2019-08-30 21:21:04 +08:00
gstvaapiencoder_h265.c libs: encoder: modify 265 SPS header's profile compatibility flag. 2020-01-08 17:48:22 +08: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 libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapiencoder_objects.h libs: encoder: Enable trellis quantization method. 2019-05-09 05:54:09 +00:00
gstvaapiencoder_priv.h libs: encoder: clean two virtual func in encoder class 2019-08-30 21:21:04 +08: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
gstvaapifei_objects.c FEI: Add codec objects for fei usecase 2017-09-01 11:32:24 +02:00
gstvaapifei_objects.h FEI: Add codec objects for fei usecase 2017-09-01 11:32:24 +02:00
gstvaapifei_objects_priv.h FEI: Add codec objects for fei usecase 2017-09-01 11:32:24 +02:00
gstvaapifeienc_h264.c libs: codedbuffer: port to GstMiniObject 2019-12-20 05:01:07 +00:00
gstvaapifeienc_h264.h libs: encoder: delete old set_property and property enum feienc264 2019-08-30 21:21:04 +08:00
gstvaapifeipak_h264.c libs: codedbuffer: port to GstMiniObject 2019-12-20 05:01:07 +00:00
gstvaapifeipak_h264.h FEI: libs: Add FEI encoder 2017-09-01 11:36:13 +02:00
gstvaapifeiutils_h264.c FEI: libs: add H264 fei specific utility functions 2017-09-01 11:32:24 +02:00
gstvaapifeiutils_h264.h FEI: libs: add H264 fei specific utility functions 2017-09-01 11:32:24 +02: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 libs: profile: add gst_vaapi_profile_get_va_name() 2019-08-19 17:26:55 +00:00
gstvaapiprofile.h libs: context: add invalid entrypoint symbol 2019-12-29 17:58:36 +01:00
gstvaapiprofilecaps.c libs: utils: delete useless gst_vaapi_profile_caps_append_encoder. 2020-01-02 18:01:52 +01:00
gstvaapiprofilecaps.h libs: utils: delete useless gst_vaapi_profile_caps_append_encoder. 2020-01-02 18:01:52 +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: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapisurface.h libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00: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 libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapisurfaceproxy.h FEI: libs: Add fei codec objects to surface proxy 2017-09-01 11:32:24 +02:00
gstvaapisurfaceproxy_priv.h libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +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 libs: dec: h265: Consider chroma_bit_depth to choose chrome type 2019-06-28 16:49:51 +02: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 libs: add a vaapi blend class 2020-01-06 19:56:10 +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