From ab9ce7db7d33b53f218afdb893ede6b10a369983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 27 Sep 2011 15:05:19 +0200 Subject: [PATCH] omxvideodec: Switch to Idle first and wait before switching to Loaded and deallocating buffers Allocating buffers before the Idle state is reached can lead to crashes. --- omx/gstomxvideodec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c index 9dd99c4d5f..9849a8506d 100644 --- a/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c @@ -286,6 +286,10 @@ gst_omx_video_dec_close (GstOMXVideoDec * self) state = gst_omx_component_get_state (self->component, 0); if (state > OMX_StateLoaded || state == OMX_StateInvalid) { + if (state > OMX_StateIdle) { + gst_omx_component_set_state (self->component, OMX_StateIdle); + gst_omx_component_get_state (self->component, 5 * GST_SECOND); + } gst_omx_component_set_state (self->component, OMX_StateLoaded); gst_omx_port_deallocate_buffers (self->in_port); gst_omx_port_deallocate_buffers (self->out_port);