mkvmuxer can write matroska v4 elements in all modes, but does
not always confirm that the doc type is high enough for all
elements written. The main culprits are Colour and its
children. Avoid problems by using 4 as the default version.
This avoids problems in all cases but those where users who
know what they are doing have written the EBML header manually.
Update the test files because the new default causes the file
compare abuse in the muxer tests to fail.
Update expected doc type version in the parsing tests.
BUG=webm:1201
Change-Id: I4c69000af4c1d5efe66315c17f3953344ef04993
Some includes were missed in the first pass when webm_parser
was added to CMakeLists.txt. Add the missing includes from
webm_parser/include/webm.
Change-Id: I193debe8018155ff9f0ab1d1326330069333948e
Mass warning clean up. Mainly:
- Explicit casts of numeric literals to avoid signed/unsigned compare
warnings.
- Commenting out of unused function arg names.
Change-Id: I0e70393a5743ae984035d43712c724d4ccd12f9d
libwebm_util:
- Add 90khz -> nanosecond conversion.
vpxpes_parser:
- Get rid of VpxPesParser::VpxFrame and use VideoFrame.
- Store/Accumulate (when neccessary) PES payloads in
VideoFrames.
- Change type of size constants from int to size_t.
- Return offset accounting for origin from FindStartCode().
- Check all PTS marker bits (instead of checking the second
marker twice).
video_frame:
- Add nanosecond_pts mutator.
webm2pes:
- Write DTS/PTS presence flag correctly when PTS is not
present.
Change-Id: I10f16cd03bb3a51205a25331527ddceb3769ba03
VideoFrame was created in order to get rid of the two
slightly different VpxFrame implementations. This patch
gets rid of Webm2Pes's version.
Change-Id: I5af29d5ca717121ee7ab30f28e42d2a43ea5abb0
WritePesPacket() now takes a VpxFrame as input and a
PacketDataBuffer* as an output parameter, and avoids
using members entirely. This facilitates deeper testing
of Webm2Pes without requiring friendship with test
classes and methods.
Change-Id: I076db8900cc1a5c864b54f5fe3403fb05b4bd835
Makes writing tests easier by allowing caller to pass data
for packetizing directly into the method.
Change-Id: I553fa8c1636041c4a5ff043862918a5cdc9163ba
- Make start codes reliable for VPx in PES.
- Stop setting the PES size field and stop splitting packets when
larger than UINT16_MAX (always set 0; rely on start codes to find
packet boundaries).
Change-Id: I402e91c26562e930f61543ca59223b83cc92be29
There's a leak in the following scenario:
* AccurateClusterDuration is set to true.
* Add a few frames.
* An error is encountered while adding a frame and the
application bails without calling Cluster::Finalize
* All the frames we queues in QueueOrWriteFrames now leak.
This patch fixes this scenario by delete'ing any left over frames
in the Cluster's destructor.
Change-Id: I104f6814db18a86fae9877decfe6cc75b8937fcb
Also, add some constants for WebVTT codec ID strings so they
won't cause doctype to incorrectly change to matroska.
Change-Id: I4740a3e45b28a22e462601b9ce051aa01817dace