mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
omxvideoenc: factor out gst_omx_video_enc_pause_loop()
No semantic change. I'm going to use it in more failure cases. https://bugzilla.gnome.org/show_bug.cgi?id=796207
This commit is contained in:
parent
2b48338d68
commit
798bbc9acf
1 changed files with 16 additions and 17 deletions
|
@ -1531,6 +1531,20 @@ copy_frame (const GstVideoInfo * info, GstBuffer * outbuf)
|
|||
return tmpbuf;
|
||||
}
|
||||
|
||||
static void
|
||||
gst_omx_video_enc_pause_loop (GstOMXVideoDec * self, GstFlowReturn flow_ret)
|
||||
{
|
||||
g_mutex_lock (&self->drain_lock);
|
||||
if (self->draining) {
|
||||
self->draining = FALSE;
|
||||
g_cond_broadcast (&self->drain_cond);
|
||||
}
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
self->downstream_flow_ret = flow_ret;
|
||||
self->started = FALSE;
|
||||
g_mutex_unlock (&self->drain_lock);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_omx_video_dec_loop (GstOMXVideoDec * self)
|
||||
{
|
||||
|
@ -1828,15 +1842,7 @@ component_error:
|
|||
flushing:
|
||||
{
|
||||
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
|
||||
g_mutex_lock (&self->drain_lock);
|
||||
if (self->draining) {
|
||||
self->draining = FALSE;
|
||||
g_cond_broadcast (&self->drain_cond);
|
||||
}
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
self->downstream_flow_ret = GST_FLOW_FLUSHING;
|
||||
self->started = FALSE;
|
||||
g_mutex_unlock (&self->drain_lock);
|
||||
gst_omx_video_enc_pause_loop (self, GST_FLOW_FLUSHING);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1894,14 +1900,7 @@ flow_error:
|
|||
self->started = FALSE;
|
||||
} else if (flow_ret == GST_FLOW_FLUSHING) {
|
||||
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
|
||||
g_mutex_lock (&self->drain_lock);
|
||||
if (self->draining) {
|
||||
self->draining = FALSE;
|
||||
g_cond_broadcast (&self->drain_cond);
|
||||
}
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
g_mutex_unlock (&self->drain_lock);
|
||||
gst_omx_video_enc_pause_loop (self, flow_ret);
|
||||
}
|
||||
GST_VIDEO_DECODER_STREAM_UNLOCK (self);
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue