xref: /aosp_15_r20/external/libogg/README.md (revision 4d5d8b54cec1a9622d79143ad0e145ea73da2224)
1*4d5d8b54SAndroid Build Coastguard Worker# Ogg
2*4d5d8b54SAndroid Build Coastguard Worker
3*4d5d8b54SAndroid Build Coastguard Worker[![Travis Build Status](https://travis-ci.org/xiph/ogg.svg?branch=master)](https://travis-ci.org/xiph/ogg)
4*4d5d8b54SAndroid Build Coastguard Worker[![Jenkins Build Status](https://mf4.xiph.org/jenkins/job/libogg/badge/icon)](https://mf4.xiph.org/jenkins/job/libogg/)
5*4d5d8b54SAndroid Build Coastguard Worker[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/xiph/ogg?branch=master&svg=true)](https://ci.appveyor.com/project/rillian/ogg)
6*4d5d8b54SAndroid Build Coastguard Worker
7*4d5d8b54SAndroid Build Coastguard WorkerOgg project codecs use the Ogg bitstream format to arrange the raw,
8*4d5d8b54SAndroid Build Coastguard Workercompressed bitstream into a more robust, useful form. For example,
9*4d5d8b54SAndroid Build Coastguard Workerthe Ogg bitstream makes seeking, time stamping and error recovery
10*4d5d8b54SAndroid Build Coastguard Workerpossible, as well as mixing several sepearate, concurrent media
11*4d5d8b54SAndroid Build Coastguard Workerstreams into a single physical bitstream.
12*4d5d8b54SAndroid Build Coastguard Worker
13*4d5d8b54SAndroid Build Coastguard Worker## What's here ##
14*4d5d8b54SAndroid Build Coastguard WorkerThis source distribution includes libogg and nothing else. Other modules
15*4d5d8b54SAndroid Build Coastguard Worker(eg, the modules libvorbis, vorbis-tools for the Vorbis music codec,
16*4d5d8b54SAndroid Build Coastguard Workerlibtheora for the Theora video codec) contain the codec libraries for
17*4d5d8b54SAndroid Build Coastguard Workeruse with Ogg bitstreams.
18*4d5d8b54SAndroid Build Coastguard Worker
19*4d5d8b54SAndroid Build Coastguard WorkerDirectory:
20*4d5d8b54SAndroid Build Coastguard Worker
21*4d5d8b54SAndroid Build Coastguard Worker- `src` The source for libogg, a BSD-license inplementation of the public domain Ogg bitstream format
22*4d5d8b54SAndroid Build Coastguard Worker
23*4d5d8b54SAndroid Build Coastguard Worker- `include` Library API headers
24*4d5d8b54SAndroid Build Coastguard Worker
25*4d5d8b54SAndroid Build Coastguard Worker- `doc` Ogg specification and libogg API documents
26*4d5d8b54SAndroid Build Coastguard Worker
27*4d5d8b54SAndroid Build Coastguard Worker- `win32` Win32 projects and build automation
28*4d5d8b54SAndroid Build Coastguard Worker
29*4d5d8b54SAndroid Build Coastguard Worker## Contact ##
30*4d5d8b54SAndroid Build Coastguard Worker
31*4d5d8b54SAndroid Build Coastguard WorkerThe Ogg homepage is located at https://www.xiph.org/ogg/ .
32*4d5d8b54SAndroid Build Coastguard WorkerUp to date technical documents, contact information, source code and
33*4d5d8b54SAndroid Build Coastguard Workerpre-built utilities may be found there.
34*4d5d8b54SAndroid Build Coastguard Worker
35*4d5d8b54SAndroid Build Coastguard Worker## Building ##
36*4d5d8b54SAndroid Build Coastguard Worker
37*4d5d8b54SAndroid Build Coastguard Worker#### Building from tarball distributions ####
38*4d5d8b54SAndroid Build Coastguard Worker
39*4d5d8b54SAndroid Build Coastguard Worker    ./configure
40*4d5d8b54SAndroid Build Coastguard Worker    make
41*4d5d8b54SAndroid Build Coastguard Worker
42*4d5d8b54SAndroid Build Coastguard Workerand optionally (as root):
43*4d5d8b54SAndroid Build Coastguard Worker
44*4d5d8b54SAndroid Build Coastguard Worker    make install
45*4d5d8b54SAndroid Build Coastguard Worker
46*4d5d8b54SAndroid Build Coastguard WorkerThis will install the Ogg libraries (static and shared) into
47*4d5d8b54SAndroid Build Coastguard Worker/usr/local/lib, includes into /usr/local/include and API
48*4d5d8b54SAndroid Build Coastguard Workerdocumentation into /usr/local/share/doc.
49*4d5d8b54SAndroid Build Coastguard Worker
50*4d5d8b54SAndroid Build Coastguard Worker#### Building from repository source ####
51*4d5d8b54SAndroid Build Coastguard Worker
52*4d5d8b54SAndroid Build Coastguard WorkerA standard svn build should consist of nothing more than:
53*4d5d8b54SAndroid Build Coastguard Worker
54*4d5d8b54SAndroid Build Coastguard Worker    ./autogen.sh
55*4d5d8b54SAndroid Build Coastguard Worker    ./configure
56*4d5d8b54SAndroid Build Coastguard Worker    make
57*4d5d8b54SAndroid Build Coastguard Worker
58*4d5d8b54SAndroid Build Coastguard Workerand as root if desired :
59*4d5d8b54SAndroid Build Coastguard Worker
60*4d5d8b54SAndroid Build Coastguard Worker    make install
61*4d5d8b54SAndroid Build Coastguard Worker
62*4d5d8b54SAndroid Build Coastguard Worker#### Building on Windows ####
63*4d5d8b54SAndroid Build Coastguard Worker
64*4d5d8b54SAndroid Build Coastguard WorkerUse the project file in the win32 directory. It should compile out of the box.
65*4d5d8b54SAndroid Build Coastguard Worker
66*4d5d8b54SAndroid Build Coastguard Worker#### Cross-compiling from Linux to Windows ####
67*4d5d8b54SAndroid Build Coastguard Worker
68*4d5d8b54SAndroid Build Coastguard WorkerIt is also possible to cross compile from Linux to windows using the MinGW
69*4d5d8b54SAndroid Build Coastguard Workercross tools and even to run the test suite under Wine, the Linux/*nix
70*4d5d8b54SAndroid Build Coastguard Workerwindows emulator.
71*4d5d8b54SAndroid Build Coastguard Worker
72*4d5d8b54SAndroid Build Coastguard WorkerOn Debian and Ubuntu systems, these cross compiler tools can be installed
73*4d5d8b54SAndroid Build Coastguard Workerby doing:
74*4d5d8b54SAndroid Build Coastguard Worker
75*4d5d8b54SAndroid Build Coastguard Worker    sudo apt-get mingw32 mingw32-binutils mingw32-runtime wine
76*4d5d8b54SAndroid Build Coastguard Worker
77*4d5d8b54SAndroid Build Coastguard WorkerOnce these tools are installed its possible to compile and test by
78*4d5d8b54SAndroid Build Coastguard Workerexecuting the following commands, or something similar depending on
79*4d5d8b54SAndroid Build Coastguard Workeryour system:
80*4d5d8b54SAndroid Build Coastguard Worker
81*4d5d8b54SAndroid Build Coastguard Worker    ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --build=i586-linux
82*4d5d8b54SAndroid Build Coastguard Worker    make
83*4d5d8b54SAndroid Build Coastguard Worker    make check
84*4d5d8b54SAndroid Build Coastguard Worker
85*4d5d8b54SAndroid Build Coastguard Worker(Build instructions for Ogg codecs such as vorbis are similar and may
86*4d5d8b54SAndroid Build Coastguard Workerbe found in those source modules' README files)
87*4d5d8b54SAndroid Build Coastguard Worker
88*4d5d8b54SAndroid Build Coastguard Worker## Building with CMake ##
89*4d5d8b54SAndroid Build Coastguard Worker
90*4d5d8b54SAndroid Build Coastguard WorkerOgg supports building using [CMake](http://www.cmake.org/). CMake is a meta build system that generates native projects for each platform.
91*4d5d8b54SAndroid Build Coastguard WorkerTo generate projects just run cmake replacing `YOUR-PROJECT-GENERATOR` with a proper generator from a list [here](http://www.cmake.org/cmake/help/v3.2/manual/cmake-generators.7.html):
92*4d5d8b54SAndroid Build Coastguard Worker
93*4d5d8b54SAndroid Build Coastguard Worker    mkdir build
94*4d5d8b54SAndroid Build Coastguard Worker    cd build
95*4d5d8b54SAndroid Build Coastguard Worker    cmake -G YOUR-PROJECT-GENERATOR ..
96*4d5d8b54SAndroid Build Coastguard Worker
97*4d5d8b54SAndroid Build Coastguard WorkerNote that by default cmake generates projects that will build static libraries.
98*4d5d8b54SAndroid Build Coastguard WorkerTo generate projects that will build dynamic library use `BUILD_SHARED_LIBS` option like this:
99*4d5d8b54SAndroid Build Coastguard Worker
100*4d5d8b54SAndroid Build Coastguard Worker    cmake -G YOUR-PROJECT-GENERATOR -DBUILD_SHARED_LIBS=1 ..
101*4d5d8b54SAndroid Build Coastguard Worker
102*4d5d8b54SAndroid Build Coastguard WorkerAfter projects are generated use them as usual
103*4d5d8b54SAndroid Build Coastguard Worker
104*4d5d8b54SAndroid Build Coastguard Worker#### Building on Windows ####
105*4d5d8b54SAndroid Build Coastguard Worker
106*4d5d8b54SAndroid Build Coastguard WorkerUse proper generator for your Visual Studio version like:
107*4d5d8b54SAndroid Build Coastguard Worker
108*4d5d8b54SAndroid Build Coastguard Worker    cmake -G "Visual Studio 12 2013" ..
109*4d5d8b54SAndroid Build Coastguard Worker
110*4d5d8b54SAndroid Build Coastguard Worker#### Building on Mac OS X ####
111*4d5d8b54SAndroid Build Coastguard Worker
112*4d5d8b54SAndroid Build Coastguard WorkerUse Xcode generator. To build framework run:
113*4d5d8b54SAndroid Build Coastguard Worker
114*4d5d8b54SAndroid Build Coastguard Worker    cmake -G Xcode -DBUILD_FRAMEWORK=1 ..
115*4d5d8b54SAndroid Build Coastguard Worker
116*4d5d8b54SAndroid Build Coastguard Worker#### Building on Linux ####
117*4d5d8b54SAndroid Build Coastguard Worker
118*4d5d8b54SAndroid Build Coastguard WorkerUse Makefile generator which is default one.
119*4d5d8b54SAndroid Build Coastguard Worker
120*4d5d8b54SAndroid Build Coastguard Worker    cmake ..
121*4d5d8b54SAndroid Build Coastguard Worker    make
122*4d5d8b54SAndroid Build Coastguard Worker
123*4d5d8b54SAndroid Build Coastguard Worker## Testing ##
124*4d5d8b54SAndroid Build Coastguard Worker
125*4d5d8b54SAndroid Build Coastguard WorkerThis package includes a collection of automated tests.
126*4d5d8b54SAndroid Build Coastguard WorkerRunning them is not part of building nor installation but optional.
127*4d5d8b54SAndroid Build Coastguard Worker
128*4d5d8b54SAndroid Build Coastguard Worker### Unix-like System or MinGW ###
129*4d5d8b54SAndroid Build Coastguard Worker
130*4d5d8b54SAndroid Build Coastguard WorkerIf build under automake:
131*4d5d8b54SAndroid Build Coastguard Worker
132*4d5d8b54SAndroid Build Coastguard Worker    make check
133*4d5d8b54SAndroid Build Coastguard Worker
134*4d5d8b54SAndroid Build Coastguard WorkerIf build under CMake:
135*4d5d8b54SAndroid Build Coastguard Worker
136*4d5d8b54SAndroid Build Coastguard Worker    make test
137*4d5d8b54SAndroid Build Coastguard Worker
138*4d5d8b54SAndroid Build Coastguard Workeror:
139*4d5d8b54SAndroid Build Coastguard Worker
140*4d5d8b54SAndroid Build Coastguard Worker    ctest
141*4d5d8b54SAndroid Build Coastguard Worker
142*4d5d8b54SAndroid Build Coastguard Worker### Windows with MSBuild ###
143*4d5d8b54SAndroid Build Coastguard Worker
144*4d5d8b54SAndroid Build Coastguard WorkerIf build with configuration type "Debug", then:
145*4d5d8b54SAndroid Build Coastguard Worker
146*4d5d8b54SAndroid Build Coastguard Worker    ctest -C Debug
147*4d5d8b54SAndroid Build Coastguard Worker
148*4d5d8b54SAndroid Build Coastguard WorkerIf build with configuration type "Release", then:
149*4d5d8b54SAndroid Build Coastguard Worker
150*4d5d8b54SAndroid Build Coastguard Worker    ctest -C Release
151*4d5d8b54SAndroid Build Coastguard Worker
152*4d5d8b54SAndroid Build Coastguard Worker## License ##
153*4d5d8b54SAndroid Build Coastguard Worker
154*4d5d8b54SAndroid Build Coastguard WorkerTHIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.
155*4d5d8b54SAndroid Build Coastguard WorkerUSE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS
156*4d5d8b54SAndroid Build Coastguard WorkerGOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE
157*4d5d8b54SAndroid Build Coastguard WorkerIN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.
158*4d5d8b54SAndroid Build Coastguard Worker
159*4d5d8b54SAndroid Build Coastguard WorkerTHE OggVorbis SOURCE CODE IS COPYRIGHT (C) 1994-2019
160*4d5d8b54SAndroid Build Coastguard Workerby the Xiph.Org Foundation https://www.xiph.org/
161