[Decoder] Fix the Bug (#94) and Delete check for SRC direction
authorjijoong.moon <jijoong.moon@samsung.com>
Thu, 14 Jun 2018 23:45:08 +0000 (08:45 +0900)
committer함명주/동작제어Lab(SR)/Principal Engineer/삼성전자 <myungjoo.ham@samsung.com>
Fri, 15 Jun 2018 00:02:36 +0000 (09:02 +0900)
- Fix the missing memeory free (#94).
- Delete Check for the GST_PAD_SRC direction. The SRC is ANY, it can
  be Any format and the Sink should be TENSOR Type. Therefore it just
  return GST_TENSOR_CAP_DEFAULT GstCaps.

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
tensor_decoder/tensordec.c
tensor_decoder/tensordec.h

index 0443e89..789962a 100644 (file)
@@ -391,7 +391,8 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     "tensordec",
     tensordec_init, VERSION, "LGPL", "GStreamer", "http://gstreamer.net/")
 
-     static GstFlowReturn gst_tensordec_transform (GstBaseTransform * trans,
+     static GstFlowReturn
+         gst_tensordec_transform (GstBaseTransform * trans,
     GstBuffer * inbuf, GstBuffer * outbuf)
 {
   GstTensorDec *filter = GST_TENSORDEC_CAST (trans);
@@ -402,6 +403,7 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     goto unknown_tensor;
 
   switch (filter->output_media_type) {
+
     case _NNS_VIDEO:
       break;
       /* NOT SUPPORTED */
@@ -536,7 +538,7 @@ gst_tensordec_transform_caps (GstBaseTransform * trans,
 
       tmp = gst_caps_from_string (str2);
       g_printerr ("Structure from caps to = %s\n", str2);
-
+      g_free (str);
       /* If given caps are in range for width/height,
          we cannot configure tensor, however, we may return proper srcpad caps */
       /* @TODO: see if the error is from ranging width/height before entering here */
@@ -579,48 +581,20 @@ gst_tensordec_transform_caps (GstBaseTransform * trans,
     structure = gst_caps_get_structure (caps, 0);
     str = gst_structure_to_string (structure);
     g_printerr ("From = %s\n", str);
+    g_free (str);
     structure = gst_caps_get_structure (tmp, 0);
     str = gst_structure_to_string (structure);
     g_printerr ("To = %s\n", str);
-
+    g_free (str);
     GST_DEBUG_OBJECT (trans, "SINK transformed %" GST_PTR_FORMAT " into %"
         GST_PTR_FORMAT, caps, tmp);
     return tmp;
   } else if (direction == GST_PAD_SRC) {
-
-    GstStructure *structure;
-    gchar *str;
-
     /* Construct possible GstCap (sinkpad) with src_factory */
     /* @TODO This supports video only! */
     GstStaticCaps staticcap = GST_STATIC_CAPS (GST_TENSOR_CAP_DEFAULT);
-
     tmp = gst_static_caps_get (&staticcap);
 
-    /* Because SRC is ANY, I'm not sure of this check. */
-    if (!gst_caps_is_any (caps)) {
-      structure = gst_caps_get_structure (caps, 0);
-      str = gst_structure_to_string (structure);
-      g_printerr ("Structure from src = %s\n", str);
-      if (filter) {
-        GstCaps *tmp2;
-        structure = gst_caps_get_structure (filter, 0);
-        str = gst_structure_to_string (structure);
-        g_printerr ("Structure from filter = %s\n", str);
-
-        tmp2 = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
-
-        structure = gst_caps_get_structure (tmp2, 0);
-        str = gst_structure_to_string (structure);
-        g_printerr ("Structure from intersection = %s\n", str);
-
-        gst_caps_unref (tmp);
-        tmp = tmp2;
-      }
-
-      GST_DEBUG_OBJECT (trans, "SRC transformed %" GST_PTR_FORMAT " into %"
-          GST_PTR_FORMAT, caps, tmp);
-    }
     return tmp;
   }
   /* Neither SRC/SINK? Impossible! */
index 54d1927..5d1212a 100644 (file)
@@ -96,10 +96,7 @@ struct _GstTensorDec
   /* For transformer */
   gboolean negotiated; /**< %TRUE if tensor metadata is set */
   media_type output_media_type; /**< Denotes the input media stream type */
-  union {
-    GstVideoInfo video; /**< video-info of the input media stream */
-    /* @TODO: Add other media types */
-  } in_info; /**< media input stream info union. will support audio/text later */
+
   gboolean addPadding; /* If TRUE, zero-padding must be removed during transform */
 
   /* For Tensor */
@@ -122,7 +119,7 @@ struct _GstTensorDec
  * its child (concrete class) GstVideoConverter.
  * Note that GstTensorDecClass is a concrete class; thus we need to look at both.
  */
-struct _GstTensorDecClass 
+struct _GstTensorDecClass
 {
   GstBaseTransformClass parent_class;  /**< Inherits GstBaseTransformClass */
 };