Go to file
Vignesh Venkatasubramanian b6311dc16f mkvmuxer: Refactor to remove a lot of duplicate code
Refactor muxer to remove a lot of duplicate code. This CL strives
to not change the API as much as possible. Although, there is one
minor public API change (constructor of the Cluster class). Other
than that, all the functions should work exactly the same way as
before.

Following up on this CL, we are going to make AddGenericFrame the
preferred way of adding frames to a segment and deprecate (and
eventually remove) all the other specific AddFrame* functions.

Change-Id: Ie410f1a64a981e1545ade53ce476bbe8b3610c4f
2015-05-20 10:24:26 -07:00
build Add CMakeLists.txt and msvc_runtime.cmake. 2015-02-13 16:07:01 -08:00
common Add framework build script: iosbuild.sh 2015-05-06 10:33:48 -07:00
.clang-format Change AlignTrailingComments to false in .clang-format 2014-04-29 00:38:14 -07:00
.gitattributes Enable auto CRLF for visual studio project and solution files. 2012-05-29 10:45:59 -04:00
.gitignore Tweak .gitignore so git status is clean after checkout and build: 2015-04-09 00:38:17 +01:00
Android.mk libwebm: Update Android build 2013-04-15 09:13:07 -07:00
AUTHORS.TXT Initial version 2010-06-02 10:25:33 -04:00
CMakeLists.txt cmake: Set library and project name the proper way on Windows. 2015-03-02 12:43:56 -08:00
dumpvtt.cc clang-format on dumpvtt.cc 2014-04-14 12:15:04 -07:00
iosbuild.sh Add framework build script: iosbuild.sh 2015-05-06 10:33:48 -07:00
LICENSE.TXT added new license files 2010-06-15 17:45:08 -04:00
Makefile.unix Makefile.unix: s/samplemuxer/sample_muxer/ 2015-03-18 15:33:06 -07:00
mkvmuxer.cpp mkvmuxer: Refactor to remove a lot of duplicate code 2015-05-20 10:24:26 -07:00
mkvmuxer.hpp mkvmuxer: Refactor to remove a lot of duplicate code 2015-05-20 10:24:26 -07:00
mkvmuxertypes.hpp clang-format on mkvmuxertypes.hpp and webmids.hpp 2014-04-15 11:39:44 -07:00
mkvmuxerutil.cpp mkvmuxer: Refactor to remove a lot of duplicate code 2015-05-20 10:24:26 -07:00
mkvmuxerutil.hpp mkvmuxer: Refactor to remove a lot of duplicate code 2015-05-20 10:24:26 -07:00
mkvparser.cpp mkvparser: Dead code removal. 2015-04-14 23:36:29 -07:00
mkvparser.hpp mkvparser: Dead code removal. 2015-04-14 23:36:29 -07:00
mkvreader.cpp clang-format on mkvreader.[ch]pp 2014-04-15 12:05:58 -07:00
mkvreader.hpp make Mkv(Reader|Writer)(FILE*) explicit 2014-05-02 11:47:44 -07:00
mkvwriter.cpp clang-format on mkvwriter.[ch]pp 2014-04-14 10:30:33 -07:00
mkvwriter.hpp make Mkv(Reader|Writer)(FILE*) explicit 2014-05-02 11:47:44 -07:00
PATENTS.TXT PATENTS: fix a typo: constitutes -> constitute 2015-04-30 15:40:13 -07:00
README.libwebm Add CMakeLists.txt and msvc_runtime.cmake. 2015-02-13 16:07:01 -08:00
RELEASE.TXT Updated RELEASE.TXT 2010-11-03 13:46:44 -04:00
sample_muxer_metadata.cc clang-format on sample_muxer_metadata.(cc|h) 2014-04-14 12:09:20 -07:00
sample_muxer_metadata.h clang-format on sample_muxer_metadata.(cc|h) 2014-04-14 12:09:20 -07:00
sample_muxer.cpp mkvmuxer: Reject frames if invalid track number is passed. 2014-05-18 12:45:49 -07:00
sample.cpp Fix track transversal when listing Cues on sample 2015-04-11 00:24:30 +01:00
vttdemux.cc clang-format re-run. 2014-04-29 11:27:31 -07:00
vttreader.cc clang-format on vttreader.cc 2014-04-14 12:11:27 -07:00
vttreader.h added dumpvtt app 2012-08-23 14:00:57 -07:00
webmids.hpp clang-format on mkvmuxertypes.hpp and webmids.hpp 2014-04-15 11:39:44 -07:00
webvttparser.cc clang-format re-run. 2014-04-29 11:27:31 -07:00
webvttparser.h clang-format on webvttparser.(cc|h) 2014-04-25 22:18:40 -07:00

Building Libwebm

To build libwebm you must first create project files. To do this run cmake
and pass it the path to your libwebm repo.

Makefile.unix can be used as a fallback on systems that cmake does not
support.


CMake Basics

To generate project/make files for the default toolchain on your system simply
run cmake with the path to the libwebm repo:

$ cmake path/to/libwebm

On Windows the above command will produce Visual Studio project files for the
newest Visual Studio detected on the system. On Mac OS X and Linux systems, the
above command will produce a makefile.

To control what types of projects are generated the -G parameter is added to
the cmake command line. This argument must be followed by the name of a
generator. Running cmake with the --help argument will list the available
generators for your system.

On Mac OS X you would run the following command to generate Xcode projects:

$ cmake path/to/libwebm -G Xcode

On a Windows box you would run the following command to generate Visual Studio
2013 projects:

$ cmake path/to/libwebm -G "Visual Studio 12"

To generate 64-bit Windows Visual Studio 2013 projects:

$ cmake path/to/libwebm "Visual Studio 12 Win64"


CMake Makefiles: Debugging and Optimization

Unlike Visual Studio and Xcode projects, the build configuration for make builds
is controlled when you run cmake. The following examples demonstrate various
build configurations.

Omitting the build type produces makefiles that use build flags containing
neither optimization nor debug flags:
$ cmake path/to/libwebm

A makefile using release (optimized) flags is produced like this:
$ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=release

A release build with debug info can be produced as well:
$ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=relwithdebinfo

And your standard debug build will be produced using:
$ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=debug