Commit 155a3fec authored by Tim-Philipp Müller's avatar Tim-Philipp Müller 🐠

matroskaparse: don't error out if there's not enough data in the adapter

gst_matroska_parse_take() would return FLOW_ERROR instead of
FLOW_EOS in case there's less data in the adapter than requested,
because buffer is NULL in that case which triggers the error
code path. This made the unit test fail (occasionally at least,
because of a bug in the unit test there's a race and it would
happen only sporadically).
parent c0f5644b
......@@ -2274,10 +2274,10 @@ gst_matroska_parse_take (GstMatroskaParse * parse, guint64 bytes,
ret = GST_FLOW_ERROR;
goto exit;
}
if (gst_adapter_available (parse->common.adapter) >= bytes)
buffer = gst_adapter_take_buffer (parse->common.adapter, bytes);
else
ret = GST_FLOW_EOS;
if (gst_adapter_available (parse->common.adapter) < bytes)
return GST_FLOW_EOS;
buffer = gst_adapter_take_buffer (parse->common.adapter, bytes);
if (G_LIKELY (buffer)) {
gst_ebml_read_init (ebml, GST_ELEMENT_CAST (parse), buffer,
parse->common.offset);
......@@ -2286,6 +2286,7 @@ gst_matroska_parse_take (GstMatroskaParse * parse, guint64 bytes,
ret = GST_FLOW_ERROR;
}
exit:
return ret;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment