Users who want this feature can explicitly turn it on. Since it
involves estimating, it should be off by default.
Change-Id: I3e934169d19b68a276c21d694179350c5b315a5a
EbmlElementSize for char* assumes that the varint encoding of
payload size is always 1-byte. Fix that by using the correct
number of bytes.
mkvinfo of the new gold file: http://pastebin.com/ncR7DqEf
Change-Id: I2d10708de77b2b8089900a8719ee3797dfb6994c
Force creation of a new Cluster when writing queued audio would
cause an error due to violating maximum block duration.
BUG=675521
Change-Id: I6ad09c2a2f71d95bb04eed5ead04dc8072aaa59d
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
Make data members of Colour and children private, and add
accessors and mutators for the changes members.
Change-Id: I203f6b4e8047cd4dae5c1b662649b535e05148fd
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
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
- The direct change to stdint.h types causes too much downstream
churn. Need an intermediate step or a wrapper because quite a
bit of user code explicitly casts args passed to mkvmuxerutil
functions to types defined in mkvmuxertypes.
- Update call sites in mkvmuxer to avoid ambiguity errors.
Change-Id: I018445b3d8ab1da776ecdb19a290ac00af63c2cf
- Restore integer typedefs in mkvmuxertypes.h.
- Revert integer type changes in IMkvWriter declaration.
- Revert integer type changes in mkvwriter.{cc,h}
Change-Id: I3e9f8a3d079f485a3ea051f7477c803f9c9087e4
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
Remove Cluster ctor overload unintentionally added during a merge
because the default ctor is causing an uninit'd memory error in
valgrind.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1161
Change-Id: I21b8110488bc6def0a3b5d07cbede37170087e6d
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