basesrc: ensure submitted buffer list is writable

Fixes flaky appsrc unit test where depending on scheduling
the submitted list might not be writable if submitted via
an action signal from the application thread.

Fixes gst-plugins-base#522
This commit is contained in:
Tim-Philipp Müller 2018-12-19 00:34:40 +00:00
parent 63170d52ae
commit 33267b2ecc

View file

@ -4036,7 +4036,8 @@ gst_base_src_submit_buffer_list (GstBaseSrc * src, GstBufferList * buffer_list)
g_return_if_fail (GST_IS_BUFFER_LIST (buffer_list));
g_return_if_fail (BASE_SRC_HAS_PENDING_BUFFER_LIST (src) == FALSE);
src->priv->pending_bufferlist = buffer_list;
/* we need it to be writable later in get_range() where we use get_writable */
src->priv->pending_bufferlist = gst_buffer_list_make_writable (buffer_list);
GST_LOG_OBJECT (src, "%u buffers submitted in buffer list",
gst_buffer_list_length (buffer_list));