Constructor
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) done_ :boolean
-
Type:
- boolean
- Source:
-
(private, non-null) headers_ :Object.<number, shaka.util.Mp4Parser.BoxType_>
-
Type:
- Object.<number, shaka.util.Mp4Parser.BoxType_>
- Source:
Methods
-
(static) allData(callbacknon-null) → (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 how to handle it.
Parameters:
Name Type Description callback
!function(!Uint8Array) - Source:
Returns:
-
(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:
-
(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
-
(private, 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
-
box(type, definitionnon-null) → (non-null) {shaka.util.Mp4Parser}
-
Delcare a box type as a Box.
Parameters:
Name Type Description type
string definition
shaka.util.Mp4Parser.CallbackType - Source:
Returns:
- Type
- shaka.util.Mp4Parser
-
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
-
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 partial payload for some boxes. If the goal is a child box, we can sometimes find it without enough data to find all child boxes. - Source:
-
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 partial payload for some boxes. If the goal is a child box, we can sometimes find it without enough data to find all child boxes. - Source:
-
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, allow partial payload for 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: