[Repo] Add MIME to limit for the tensor/tensors only for now.
authorjijoong.moon <jijoong.moon@samsung.com>
Tue, 27 Nov 2018 00:34:10 +0000 (09:34 +0900)
committerMyungJoo Ham <myungjoo.ham@gmail.com>
Fri, 30 Nov 2018 02:18:29 +0000 (02:18 +0000)
Add MIME check becase currently onlye tensor/tensors are supported
for now.

**Changes proposed in this PR:**
- Added TOC generator for README.md

Resolves:

**Self evaluation:**
1. Build test:  [X]Passed [ ]Failed [ ]Skipped
2. Run test:  [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
gst/tensor_reposrc/tensor_reposrc.c

index 3ced530..11255ee 100644 (file)
@@ -37,6 +37,7 @@
 
 GST_DEBUG_CATEGORY_STATIC (gst_tensor_reposrc_debug);
 #define GST_CAT_DEFAULT gst_tensor_reposrc_debug
+#define CAPS_STRING GST_TENSOR_CAP_DEFAULT "; " GST_TENSORS_CAP_DEFAULT
 
 /**
  * @brief tensor_reposrc properties
@@ -157,8 +158,9 @@ gst_tensor_reposrc_dispose (GObject * object)
 static GstCaps *
 gst_tensor_reposrc_getcaps (GstBaseSrc * src, GstCaps * filter)
 {
-  GstCaps *cap;
+  GstCaps *cap, *check, *result;
   GstTensorRepoSrc *self = GST_TENSOR_REPOSRC (src);
+  GstStructure *st = NULL;
 
   GST_DEBUG_OBJECT (self, "returning %" GST_PTR_FORMAT, self->caps);
 
@@ -176,7 +178,20 @@ gst_tensor_reposrc_getcaps (GstBaseSrc * src, GstCaps * filter)
       cap = gst_caps_new_any ();
   }
 
-  return cap;
+  check = gst_caps_from_string (CAPS_STRING);
+  result = gst_caps_intersect_full (cap, check, GST_CAPS_INTERSECT_FIRST);
+
+  if (!result) {
+    GST_ELEMENT_ERROR (GST_ELEMENT (self), STREAM, WRONG_TYPE,
+        ("Only Tensor/Tensors MIME are supported for now"), (NULL));
+  }
+  gst_caps_unref (check);
+  gst_caps_unref (cap);
+
+  st = gst_caps_get_structure (result, 0);
+  gst_tensors_config_from_structure (&self->config, st);
+
+  return result;
 }
 
 /**
@@ -211,8 +226,6 @@ gst_tensor_reposrc_set_property (GObject * object, guint prop_id,
       gst_pad_set_caps (GST_BASE_SRC_PAD (self), new_caps);
       st = gst_caps_get_structure (new_caps, 0);
 
-      gst_tensors_config_from_structure (&self->config, st);
-
       if (new_caps && gst_caps_get_size (new_caps) == 1 && st
           && gst_structure_get_fraction (st, "framerate", &self->fps_n,
               &self->fps_d)) {