summaryrefslogtreecommitdiff
path: root/omx/gstomxvideodec.c
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2018-08-31 17:28:03 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2018-08-31 17:42:07 -0400
commit04e1f76b600001d1b69139388432ba6fd0281fff (patch)
tree451088a564cb7f5b9b2325b51abbd2adf4dcd7ca /omx/gstomxvideodec.c
parentf108eeafdea68d44497c27de8889685f12a52ac9 (diff)
downloadgst-omx-04e1f76b600001d1b69139388432ba6fd0281fff.tar.gz
omxvideodec: don't hold the stream lock when trying to push a frame
The base class methods will lock this properly when needed, there seems to be no need to lock it explicitly. This allows the patch in gstvideodec for unlocking the stream lock when pushing buffers out to work. https://bugzilla.gnome.org/show_bug.cgi?id=715192
Diffstat (limited to 'omx/gstomxvideodec.c')
-rw-r--r--omx/gstomxvideodec.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 750abc2..848d0b1 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1718,7 +1718,6 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
gst_omx_buffer_flags_to_string (buf->omx_buf->nFlags),
(guint64) GST_OMX_GET_TICKS (buf->omx_buf->nTimeStamp));
- GST_VIDEO_DECODER_STREAM_LOCK (self);
frame = gst_omx_video_find_nearest_frame (buf,
gst_video_decoder_get_frames (GST_VIDEO_DECODER (self)));
@@ -1862,13 +1861,13 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
goto release_error;
}
+ GST_VIDEO_DECODER_STREAM_LOCK (self);
self->downstream_flow_ret = flow_ret;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (self);
if (flow_ret != GST_FLOW_OK)
goto flow_error;
- GST_VIDEO_DECODER_STREAM_UNLOCK (self);
-
return;
component_error:
@@ -1941,7 +1940,6 @@ flow_error:
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
}
gst_omx_video_dec_pause_loop (self, flow_ret);
- GST_VIDEO_DECODER_STREAM_UNLOCK (self);
return;
}