summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHe Junyan <junyan.he@intel.com>2020-07-07 00:46:23 +0800
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2020-07-29 15:41:40 +0000
commit35c3de234cec95db9ef620aa72e2587a764ba451 (patch)
tree6f2b83ab08cd484fae1f800eec4d8984e18b34f7
parentb86489eb8c13dece2bd389838e2eeea250fa2ff5 (diff)
downloadgstreamer-vaapi-35c3de234cec95db9ef620aa72e2587a764ba451.tar.gz
plugins: encode: vp9: Implement vp9's allowed_profiles() func.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
-rw-r--r--gst/vaapi/gstvaapiencode_vp9.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gst/vaapi/gstvaapiencode_vp9.c b/gst/vaapi/gstvaapiencode_vp9.c
index 053bf53d..45384620 100644
--- a/gst/vaapi/gstvaapiencode_vp9.c
+++ b/gst/vaapi/gstvaapiencode_vp9.c
@@ -36,6 +36,7 @@
#include "gstcompat.h"
#include <gst/vaapi/gstvaapidisplay.h>
#include <gst/vaapi/gstvaapiencoder_vp9.h>
+#include <gst/vaapi/gstvaapiutils_vpx.h>
#include "gstvaapiencode_vp9.h"
#include "gstvaapipluginutil.h"
#include "gstvaapivideomemory.h"
@@ -52,7 +53,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_vp9_encode_debug);
#define EXTRA_FORMATS {}
/* vp9 encode */
-GST_VAAPI_ENCODE_REGISTER_TYPE (vp9, VP9, VP9, EXTRA_FORMATS, NULL);
+GST_VAAPI_ENCODE_REGISTER_TYPE (vp9, VP9, VP9, EXTRA_FORMATS,
+ gst_vaapi_utils_vp9_get_profile_string);
static void
gst_vaapiencode_vp9_init (GstVaapiEncodeVP9 * encode)
@@ -66,6 +68,14 @@ gst_vaapiencode_vp9_finalize (GObject * object)
G_OBJECT_CLASS (gst_vaapiencode_vp9_parent_class)->finalize (object);
}
+static GArray *
+gst_vaapiencode_vp9_get_allowed_profiles (GstVaapiEncode * encode,
+ GstCaps * allowed)
+{
+ return gst_vaapi_encoder_get_profiles_from_caps (allowed,
+ gst_vaapi_utils_vp9_get_profile_from_string);
+}
+
static GstCaps *
gst_vaapiencode_vp9_get_caps (GstVaapiEncode * base_encode)
{
@@ -99,6 +109,7 @@ gst_vaapiencode_vp9_class_init (GstVaapiEncodeVP9Class * klass, gpointer data)
object_class->set_property = gst_vaapiencode_set_property_subclass;
object_class->get_property = gst_vaapiencode_get_property_subclass;
+ encode_class->get_allowed_profiles = gst_vaapiencode_vp9_get_allowed_profiles;
encode_class->get_caps = gst_vaapiencode_vp9_get_caps;
encode_class->alloc_encoder = gst_vaapiencode_vp9_alloc_encoder;