You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To make this work the library has to handle elements with Unknown Data Size and multiple Documents (or continuous Header and Segment elements).
Support for Unknown Data Size
Support for reading more than one EBML Document
EBML Stream
An EBML Stream is a file that consists of one or more EBML Documents that are concatenated together. An occurrence of an EBML Header at the Root Level marks the beginning of an EBML Document.
A live Matroska stream is different from a file because it usually has no known end (only ending when the client disconnects). For this, all bits of the “size” portion of the Segment ElementMUST be set to 1. Another option is to concatenate Segment Elements with known sizes, one after the other. This solution allows a change of codec/resolution between each segment. For example, this allows for a switch between 4:3 and 16:9 in a television program.
To better support streaming the plan is to replace io.ReadSeeker with io.ReaderAt and use stack instead of recursion. This could simplify the detection of the end of Unknown Data Size elements.
To make this work the library has to handle elements with Unknown Data Size and multiple Documents (or continuous Header and Segment elements).
EBML Stream
Source: https://www.rfc-editor.org/rfc/rfc8794#name-ebml-stream
Matroska Livestreaming
Source: https://www.matroska.org/technical/streaming.html
The text was updated successfully, but these errors were encountered: