diff options
Diffstat (limited to 'omx/gstomxaudiodec.c')
-rw-r--r-- | omx/gstomxaudiodec.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/omx/gstomxaudiodec.c b/omx/gstomxaudiodec.c index 6e9d6df..8b8e121 100644 --- a/omx/gstomxaudiodec.c +++ b/omx/gstomxaudiodec.c @@ -990,7 +990,12 @@ gst_omx_audio_dec_flush (GstAudioDecoder * decoder, gboolean hard) gst_omx_component_get_state (self->dec, GST_CLOCK_TIME_NONE); } - /* 1) Wait until the srcpad loop is stopped, + /* 1) Flush the ports */ + GST_DEBUG_OBJECT (self, "flushing ports"); + gst_omx_port_set_flushing (self->dec_in_port, 5 * GST_SECOND, TRUE); + gst_omx_port_set_flushing (self->dec_out_port, 5 * GST_SECOND, TRUE); + + /* 2) Wait until the srcpad loop is stopped, * unlock GST_AUDIO_DECODER_STREAM_LOCK to prevent deadlocks * caused by using this lock from inside the loop function */ GST_AUDIO_DECODER_STREAM_UNLOCK (self); @@ -998,11 +1003,6 @@ gst_omx_audio_dec_flush (GstAudioDecoder * decoder, gboolean hard) GST_DEBUG_OBJECT (self, "Flushing -- task stopped"); GST_AUDIO_DECODER_STREAM_LOCK (self); - /* 2) Flush the ports */ - GST_DEBUG_OBJECT (self, "flushing ports"); - gst_omx_port_set_flushing (self->dec_in_port, 5 * GST_SECOND, TRUE); - gst_omx_port_set_flushing (self->dec_out_port, 5 * GST_SECOND, TRUE); - /* 3) Resume components */ gst_omx_component_set_state (self->dec, OMX_StateExecuting); gst_omx_component_get_state (self->dec, GST_CLOCK_TIME_NONE); |