secparse: add missing pixel-aspect-ratio caps [1/1]
PD#TV-38600
Problem:
secparse ignores "pixel-aspect-ratio" in srcpad caps
Solution:
add it back
Verify:
TM2 + Platco
Change-Id: I5ef3064eb9b3b7f8b8cd179d883afb88c5bcbf8b
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 2be6a3f..58a0efd 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
@@ -1690,6 +1690,7 @@
}
if (caps) {
+ gint par_n = 0, par_d = 0;
guint size = gst_caps_get_size(caps);
for (unsigned i = 0; i < size; ++i) {
gst_caps_set_features(caps, i, gst_caps_features_from_string(GST_CAPS_FEATURE_MEMORY_DMABUF));
@@ -1717,6 +1718,14 @@
ensure_caps_profile (h264parse, caps, sps);
}
+ if (s)
+ gst_structure_get_fraction (s, "pixel-aspect-ratio", &par_n, &par_d);
+ if (par_n != 0 && par_d != 0) {
+ GST_INFO_OBJECT (h264parse, "PAR %d/%d", par_n, par_d);
+ gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION,
+ par_n, par_d, NULL);
+ }
+
src_caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (h264parse));
if (src_caps) {
diff --git a/gst-aml-drm-plugins-1.0/src/secure_parse/gsth265_sec_parse.c b/gst-aml-drm-plugins-1.0/src/secure_parse/gsth265_sec_parse.c
index 05be729..d566643 100755
--- a/gst-aml-drm-plugins-1.0/src/secure_parse/gsth265_sec_parse.c
+++ b/gst-aml-drm-plugins-1.0/src/secure_parse/gsth265_sec_parse.c
@@ -1549,7 +1549,7 @@
}
if (caps) {
- gint par_n, par_d;
+ gint par_n = 0, par_d = 0;
guint size = gst_caps_get_size(caps);
for (unsigned i = 0; i < size; ++i) {
gst_caps_set_features(caps, i, gst_caps_features_from_string(GST_CAPS_FEATURE_MEMORY_DMABUF));
@@ -1561,9 +1561,9 @@
"alignment", G_TYPE_STRING,
gst_h265_sec_parse_get_string (h265parse, FALSE, h265parse->align), NULL);
- gst_h265_sec_parse_get_par (h265parse, &par_n, &par_d);
- if (par_n != 0 && par_d != 0 &&
- (!s || !gst_structure_has_field (s, "pixel-aspect-ratio"))) {
+ if (s)
+ gst_structure_get_fraction (s, "pixel-aspect-ratio", &par_n, &par_d);
+ if (par_n != 0 && par_d != 0) {
GST_INFO_OBJECT (h265parse, "PAR %d/%d", par_n, par_d);
gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION,
par_n, par_d, NULL);