mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-13 11:34:10 +00:00
matroskademux: maintain variable state when searching for position
... so skipping to next cluster happens efficiently
This commit is contained in:
parent
6a6f7fc48f
commit
b19ef0df30
1 changed files with 2 additions and 2 deletions
|
@ -1811,6 +1811,7 @@ gst_matroska_demux_search_pos (GstMatroskaDemux * demux, GstClockTime time)
|
|||
GstClockTime otime, prev_cluster_time, current_cluster_time, cluster_time;
|
||||
gint64 opos, newpos, startpos = 0, current_offset;
|
||||
gint64 prev_cluster_offset = -1, current_cluster_offset, cluster_offset;
|
||||
guint64 cluster_size = 0;
|
||||
const guint chunk = 64 * 1024;
|
||||
GstFlowReturn ret;
|
||||
guint64 length;
|
||||
|
@ -1901,9 +1902,8 @@ retry:
|
|||
* re-estimate if overshoot, otherwise next cluster and so on */
|
||||
demux->common.offset = newpos;
|
||||
demux->cluster_time = cluster_time = GST_CLOCK_TIME_NONE;
|
||||
cluster_size = 0;
|
||||
while (1) {
|
||||
guint64 cluster_size = 0;
|
||||
|
||||
/* peek and parse some elements */
|
||||
ret = gst_matroska_read_common_peek_id_length_pull (&demux->common,
|
||||
GST_ELEMENT_CAST (demux), &id, &length, &needed);
|
||||
|
|
Loading…
Reference in a new issue