mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-03 04:52:28 +00:00
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).
This commit is contained in:
parent
c0f5644b80
commit
155a3fec93
1 changed files with 5 additions and 4 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue