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 static gboolean
gst_omx_video_enc_close (GstOMXVideoEnc * self) gst_omx_video_enc_close (GstOMXVideoEnc * self)
{ {
if (gst_omx_component_get_state (self->component, 0) > OMX_StateLoaded) { OMX_STATETYPE state;
gst_omx_component_set_state (self->component, OMX_StateLoaded);
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->in_port);
gst_omx_port_deallocate_buffers (self->out_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; self->in_port = NULL;