summaryrefslogtreecommitdiff
path: root/omx/gstomxaudioenc.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2011-11-10 14:56:19 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2011-11-10 14:56:19 +0100
commit05e4b4885522ef42c63c70f9c2f3452d195df80c (patch)
treee0924422c9e9e5197855e93e1a9a84077dcfd115 /omx/gstomxaudioenc.c
parent56bcfc0397c52c1d1e1745599542fd81dfaed59a (diff)
downloadgst-omx-05e4b4885522ef42c63c70f9c2f3452d195df80c.tar.gz
omxaudioenc: Improve EOS handling
If downstream return UNEXPECTED we should still signal the drain cond because nothing will trigger this again later.
Diffstat (limited to 'omx/gstomxaudioenc.c')
-rw-r--r--omx/gstomxaudioenc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/omx/gstomxaudioenc.c b/omx/gstomxaudioenc.c
index f62930f..ca045a8 100644
--- a/omx/gstomxaudioenc.c
+++ b/omx/gstomxaudioenc.c
@@ -500,15 +500,20 @@ gst_omx_audio_enc_loop (GstOMXAudioEnc * self)
outbuf, n_samples);
}
- if (flow_ret == GST_FLOW_OK && (buf->omx_buf->nFlags & OMX_BUFFERFLAG_EOS)) {
+ if ((flow_ret == GST_FLOW_OK && (buf->omx_buf->nFlags & OMX_BUFFERFLAG_EOS))
+ || flow_ret == GST_FLOW_UNEXPECTED) {
g_mutex_lock (self->drain_lock);
if (self->draining) {
+ GST_DEBUG_OBJECT (self, "Drained");
self->draining = FALSE;
g_cond_broadcast (self->drain_cond);
- } else {
+ } else if (flow_ret == GST_FLOW_OK) {
+ GST_DEBUG_OBJECT (self, "Component signalled EOS");
flow_ret = GST_FLOW_UNEXPECTED;
}
g_mutex_unlock (self->drain_lock);
+ } else {
+ GST_DEBUG_OBJECT (self, "Finished frame: %s", gst_flow_get_name (flow_ret));
}
gst_omx_port_release_buffer (port, buf);