add output buffer duration 2.1b_release accepted/tizen_2.1/20130426.150219 submit/tizen_2.1/20130426.145457
authorSunghyun Eum <sunghyun.eum@samsung.com>
Wed, 24 Apr 2013 07:56:07 +0000 (16:56 +0900)
committerSunghyun Eum <sunghyun.eum@samsung.com>
Wed, 24 Apr 2013 07:56:07 +0000 (16:56 +0900)
Change-Id: I13e4d5c48ef53d01c86b3e2fe937718cffd9d06a

omx/gstomx_base_filter.c
omx/gstomx_base_filter.h
omx/gstomx_base_videodec.c
omx/gstomx_h264dec.c
packaging/gst-openmax.spec

index 8f4973e..f4b72c4 100644 (file)
@@ -514,6 +514,9 @@ push_buffer (GstOmxBaseFilter * self, GstBuffer * buf, OMX_BUFFERHEADERTYPE * om
     }
   }
 
+  /* set average duration for memsink. need to check */
+  GST_BUFFER_DURATION(buf) = self->duration;
+
   GST_LOG_OBJECT (self, "OUT_BUFFER: timestamp = %" GST_TIME_FORMAT " size = %lu",
       GST_TIME_ARGS(GST_BUFFER_TIMESTAMP (buf)), GST_BUFFER_SIZE (buf));
   ret = gst_pad_push (self->srcpad, buf);
@@ -1169,6 +1172,7 @@ type_instance_init (GTypeInstance * instance, gpointer g_class)
   self->use_state_tuning = FALSE;
   self->adapter_size = 0;
   self->adapter = NULL;
+  self->duration = 0;
 
   self->gomx = gstomx_core_new (self, G_TYPE_FROM_CLASS (g_class));
   self->in_port = g_omx_core_new_port (self->gomx, 0);
index e7cdfb6..8b87e8c 100644 (file)
@@ -131,6 +131,9 @@ struct GstOmxBaseFilter
 
   GstAdapter *adapter;  /* adapter */
   guint adapter_size;
+
+  /* MODIFICATION: set output buffer duration as average */
+  GstClockTime duration;
 };
 
 struct GstOmxBaseFilterClass
index a253762..09d528b 100644 (file)
@@ -213,6 +213,8 @@ sink_setcaps (GstPad * pad, GstCaps * caps)
       self->framerate_num = gst_value_get_fraction_numerator (framerate);
       self->framerate_denom = gst_value_get_fraction_denominator (framerate);
     }
+    omx_base->duration = gst_util_uint64_scale_int (GST_SECOND, self->framerate_denom, self->framerate_num);
+    GST_INFO_OBJECT (self, "set average duration= %"GST_TIME_FORMAT, GST_TIME_ARGS (omx_base->duration));
   }
 
   G_OMX_INIT_PARAM (param);
index 0f2f825..40860f0 100644 (file)
@@ -404,6 +404,8 @@ sink_setcaps (GstPad * pad, GstCaps * caps)
       self->framerate_num = gst_value_get_fraction_numerator (framerate);
       self->framerate_denom = gst_value_get_fraction_denominator (framerate);
     }
+    omx_base->duration = gst_util_uint64_scale_int (GST_SECOND, self->framerate_denom, self->framerate_num);
+    GST_INFO_OBJECT (self, "set average duration= %"GST_TIME_FORMAT, GST_TIME_ARGS (omx_base->duration));
   }
 
   G_OMX_INIT_PARAM (param);
index 41f8399..e1af246 100644 (file)
@@ -2,7 +2,7 @@
 Name:       gst-openmax
 Summary:    GStreamer plug-in that allows communication with OpenMAX IL components
 Version:    0.10.1
-Release:    5
+Release:    6
 Group:      Application/Multimedia
 License:    LGPLv2.1
 Source0:    %{name}-%{version}.tar.gz