Constructor
(export) new Mp4Parser()
Create a new MP4 Parser
- Source:
Members
(private, static) BoxType_ :number
An enum used to track the type of box so that the correct values can be
read from the header.
Type:
- number
Properties:
Name | Value | Type | Description |
---|---|---|---|
BASIC_BOX |
0 | number | |
FULL_BOX |
1 | number |
- Source:
(private, non-null) boxDefinitions_ :Object.<number, !shaka.util.Mp4Parser.CallbackType>
Type:
- Object.<number, !shaka.util.Mp4Parser.CallbackType>
- Source:
(private, non-null) headers_ :Object.<number, shaka.util.Mp4Parser.BoxType_>
Type:
- Object.<number, shaka.util.Mp4Parser.BoxType_>
- Source:
Methods
(export, static) allData(callback) → (non-null) {shaka.util.Mp4Parser.CallbackType}
Create a callback that tells the Mp4 parser to treat the body of a box as a
binary blob and to parse the body's contents using the provided callback.
Parameters:
Name | Type | Description |
---|---|---|
callback |
function(!Uint8Array) |
- Source:
Returns:
(export, static) children(boxnon-null)
A callback that tells the Mp4 parser to treat the body of a box as a series
of boxes. The number of boxes is limited by the size of the parent box.
Parameters:
Name | Type | Description |
---|---|---|
box |
shaka.util.Mp4Parser.ParsedBox |
- Source:
(export, static) sampleDescription(boxnon-null)
A callback that tells the Mp4 parser to treat the body of a box as a sample
description. A sample description box has a fixed number of children. The
number of children is represented by a 4 byte unsigned integer. Each child
is a box.
Parameters:
Name | Type | Description |
---|---|---|
box |
shaka.util.Mp4Parser.ParsedBox |
- Source:
(private, static) typeFromString_(name) → {number}
Convert an ascii string name to the integer type for a box.
Parameters:
Name | Type | Description |
---|---|---|
name |
string | The name of the box. The name must be four characters long. |
- Source:
Returns:
- Type
- number
(export, static) typeToString(type) → {string}
Convert an integer type from a box into an ascii string name.
Useful for debugging.
Parameters:
Name | Type | Description |
---|---|---|
type |
number | The type of the box, a uint32. |
- Source:
Returns:
- Type
- string
(export) box(type, definitionnon-null) → (non-null) {shaka.util.Mp4Parser}
Declare a box type as a Box.
Parameters:
Name | Type | Description |
---|---|---|
type |
string | |
definition |
shaka.util.Mp4Parser.CallbackType |
- Source:
Returns:
- Type
- shaka.util.Mp4Parser
(export) fullBox(type, definitionnon-null) → (non-null) {shaka.util.Mp4Parser}
Declare a box type as a Full Box.
Parameters:
Name | Type | Description |
---|---|---|
type |
string | |
definition |
shaka.util.Mp4Parser.CallbackType |
- Source:
Returns:
- Type
- shaka.util.Mp4Parser
(export) parse(datanon-null, opt_partialOkayopt)
Parse the given data using the added callbacks.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
data |
BufferSource | ||
opt_partialOkay |
boolean |
<optional> |
If true, allow reading partial payloads from some boxes. If the goal is a child box, we can sometimes find it without enough data to find all child boxes. |
- Source:
(export) parseNext(absStart, readernon-null, opt_partialOkayopt)
Parse the next box on the current level.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
absStart |
number | The absolute start position in the original byte array. | |
reader |
shaka.util.DataViewReader | ||
opt_partialOkay |
boolean |
<optional> |
If true, allow reading partial payloads from some boxes. If the goal is a child box, we can sometimes find it without enough data to find all child boxes. |
- Source:
(export) stop()
Stop parsing. Useful for extracting information from partial segments and
avoiding an out-of-bounds error once you find what you are looking for.
- Source:
Type Definitions
CallbackType
Type:
- function(!shaka.util.Mp4Parser.ParsedBox)
- Source:
ParsedBox
Type:
- {parser: !shaka.util.Mp4Parser, partialOkay: boolean, start: number, size: number, version: ?number, flags: ?number, reader: !shaka.util.DataViewReader}
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
parser |
shaka.util.Mp4Parser | The parser that parsed this box. The parser can be used to parse child boxes where the configuration of the current parser is needed to parsed other boxes. | |
partialOkay |
boolean | If true, allows reading partial payloads from some boxes. If the goal is a child box, we can sometimes find it without enough data to find all child boxes. This property allows the opt_partialOkay flag from parse() to be propagated through methods like children(). | |
start |
number | The start of this box (before the header) in the original buffer. This start position is the absolute position. | |
size |
number | The size of this box (including the header). | |
version |
number |
<nullable> |
The version for a full box, null for basic boxes. |
flags |
number |
<nullable> |
The flags for a full box, null for basic boxes. |
reader |
shaka.util.DataViewReader | The reader for this box is only for this box. Reading or not reading to the end will have no affect on the parser reading other sibling boxes. |
- Source: