README.md 4.67 KB
Newer Older
stopiccot's avatar
stopiccot committed
1
2
# Vorbis

3
[![GitLab Build Status](https://gitlab.xiph.org/xiph/vorbis/badges/master/pipeline.svg)](https://gitlab.xiph.org/xiph/vorbis/-/pipelines)
Chocobo1's avatar
Chocobo1 committed
4
[![Travis Build Status](https://travis-ci.org/xiph/vorbis.svg?branch=master)](https://travis-ci.org/xiph/vorbis)
Ralph Giles's avatar
Ralph Giles committed
5
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/github/xiph/vorbis?branch=master&svg=true)](https://ci.appveyor.com/project/rillian/vorbis)
stopiccot's avatar
stopiccot committed
6
7
8
9
10
11
12

Vorbis is a general purpose audio and music encoding format
contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond
MPEG audio layer 3. Unlike the MPEG sponsored formats (and other
proprietary formats such as RealAudio G2 and Windows' flavor of the
month), the Vorbis CODEC specification belongs to the public domain.
All the technical details are published and documented, and any
Ralph Giles's avatar
Ralph Giles committed
13
software entity may make full use of the format without license
stopiccot's avatar
stopiccot committed
14
15
16
17
18
fee, royalty or patent concerns.

This package contains:

- libvorbis, a BSD-style license software implementation of
Ralph Giles's avatar
Ralph Giles committed
19
  the Vorbis specification by the Xiph.Org Foundation
20
  (https://xiph.org/)
stopiccot's avatar
stopiccot committed
21
22
23
24
25

- libvorbisfile, a BSD-style license convenience library
  built on Vorbis designed to simplify common uses

- libvorbisenc, a BSD-style license library that provides a simple,
Ralph Giles's avatar
Ralph Giles committed
26
  programmatic encoding setup interface
stopiccot's avatar
stopiccot committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

- example code making use of libogg, libvorbis, libvorbisfile and
  libvorbisenc

## What's here ##

This source distribution includes libvorbis and an example
encoder/player to demonstrate use of libvorbis as well as
documentation on the Ogg Vorbis audio coding format.

You'll need libogg (distributed separately) to compile this library.
A more comprehensive set of utilities is available in the vorbis-tools
package.

Directory:

- `lib` The source for the libraries, a BSD-license implementation of the public domain Ogg Vorbis audio encoding format.

- `include` Library API headers

- `debian` Rules/spec files for building Debian .deb packages

- `doc` Vorbis documentation

- `examples` Example code illustrating programmatic use of libvorbis, libvorbisfile and libvorbisenc

- `macosx` Project files for MacOS X.

- `win32` Win32 projects files and build automation

- `vq` Internal utilities for training/building new LSP/residue and auxiliary codebooks.

## Contact ##

61
62
The Ogg homepage is located at 'https://xiph.org/ogg/'.
Vorbis's homepage is located at 'https://xiph.org/vorbis/'.
stopiccot's avatar
stopiccot committed
63
64
65
66
67
68
69
Up to date technical documents, contact information, source code and
pre-built utilities may be found there.

## Building ##

#### Building from master ####

Ralph Giles's avatar
Ralph Giles committed
70
Development source is under git revision control at
71
https://gitlab.xiph.org/xiph/vorbis.git. You will also need the
stopiccot's avatar
stopiccot committed
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
newest versions of autoconf, automake, libtool and pkg-config in
order to compile Vorbis from development source. A configure script
is provided for you in the source tarball distributions.

    ./autogen.sh
    ./configure
    make

and as root if desired:

    make install

This will install the Vorbis libraries (static and shared) into
/usr/local/lib, includes into /usr/local/include and API manpages
(once we write some) into /usr/local/man.

Documentation building requires xsltproc and pdfxmltex.

#### Building from tarball distributions ####

    ./configure
    make

and optionally (as root):

    make install

#### Building RPM packages ####

after normal configuring:

    make dist
    rpm -ta libvorbis-<version>.tar.gz

stopiccot's avatar
stopiccot committed
106
107
## Building with CMake ##

Ralph Giles's avatar
Ralph Giles committed
108
109
Ogg supports building using [CMake](https://cmake.org/). CMake is a meta build system that generates native projects for each platform.
To generate projects just run cmake replacing `YOUR-PROJECT-GENERATOR` with a proper generator from a list [here](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html):
stopiccot's avatar
stopiccot committed
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138

    cmake -G YOUR-PROJECT-GENERATOR .

Note that by default cmake generates projects that will build static libraries.
To generate projects that will build dynamic library use `BUILD_SHARED_LIBS` option like this:

    cmake -G YOUR-PROJECT-GENERATOR -DBUILD_SHARED_LIBS=1 .

After projects are generated use them as usual

#### Building on Windows ####

Use proper generator for your Visual Studio version like:

    cmake -G "Visual Studio 12 2013" .

#### Building on Mac OS X ####

Use Xcode generator. To build framework run:

    cmake -G Xcode -DBUILD_FRAMEWORK=1 .

#### Building on Linux ####

Use Makefile generator which is default one.

    cmake .
    make

stopiccot's avatar
stopiccot committed
139
140
141
142
143
144
145
## License ##

THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.
USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS
GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE
IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.

146
THE OggVorbis SOURCE CODE IS COPYRIGHT (C) 1994-2020
147
by the Xiph.Org Foundation https://xiph.org/