From 9917fbe4c55fb9b4e9c580fc9e48dd91b0876a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 18 Nov 2011 10:00:31 -0800 Subject: [PATCH] omxaudioenc: First set ports to flushing before waiting for the srcpad streaming thread to finish --- omx/gstomxaudioenc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/omx/gstomxaudioenc.c b/omx/gstomxaudioenc.c index 1a4de2599a..beab2b2f27 100644 --- a/omx/gstomxaudioenc.c +++ b/omx/gstomxaudioenc.c @@ -641,6 +641,11 @@ gst_omx_audio_enc_stop (GstBaseAudioEncoder * encoder) self = GST_OMX_AUDIO_ENC (encoder); + GST_DEBUG_OBJECT (self, "Stopping encoder"); + + gst_omx_port_set_flushing (self->in_port, TRUE); + gst_omx_port_set_flushing (self->out_port, TRUE); + gst_pad_stop_task (GST_BASE_AUDIO_ENCODER_SRC_PAD (encoder)); if (gst_omx_component_get_state (self->component, 0) > OMX_StateIdle) @@ -655,9 +660,6 @@ gst_omx_audio_enc_stop (GstBaseAudioEncoder * encoder) g_cond_broadcast (self->drain_cond); g_mutex_unlock (self->drain_lock); - gst_omx_port_set_flushing (self->in_port, TRUE); - gst_omx_port_set_flushing (self->out_port, TRUE); - gst_omx_component_get_state (self->component, 5 * GST_SECOND); return TRUE;