matroskademux: Allow Matroska headers to be read more than once
authorAlicia Boya García <ntrrgc@gmail.com>
Thu, 30 Nov 2017 19:44:23 +0000 (20:44 +0100)
committerThibault Saunier <tsaunier@igalia.com>
Fri, 21 Sep 2018 20:27:57 +0000 (17:27 -0300)
commit9dc7859184d4b7ad1dd7e2b54704e994dbace329
tree8cd4386faee9fa9bf43eaceff93d35084b8d25c8
parent9605028a712ac83252072f8abc4bd17743c1e611
matroskademux: Allow Matroska headers to be read more than once

This is necessary for MSE, where a new MSE initialization segment may be
appended at any point. These MSE initialization segments consist of an
entire WebM file until the first Cluster element (not included). [1]

Note that track definitions are ignored on successive headers, they must
match, but this is not checked by matroskademux (look for
`(!demux->tracks_parsed)` in the code).

Source pads are not altered when the new headers are read.

This patch has been splitted from the original patch from eocanha in [2].

[1] https://www.w3.org/TR/mse-byte-stream-format-webm/
[2] https://bug334082.bugzilla-attachments.gnome.org/attachment.cgi?id=362212

https://bugzilla.gnome.org/show_bug.cgi?id=793333
gst/matroska/matroska-demux.c