summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demux/demux.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 1a2495e8a9..e5d7ad27d9 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -1297,6 +1297,10 @@ static void attempt_range_joining(struct demux_internal *in)
struct demux_queue *q2 = next->streams[n];
struct demux_stream *ds = in->streams[n]->ds;
+ assert(ds->queue == q1);
+
+ // First new packet that is appended to the current range.
+ struct demux_packet *join_point = q2->head;
if (q2->head) {
if (q1->head) {
@@ -1326,6 +1330,10 @@ static void attempt_range_joining(struct demux_internal *in)
add_index_entry(q1, q2->index[i]);
q2->num_index = 0;
+ if (ds->selected && !ds->reader_head)
+ ds->reader_head = join_point;
+ ds->skip_to_keyframe = false;
+
recompute_buffers(ds);
in->fw_bytes += ds->fw_bytes;