From ae7ed44e6b6f3d22a5c80149f7ba334dc712c991 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 25 Jul 2011 10:47:28 +0200 Subject: [PATCH] omxvideoenc: Try harder to deallocate the buffers after errors happened --- omx/gstomxvideoenc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index acdca4b..eb7564e 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -267,11 +267,16 @@ gst_omx_video_enc_open (GstOMXVideoEnc * self) static gboolean gst_omx_video_enc_close (GstOMXVideoEnc * self) { - if (gst_omx_component_get_state (self->component, 0) > OMX_StateLoaded) { - gst_omx_component_set_state (self->component, OMX_StateLoaded); + OMX_STATETYPE state; + + state = gst_omx_component_get_state (self->component, 0); + if (state > OMX_StateLoaded || state == OMX_StateInvalid) { + if (state > OMX_StateLoaded) + 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); - gst_omx_component_get_state (self->component, 5 * GST_SECOND); + if (state > OMX_StateLoaded) + gst_omx_component_get_state (self->component, 5 * GST_SECOND); } self->in_port = NULL; -- 2.7.4