diff options
author | Josep Torra <n770galaxy@gmail.com> | 2013-05-20 12:06:34 +0200 |
---|---|---|
committer | Josep Torra <n770galaxy@gmail.com> | 2013-05-20 12:06:34 +0200 |
commit | f3f9330332050f6e18b8fbeabf3791604b862ab0 (patch) | |
tree | ee475e03ccbafd4d50527cccb68e2d6911bb2ed7 | |
parent | cd76c268fc861441089c4c13a2d227bc9fbd0bf0 (diff) | |
download | gst-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.c | 2 | ||||
-rw-r--r-- | omx/gstomxvideodec.c | 2 | ||||
-rw-r--r-- | omx/gstomxvideoenc.c | 2 |
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 */ |