omxvideoenc: Fix deadlock between srcpad stream lock and ::reset()

This commit is contained in:
Sebastian Dröge 2011-11-07 11:05:29 +01:00
parent 95b06504f9
commit 9a6cea5af3

View file

@ -758,6 +758,16 @@ gst_omx_video_enc_loop (GstOMXVideoEnc * self)
GST_DEBUG_OBJECT (self, "Handling buffer: 0x%08x %lu", buf->omx_buf->nFlags,
buf->omx_buf->nTimeStamp);
/* This prevents a deadlock between the srcpad stream
* lock and the videocodec stream lock, if ::reset()
* is called at the wrong time
*/
if (gst_omx_port_is_flushing (self->out_port)) {
GST_DEBUG_OBJECT (self, "Flushing");
gst_omx_port_release_buffer (self->out_port, buf);
goto flushing;
}
frame = _find_nearest_frame (self, buf);
if ((buf->omx_buf->nFlags & OMX_BUFFERFLAG_CODECCONFIG)
&& buf->omx_buf->nFilledLen > 0) {