omxvideoenc: Try harder to deallocate the buffers after errors happened

This commit is contained in:
Sebastian Dröge 2011-07-25 10:47:28 +02:00
parent 9e1cfa300b
commit ae7ed44e6b

View file

@ -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;