Track::GetDefaultDuration is implemented as an alternative
to VideoTrack::GetFrameRate which seems to be deprecated.
Change-Id: I2c7a6d56a232125b8632d87eab75b9600c5451e1
Adding elements and functions to support muxing of BlockAdditional element.
This is required for supporting muxing of streams with Alpha Channel (where the
Alpha data goes into BlockAdditional). Detailed design doc of Alpha Channel can
be found here: http://goo.gl/wCP1y
Change-Id: Idac144d9588de16685734850585ab7115ddd08a4
To support seek in generic tracks with subtitles the audio track
implementation of seek is made generic and inherited by audio track.
Change-Id: Ic88d2e859d077a1054b2af7d7680cfddfba8a589
Track::GetLanguageAsUTF8 is implemented to allow the user to
choose between available audio and subtitle tracks.
Change-Id: I5ec9b1c1c00182da759681ba486cbace46e9b63f
Normally, if a sub-element of a cluster reports a size
that lies beyond the end of its enclosing cluster, we
would treat this as a malformed stream and immediately
terminate the parse.
However, if the sub-element is not a simple block or block
group, we would ignore the (sub)element anyway, so there
doesn't appear to be any harm in just concontinuing to
ignore the (sub)element, and treating this case as if
we had reached the end-of-cluster in the normal way.
Change-Id: I16c0a44f7458823ed579612d917b09ee08a8d90a
ParseTrackEntry handled MKVs with 0-sized EBML elements
as malformed. Relaxing this and allow empty elements to allow
parsing such MKV content.
Change-Id: I7e430e9b2d177df7fe1e656546f63ee8673e784e
Modified the mkvmuxer to write the ChapterStringUID
sub-element of the Chapter Atom element.
Modified the mkvparser to read the ChapterStringUID
sub-element of the chapter atom.
Modified the vttdemux app to write the Cue Identifier
line of the WebVTT cue.
Change-Id: I06fe386f44897ada3fe10cbf89096df104dcf779
- libwebm was writing the BlockNumber of the next Block instead
of the Block that was just written.
Change-Id: I344800fcea919a82d7f0a04a54cf510be3851ec6
vttdemux is a tool for demuxing a webm file containing
WebVTT metadata tracks, extracting the embedded metadata
from each track and storing it as a standalone WebVTT file.
Change-Id: I8897b3dc502c49c92f5b79925939baa5a9490aaa
Formerly, it was only possible to create instances of
the Track subclasses, VideoTrack and AudioTrack. However,
we now populate WebM files with WebVTT metadata blocks,
so we must allow for a third kind of track object.
We now enable instances of type Track to be created,
by providing a new factory function, Track::Create, and
making all Track methods non-pure and with a generic
implementation.
Change-Id: I7d4c965eb566b9fc2f5ceefe1d43723cf8c1e5f0
Previously the Parser class had an internal function to parse
the character stream into separate lines. This functionality
was separated out into its own class, LineReader, in order
to make this functionality available to clients too.
Change-Id: Ic5a1b0b73d7a253cf21cb6b4804b4941fd69c8ab
library.
I'm building two different object files now: the ones for
libwebm.a are compiled normally (*_a.o), and the ones for
libwebm.so are compiled with -fPIC and linked with -shared
(*_so.o).
Change-Id: I76471ab225a006c7e169bc0d69df9a0731ff6681
- Segment::CreateInstance was treating the available data as EOF
and returning errors.
- Added a check for potential underflow if the segment was not the
first element after the EBML header.
Change-Id: I481bf0eea71eeb3def3bf54ec251be0b2ae13536