summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosep Torra <n770galaxy@gmail.com>2013-05-20 12:06:34 +0200
committerJosep Torra <n770galaxy@gmail.com>2013-05-20 12:06:34 +0200
commitf3f9330332050f6e18b8fbeabf3791604b862ab0 (patch)
treeee475e03ccbafd4d50527cccb68e2d6911bb2ed7
parentcd76c268fc861441089c4c13a2d227bc9fbd0bf0 (diff)
downloadgst-omx-f3f9330332050f6e18b8fbeabf3791604b862ab0.tar.gz
omx: Take lock on EOS to update the flow return value
Fixes "GThread-ERROR **: file gthread-posix.c: line 171 (g_mutex_free_posix_impl): error 'Device or resource busy' during 'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
-rw-r--r--omx/gstomxaudioenc.c2
-rw-r--r--omx/gstomxvideodec.c2
-rw-r--r--omx/gstomxvideoenc.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/omx/gstomxaudioenc.c b/omx/gstomxaudioenc.c
index 2a8a090..538902c 100644
--- a/omx/gstomxaudioenc.c
+++ b/omx/gstomxaudioenc.c
@@ -514,6 +514,8 @@ eos:
flow_ret = GST_FLOW_EOS;
}
g_mutex_unlock (&self->drain_lock);
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (self);
self->downstream_flow_ret = flow_ret;
/* Here we fallback and pause the task for the EOS case */
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 5378f60..74a71d4 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -2156,6 +2156,8 @@ eos:
flow_ret = GST_FLOW_EOS;
}
g_mutex_unlock (&self->drain_lock);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (self);
self->downstream_flow_ret = flow_ret;
/* Here we fallback and pause the task for the EOS case */
diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c
index 4506992..a399c07 100644
--- a/omx/gstomxvideoenc.c
+++ b/omx/gstomxvideoenc.c
@@ -908,6 +908,8 @@ eos:
flow_ret = GST_FLOW_EOS;
}
g_mutex_unlock (&self->drain_lock);
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (self);
self->downstream_flow_ret = flow_ret;
/* Here we fallback and pause the task for the EOS case */