From 3a17d11109a6e838bfbc788beff9cc4cb5754d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 4 Nov 2011 09:43:12 +0100 Subject: [PATCH] omxvideoenc: Only drain the component a single time and only after processing started --- omx/gstomxvideoenc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c index 1f1f8c7874..8bf7ce842b 100644 --- a/omx/gstomxvideoenc.c +++ b/omx/gstomxvideoenc.c @@ -977,7 +977,11 @@ gst_omx_video_enc_set_format (GstBaseVideoEncoder * encoder, * format change happened we can just exit here. */ if (needs_disable) { - gst_omx_video_enc_drain (self); + if (self->started) { + gst_omx_video_enc_drain (self); + self->started = FALSE; + } + if (gst_omx_port_manual_reconfigure (self->in_port, TRUE) != OMX_ErrorNone) return FALSE; if (gst_omx_port_set_enabled (self->in_port, FALSE) != OMX_ErrorNone) @@ -1088,6 +1092,7 @@ gst_omx_video_enc_reset (GstBaseVideoEncoder * encoder) if (self->started) { gst_omx_video_enc_drain (self); + self->started = FALSE; gst_omx_port_set_flushing (self->in_port, TRUE); gst_omx_port_set_flushing (self->out_port, TRUE); @@ -1451,6 +1456,8 @@ gst_omx_video_enc_drain (GstOMXVideoEnc * self) GST_DEBUG_OBJECT (self, "Draining component"); + g_assert (self->started); + /* Send an EOS buffer to the component and let the base * class drop the EOS event. We will send it later when * the EOS buffer arrives on the output port. */