14 Commits

Author SHA1 Message Date
Tom Finegan
027861614c mkvmuxer: Colour accessors/mutators.
Make data members of Colour and children private, and add
accessors and mutators for the changes members.

Change-Id: I203f6b4e8047cd4dae5c1b662649b535e05148fd
2016-08-30 18:13:51 -07:00
Tom Finegan
65fee06599 mkvmuxer_sample: Add support for Projection element.
Part of the Spherical Video V2 draft specification:
https://github.com/google/spatial-media/blob/master/docs/spherical-video-v2-rfc.md

Change-Id: If8cc7a102933ca7fe81990919dbabe7db97812f8
2016-08-29 14:51:25 -07:00
Tom Finegan
483a0ff800 mkvmuxer: Add Projection element support.
Part of the Spherical Video V2 draft specification:
https://github.com/google/spatial-media/blob/master/docs/spherical-video-v2-rfc.md

Change-Id: Ia935ba975a0f01c1fb2919325ab7f70254c2ed10
2016-08-29 14:29:25 -07:00
Tom Finegan
725f36207e mkvmuxer: Fix memory leak when Colour is set multiple times.
Change-Id: I5650ca1116a5ae678b11ac5f6a8abf1590bc9e3f
2016-08-26 21:08:30 -07:00
Vignesh Venkatasubramanian
cbd676bb66 mkvmuxer: Fix leak when a Cluster isn't finalized
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
2016-04-28 12:30:29 -07:00
Tom Finegan
9a235e0bc9 mkvmuxer: Set doctype to matroska when muxing non-WebM codecs.
Also, add some constants for WebVTT codec ID strings so they
won't cause doctype to incorrectly change to matroska.

Change-Id: I4740a3e45b28a22e462601b9ce051aa01817dace
2016-04-28 08:44:14 -07:00
Vignesh Venkatasubramanian
87832d487a mkvmuxer: Fix Segment::Finalize in kLive mode
Do not call Cluster::Finalize in kLive mode unless
accurate_cluster_duration_ is set.

Change-Id: Id2627b5df9eaee065e12d08b494ee02ae0a33564
2016-04-15 20:32:19 -07:00
Tom Finegan
ec479287ff mkvmuxerutil: Revert to using mkvmuxertypes.
- 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
2016-04-14 12:58:38 -07:00
Vignesh Venkatasubramanian
eb50da8e38 Option to write timecode using fixed # of bytes
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
2016-04-06 15:09:19 -07:00
Tom Finegan
c1991fea81 mkvmuxer: Add missing Segment member initializer.
Change-Id: If8d6e12de3671e864ecb6c5ca0873a1fc69c3820
Segment::accurate_cluster_duration_ init missing from ctor.
2016-04-06 13:37:07 -07:00
Tom Finegan
da6439685d cmake/msvc: Disable C4996 project wide.
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
2016-03-30 12:32:22 -07:00
Tom Finegan
0d765974cd mkvmuxer: Fix build with GCC 5.3.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1160

Change-Id: I7d8a0a7fa1aef2e459e54effd448186c850453be
2016-03-29 12:21:10 -07:00
Tom Finegan
cbe5c40d12 Restore original namespaces for mkvmuxer and mkvparser.
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
2016-03-21 14:41:49 -07:00
Tom Finegan
504e0f2d5b Mass file extension update.
- Use .cc and .h everywhere.
- Update includes/include guards.
- Remove extra makefile targets necessitated by previous mix
  of cpp/cc.

Change-Id: I7aad29152d4177937f8f42927c16c6572228c104
2016-03-21 14:41:47 -07:00