Users who want this feature can explicitly turn it on. Since it
involves estimating, it should be off by default.
Change-Id: I3e934169d19b68a276c21d694179350c5b315a5a
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
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
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