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 f933077..d4e684f 100644 (file)
@@ -239,7 +239,7 @@ gst_omx_audio_sink_volume_set (GstOMXAudioSink * self, gdouble volume)
         OMX_IndexConfigAudioVolume, &param);
     if (err != OMX_ErrorNone) {
       GST_ERROR_OBJECT (self, "Failed to set volume to %d: %s (0x%08x)",
-          param.sVolume.nValue, gst_omx_error_to_string (err), err);
+          (gint) param.sVolume.nValue, gst_omx_error_to_string (err), err);
     }
   }
   self->volume = volume;
@@ -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");
@@ -518,14 +518,14 @@ gst_omx_audio_sink_configure_pcm (GstOMXAudioSink * self,
   }
 
   GST_DEBUG_OBJECT (self, "Setting PCM parameters");
-  GST_DEBUG_OBJECT (self, "  nChannels: %d", param.nChannels);
+  GST_DEBUG_OBJECT (self, "  nChannels: %u", (guint) param.nChannels);
   GST_DEBUG_OBJECT (self, "  eNumData: %s",
       (param.eNumData == OMX_NumericalDataSigned ? "signed" : "unsigned"));
   GST_DEBUG_OBJECT (self, "  eEndian: %s",
       (param.eEndian == OMX_EndianLittle ? "little endian" : "big endian"));
   GST_DEBUG_OBJECT (self, "  bInterleaved: %d", param.bInterleaved);
-  GST_DEBUG_OBJECT (self, "  nBitPerSample: %d", param.nBitPerSample);
-  GST_DEBUG_OBJECT (self, "  nSamplingRate: %d", param.nSamplingRate);
+  GST_DEBUG_OBJECT (self, "  nBitPerSample: %u", (guint) param.nBitPerSample);
+  GST_DEBUG_OBJECT (self, "  nSamplingRate: %u", (guint) param.nSamplingRate);
   GST_DEBUG_OBJECT (self, "  ePCMMode: %04x", param.ePCMMode);
   GST_DEBUG_OBJECT (self, "  eChannelMapping: {%s, %s, %s, %s, %s, %s, %s, %s}",
       ch2str (param.eChannelMapping[0]), ch2str (param.eChannelMapping[1]),
@@ -565,8 +565,8 @@ gst_omx_audio_sink_prepare (GstAudioSink * audiosink,
   port_def.format.audio.eEncoding = OMX_AUDIO_CodingPCM;
 
   GST_DEBUG_OBJECT (self, "Updating outport port definition");
-  GST_DEBUG_OBJECT (self, "  nBufferSize: %d", port_def.nBufferSize);
-  GST_DEBUG_OBJECT (self, "  nBufferCountActual: %d",
+  GST_DEBUG_OBJECT (self, "  nBufferSize: %u", (guint) port_def.nBufferSize);
+  GST_DEBUG_OBJECT (self, "  nBufferCountActual: %u", (guint)
       port_def.nBufferCountActual);
   GST_DEBUG_OBJECT (self, "  audio.eEncoding: 0x%08x",
       port_def.format.audio.eEncoding);
@@ -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;
@@ -901,8 +902,11 @@ gst_omx_audio_sink_delay (GstAudioSink * audiosink)
     param.nU32 = 0;
   }
 
-  GST_DEBUG_OBJECT (self, "reported delay %d samples", param.nU32);
+  GST_DEBUG_OBJECT (self, "reported delay %u samples", (guint) param.nU32);
   return param.nU32;
+#else
+  return 0;
+#endif
 }
 
 static void