Commit Graph

47 Commits

Author SHA1 Message Date
Tom Finegan
59f08602fc Allow shared builds of libwebm.
Omit the STATIC in the add_library command, and stop
forcing static MSVC runtimes when BUILD_SHARED_LIBS
is enabled.

$ cmake path/to/libwebm -DBUILD_SHARED_LIBS=1 && cmake --build .

Change-Id: I4935c774d98f70a39363f37be4f9e8989a0749c0
2018-02-06 14:30:18 -08:00
Lisa Velden
d707c67276 Replace uses of deprecated std::auto_ptr with std::unique_ptr.
Change-Id: I8d67fc6f3ce168f4d8b6330549f766dbf5374d61
2018-01-24 11:37:37 +01:00
Tom Finegan
fbc8ab96da Improve mingw support.
- Remove existing mingw-w64 toolchain file.
- Add x86 and x86_64 mingw-w64 toolchain files.
- Add gtest mingw work around (disable gtest cmake and build
  our own static lib).

Change-Id: Ic602df62f5485ccbd79deccf3aed2a4d35fef8ad
2017-09-18 13:19:36 -07:00
Tom Finegan
686664eba2 Fix cmake generation warnings on Windows.
A target must exist before its properties can be set. Defer
libwebm target rename on windows until after creation of the
webm library target.

Change-Id: I29c5e90f1f653a00ff156316c03b0ffd78e9a998
2017-01-26 07:57:32 -08: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
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
207cd80a86 Disambiguate sample sources and targets.
sample => mkvparser_sample
sample_muxer => mkvmuxer_sample

Change-Id: Iba6a1276da9c1bb4a46fc5c4521392f89f08a59e
2016-08-23 17:55:52 -07:00
Tom Finegan
5dea33eacc Disambiguate test source and target names.
Rename source files and targets to better reflect what is
actually being tested.

muxer_tests => mkvmuxer_tests
parser_tests => mkvparser_tests

Change-Id: I921901f37d269f294b96ba20732b31c27f81945b
2016-08-23 10:29:30 -07:00
Tom Finegan
5495a59d38 webm_parser: Reference more files in CMakeLists.txt.
Some includes were missed in the first pass when webm_parser
was added to CMakeLists.txt. Add the missing includes from
webm_parser/include/webm.

Change-Id: I193debe8018155ff9f0ab1d1326330069333948e
2016-08-11 08:48:45 -07:00
Tom Finegan
b451c3ba96 Add a basic video frame storage class.
Includes simple tests.

Change-Id: I52276686d6c2bc7b62d260af37affe78aa4dcf50
2016-07-22 15:07:33 -07:00
Tom Finegan
f8bb7149f5 cmake: Integrate new parsing API and tests.
Change-Id: I11e32bfffda12fa910c06bf7b8e3a0efbccf6054
2016-07-14 11:11:59 -07:00
Frank Galligan
e3c9576716 Add VP9 level output to webm_info.
Removed building webm_info from Makefile.unix as it now requires c++11.

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

Change-Id: Ia142f0c3cd580f397449d2ffa8788f78fb7faff0
2016-04-26 22:16:31 -07:00
Frank Galligan
bbaaf2da8d Add class to gather VP9 level stats.
See http://www.webmproject.org/vp9/profiles/ for more information
on VP9 levels.

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

Change-Id: I91448069bbd4740106a159014db6935365af75ca
2016-04-21 13:02:25 -07:00
Frank Galligan
8bb68c2b3e Add file to parse data from VP9 frames.
This class will parse and collect some data from VP9 frame
headers.

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

Change-Id: Ie19e0f4a2f7e89d0378a66ce2e8e939250ddc383
2016-04-18 12:21:58 -07:00
Tom Finegan
f47cbd50e9 cmake: Move cxx flag testing/setup into its own file.
- Move CXX flags stuff into build/cxx_flags.cmake.
- include CMake modules where they're used.
- Add ENABLE_WERROR flag-- enables warnings as errors.
- Add -Wshorten-64-to-32 and -Wnarrowing to CXX flags.

Change-Id: I5d93a39a3eff6ae81f9e094927b8f0cb9f36bbb0
2016-04-07 14:49:26 -07:00
Tom Finegan
596f5e0544 Add webm_info.
Migrated from the webm-tools repository with minor tweaks to
fix its build in the new location.

Last location/revision:
https://chromium.googlesource.com/webm/webm-tools
a7e97e8f0a913ddd97444392bb8816f44a4821a1

Change-Id: Icfad43d9fdd37fc413a6a28b57b370c97c7c28df
2016-04-01 12:07:38 -04: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
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
Tom Finegan
01db4c2d83 webmids: Move to common/ sub dir.
Change-Id: I87d0cbd78203a6680108e9e36588ff35e7ae8a4e
2016-03-21 14:41:24 -07:00
Tom Finegan
f578419a01 mkvmuxer: Move sources to mkvmuxer/ sub dir.
Change-Id: I22dff1e2ece102c294081ab2ec8600fdb872922e
2016-03-21 14:41:19 -07:00
Tom Finegan
5f1065e4e2 webvtt: Organize and clean up webvtt support.
Move webvtt support code into webvtt sub dir, and update build/includes
as necessary.

Change-Id: I1c0891afd413e92d43ba54b61cc8dc694c0bff36
2016-03-21 12:41:47 -07:00
Tom Finegan
7abe8ace91 cmake: Add missing dumpvtt target.
Change-Id: Ie751a8bcf10d554dd2dad7171b27df22bf442d40
2016-03-21 12:41:47 -07:00
Tom Finegan
12f6dc34b4 Use <stdint.h> types instead of custom typedefs.
Change-Id: Ia43b81649a14d0509aef2119be7a0ea9be955201
2016-03-21 12:41:45 -07:00
Tom Finegan
008aa63d6a mkvparser: move to mkvparser sub dir.
Move mkvparser and mkvreader to mkvparser/.

Change-Id: I18c4575483f628344034d81b7d90d3aa86c163ff
2016-03-18 10:22:22 -07:00
Tom Finegan
5fdb386183 cmake: move c++11 checks into build/cxx11_tests.cmake.
Change-Id: I300552a14412dc664e7e5f1a4d1a90466e82593d
2016-03-16 20:14:26 -07:00
Tom Finegan
c5b76d8d11 Extract PES parser from WebM2Pes tests.
Change-Id: I6c81255635a65337bdb701119a3814801864469d
2016-03-11 14:12:57 -08:00
Tom Finegan
16524e8e3b cmake: Add include-what-you-use integration.
Change-Id: Ifcfd15e0b7b81c013116ad770985a3fe4911391a
2016-03-10 14:47:43 -08:00
Tom Finegan
1f74651b5b webmts: Move PES/TS sources to m2ts sub directory.
Change-Id: I5c02b62460a6bf8dd73fb9274d1668a5a13af373
2016-03-07 14:32:08 -08:00
Tom Finegan
1b895e97d0 Rename libwebm_utils to libwebm_util.
Use a single naming convention.

Change-Id: Ia48089b05e5a453a402d4b4e7f258a56bee8a001
2016-03-07 14:27:07 -08:00
Tom Finegan
e6a0033a8c Add file_util.
Move file utility classes and functions from testing/test_util to
common/file_util, and make them part of libwebm.

Change-Id: If5b25a63b20efacc16b0fecaa8876ade4ecc4b26
2016-03-07 14:27:03 -08:00
Tom Finegan
87f9beae01 Move hdr_util to common.
Change-Id: I383680b79d798fd77bb385e1b8087967962eb230
2016-03-07 11:32:02 -08:00
Tom Finegan
1f64aaf180 cmake: Expand C++11 tests.
Change-Id: I80e0372ebe0374c3931f65c8de6410b95fb112d1
2016-03-02 13:40:32 -08:00
Tom Finegan
599e4e8bd2 cmake: Silence clang/gcc deprecation warnings.
Parts of libwebm continue to use std::auto_ptr for support of older
compilers and target systems. Silence the warnings its use causes.

Change-Id: Iac8f35c9fdaaeb1cbb637d0777b46cdad54843ed
2016-02-26 16:21:54 -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
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
e0b11351fb cmake: Minor CMakeLists.txt refactor.
Reduce repetition/verbosity.

Change-Id: Id2e7e0c7a6c01ee1fb118d83aa0334f71088a2af
2016-02-17 11:25:15 -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
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
3cb96b6e33 webm2pes: Move main() and helper functions into their own files.
- main() and Usage() to webm2pes_main.cc
- Other helpers to common/libwebm_utils.{cc,h}

Change-Id: I59e45f0e63449066b493c4e536e0be001372504c
2015-12-17 08:38:13 -08:00
Tom Finegan
faf85c227d webm2pes: Refactor header/optional header writing.
- Move class declarations to webm2pes.h.
- Add some visual demarcation between the method definitions for each
  class in webm2pes.cc.
- Reorganize the output code to make further development simpler.
- Also, clang format noise.

Change-Id: Id6d156e1f255cefe30a62784a3eadde6b93ae614
2015-12-03 14:42:37 -08:00
Tom Finegan
7c19266548 Add Webm2Pes.
Add tool for converting WebM VPx streams to Packetized Elementary
Streams.

Change-Id: I599de053df5423a803a3ea450876c52c3e400034
2015-12-02 11:42:24 -08:00
Tom Finegan
bab0a002c5 cmake: Set library and project name the proper way on Windows.
Revert previous hack and use target properties to correct project
and library names.

Change-Id: Ib35da1cedcedf86f3f020d879cd39199fd236572
2015-03-02 12:43:56 -08:00
Tom Finegan
feeb9b13ff Set library name to match Windows expectations.
Back to libwebm.lib from webm.lib.

Change-Id: I6ced362c987a7b5d3d56365a1ed53de7bf9f849b
2015-02-25 15:37:05 -08:00
Vignesh Venkatasubramanian
b9a549b467 Fix CMakefile to generate libwebm.a
The existing CMakeLists.txt ends up generating a static library
with name "liblibwebm.a" rather than "libwebm.a". This patch fixes
it.

Change-Id: I4dabac5158530714a38045b8af29e75ade0a939e
2015-02-25 14:04:04 -08:00
Tom Finegan
b386aa5c6b Add CMakeLists.txt and msvc_runtime.cmake.
- These files facilitate project/makefile generation.
- Remove old Visual Studio projects.
- Rename Makefile to Makefile.unix.

Change-Id: If786edd75d44c462538526c286eccc5cbf15d828
2015-02-13 16:07:01 -08:00