gstreamer/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
..
gstcompat.h Remove old gst version guards 2016-01-25 12:09:40 +00:00
gstvaapi.c plugins: add vaapioverlay plugin 2020-01-06 19:56:10 +00:00
gstvaapi.h vaapidecodebin: Register element if no VPP support is available too 2017-10-20 12:59:10 +02:00
gstvaapidecode.c plugins: use plugin base macros to access pad specific data 2019-12-11 21:27:48 +00: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 Classify vaapidecodebin as a hardware decoder 2019-08-28 12:49:03 -04:00
gstvaapidecodebin.h vaapidecodebin: skips configuration once it's done 2017-04-21 11:48:16 +02:00
gstvaapidecodedoc.c docstrings: port ulinks to markdown links 2019-08-23 19:10:15 +02:00
gstvaapiencode.c plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencode.h plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencode_h264.c plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencode_h264.h vaapiencode: h264: verify if requested profile is supported 2017-07-03 15:33:20 +02:00
gstvaapiencode_h264_fei.c plugin: encode: change the dmabuf caps to all supported formats. 2019-12-18 20:34:27 +08:00
gstvaapiencode_h264_fei.h FEI: plugin: Add vaapih264feienc element 2017-09-01 13:15:05 +02:00
gstvaapiencode_h265.c plugin: encode: List all possible profiles to detect input formats. 2020-01-14 11:36:18 +00:00
gstvaapiencode_h265.h HEVC_Encode: Add HEVC(h265) Encoder plugin 2015-05-25 11:58:20 +03:00
gstvaapiencode_jpeg.c plugin: encode: change the dmabuf caps to all supported formats. 2019-12-18 20:34:27 +08:00
gstvaapiencode_jpeg.h plugins: Add JPEG encoder element 2015-02-04 11:18:29 +02:00
gstvaapiencode_mpeg2.c plugin: encode: change the dmabuf caps to all supported formats. 2019-12-18 20:34:27 +08:00
gstvaapiencode_mpeg2.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencode_vp8.c plugin: encode: change the dmabuf caps to all supported formats. 2019-12-18 20:34:27 +08:00
gstvaapiencode_vp8.h plugins: Add VP8 Encoder 2015-02-13 13:45:32 +02:00
gstvaapiencode_vp9.c plugin: encode: change the dmabuf caps to all supported formats. 2019-12-18 20:34:27 +08: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
gstvaapioverlay.c plugins: overlay: use proper NULL check on double pointer 2020-01-10 17:40:56 +00:00
gstvaapioverlay.h plugins: add vaapioverlay plugin 2020-01-06 19:56:10 +00:00
gstvaapipluginbase.c plugins: base: add GstVideoAggregator subclass support 2020-01-06 19:56:10 +00:00
gstvaapipluginbase.h plugins: base: add GstVideoAggregator subclass support 2020-01-06 19:56:10 +00:00
gstvaapipluginutil.c plugin: util: add helper function to detect profiles in caps. 2020-01-14 11:36:18 +00:00
gstvaapipluginutil.h plugin: util: add helper function to detect profiles in caps. 2020-01-14 11:36:18 +00:00
gstvaapipostproc.c doc: fix pipeline typo in vaapipostproc 2020-01-06 17:41:53 +01:00
gstvaapipostproc.h vaapipostproc: Use level value for skin-tone-enhancement filter. 2019-09-30 18:14:53 +00:00
gstvaapipostprocutil.c vaapipostproc: allow cropping via properties 2019-09-05 10:42:28 -07:00
gstvaapipostprocutil.h vaapipostproc: move gst_vaapipostproc_fixate_srccaps() 2016-05-09 16:56:10 +02:00
gstvaapisink.c doc: remove xml from comments 2019-05-29 23:08:22 +02: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 Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 13:07:20 +02: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 libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapivideomemory.h vaapivideomemory: remove unused macro 2018-02-07 09:22:29 +01:00
gstvaapivideometa.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapivideometa.h remove the video converter from vaapi buffer meta 2016-11-24 18:32:34 +01:00
gstvaapivideometa_texture.c libs: surface: port to GstMiniObject 2019-12-20 05:01:08 +00:00
gstvaapivideometa_texture.h plugins: re-indent all GstVaapiVideo* related source code. 2014-08-22 15:54:32 +02:00
meson.build plugins: add vaapioverlay plugin 2020-01-06 19:56:10 +00:00