Disable C4996; A warning that encourages users to make their code
require the "secure" variant of functions like tmpnam(). Doing so
just happens to make the resulting code require the MSVC runtime.
Change-Id: I0329ce3aa93da060110d24a4bc7f48a7f9c87227
Adding set_uid function to the Chapter class. It can be used to
achieve deterministic output from the muxer. For example, for files
with only one segment, track number or track id can be used for
chapter uid.
Change-Id: I2e94c6150e32cb9019a6623af7919acc099aa20d
Adding AddLastFrame function to the Segment muxer so that the duration
of the Segment can be accurately calculated given the last Block's duration.
We now provide an AddLastFrame function which will take duration of that block
as a parameter. When this function is used to add the last frame, the duration
of it is taken into account when computing the Segment's duration.
Change-Id: I3e1456299fefa1a4dd6d845c47292951d1ce3ad0
Avoid unfortunate things like breaking the library because the make file
was not previously checking dependencies.
Change-Id: Iab20c3cfa0d1475dfb5c54127646b351df1c4c50
Allow users of libwebm's MKV muxer to control the Track UID. This,
for example, allows creation of tests that rely on checksum comparisons
to verify output from the library.
Change-Id: I8b052e6dd5af734d76122b2a1b6b16382ffba214
Files created with Segment::CopyAndMoveCuesBeforeClusters can't be parsed by
libwebm because the Segment size was not updated to account for the change
in Cue size. Fixing that.
Change-Id: I993f63e5c279f131cd39c54bee40163da00b8cbd
A whole new approach to repositioning Cues before Clusters. This
patchset adds a new function CopyAndMoveCuesBeforeClusters to the
Segment class. This function should be called after
Segment::Finalize() to obtain a copy of the same output file with
Cues positioned before the Clusters.
Removing everything else that was added to accomplish the same in
the previous few commits.
Also, adding std:: qualifier to one of the variables in
sample_muxer_metadata which was missed accidentally in the previous
commit.
Change-Id: I2810d06a6251325add2f5e54d32d1da6e2fe143f
Replacing "using std::string" with fully qualified namespace on
each occurance of string in sample_muxer_metadata.cc and
webvttparser.cc.
Also fixing a formatting nit in mkvwriteeofreader.cpp
Change-Id: Icf713f9e489fbdc9af14e83d0cb7ba2e89e65ab4
Changing the IMkvReadableWriter interface to IMkvWriteEOFReader.
Also changing the default implementation.
Change-Id: Id37ffd7ef0af2ff7a392fb4fb0b1b134664ab20f
Adding support for placing Cues element before the Cluster element. We
recompute the new offsets using a recursive algorithm and update the Cues and
Seek Heads with the updates offsets.
Change-Id: I038f1a403b1defa853b9026bd3e48f4ad1006866
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