Class: shaka.text.TtmlTextParser

Constructor

new TtmlTextParser()

Implements:
Source:

Classes

RateInfo_
Contains information about frame/subframe rate and frame rate multiplier for time in frame format.

Members

genericFontFamilies_ :Object<string, string>

The font families of the generic TTML font families.
Type:
  • Object<string, string>
Source:

parameterNs_ :Array<string>

The namespace URL for TTML parameters. Can be assigned any name in the TTML document, not just "ttp:", so we use this with getAttributeNS() to ensure that we support arbitrary namespace names.
Type:
  • Array<string>
Source:

percentValue_ :RegExp

Type:
  • RegExp
Source:
Example
0.6% 90% 300% 1000%

percentValues_ :RegExp

Lengths relative to the width and the height of the root container are percentages too.
Type:
  • RegExp
Source:
Example
50.17% 10% or 50rw 10rh

pixelValues_ :RegExp

Type:
  • RegExp
Source:
Example
100px

smpteNsList_ :Array<string>

The supported namespace URLs for SMPTE fields.
Type:
  • Array<string>
Source:

styleEbuttsNs_ :string

The namespace URL for EBU TTML styles. Can be assigned any name in the TTML document, not just "ebutts:", so we use this with getAttributeNS() to ensure that we support arbitrary namespace names.
Type:
  • string
Source:

styleNs_ :Array<string>

The namespace URL for TTML styles. Can be assigned any name in the TTML document, not just "tts:", so we use this with getAttributeNS() to ensure that we support arbitrary namespace names.
Type:
  • Array<string>
Source:

textAlignments_ :Object<string, !Array<?>>

The position alignment and the line alignment of each text alignment.
Type:
  • Object<string, !Array<?>>
Source:

textDecorations_ :Object<string, shaka.text.Cue.textDecoration>

The text decorations, by their lower case TTML name.
Type:
Source:

timeColonFormat_ :RegExp

Type:
  • RegExp
Source:
Example
00:00:40, 00:40, 01:02:43.0345555, 02:43.03 or 02:45.5

timeColonFormatFrames_ :RegExp

Type:
  • RegExp
Source:
Example
00:00:40:07 (7 frames) or 00:00:40:07.1 (7 frames, 1 subframe)

timeFramesOrTicksFormat_ :RegExp

Type:
  • RegExp
Source:
Example
75f or 75.5f frames, or 50t or 50.5t ticks

timeHMSFormat_ :RegExp

Type:
  • RegExp
Source:
Example
3.45h, 3m, 4.20s or 500ms

transparentColor_ :RegExp

Matches no color, and fully transparent colors.
Type:
  • RegExp
Source:
Example
transparent, #ff000000 or rgba(255,0,0,0)

ttmlNs_ :Array<string>

Supported TTML element namespaces. The empty namespace preserves support for legacy documents that omit namespace declarations.
Type:
  • Array<string>
Source:

unitValues_ :RegExp

Type:
  • RegExp
Source:
Example
100px, 8em, 0.80c

manifestType_ :string

Type:
  • string
Source:

Methods

clipCue_(cuenon-null, start, end) → {shaka.text.Cue}

Clips the times of a cue and of its nested cues to an interval.
Parameters:
Name Type Description
cue shaka.text.Cue
start number
end number
Source:
Returns:
The cue, or null if it is outside of the interval.
Type
shaka.text.Cue

getLineage_(elementnon-null, parentElementnullable) → {Array<!shaka.extern.xml.Node>}

Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node
parentElement shaka.extern.xml.Node <nullable>
Source:
Returns:
The ancestors of the element, from the body, and the element.
Type
Array<!shaka.extern.xml.Node>

getName_(node) → {string}

Parameters:
Name Type Description
node shaka.extern.xml.Node | string
Source:
Returns:
The local name of the node if it is a TTML element, or an empty string otherwise.
Type
string

getRegionPadding_(padding, regionnon-null, writingModenullable, toRootPercentage) → {string}

Converts the padding of a region to its top, right, bottom and left lengths, in pixels or in percentage of the height or width of the region. The padding is expressed as the before, end, after and start lengths, relative to the writing mode of the region. See https://www.w3.org/TR/ttml1/#style-attribute-padding
Parameters:
Name Type Attributes Description
padding string
region shaka.text.CueRegion
writingMode string <nullable>
toRootPercentage function(string, boolean): ?number
Source:
Returns:
Type
string

getRegionPosition_(position, regionnon-null, toRootPercentage) → {Array<number>}

Converts the position of a region to the position of its top left corner, in percentage of the root container. A percentage of the position is relative to the space which is not occupied by the region, like a CSS background position. See https://www.w3.org/TR/ttml2/#style-value-position
Parameters:
Name Type Description
position string
region shaka.text.CueRegion
toRootPercentage function(string, boolean): ?number
Source:
Returns:
The horizontal and vertical positions.
Type
Array<number>

getTimedChildren_(elementnon-null) → {Array<(!shaka.extern.xml.Node|string)>}

Gets the children of an element which take part in its timing, or null if the element has no children for timing purposes.
Parameters:
Name Type Description
element shaka.extern.xml.Node
Source:
Returns:
Type
Array<(!shaka.extern.xml.Node|string)>

hasTimeAttributes_(elementnon-null) → {boolean}

Parameters:
Name Type Description
element shaka.extern.xml.Node
Source:
Returns:
True if the element has a begin, end or dur attribute.
Type
boolean

isContentElement_(node) → {boolean}

Parameters:
Name Type Description
node shaka.extern.xml.Node | string
Source:
Returns:
True if the node is a content element:
,

, or
.

Type
boolean

isSeqContainer_(elementnon-null) → {boolean}

Parameters:
Name Type Description
element shaka.extern.xml.Node
Source:
Returns:
True if the element is a sequential time container.
Type
boolean

parseLength_(value) → {Array<string>}

Parameters:
Name Type Description
value string
Source:
Returns:
The number and the unit of the length, at the indexes 1 and 2, or null if the value is not a length.
Type
Array<string>

round_(value) → {number}

Parameters:
Name Type Description
value number
Source:
Returns:
The value, without the rounding errors of floating point numbers, like 0.30000000000000004.
Type
number

splitValues_(value) → {Array<string>}

Splits a value at its spaces, except inside colors like rgba(0, 0, 0, 0).
Parameters:
Name Type Description
value string
Source:
Returns:
Type
Array<string>

toCssLength_(value) → {string}

Converts a TTML length to a length for the displayer. A percentage is relative to the font size.
Parameters:
Name Type Description
value string
Source:
Returns:
The length in pixels, "em", cells or relative to the root container, or null if the value is not a length.
Type
string

addStyle_(cuenon-null, cueElementnon-null, parentElementnullable, regionnullable, imageElement, imageUrinullable, stylesnon-null, isNested, isLeaf)

Adds applicable style properties to a cue.
Parameters:
Name Type Attributes Description
cue shaka.text.Cue
cueElement shaka.extern.xml.Node
parentElement shaka.extern.xml.Node <nullable>
region shaka.extern.xml.Node <nullable>
imageElement shaka.extern.xml.Node
imageUri string <nullable>
styles Array<!shaka.extern.xml.Node>
isNested boolean
isLeaf boolean
Source:

addTextDecoration_(cuenon-null, decoration)

Parses text decoration values and adds/removes them to/from the cue.
Parameters:
Name Type Description
cue shaka.text.Cue
decoration string
Source:

animate_(cuenon-null, elementnon-null, stylesnon-null, intervalsnon-null, timeContext, addStyle) → {Array<!shaka.text.Cue>}

Applies the animations of an element, the elements which change its style during their interval, by splitting its cue at their boundaries. The cue is also removed while the element is not displayed. See https://www.w3.org/TR/ttml1/#animation-vocabulary-set
Parameters:
Name Type Description
cue shaka.text.Cue
element shaka.extern.xml.Node
styles Array<!shaka.extern.xml.Node>
intervals shaka.text.TtmlTextParser.Intervals_
timeContext shaka.extern.TextParser.TimeContext
addStyle function(!shaka.text.Cue, !shaka.extern.xml.Node) Adds the style of an element to a cue.
Source:
Returns:
Type
Array<!shaka.text.Cue>

convertTextShadow_(textShadow) → {string}

Converts a tts:textShadow value to a CSS text shadow, where the lengths can also be in cells or relative to the root container, like "1c" or "1rh".
Parameters:
Name Type Description
textShadow string
Source:
Returns:
Type
string

convertTTMLrgbaToHTMLrgba_(color) → {string}

Ensures any TTML RGBA's alpha range of 0-255 is converted to 0-1.
Parameters:
Name Type Description
color string
Source:
Returns:
Type
string

getAncestorStyleAttribute_(elementnullable, stylesnon-null, attribute) → {string}

Finds a style attribute specified on an element or on its closest ancestor which specifies it.
Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node <nullable>
styles Array<!shaka.extern.xml.Node>
attribute string
Source:
Returns:
Type
string

getCellResolution_(cellResolutionnullable) → {?{columns: number, rows: number}}

If ttp:cellResolution provided returns cell resolution info with number of columns and rows into which the Root Container Region area is divided
Parameters:
Name Type Attributes Description
cellResolution string <nullable>
Source:
Returns:
Type
?{columns: number, rows: number}

getElementsFromCollection_(element, attributeName, collectionnon-null, prefixName, nsNameopt) → {Array<!shaka.extern.xml.Node>}

Selects items from |collection| whose id matches |attributeName| from |element|.
Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node
attributeName string
collection Array<shaka.extern.xml.Node>
prefixName string
nsName string <optional>
Source:
Returns:
Type
Array<!shaka.extern.xml.Node>

getInheritedAttribute_(elementnon-null, attributeName, nsNameopt) → {string}

Traverses upwards from a given node until a given attribute is found.
Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node
attributeName string
nsName string <optional>
Source:
Returns:
Type
string

getInheritedStyleAttribute_(elementnon-null, stylesnon-null, attribute, styleElementsopt, non-null) → {string}

Finds a specified attribute on an element's styles and the styles those styles inherit from.
Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node
styles Array<!shaka.extern.xml.Node>
attribute string
styleElements Array<!shaka.extern.xml.Node> <optional>
The styles to look into, instead of the styles referenced by the element.
Source:
Returns:
Type
string

getSpecifiedStyleAttribute_(elementnon-null, stylesnon-null, attribute) → {string}

Finds a style attribute specified on an element itself, inline or in the styles it references, but not inherited from its ancestors.
Parameters:
Name Type Description
element shaka.extern.xml.Node
styles Array<!shaka.extern.xml.Node>
attribute string
Source:
Returns:
Type
string

getStyleAttribute_(cueElementnon-null, regionnullable, stylesnon-null, attribute, shouldInheritRegionStylesopt) → {string}

Finds a specified attribute on either the original cue element or its associated region and returns the value if the attribute was found.
Parameters:
Name Type Attributes Default Description
cueElement shaka.extern.xml.Node
region shaka.extern.xml.Node <nullable>
styles Array<!shaka.extern.xml.Node>
attribute string
shouldInheritRegionStyles boolean <optional>
true
Source:
Returns:
Type
string

getStyleAttributeFromElement_(cueElementnon-null, stylesnon-null, attribute) → {string}

Finds a specified attribute on the cue element and returns the value if the attribute was found.
Parameters:
Name Type Description
cueElement shaka.extern.xml.Node
styles Array<!shaka.extern.xml.Node>
attribute string
Source:
Returns:
Type
string

getStyleAttributeFromRegion_(regionnullable, stylesnon-null, attribute) → {string}

Finds a specified attribute on the element's associated region and returns the value if the attribute was found.
Parameters:
Name Type Attributes Description
region shaka.extern.xml.Node <nullable>
styles Array<!shaka.extern.xml.Node>
attribute string
Source:
Returns:
Type
string

parseCue_(cueNodenon-null, timeContext, rateInfonon-null, metadataElementsnon-null, stylesnon-null, regionElementsnon-null, cueRegionsnon-null, collapseMultipleSpaces, cellResolutionnullable, parentCueElementnullable, isContent, urinullable, imagesnon-null, intervalsnon-null, parentInterval, usesRegions) → {Array<!shaka.text.Cue>}

Parses a TTML node into a Cue.
Parameters:
Name Type Attributes Description
cueNode shaka.extern.xml.Node
timeContext shaka.extern.TextParser.TimeContext
rateInfo shaka.text.TtmlTextParser.RateInfo_
metadataElements Array<!shaka.extern.xml.Node>
styles Array<!shaka.extern.xml.Node>
regionElements Array<!shaka.extern.xml.Node>
cueRegions Array<!shaka.text.CueRegion>
collapseMultipleSpaces boolean
cellResolution ?{columns: number, rows: number} <nullable>
parentCueElement shaka.extern.xml.Node <nullable>
isContent boolean
uri string | undefined <nullable>
images Array<string>
intervals shaka.text.TtmlTextParser.Intervals_ The intervals resolved by resolveTiming_.
parentInterval shaka.text.TtmlTextParser.Interval_ The active interval of the parent element.
usesRegions boolean Whether the content is flowed into regions, so that the content which is not in any region is not presented.
Source:
Returns:
The cues of the node, as an animated element is split into several cues.
Type
Array<!shaka.text.Cue>

parseCueRegion_(regionElementnon-null, stylesnon-null, globalExtentnullable, cellResolutionnullable) → {shaka.text.CueRegion}

Parses an Element into a TextTrackCue or VTTCue.
Parameters:
Name Type Attributes Description
regionElement shaka.extern.xml.Node
styles Array<!shaka.extern.xml.Node> Defined in the top of tt element and used principally for images.
globalExtent string <nullable>
cellResolution ?{columns: number, rows: number} <nullable>
Source:
Returns:
Type
shaka.text.CueRegion

parseInit(datanon-null)

Parse an initialization segment. Some formats do not have init segments so this won't always be called.
Parameters:
Name Type Description
data Uint8Array The data that makes up the init segment.
Implements:
Source:

parseMedia(datanon-null, timeContext, urinullable, imagesnon-null) → {Array<!shaka.text.Cue>}

Parse a media segment and return the cues that make up the segment.
Parameters:
Name Type Attributes Description
data Uint8Array The next section of buffer.
timeContext shaka.extern.TextParser.TimeContext The time information that should be used to adjust the times values for each cue.
uri string | undefined <nullable>
The media uri.
images Array<string>
Implements:
Source:
Returns:
Type
Array<!shaka.text.Cue>

parseTimeAttribute_(text, rateInfonon-null) → {number}

Parses a TTML time from the given attribute text.
Parameters:
Name Type Description
text string
rateInfo shaka.text.TtmlTextParser.RateInfo_
Source:
Returns:
Type
number

resolveFontSize_(elementnon-null, parentElementnullable, regionnullable, stylesnon-null) → {string}

Resolves the font size of an element. A percentage is relative to the font size of the parent element, and to a cell for the region, but the displayer always resolves a percentage relative to a cell.
Parameters:
Name Type Attributes Description
element shaka.extern.xml.Node
parentElement shaka.extern.xml.Node <nullable>
region shaka.extern.xml.Node <nullable>
styles Array<!shaka.extern.xml.Node>
Source:
Returns:
The font size, in cells, pixels or percentage of a cell, or null if it can't be resolved.
Type
string

resolveTiming_(elementnon-null, rateInfonon-null, implicitBegin, isInSeq, intervalsnon-null) → {shaka.text.TtmlTextParser.Interval_}

Resolves the interval of an element and of its descendants, following the TTML timing model: an element begins relative to its parent in a parallel time container, and relative to the end of its previous sibling in a sequential one. Without an explicit end or duration, an element ends with its children, and an element without children lasts until its parent ends in a parallel time container, and has no duration in a sequential one. See https://www.w3.org/TR/ttml1/#timing-time-intervals The intervals are not clipped to the interval of the parent.
Parameters:
Name Type Description
element shaka.extern.xml.Node
rateInfo shaka.text.TtmlTextParser.RateInfo_
implicitBegin number The time the explicit times of the element are relative to.
isInSeq boolean Whether the parent is a sequential time container.
intervals shaka.text.TtmlTextParser.Intervals_ The resolved intervals, by element.
Source:
Returns:
Type
shaka.text.TtmlTextParser.Interval_

setManifestType(manifestType)

Notifies the manifest type.
Parameters:
Name Type Description
manifestType string
Implements:
Source:

Type Definitions

Interval_

The interval during which an element is active, in seconds. An infinite end means that the duration is indefinite.
Type:
  • {start: number, end: number}
Source:

Intervals_

The intervals of the elements of a document.
Type:
Source: