Commit Graph

520 Commits

Author SHA1 Message Date
Tom Finegan
ae2fbfe0cf parser_tests: Silence sign compare warning.
Change-Id: I5286cf99129cc8fd5336e792990886f43332b720
2016-02-26 08:57:43 -08:00
Tom Finegan
f4885281b0 libwebm_utils: Silence sign compare warning.
Change-Id: I5b8cab857f7a8a48979ee8be6bd156b854952c61
2016-02-26 08:57:43 -08:00
Tom Finegan
777247b505 Add C++11 detection to cmake file.
Disable test and webmts targets when not C++11 and/or
std::unique_ptr are unavailable.

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

Change-Id: I717631bc6adea90c91e59862378328089e9aeec6
2016-02-25 09:09:24 -08:00
Tom Finegan
9b89187db0 Add missing include to libwebm_utils.h.
Was missing cstdint and breaking builds on less forgiving
target systems. Also, make std namespace usage consistent.

Change-Id: I961b3ad66f8650fdebbb76a957c914c1b06e2de5
2016-02-24 14:48:41 -08:00
Tom Finegan
421874a4b5 Merge "mkvmuxer: Fix GCC build." 2016-02-22 23:50:39 +00:00
Neil Birkbeck
dd6ab35d85 Set the mastering metadata on the muxers colour
Change-Id: I456ce8409303e06a4e832cbf80cb290ad9539abc
2016-02-22 10:54:58 -08:00
Tom Finegan
8b61ef5727 mkvmuxer: Fix GCC build.
Define __STDC_LIMIT_MACROS before <climits> include.

Change-Id: I4c9c9560db1c57d177c8a7aa023c313aba5fe847
2016-02-22 09:25:19 -08:00
Tom Finegan
353b050071 Add hdr_util.
Move the Colour element utility functions out of sample_muxer and
into a place where they can be utilized by libwebm users.

Change-Id: I7e2bfd02d6f4aa4f26fb0d0a697cb68e20698655
2016-02-18 13:13:54 -08:00
Tom Finegan
c92e080f3a mkvmuxer: Use kValueNotPresent in Colour/MasteringMetadata.
Consistent with parser/no reason for unique names.

Change-Id: Ic38bc8c14413dc85fbdc28d69aa89fa0bfa7382f
2016-02-18 12:11:53 -08:00
Tom Finegan
2d0912837c Colour element: TransferFunction renamed to TransferCharacteristics.
Change-Id: I02e8d9b375d3aeba26d99866df90e25e1605143f
2016-02-18 12:03:41 -08:00
Tom Finegan
f2fc28e044 Colour element: Matrix renamed to MatrixCoefficients.
Change-Id: I148e81be6c23f0d0e61dc5820a1ae80f685af57f
2016-02-18 12:03:36 -08:00
Tom Finegan
e0b11351fb cmake: Minor CMakeLists.txt refactor.
Reduce repetition/verbosity.

Change-Id: Id2e7e0c7a6c01ee1fb118d83aa0334f71088a2af
2016-02-17 11:25:15 -08:00
Tom Finegan
1e1872bc7b Revert change from auto_ptr to unique_ptr in sample code.
This allows users of the legacy makefile on older systems without
C++11 compiler support to continue using libwebm sample code.

Change-Id: I1dd9487e0d87e355d2394fedb12ec8628a955413
2016-02-17 11:22:40 -08:00
Tom Finegan
d7fc382dea Track updates to the proposed Matroska Colour spec.
https://mailarchive.ietf.org/arch/msg/cellar/cCjxCohD-2xM93ijoFVaYYMLFas

Changes:
- ChromaSubsampling replaced by ChromaSubsamplingHorz,
  and ChromaSubsamplingVert.
- CbSubsamplingHorz and CbSubsamplingVert added.

Change-Id: I0848f9f41b3162afb5485b82704620d9e03f9b5e
2016-02-12 11:28:30 -08:00
Tom Finegan
99981ee7b9 sample(mkvparser): Output Colour element when present.
Change-Id: I6591345a4a61b909a3b5e01dbc6aba3768465717
2016-02-12 09:19:37 -08:00
Tom Finegan
375e416336 mkvmuxer: Fix Colour element support.
Colour and MasteringMetadata were treating payload size and total
size as equal:

- Internally both must use actual payload size (sum of child elements).
- External users need sum of child elements and the size of the
  respective ID.

