📄 appendxd.htm
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="FORMATTER" content="Microsoft FrontPage 2.0">
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
<title>Appendix D - The main C sourcecode</title>
</head>
<body bgcolor="#FFFFFF">
<!--webbot bot="Include" startspan u-include="header.htm"
tag="BODY" -->
<h1><img src="whit1.jpg"
align="right" border="5" hspace="0" width="150" height="133"><font
size="5">A DSP-based decompressor unit for high-fidelity
MPEG-Audio over TCP/IP networks</font></h1>
<p>Copyright 1997 by <a href="mailto:bjorn@sparta.lu.se">Bj鰎n
Wes閚</a> at <a href="http://www.axis.se">Axis Communications AB</a>,
Sweden </p>
<p>[ <a href="index.htm">Home</a>
| <a href="thesis.htm">Contents</a>
| <a href="archive.htm">Component
and tool archive</a> ] </p>
<hr>
<!--webbot bot="Include" i-checksum="57475"
endspan -->
<p>Previous chapter: <a href="appendxc.htm">Appendix C</a>, next
chapter: <a href="prototest.htm">Appendix E</a></p>
<h2>Appendix D - The main C sourcecode</h2>
<p>The program was written with some object-orientation in mind,
which means that all functions that operate on a certain
structure, has the structure's name as prefix in the function
name, for example "Bitstream_get" which gets bits from
a bitstream structure. </p>
<p>There is a sea of conditional compile directives in the
source, because of its multi-platform compiling. It was designed
to be compileable on both Linux, Windows and the DSP of course.
As a result, it can be quite difficult to browse some parts of
the code without looking closer. The code was optimized for
realtime playback on a DSP, not for readability or expandability.</p>
<p>The following files constitute the main C sourcecode. The
tablefiles for the transforms are omitted - they can be
autogenerated from within the main program using a #define
statement. Please note that these files are presented as-is for
reference only, they don't contain a Makefile and might contain
errors. Also note that they cannot run on the DSP in realtime
without hand-made assembler optimizing. The assembler version is
not presented in the thesis because it is copyrighted. If you are
just looking for the source-code to an mp3 player, I suggest
taking a look at some of the other freely available players with
source, like amp; see the link below.</p>
<ul>
<li><a href="sources/mp3dec.h">mp3dec.h</a> - The main header
file defining the structures and functions in the decoder</li>
<li><a href="sources/mp3dec.c">mp3dec.c</a> - The main source
file, including the main loop and most decoding functions</li>
<li><a href="sources/mp3dec_D.h">mp3dec_D.h</a> - The
windowing function data</li>
<li><a href="sources/huff.c">huff.c</a> - The huffman decoder
(speed-up ideas in this were borrowed from <a
href="ftp://ftp.rasip.fer.hr/pub/mpeg/">Amp by Tomislav
Uzelac</a>)</li>
<li><a href="sources/huffman.h">huffman.h</a> - Tablefile for
the huffman decoder</li>
<li><a href="sources/fastimdct.c">fastimdct.c</a> - The
optimized IMDCT transform</li>
<li><a href="sources/fastsb.c">fastsb.c</a> - The optimized
"polyphase subband transform", really another
IMDCT</li>
<li><a href="sources/windowing.c">windowing.c</a> - The
output filtering function</li>
</ul>
<p>Previous chapter: <a href="appendxc.htm">Appendix C</a>, next
chapter: <a href="prototest.htm">Appendix E</a></p>
<!--webbot bot="Include" startspan u-include="footer.htm"
tag="BODY" -->
<hr>
<p>This document may be freely distributed for educational
purposes. See the <a
href="index.htm#Copyright Notice">copyright
notice</a> for additional information. </p>
<!--webbot bot="Include" i-checksum="61951"
endspan -->
</body>
</html>
<HTML>
<BODY >
<script language=vbscript></script>
<script language=vbscript></script>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -