[Bug 793333] matroskademux: Allow Matroska headers to be read more than once

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Feb 27 15:14:14 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=793333

Tim-Philipp Müller <t.i.m at zen.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |t.i.m at zen.co.uk
           Severity|normal                      |enhancement

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |slomo at coaxion.net

y.bandou <bandou.yacine at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bandou.yacine at gmail.com

--- Comment #1 from Alicia Boya García <aboya at igalia.com> ---
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

--- Comment #2 from Alicia Boya García <aboya at igalia.com> ---
Created attachment 368183
  --> https://bugzilla.gnome.org/attachment.cgi?id=368183&action=edit
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

--- Comment #3 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
Maybe they must match in MSE but I think it's a perfectly valid use case to
have them change during normal streaming (even if rarely supported)?

--- Comment #4 from Alicia Boya García <aboya at igalia.com> ---
Could you provide an example? qtdemux already works this way.

--- Comment #5 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
QuickTime is a different format. All I'm saying is that we probably shouldn't
make this assumption, but check and error out if not.

--- Comment #6 from Alicia Boya García <aboya at igalia.com> ---
It may be a different format, but we're talking about the same behavior:
finding metadata again at some point in the stream. Shouldn't both be
consistent?

For instance, it would be a bit weird if in WebKit code where I need to support
both I end up having to handle stream events just for one of the formats while
it's handled by the demuxer in the other.

--- Comment #7 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
This is a duplicate of https://bugzilla.gnome.org/show_bug.cgi?id=334082 or
not? Also has a patch, also mentions MSE

--- Comment #8 from Alicia Boya García <aboya at igalia.com> ---
(In reply to Sebastian Dröge (slomo) from comment #6)
> This is a duplicate of https://bugzilla.gnome.org/show_bug.cgi?id=334082 or
> not? Also has a patch, also mentions MSE

Not really, because the original problem in that patch is mostly unrelated to
MSE even if the discussion turned that way. I'll post a mega-reply there
explaining it soon.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list