From: Sebastian Dröge Date: Thu, 17 Nov 2011 19:26:33 +0000 (-0800) Subject: omxaudioenc: Signal the drain GCond even if downstream returned an error X-Git-Tag: 1.19.3~501^2~821 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8a5fbb876c4394256879aca7c6f60b36d39a9a71;p=platform%2Fupstream%2Fgstreamer.git omxaudioenc: Signal the drain GCond even if downstream returned an error --- diff --git a/omx/gstomxaudioenc.c b/omx/gstomxaudioenc.c index 940774d..1a4de25 100644 --- a/omx/gstomxaudioenc.c +++ b/omx/gstomxaudioenc.c @@ -416,6 +416,7 @@ gst_omx_audio_enc_loop (GstOMXAudioEnc * self) GstOMXBuffer *buf = NULL; GstFlowReturn flow_ret = GST_FLOW_OK; GstOMXAcquireBufferReturn acq_return; + gboolean is_eos; klass = GST_OMX_AUDIO_ENC_GET_CLASS (self); @@ -468,6 +469,8 @@ gst_omx_audio_enc_loop (GstOMXAudioEnc * self) buf->omx_buf->nTimeStamp); GST_BASE_AUDIO_ENCODER_STREAM_LOCK (self); + is_eos = ! !(buf->omx_buf->nFlags & OMX_BUFFERFLAG_EOS); + if ((buf->omx_buf->nFlags & OMX_BUFFERFLAG_CODECCONFIG) && buf->omx_buf->nFilledLen > 0) { GstCaps *caps; @@ -523,8 +526,7 @@ gst_omx_audio_enc_loop (GstOMXAudioEnc * self) outbuf, n_samples); } - if ((flow_ret == GST_FLOW_OK && (buf->omx_buf->nFlags & OMX_BUFFERFLAG_EOS)) - || flow_ret == GST_FLOW_UNEXPECTED) { + if (is_eos || flow_ret == GST_FLOW_UNEXPECTED) { g_mutex_lock (self->drain_lock); if (self->draining) { GST_DEBUG_OBJECT (self, "Drained");