Change-Id: Idefb193b9de394bfc6a0044f1673a62be61c6b12
2016-02-11 18:37:43 -08:00
Tom Finegan
eaeca3415d mkvmuxer: Fix bits per channel in the colour element.
Never written: copy/paste error + patch size eye glazing.

Change-Id: I2c5295b26427e0ce254b88c8b4cb5106a5f37258
2016-02-11 18:37:43 -08:00
Tom Finegan
1dab7f34ff mkvparser: Avoid crash when encountering a Colour element.
Change-Id: Iadf55bf2a7cd5535a8c2309c2d8cb6c834d30aee
2016-02-11 16:43:00 -08:00
Tom Finegan
a1517aa526 sample_muxer: copy the Colour element.
Change-Id: Ib4e8fc55351e371dd7c95abaee6f51e900c5edad
2016-02-11 10:45:51 -08:00
Vignesh Venkatasubramanian
ea9dd943b8 Merge "webm2pes: Fix tests." 2016-02-11 01:27:12 +00:00
Tom Finegan
8635c5b0a3 Merge "mkvparser: Make omitted values detectable in the Colour element." 2016-02-10 19:31:18 +00:00
Tom Finegan
ae4ae7ef77 mkvparser: Make omitted values detectable in the Colour element.
Add constants that allow users to determine when an element or value
was omitted from Colour and its child elements.

Change-Id: If909274850127938a456f2d0a1e490dcbb9c1bde
2016-02-10 09:14:34 -08:00
Tom Finegan
8c8cba6af6 webm2pes: Fix tests.
Abuse of vector::capacity and vector::reserve in combination with
abuse of vector::operator[] was a bad idea.

Change-Id: Id7bdb71888b9d0d174f5243f8cf2771d181888be
2016-02-09 20:05:32 -08:00
Tom Finegan
a281a22955 mkvmuxer: Add support for the Colour element and its children.
Change-Id: I8026a2ba6c664cbf0ce0a6602a79942283b194b1
2016-02-09 18:21:44 -08:00
Tom Finegan
41a9147f2a sample_muxer: clang-format include order fix.
Change-Id: I57ddb1d1251a1c431370a47fc5ce33996d95b973
2016-02-09 09:01:18 -08:00
Vignesh Venkatasubramanian
939a64dc2d Signal E_BUFFER_NOT_FULL in EBMLHeader::Parse
When trying to read the ebml id, signal E_BUFFER_NOT_FULL if it
occurs rather than returning E_FILE_FORMAT_INVALID (helps in case
of incremental parsing). Makes this return path consistent with
other return paths in the function.

Change-Id: I4b6ce3f0ba856959fa97f0f6ffb61994f3f2ffc6
2016-02-08 16:10:50 -08:00
Tom Finegan
fb1406ec3b mkvparser: Add support for the Colour element and its children.
Change-Id: Idffafaee221e2949c21f56c81df6e4d1c3e959a5
2016-02-08 09:23:57 -08:00
Tom Finegan
22bfdf7d99 Merge "parser_tests: Add validation of cues." 2016-02-05 18:37:15 +00:00
Tom Finegan
b873000acf parser_tests: Add validation of cues.
Make sure clusters are where the Cues element actually says they
are.

Change-Id: Ib2a4642d3bf6079d5f3985c30eeefc3b20503eaa
2016-02-05 09:48:37 -08:00
Vignesh Venkatasubramanian
799891e004 Update .gitignore to include some new binaries
Change-Id: I664abd5a35620073a12de11c5a7683fdbd16ba2d
2016-02-05 09:21:33 -08:00
Vignesh Venkatasubramanian
e051c60db1 Merge "Update muxer test gold files" 2016-02-05 17:09:11 +00:00
Vignesh Venkatasubramanian
b81d5f011c Update muxer test gold files
Some of the muxer tests have been failing because of incorrect
gold files. Updating the gold files and tweaking the tests so that
they pass in a sensible way.

Change-Id: I7d3dda6cacecda526880d6e7623f9a7678b71265
2016-02-04 16:54:00 -08:00
Tom Finegan
48b1e9a4a0 mkvparser: clang format run
Change-Id: Ib416e3ea3a955090bf4269113b36e15922107438
2016-02-04 09:56:48 -08:00
Tom Finegan
93c4690449 webm2pes: Add PES packet parsing tests.
Add test that parses the first packet output by Webm2Pes.

