mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
wpesrc: Don't crash if WPE doesn't generate a buffer.
On creating a 2nd wpesrc in a new pipeline in an app that already has a runnig wpesrc, WPE sometimes doesn't return a buffer on request, leading to a crash. This commit fixes the crash, but not the underlying failure - a 2nd wpesrc can still error out instead. Partially fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1386 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568>
This commit is contained in:
parent
c3659cd611
commit
6fc7455881
1 changed files with 7 additions and 4 deletions
|
@ -169,11 +169,13 @@ gst_wpe_src_create (GstBaseSrc * bsrc, guint64 offset, guint length, GstBuffer *
|
||||||
}
|
}
|
||||||
|
|
||||||
locked_buffer = src->view->buffer ();
|
locked_buffer = src->view->buffer ();
|
||||||
|
if (locked_buffer == NULL) {
|
||||||
if (locked_buffer != NULL) {
|
GST_OBJECT_UNLOCK (src);
|
||||||
*buf = gst_buffer_copy_deep (locked_buffer);
|
GST_ELEMENT_ERROR (src, RESOURCE, FAILED,
|
||||||
ret = GST_FLOW_OK;
|
("WPE View did not render a buffer"), (NULL));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
*buf = gst_buffer_copy_deep (locked_buffer);
|
||||||
|
|
||||||
g_object_get(gl_src, "timestamp-offset", &ts_offset, NULL);
|
g_object_get(gl_src, "timestamp-offset", &ts_offset, NULL);
|
||||||
|
|
||||||
|
@ -195,6 +197,7 @@ gst_wpe_src_create (GstBaseSrc * bsrc, guint64 offset, guint length, GstBuffer *
|
||||||
|
|
||||||
gl_src->running_time = next_time;
|
gl_src->running_time = next_time;
|
||||||
|
|
||||||
|
ret = GST_FLOW_OK;
|
||||||
GST_OBJECT_UNLOCK (src);
|
GST_OBJECT_UNLOCK (src);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue