rdk: secure parser support dmabuffer only [1/1]
PD#SWPL-23981
Problem:
the gstreamer auto-plugin set up not correct due
Solution:
make secure parser support dmabuffer only, so that auto-plugin
not change the pipe
Verify:
U212 + RDK
Change-Id: I04f21e6246181a90337cac674652931d76a96cae
Signed-off-by: Tao Guo <tao.guo@amlogic.com>
diff --git a/gst-aml-drm-plugins-1.0/src/dummy/gstdummydrm.c b/gst-aml-drm-plugins-1.0/src/dummy/gstdummydrm.c
index fc26065..9b520e9 100644
--- a/gst-aml-drm-plugins-1.0/src/dummy/gstdummydrm.c
+++ b/gst-aml-drm-plugins-1.0/src/dummy/gstdummydrm.c
@@ -169,7 +169,7 @@
ret = gst_caps_copy(caps);
unsigned size = gst_caps_get_size(ret);
for (unsigned i = 0; i < size; ++i) {
- gst_caps_set_features(ret, i, NULL);
+ gst_caps_set_features(ret, i, gst_caps_features_from_string(GST_CAPS_FEATURE_MEMORY_DMABUF));
}
} else {
ret = gst_caps_copy(srccaps);
diff --git a/gst-aml-drm-plugins-1.0/src/secure_parse/gsth264_sec_parse.c b/gst-aml-drm-plugins-1.0/src/secure_parse/gsth264_sec_parse.c
index 79a9f95..99ca023 100644
--- a/gst-aml-drm-plugins-1.0/src/secure_parse/gsth264_sec_parse.c
+++ b/gst-aml-drm-plugins-1.0/src/secure_parse/gsth264_sec_parse.c
@@ -79,14 +79,15 @@
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("video/x-h264(memory:SecMem)"));
+ GST_STATIC_CAPS ("video/x-h264(" GST_CAPS_FEATURE_MEMORY_SECMEM_MEMORY ")"));
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("video/x-h264, parsed = (boolean) true, "
- "stream-format=(string) { avc, avc3, byte-stream }, "
- "alignment=(string) { au, nal }"));
+ GST_STATIC_CAPS ("video/x-h264(" GST_CAPS_FEATURE_MEMORY_DMABUF "),"
+ "parsed = (boolean) true, "
+ "stream-format=(string)byte-stream, "
+ "alignment=(string)au"));
#define parent_class gst_h264_sec_parse_parent_class
G_DEFINE_TYPE (GstH264SecParse, gst_h264_sec_parse, GST_TYPE_BASE_PARSE);
@@ -1847,6 +1848,8 @@
caps = NULL;
if (G_UNLIKELY (!sps)) {
caps = gst_caps_copy (sink_caps);
+ gst_caps_set_simple (caps, "width", G_TYPE_INT, 1920,
+ "height", G_TYPE_INT, 1080, NULL);
} else {
gint crop_width, crop_height;
gint fps_num, fps_den;
@@ -2013,7 +2016,7 @@
if (caps) {
guint size = gst_caps_get_size(caps);
for (unsigned i = 0; i < size; ++i) {
- gst_caps_set_features(caps, i, NULL);
+ gst_caps_set_features(caps, i, gst_caps_features_from_string(GST_CAPS_FEATURE_MEMORY_DMABUF));
}
gst_caps_set_simple (caps, "parsed", G_TYPE_BOOLEAN, TRUE,
diff --git a/gst-aml-drm-plugins-1.0/src/secure_parse/gstvp9_sec_trans.c b/gst-aml-drm-plugins-1.0/src/secure_parse/gstvp9_sec_trans.c
index a44064c..69abd43 100644
--- a/gst-aml-drm-plugins-1.0/src/secure_parse/gstvp9_sec_trans.c
+++ b/gst-aml-drm-plugins-1.0/src/secure_parse/gstvp9_sec_trans.c
@@ -10,12 +10,12 @@
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("video/x-vp9(memory:SecMem)"));
+ GST_STATIC_CAPS ("video/x-vp9(" GST_CAPS_FEATURE_MEMORY_SECMEM_MEMORY ")"));
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("video/x-vp9"));
+ GST_STATIC_CAPS ("video/x-vp9(" GST_CAPS_FEATURE_MEMORY_DMABUF ")"));
#define gst_vp9_sec_trans_parent_class parent_class
G_DEFINE_TYPE(GstVp9SecTrans, gst_vp9_sec_trans, GST_TYPE_BASE_TRANSFORM);
@@ -117,12 +117,18 @@
ret = gst_caps_copy(srccaps);
s = gst_caps_get_structure (caps, 0);
- if (s && gst_structure_has_field (s, "width")) {
- gst_structure_get_int (s, "width", &width);
+ if (s) {
+ width = 1920;
+ if (gst_structure_has_field (s, "width")) {
+ gst_structure_get_int (s, "width", &width);
+ }
gst_caps_set_simple (ret, "width", G_TYPE_INT, width, NULL);
}
- if (s && gst_structure_has_field (s, "height")) {
- gst_structure_get_int (s, "height", &height);
+ if (s) {
+ height = 1080;
+ if (gst_structure_has_field (s, "height")) {
+ gst_structure_get_int (s, "height", &height);
+ }
gst_caps_set_simple (ret, "height", G_TYPE_INT, height, NULL);
}
}
@@ -134,7 +140,7 @@
ret = gst_caps_copy(caps);
unsigned size = gst_caps_get_size(ret);
for (unsigned i = 0; i < size; ++i) {
- gst_caps_set_features(ret, i, NULL);
+ gst_caps_set_features(ret, i, gst_caps_features_from_string(GST_CAPS_FEATURE_MEMORY_DMABUF));
}
} else {
ret = gst_caps_copy(srccaps);