Change-Id: I6d2282e0e87eed759abf2483994fc767f022f0ff
2016-02-02 09:54:22 -08:00
Tom Finegan
65ca38fa20 Merge "test_util: Fix gcc build." 2016-01-26 22:14:52 +00:00
Tom Finegan
520ca6c9d0 Merge "parser_tests: Fix gcc build." 2016-01-26 22:14:39 +00:00
Tom Finegan
37a38cab9a test_util: Fix gcc build.
Change-Id: I287b8c31f354bbf871d76a4b39109dd711af7b00
2016-01-26 13:37:51 -08:00
Tom Finegan
ee0ebbaa69 parser_tests: Fix gcc build.
Change-Id: I7f29d584aad377e2a04687e778b3d07806b28882
2016-01-26 13:37:25 -08:00
Tom Finegan
c32f970f54 Replace auto_ptr usage with unique_ptr.
Change-Id: I4061686fa4739b4e5c32dfaac341dfba393dd254
2016-01-26 13:02:11 -08:00
Tom Finegan
e569ab0f7c webm2pes/ts: Fix gcc build.
Fix the build and tidy up a couple things along the way.

- Add -std=c++11 to CMakeLists.txt CXX flags.
- Add missing include to libwebm_utils.h (<memory>).
- Setup CMAKE_CXX_FLAGS properly (allow user override).
- Add missing URL for gtest repo to README.libwebm.

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

Change-Id: I894729216737ff92f58a7b7601484ba8fba73b25
2016-01-25 12:18:56 -08:00
Tom Finegan
2e55d6c5f7 Merge "add bitcode embedding support for ios" 2016-01-25 17:44:24 +00:00
TETRA2000
0cfb2dcbcb add bitcode embedding support for ios
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1135

Change-Id: Id3940d25216dd9fe430ce86bc1684ffe53029eb2
2016-01-23 19:24:52 +09:00
Tom Finegan
bb8cefd516 webm2ts: Converts WebM VPx video to a MPEG TS.
Built atop webm2pes, takes the output from webm2pes and packetizes it
into MPEG TS.

Change-Id: Ia122479ee91a112ad7fe223a571ca6d7ba66d406
2016-01-22 20:28:04 +00:00
Tom Finegan
453bf44d32 webm2pes: Begin addition of tests.
Just the basics:
- Some new test utilities.
- Basic setup for webm2pes testing.

Change-Id: I16bf0f5ef36e7c01f2788b2c92600d6a936bbd40
2016-01-22 11:02:34 -08:00
Tom Finegan
9299bbb6ed libwebm: Googletest integration.
Add basic mux/parse tests and test data.

Change-Id: I3bef014f32ad4898d23bca792fb3fe275fe4e7c9
2016-01-11 18:46:55 -08:00
Tom Finegan
3bec1ba7a1 Merge changes I7bcb5b3e,I8ce733be,I98a928ff,I71910f24
* changes:
  libwebm_utils: Add FileDeleter.
  webm2pes: Add a WebM parser init method.
  webm2pes: Rename Convert to ConvertToFile().
  webm2pes: Fix super frame splitting.
2016-01-06 18:40:41 +00:00
Vignesh Venkatasubramanian
5c83bbec9a Fix ParseElementHeader to support 0 payload elements
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1125

Please see the bug description for more details. This patch fixes
parsing of the file attached in the bug.

Change-Id: I2e929b6ef0ee92ea6d034b501b44a62784edf9f1
2016-01-05 13:35:00 -08:00
Tom Finegan
be35869ce3 libwebm_utils: Add FileDeleter.
Put the FILE clean up functor in a common place to avoid duplication.

Change-Id: I7bcb5b3e4df7aa37bb90920ecb8acccf94eeaa57
2015-12-17 08:50:23 -08:00
Tom Finegan
d6db1e1960 webm2pes: Add a WebM parser init method.
Pre-refactor a little to avoid some code duplication.

Change-Id: I8ce733be0c9e07544fc25bd9890d68fb14a7e84d
2015-12-17 08:50:23 -08:00
Tom Finegan
aa3593ec36 webm2pes: Rename Convert to ConvertToFile().
Change-Id: I98a928ff5b00e8961183136316be3615fd7462fe
2015-12-17 08:50:23 -08:00