Commit Graph

800 Commits

Author SHA1 Message Date
Tom Finegan
4494ce468a Merge "Cmake refactor." 2017-01-19 23:50:26 +00:00
Tom Finegan
166e40fa97 Cmake refactor.
- Split sources from targets. Source files are stored in list variables,
  and targets now use the list vars.
- Surface all build settings control in CMakeLists.txt.
- Remove individual C++11 tests in favor of requiring support
  for --std=c++11.
- Improve organization; stop reopening the same if's.

Change-Id: I1989803fdfd9c032f417a5fc12985671455148bd
2017-01-19 08:40:31 -08:00
Tom Finegan
9fb774ab80 Add missing include in webm2pes.cc.
We need <algorithm> on some platforms.

Change-Id: I65fa3ad52265b05c4141e14d97d6de0af1649b29
2017-01-18 07:26:30 -08:00
Tom Finegan
4956b2dec6 mkvmuxer: Force new clusters when audio queue gets too long.
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
2017-01-12 13:15:46 -08:00
Tom Finegan
54f155986d cmake: Cache results of CXX flag tests.
Avoid re-testing to improve cmake build and regen speed.

Change-Id: I8e2fe6601036cc7d176cdc3738616261a2da408b
2016-11-14 19:45:51 -08:00
Tom Finegan
81c73fc78e mkvparser: Avoid alloc failures in SeekHead::Parse.
Some run times return NULL pointers when creating 0 length
arrays. Avoid the inconsistency by skipping allocation when
the length of the SeekHead entry or void element array
is 0.

BUG=webm:1313

Change-Id: I28b4eac1d3e0ba968147637883f6e37c089e8573
2016-10-31 12:11:56 -07:00
James Zern
9732ae991e EbmlElementSize: quiet uint64->int32 conv warning
Change-Id: I189c3a3ee2f946034a5f7ad1bd5e1d0a301d24c0
2016-10-18 15:31:17 -07:00
James Zern
da04ebae9b SetProjectionPrivate: quiet uint64->size_t conv warning
Change-Id: Iae467f650770e98ef59fede6d714e222b502f5bb
2016-10-18 15:30:48 -07:00
James Zern
5e1d131e6c Merge "mkvparser,Projection::Parse: fix int->bool conv" 2016-10-18 22:13:09 +00:00
James Zern
6db32d5f6e mkvparser,Projection::Parse: fix int->bool conv
this would have incorrectly returned true on parse failure

Change-Id: I1ae6fc2aae09491aa3cda47a5414529fc7a3848f
2016-10-17 23:34:06 -07:00
James Zern
3bb0dfae6a cosmetics: fix a couple lint warnings
remove trailing ';' and s/const static/static const/

Change-Id: Id5587b057a8e2b088eac8538d8e2b5e9053fdcf4
2016-10-17 18:28:38 -07:00
James Zern
0e179d683e update .clang-format
generated by version 3.8.1
local changes from --style=Google

3a4
> # Generated with clang-format 3.8.1
10c11
< AlignTrailingComments: true
---
> AlignTrailingComments: false
15,16c16,17
< AllowShortIfStatementsOnASingleLine: true
< AllowShortLoopsOnASingleLine: true
---
> AllowShortIfStatementsOnASingleLine: false
> AllowShortLoopsOnASingleLine: false
37c38
< BreakBeforeTernaryOperators: true
---
> BreakBeforeTernaryOperators: false

Change-Id: I4ded7e36fb8bd5407cfba6d1c4f86e0bec620c0c
2016-10-17 15:41:56 -07:00
Frank Galligan
fc5f88d3d1 Fix temp files being left on system.
The webm temp files for testing and mkvmuxer_sample were not being
deleted.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1314

Change-Id: I5d402de4b434965185e0fe73f2efd5f4dad8c6d6
2016-10-15 20:54:57 -07:00
Frank Galligan
c04a134986 Add support for overriding PixelWidth and PixelHeight.
Change-Id: I226f6bb6be99e71373fcbd8ec9b9d556064305e4
2016-10-15 18:19:19 -07:00
Frank Galligan
c0160e0ab5 Add support to explicitly set segment duration.
Adds a flag to sample muxer to copy input file's duration.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1100

Change-Id: I9138f0301fa5c9f467c802d75e6ba32db156ae4f
2016-10-14 17:20:20 -07:00
Frank Galligan
02bc809f9d Add support to estimate file duration.
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
2016-10-14 14:35:30 -07:00
Frank Galligan
c97e3e7d60 Add support to output sub-sample encryption information.
See http://wiki.webmproject.org/encryption/webm-subsample-encryption
for the format.

Change-Id: Ia5d6f3566b92c46911704108d3e86cd0fac9ee34
2016-10-13 09:04:52 -07:00
James Zern
26f434423f MakeUID: quiet unused param warning in Android builds
Change-Id: Id389af1d92184009c511ff641e86ac27c6767567
2016-09-28 18:51:03 -07:00
Frank Galligan
d6af52a1e6 Change check to fix compile error.
Change-Id: I01490cca4a0b6ae51b20117738a723b8c9788919
2016-09-15 15:33:23 -07:00
Michael Bradshaw
17200208c5 webm_parser: Add Mesh value for ProjectionType
Change-Id: I0e2be134cfefdb62edc54288720523646d01479a
2016-09-13 18:16:54 -07:00
Michael Bradshaw
78f2c5ab78 webm_parser: Use ./ prefix for includes
Fixes a lint presubmit check.

Change-Id: If06a7b11c18742dfe659136736082945a4853b3e
2016-09-08 15:42:22 -07:00
Michael Bradshaw
da62f659e4 webm_parser: Remove webm/ prefix from public includes
Using a webm/ prefix requires clients to add the webm_parser/include
path to their header search paths. This is inconvenient and an
unnecessary restriction.

Change-Id: If73a4433ad42f326a544766beca5f05710f52243
2016-09-07 16:57:44 -07:00
Michael Bradshaw
e15e8f2cc7 webm_parser: Update README build instructions
Change-Id: Iade055ff076b107ac1665493dad18e812025c31f
2016-09-01 15:52:18 -07:00
Tom Finegan
5023f2b5ca mkvmuxer: Fix Colour::Valid()
Ignore Colour::kValueNotPresent and allow writing of partial
Colour elements, and add a test confirming this works.

Change-Id: I77e6bd0d92cadc46142af92de2f9f474006dceb7
2016-09-01 11:56:03 -07:00
Tom Finegan
cf1620444f mkvmuxer_tests: Actually test cue points in the cue point test.
Instead of blindly doing a file compare and hoping that we're not
in a garbage in garbage out situation.

Change-Id: Ie2f278e09ad67b3e8f40e602fcdd5c9ffb5e1b7d
2016-08-31 21:18:30 -07:00
Tom Finegan
93e9fb35f9 Validate Colour element values.
webm:1284

Change-Id: Idc9fc2eee41e7ab445d90366c5ee3e8ca2509c81
2016-08-31 21:18:24 -07:00
Tom Finegan
8036925b43 mkvparser_tests: Add Projection element test.
Change-Id: Ib57449f409548b23ae1d788ca07dc19ba21e7763
2016-08-31 10:00:05 -07:00
Tom Finegan
f52d38cc5c mkvparser_tests: Add Colour element test.
Change-Id: Ifc0c9db863a0ebe17dbab0e94b82b6a04dd64926
2016-08-31 10:00:04 -07:00
Tom Finegan
826436a42f mkvparser: minor SeekHead::Entry clean up.
- 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
2016-08-31 10:00:04 -07:00
Tom Finegan
24fb44aa1a mkvmuxer_tests: Add Projection element test.
Change-Id: I9a1e56d0846f43851ed0430ec52e2d7b816661fc
2016-08-31 10:00:04 -07:00
Tom Finegan
1e0a8eaa3c mkvmuxer_tests: Add Colour element test.
Change-Id: I5348930fb74d43f3fc4e1815d13a525bda70f4a0
2016-08-31 10:00:02 -07:00
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
ce52f6e31d Merge "Add mkvparser wrapper functions." 2016-08-30 17:23:14 +00:00
Tom Finegan
6e5cbc09c0 Merge "webm_info: Add Projection element support." 2016-08-30 17:22:45 +00:00
Tom Finegan
0a039cb851 Merge "mkvmuxer_sample: Add support for Projection element." 2016-08-30 17:22:29 +00:00
Tom Finegan
149e8e997c Merge "mkvparser_sample: Add support for Projection element." 2016-08-30 17:21:37 +00:00
Tom Finegan
43f40c453d Merge "mkvparser: Add Projection element support." 2016-08-30 17:21:28 +00:00
Tom Finegan
0c9a19e20b Merge "mkvmuxer: Add Projection element support." 2016-08-30 17:21:17 +00:00
Michael Bradshaw
ff667d5fb4 Merge "Add support for the Projection element" 2016-08-30 16:49:37 +00:00
Tom Finegan
2346f8fafa Add mkvparser wrapper functions.
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
2016-08-29 14:51:28 -07:00
Tom Finegan
54d6b6b60e webm_info: 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: If37a7e3ede452a2545f613b50cd3cedd5dd64f09
2016-08-29 14:51:28 -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
9a3f2b5762 mkvparser_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: I06d8e55d197fcf106b91d8d795ef85163ef5c2d5
2016-08-29 14:29:30 -07:00
Tom Finegan
41e814a008 mkvparser: 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: I431349898b4018189cc58ce2cd67158ffb4c7f80
2016-08-29 14:29:30 -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
Michael Bradshaw
676a7135d1 Add support for the Projection element
It's a part of the Google Spatial Media V2 spec:
https://github.com/google/spatial-media/blob/master/docs/spherical-video-v2-rfc.md

Change-Id: I52f05e34b19239af09774da2f88eb584a0bfa628
2016-08-29 13:15:07 -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
Tom Finegan
fa182de6e4 mkvparser_sample: Add output of audio track codec private size.
Change-Id: Ie0a2a379cd4e68ae751e514b3d3b2025c254500b
2016-08-26 21:08:29 -07:00
Tom Finegan
4aa5338ba5 Merge "mkvparser_tests: Add invalid BlockGroup test." 2016-08-26 22:10:03 +00:00
Tom Finegan
8f521f2192 mkvparser_tests: Add invalid BlockGroup test.
Change-Id: I2b24859a92d2beb5558c2afa817237c1f78f644d
2016-08-25 13:18:19 -07:00