mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-07 12:21:17 +00:00
dashdemux: Drain remaining buffer in adapter
Previous patch allows sidx box parsing from incoming buffers. Since the incoming buffer boundary might be over sidx box, there can be remaining buffer in isobmff parser adapter. https://bugzilla.gnome.org/show_bug.cgi?id=776352
This commit is contained in:
parent
243829098c
commit
998c8ce246
1 changed files with 14 additions and 0 deletions
|
@ -2534,6 +2534,20 @@ gst_dash_demux_handle_isobmff_buffer (GstAdaptiveDemux * demux,
|
|||
GST_BUFFER_OFFSET (buffer) = dash_stream->isobmff_parser.current_offset;
|
||||
dash_stream->isobmff_parser.current_offset += gst_buffer_get_size (buffer);
|
||||
GST_BUFFER_OFFSET_END (buffer) = dash_stream->isobmff_parser.current_offset;
|
||||
} else if (gst_adapter_available (dash_stream->isobmff_adapter) > 0) {
|
||||
guint64 offset;
|
||||
|
||||
/* Drain adapter */
|
||||
gst_adapter_push (dash_stream->isobmff_adapter, buffer);
|
||||
|
||||
buffer =
|
||||
gst_adapter_take_buffer (dash_stream->isobmff_adapter,
|
||||
gst_adapter_available (dash_stream->isobmff_adapter));
|
||||
|
||||
/* Set buffer offset based on the last parser's offset */
|
||||
offset = dash_stream->isobmff_parser.current_offset;
|
||||
GST_BUFFER_OFFSET (buffer) = offset;
|
||||
GST_BUFFER_OFFSET_END (buffer) = offset + gst_buffer_get_size (buffer);
|
||||
}
|
||||
|
||||
return gst_adaptive_demux_stream_push_buffer (stream, buffer);
|
||||
|
|
Loading…
Reference in a new issue