1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
61
62
63
64
65
66
67
68
69
70
71
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
106
107
108
109
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
This distribution of libdca is not original work.
All code had been made reentrant to fit deadbeef player needs.
=== Original libdca README starts here ===
About libdca
------------
libdca is a free library for decoding DTS Coherent Acoustics streams. It is
released under the terms of the GPL license. The DTS Coherent Acoustics
standard is used in a variety of applications, including DVD, DTS audio CD and
radio broadcasting.
The main goals in libdts development are:
* Portability - currently all of the code is written in C, and
when we write platform-specific optimizations we will always
keep a generic C routine to fall back on.
* Reuseability - we do not want libdts to include any
project-specific code, but it should still include enough
features to be used by very diverse projects.
* Precision - we do not yet fully support all the core specification of
the DTS Coherent Acoustics standard (see TODO) so do not expect too
much of this library for now.
* Speed - current code is not optimised at all.
The project homepage is at http://www.videolan.org/developers/libdca.html
dcadec
------
dcadec is a test program for libdca. It decodes DTS Coherent Acoustics streams,
and also includes a demultiplexer for mpeg-1 and mpeg-2 program streams.
The libdca source code is always distributed in the dcadec package, to
make sure it easier for people to test it.
The basic usage is to just type "dcadec file" where file is a DTS Coherent
Acoustics file.
The "-s" option must be used for multiplexed (audio and video) mpeg-2
files. These files are usualy found on the internet or on unencrypted
DVDs.
The "-o" option is used to select a given output layer. By default
dcadec does a stereo downmix and outputs to your speakers, but you can
try other choices using this option. This is also used for performance
testing and conformance testing.
The "-r" option is used to disable the dynamic range compression.
Other projects using libdts
---------------------------
right now libdts is only being used by VLC media player
(http://www.videolan.org/) a cross-platform video player and streaming
solution.
If you use libdts in another project, let us know !
Tasks
-----
There are several places where we could easily use some help:
* Testing: If you find any stream that does not decode right
with libdts, let us know ! The best thing would be to mail to
the libdts-devel mailing list. Also if you have access to
encoders, we'd love to get test streams that would be free of
rights - so that we can put them on this server.
* Coding: you can have a look in the TODO file first ! The most
important items are probably to finish implementing the full
specification and to make sure of the accuracy of the audio output.
* Porting: If you're porting to a new architecture, you might
want to experiment with the compile flags defined in
configure.in . When you figure out whats fastest on your
platform, send us a patch !
References
----------
The DTS Coherent Acoustics standard (ETSI 102 114 v1.2.1), as published by the
ETSI, is available at http://pda.etsi.org/pda/queryform.asp (look for DTS
Coherent Acoustics)
SVN repository
--------------
The latest libdca and dcadec source code can always be found by anonymous
SVN repository:
# svn co svn://svn.videolan.org/libdca/trunk libdca-trunk
If you build libdts from SVN you'll have to run ./bootstrap first.
Support / mailing-lists
-----------------------
See the support information at http://www.videolan.org/support/
libdts-devel
This is the main mailing list for technical discussion about
libdts. Anyone wanting to work on libdts, or maybe just stay informed
about the development process, should probably subscribe to this list.
Unix build instructions
-----------------------
./configure
make
make install
Building for win32
------------------
There are at least three ways to do it:
- natively on Windows using Microsoft VC++ and the vc++ project
included in this distribution.
- natively on Windows using MSYS + MINGW (www.mingw.org) (MSYS is a
minimal build environnement to compile unixish projects under
windows. It provides all the common unix tools like sh, gmake...)
- or on Linux, using the mingw32 cross-compiler
Building using MSYS + MINGW on windows
--------------------------------------
First you will need to download and install the latest MSYS (version
1.0.7 as of now) and MINGW. The installation is really easy. Begin
with the MSYS auto-installer and once this is done, extract MINGW into
c:\msys\1.0\mingw. You also have to remember to remove the make
utility included with MINGW as it conflicts with the one from MSYS
(just rename or remove c:\msys\1.0\mingw\bin\make.exe).
http://prdownloads.sourceforge.net/mingw/MSYS-1.0.7-i686-2002.04.24-1.exe
http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz
Then you can build the package using:
# ./configure
# make
Building using the mingw32 cross-compiler
-----------------------------------------
You need to install mingw32 first. For Debian GNU/Linux users, there
is a mingw32 package. Otherwise you might get it from the mingw site
at http://www.mingw.org/download.shtml.
The videolan project also keeps precompiled mingw32 binaries at
http://www.videolan.org/vlc/windows.html . If you install these,
you'll have to set your PATH accordingly to include
/usr/local/cross-tools/bin too.
The build should then proceed using something like:
# CC=i586-mingw32msvc-gcc ./configure --host=i586-mingw32msvc
# make
|