matroskademux: Send tags after seeking
Similar to what qtdemux does in `gst_qtdemux_stream_update_segment()`, in which case we want to resend tags according to our position. By setting the changed flag for all stream tags we ensure they will all be (re-)send as we progrees. This notably ensures that rotation tags are not lost when video players finish playback and jump back to the beginning of a video. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8429>
This commit is contained in:
parent
bebec6d965
commit
7e2b383553
@ -3265,6 +3265,13 @@ exit:
|
||||
else
|
||||
demux->to_time = GST_CLOCK_TIME_NONE;
|
||||
demux->segment_seqnum = seqnum;
|
||||
|
||||
for (int i = 0; i < demux->common.src->len; i++) {
|
||||
GstMatroskaTrackContext *stream;
|
||||
|
||||
stream = g_ptr_array_index (demux->common.src, i);
|
||||
stream->tags_changed = TRUE;
|
||||
}
|
||||
GST_OBJECT_UNLOCK (demux);
|
||||
|
||||
/* restart our task since it might have been stopped when we did the
|
||||
@ -6255,6 +6262,7 @@ gst_matroska_demux_loop (GstPad * pad)
|
||||
if (G_UNLIKELY (demux->new_segment)) {
|
||||
gst_matroska_demux_send_event (demux, demux->new_segment);
|
||||
demux->new_segment = NULL;
|
||||
gst_matroska_demux_send_tags (demux);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user