Merge remote-tracking branch 'gst-omx/tizen_gst_1.19.2' into tizen_gst_1.19.2_mono
[platform/upstream/gstreamer.git] / omx / gstomxaudiosink.c
index e28d23e..d4e684f 100644 (file)
@@ -318,14 +318,14 @@ gst_omx_audio_sink_open (GstAudioSink * audiosink)
 
   err = gst_omx_port_set_enabled (self->in_port, FALSE);
   if (err != OMX_ErrorNone) {
-    GST_ERROR_OBJECT (self, "Failed to enable port: %s (0x%08x)",
+    GST_ERROR_OBJECT (self, "Failed to disable port: %s (0x%08x)",
         gst_omx_error_to_string (err), err);
     return FALSE;
   }
 
   err = gst_omx_port_set_enabled (self->out_port, FALSE);
   if (err != OMX_ErrorNone) {
-    GST_ERROR_OBJECT (self, "Failed to enable port: %s (0x%08x)",
+    GST_ERROR_OBJECT (self, "Failed to disable port: %s (0x%08x)",
         gst_omx_error_to_string (err), err);
     return FALSE;
   }
@@ -358,7 +358,7 @@ gst_omx_audio_sink_close (GstAudioSink * audiosink)
   self->in_port = NULL;
   self->out_port = NULL;
   if (self->comp)
-    gst_omx_component_free (self->comp);
+    gst_omx_component_unref (self->comp);
   self->comp = NULL;
 
   GST_DEBUG_OBJECT (self, "Closed audio sink");
@@ -589,6 +589,13 @@ gst_omx_audio_sink_prepare (GstAudioSink * audiosink,
     goto activation;
   }
 
+  err = gst_omx_port_set_flushing (self->in_port, 5 * GST_SECOND, FALSE);
+  if (err != OMX_ErrorNone) {
+    GST_ERROR_OBJECT (self, "Failed to set port not flushing: %s (0x%08x)",
+        gst_omx_error_to_string (err), err);
+    goto activation;
+  }
+
   err = gst_omx_port_set_enabled (self->in_port, TRUE);
   if (err != OMX_ErrorNone) {
     GST_ERROR_OBJECT (self, "Failed to enable port: %s (0x%08x)",
@@ -729,13 +736,6 @@ gst_omx_audio_sink_unprepare (GstAudioSink * audiosink)
     goto failed;
   }
 
-  err = gst_omx_port_set_flushing (self->in_port, 5 * GST_SECOND, FALSE);
-  if (err != OMX_ErrorNone) {
-    GST_ERROR_OBJECT (self, "Failed to set port not flushing: %s (0x%08x)",
-        gst_omx_error_to_string (err), err);
-    goto failed;
-  }
-
   gst_omx_component_get_state (self->comp, GST_CLOCK_TIME_NONE);
 
   return TRUE;
@@ -760,7 +760,7 @@ gst_omx_audio_sink_acquire_buffer (GstOMXAudioSink * self)
   GstOMXBuffer *buf = NULL;
 
   while (!buf) {
-    acq_ret = gst_omx_port_acquire_buffer (port, &buf);
+    acq_ret = gst_omx_port_acquire_buffer (port, &buf, GST_OMX_WAIT);
     if (acq_ret == GST_OMX_ACQUIRE_BUFFER_ERROR) {
       goto component_error;
     } else if (acq_ret == GST_OMX_ACQUIRE_BUFFER_FLUSHING) {
@@ -886,6 +886,7 @@ release_error:
 static guint
 gst_omx_audio_sink_delay (GstAudioSink * audiosink)
 {
+#if defined (USE_OMX_TARGET_RPI)
   GstOMXAudioSink *self = GST_OMX_AUDIO_SINK (audiosink);
   OMX_PARAM_U32TYPE param;
   OMX_ERRORTYPE err;
@@ -903,6 +904,9 @@ gst_omx_audio_sink_delay (GstAudioSink * audiosink)
 
   GST_DEBUG_OBJECT (self, "reported delay %u samples", (guint) param.nU32);
   return param.nU32;
+#else
+  return 0;
+#endif
 }
 
 static void