Class: shaka.util.Mp4Parser

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:
Source:

(private) done_ :boolean

Type:
  • boolean
Source:

(private, non-null) headers_ :Object.<number, shaka.util.Mp4Parser.BoxType_>

Type:
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:
Type
shaka.util.Mp4Parser.CallbackType

(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:
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: