TtmlParser
@UnstableApi
class TtmlParser : SubtitleParser
A SimpleSubtitleDecoder for TTML supporting the DFXP presentation profile. Features supported by this decoder are:
- content
- core
- presentation
- profile
- structure
- time-offset
- timing
- tickRate
- time-clock-with-frames
- time-clock
- time-offset-with-frames
- time-offset-with-ticks
- cell-resolution
See the TTML specification
Summary
Constants |
|
|---|---|
const Int |
The |
Public constructors |
|---|
Public functions |
|
|---|---|
Int |
Returns the |
Unit |
parse(Parses |
Subtitle! |
parseToLegacySubtitle(data: ByteArray!, offset: Int, length: Int)Parses |
Inherited functions |
||||
|---|---|---|---|---|
|
Constants
CUE_REPLACEMENT_BEHAVIOR
@Format.CueReplacementBehavior
const val CUE_REPLACEMENT_BEHAVIOR = 1: Int
The CueReplacementBehavior for consecutive CuesWithTiming emitted by this implementation.
Public constructors
Public functions
getCueReplacementBehavior
@Format.CueReplacementBehavior
fun getCueReplacementBehavior(): Int
Returns the CueReplacementBehavior for consecutive CuesWithTiming emitted by this implementation.
A given instance must always return the same value from this method.
parse
fun parse(
data: ByteArray!,
offset: Int,
length: Int,
outputOptions: SubtitleParser.OutputOptions!,
output: Consumer<CuesWithTiming!>!
): Unit
Parses data (and any data stored from previous invocations) and emits any resulting complete CuesWithTiming instances via output.
Any samples not used from data will be persisted and used during subsequent calls to this method.
startTimeUs in an emitted instance is derived only from the provided sample data, so has to be considered together with any relevant subsampleOffsetUs. If the provided sample doesn't contain any timing information then at most one CuesWithTiming instance will be emitted, with startTimeUs set to TIME_UNSET, in which case subsampleOffsetUsmust be OFFSET_SAMPLE_RELATIVE.
| Parameters | |
|---|---|
data: ByteArray! |
The subtitle data to parse. This must contain only complete samples. For subtitles muxed inside a media container, a sample is usually defined by the container. For subtitles read from a text file, a sample is usually the entire contents of the text file. |
offset: Int |
The index in |
length: Int |
The number of bytes to read from |
outputOptions: SubtitleParser.OutputOptions! |
Options to control how instances are emitted to |
output: Consumer<CuesWithTiming!>! |
A consumer for |
parseToLegacySubtitle
fun parseToLegacySubtitle(data: ByteArray!, offset: Int, length: Int): Subtitle!
Parses data to a legacy Subtitle instance.
This method only exists temporarily to support the transition away from SubtitleDecoder and Subtitle. It will be removed in a future release.
The default implementation delegates to parse. Implementations can override this to provide a more efficient implementation if desired.
| Parameters | |
|---|---|
data: ByteArray! |
The subtitle data to parse. This must contain only complete samples. For subtitles muxed inside a media container, a sample is usually defined by the container. For subtitles read from a text file, a sample is usually the entire contents of the text file. |
offset: Int |
The index in |
length: Int |
The number of bytes to read from |