The code will estimate the file duration if the last block duration is
0. This is not totally correct, but better then what we currently have.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1100
Change-Id: I8f81df0bd592e6f7b1925fa2637a2e09cf182742
Ignore Colour::kValueNotPresent and allow writing of partial
Colour elements, and add a test confirming this works.
Change-Id: I77e6bd0d92cadc46142af92de2f9f474006dceb7
Instead of blindly doing a file compare and hoping that we're not
in a garbage in garbage out situation.
Change-Id: Ie2f278e09ad67b3e8f40e602fcdd5c9ffb5e1b7d
- Store actual element ID in SeekHead::Entry id field (instead
of a decoded EBML int, which is completely _wrong_).
- Add a SeekHead::Entry constructor so we get initialized values
in SeekHead::Entry's when parsing an Entry fails.
Change-Id: I152fae54628cb84918917139dba0cd0b42a44a57
Add a couple mkvparser wrapper functions for testing mkvmuxer
output. Also expose HasCuePoints() via test_util.h for use
in cue point related tests.
Change-Id: I77321840926f41b60b6ceac65a1e3cfd79b7d2c2
Add test that confirms expected failure when a block
that ends beyond the current cluster is encountered.
Change-Id: I27abcab6d00b78c14b7ca00f51c97e43c5cdd34c
Rename source files and targets to better reflect what is
actually being tested.
muxer_tests => mkvmuxer_tests
parser_tests => mkvparser_tests
Change-Id: I921901f37d269f294b96ba20732b31c27f81945b
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
Also, add some constants for WebVTT codec ID strings so they
won't cause doctype to incorrectly change to matroska.
Change-Id: I4740a3e45b28a22e462601b9ce051aa01817dace
Add an option to write the cluster timecode using exactly 8 bytes
irrespective of the actual number of bytes required to write it as
an ebml integer.
This could be useful for players that want to rewrite the timecode
in-place (e.g. live streaming).
Change-Id: I1a049251f00ab65591d71e169129f5145a8c8863
MSVC C4996 triggers upon use of functions like fopen, and suggests
use of non-portable Microsoft replacements. Disable it project wide,
and remove the pragmas littered throughout the tree.
Change-Id: I8b890bbfd3cd7224c25350bd28f334facd8b7783
Wrapping mkvmuxer and mkvparser in the libwebm namespace is no
longer necessary now that the tree reorganization is complete.
Put mkvmuxer and mkvparser namespaces back in the global
namespace to avoid unnecessary churn in downstream code.
Change-Id: I13a4fe0143d20bb2bb6038078c68636ff2af0c29
- Use .cc and .h everywhere.
- Update includes/include guards.
- Remove extra makefile targets necessitated by previous mix
of cpp/cc.
Change-Id: I7aad29152d4177937f8f42927c16c6572228c104
This helps browsers implementing Media Source Extensions (MSE) to
know the exact duration of a Cluster without relying on the next
Cluster.
Change-Id: Idd0422e432430c5702a4864740f89fc6d3c85189
(that is not already)
Some details:
- mkvmuxer and mkvparser wrapped by libwebm
- Matroska element constants moved from mkvmuxer to libwebm
- integer types moved from mkvmuxer to libwebm
Change-Id: Ic91e887e50adbc2d735bf6264534a5d01135df31
Moving AddAudioTrack into a separate function and keeping it
simple so that it can be re-used from other tests that might
require adding an audio track.
Change-Id: Ia60ed63ddbe617764596eb9c5a2bf96108c47cdd
- Wrap MkvWriter in std::unique_ptr to allow use of the
MkvWriter(FILE*) ctor (because MuxerTest owns the FILE*).
- Test temporary FILE* in Init(); don't assume it's valid.
- Close output FILE* before attempting to read it in
CuesBeforeClusters().
Change-Id: I4848adec7a24c8987fdd0924e7474b264837e8a9