mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
qtdemux: Stop pushing data as soon as possible in push-mode
When working in push-mode, we attempt to push out everything currently buffered in the adapter. This has two pitfalls: * We could stop earlier (the moment we get a non-ok or non-not-linked) * We return the last combined flow return, which might be completely different from the previous combined flow return
This commit is contained in:
parent
8a7eaeb237
commit
d78d589627
1 changed files with 8 additions and 0 deletions
|
@ -6112,6 +6112,8 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
|
|||
|
||||
/* combine flows */
|
||||
ret = gst_qtdemux_combine_flows (demux, stream, ret);
|
||||
if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED)
|
||||
goto non_ok_unlinked_flow;
|
||||
} else {
|
||||
/* skip this data, stream is EOS */
|
||||
gst_adapter_flush (demux->adapter, demux->neededbytes);
|
||||
|
@ -6155,6 +6157,12 @@ done:
|
|||
return ret;
|
||||
|
||||
/* ERRORS */
|
||||
non_ok_unlinked_flow:
|
||||
{
|
||||
GST_DEBUG_OBJECT (demux, "Stopping, combined return flow %s",
|
||||
gst_flow_get_name (ret));
|
||||
return ret;
|
||||
}
|
||||
unknown_stream:
|
||||
{
|
||||
GST_ELEMENT_ERROR (demux, STREAM, FAILED, (NULL), ("unknown stream found"));
|
||||
|
|
Loading…
Reference in a new issue