diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index 54eec08eb1..74bc62f407 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -1469,8 +1469,10 @@ gst_omx_video_enc_finish (GstBaseVideoEncoder * encoder) GST_DEBUG_OBJECT (self, "Sending EOS to the component"); /* Don't send EOS buffer twice, this doesn't work */ - if (self->eos) + if (self->eos) { + GST_DEBUG_OBJECT (self, "Component is already EOS"); return TRUE; + } self->eos = TRUE; /* Make sure to release the base class stream lock, otherwise @@ -1485,6 +1487,9 @@ gst_omx_video_enc_finish (GstBaseVideoEncoder * encoder) if (acq_ret == GST_OMX_ACQUIRE_BUFFER_OK) { buf->omx_buf->nFlags |= OMX_BUFFERFLAG_EOS; gst_omx_port_release_buffer (self->in_port, buf); + GST_DEBUG_OBJECT (self, "Sent EOS to the component"); + } else { + GST_ERROR_OBJECT (self, "Failed to acquire buffer for EOS: %d", acq_ret); } GST_BASE_VIDEO_CODEC_STREAM_LOCK (self); @@ -1500,13 +1505,17 @@ gst_omx_video_enc_drain (GstOMXVideoEnc * self) GST_DEBUG_OBJECT (self, "Draining component"); - if (!self->started) + if (!self->started) { + GST_DEBUG_OBJECT (self, "Component not started yet"); return GST_FLOW_OK; + } self->started = FALSE; /* Don't send EOS buffer twice, this doesn't work */ - if (self->eos) + if (self->eos) { + GST_DEBUG_OBJECT (self, "Component is EOS already"); return GST_FLOW_OK; + } /* Make sure to release the base class stream lock, otherwise * _loop() can't call _finish_frame() and we might block forever @@ -1519,6 +1528,8 @@ gst_omx_video_enc_drain (GstOMXVideoEnc * self) acq_ret = gst_omx_port_acquire_buffer (self->in_port, &buf); if (acq_ret != GST_OMX_ACQUIRE_BUFFER_OK) { GST_BASE_VIDEO_CODEC_STREAM_LOCK (self); + GST_ERROR_OBJECT (self, "Failed to acquire buffer for draining: %d", + acq_ret); return GST_FLOW_ERROR; }