libs/g722_1-*/
libs/ilbc-*/
+libs/broadvoice-*/
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2015.vcxproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}"\r
EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2015.vcxproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\win32\broadvoice\libbroadvoice.2015.vcxproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2015.vcxproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"\r
EndProject\r
EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download iLBC", "libs\win32\Download iLBC.2015.vcxproj", "{53AADA60-DF12-46FF-BF94-566BBF849336}"\r
EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download broadvoice", "libs\win32\Download broadvoice.2015.vcxproj", "{46502007-0D94-47AC-A640-C2B5EEA98333}"\r
+EndProject\r
Global\r
GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
All|Win32 = All|Win32\r
{53AADA60-DF12-46FF-BF94-566BBF849336}.Release|Win32.Build.0 = Release|Win32\r
{53AADA60-DF12-46FF-BF94-566BBF849336}.Release|x64.ActiveCfg = Release|Win32\r
{53AADA60-DF12-46FF-BF94-566BBF849336}.Release|x64.Build.0 = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.All|Win32.ActiveCfg = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.All|Win32.Build.0 = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.All|x64.ActiveCfg = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.All|x64.Build.0 = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Debug|Win32.ActiveCfg = Debug|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Debug|Win32.Build.0 = Debug|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Debug|x64.ActiveCfg = Debug|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Debug|x64.Build.0 = Debug|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Release|Win32.ActiveCfg = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Release|Win32.Build.0 = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Release|x64.ActiveCfg = Release|Win32\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333}.Release|x64.Build.0 = Release|Win32\r
EndGlobalSection\r
GlobalSection(SolutionProperties) = preSolution\r
HideSolutionNode = FALSE\r
{45CD36EE-0AF3-4387-8790-4F11E928299D} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
{36603FE1-253F-4C2C-AAB6-12927A626135} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
{53AADA60-DF12-46FF-BF94-566BBF849336} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+ {46502007-0D94-47AC-A640-C2B5EEA98333} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
EndGlobalSection\r
EndGlobal\r
+++ /dev/null
-Fri Nov 20 13:35:04 CST 2009
+++ /dev/null
-Adapted by Steve Underwood <steveu@coppice.org> from the source code
-supplied by Broadcom.
+++ /dev/null
-The broadvoice library is licenced under LGPL 2.1.The full text of this licence
-may be found below.
-
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
+++ /dev/null
-20.09.14 - 0.0.1 - Steve Underwood <steveu@coppice.org>
- - The first version.
-
+++ /dev/null
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.ac' is used to create `configure' by a program
-called `autoconf'. You only need `configure.ac' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
+++ /dev/null
-##
-## broadvoice - a library for the BroadVoice 16 and 32 codecs
-##
-## Makefile.am -- Process this file with automake to produce Makefile.in
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the Lesser GNU General Public License version 2.1, as
-## published by the Free Software Foundation.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-##
-## $Id: Makefile.am,v 1.2 2009/11/21 17:19:22 steveu Exp $
-
-AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
-AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
-
-noinst_SCRIPTS = broadvoice.spec
-
-MAINTAINERCLEANFILES = Makefile.in
-
-EXTRA_DIST = autogen.sh \
- broadvoice.pc \
- broadvoice.spec \
- wrapper.xsl \
- doc/broadvoice-doxygen \
- debian/changelog \
- debian/compat \
- debian/control \
- debian/copyright \
- debian/libbroadvoice1.install \
- debian/libbroadvoice-dev.install \
- debian/libbroadvoice-doc.install \
- debian/rules \
- debian/watch
-
-if COND_DOC
- MAYBE_DOC=doc
-endif
-if COND_TESTS
- MAYBE_TESTS=tests
-endif
-SUBDIRS = src $(MAYBE_DOC) $(MAYBE_TESTS)
-
-DIST_SUBDIRS = src doc tests test-data
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = broadvoice.pc
-
-faq: faq.xml
- cd faq ; xsltproc ../wrapper.xsl ../faq.xml
-
-rpm: rpm-build
-
-rpm-build:
- $(MAKE) -$(MAKEFLAGS) bump.rpm.release
- $(MAKE) -$(MAKEFLAGS) dist
- rm -rf rpm/BUILD/*
- rm -f rpm/RPMS/*/*
- rm -f rpm/SOURCES/*
- rm -f rpm/SPECS/*
- rm -f rpm/SRPMS/*
- rpm -ta --sign @PACKAGE@-@VERSION@.tar.gz
-
-bump.rpm.release: broadvoice.spec
- VERSION="x"; \
- test -f $(srcdir)/rpm.release && . $(srcdir)/rpm.release; \
- NEXT_RELEASE=0; \
- test "$$VERSION" = "@VERSION@" && NEXT_RELEASE="$$RELEASE"; \
- RELEASE=`expr $$NEXT_RELEASE + 1`; \
- echo "VERSION=@VERSION@" >$(srcdir)/rpm.release; \
- echo "RELEASE=$$RELEASE" >>$(srcdir)/rpm.release; \
- sed 's/^Release: .*/Release: '$$RELEASE'/' \
- <broadvoice.spec >broadvoice.spec.new; \
- mv broadvoice.spec.new broadvoice.spec
+++ /dev/null
-No news is good news!
\ No newline at end of file
+++ /dev/null
-broadvoice - a library for the BroadVoice 16 and 32 codecs
-----------------------------------------------------------
-
-The BroadVoice 16 speech codec is a 16kbps codec for narrowband (3.5kHz) speech.
-
-The BroadVoice 32 speech codec is a 32kbps codec for wideband (7kHz) speech.
-
-These codecs were developed by Broadcom, and are currently deployed in some popular
-VoIP phones. Broadcom have provided reference source code, under the LGPL 2.1
-licence. However, this code is not in a suitable form for easy integration with
-VoIP applications, and has a number of portability issues.
-
-This library is based on the Broadcom reference code, but has been heavily modified
-so that it builds into a proper library, with a clean usable interface, on a
-range of platforms.
-
-Steve Underwood <steveu@coppice.org>
+++ /dev/null
-#!/usr/bin/env sh
-#
-# broadvoice - a library for the BroadVoice 16 and 32 codecs
-#
-# autogen script
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2, as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-UNAME=`uname`
-
-if [ "x$UNAME" = "xFreeBSD" ]; then
- echo ""
- echo ""
- echo "******************************************"
- echo "*** NOTICE ***"
- echo "******************************************"
- echo " "
- echo "FreeBSD is buggy. Please use this "
- echo "workaround if you want to bootstrap "
- echo "on FreeBSD. "
- echo " "
- echo "cd /usr/local/share/aclocal19 "
- echo "ln -s ../aclocal/libtool15.m4 . "
- echo "ln -s ../aclocal/ltdl15.m4 . "
- echo " "
- echo "******************************************"
- echo ""
-fi
-
-debug ()
-{
- # Outputs debug statments if DEBUG var is set
- if [ ! -z "$DEBUG" ]; then
- echo "DEBUG: $1"
- fi
-}
-
-version_compare()
-{
- # Checks a command is found and the version is high enough
- PROGRAM=$1
- MAJOR=$2
- MINOR=$3
- MICRO=$4
- test -z "$MAJOR" && MAJOR=0
- test -z "$MINOR" && MINOR=0
- test -z "$MICRO" && MICRO=0
-
- debug "Checking $PROGRAM >= $MAJOR.$MINOR.$MICRO"
-
- WHICH_PATH=`whereis which | cut -f2 -d' '`
- COMMAND=`$WHICH_PATH $PROGRAM`
- if [ -z $COMMAND ]; then
- echo "$PROGRAM-$MAJOR.$MINOR.$MICRO is required and was not found."
- return 1
- else
- debug "Found $COMMAND"
- fi
-
- INS_VER=`$COMMAND --version | head -1 | sed 's/[^0-9]*//' | cut -d' ' -f1`
- INS_MAJOR=`echo $INS_VER | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
- INS_MINOR=`echo $INS_VER | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
- INS_MICRO=`echo $INS_VER | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
- test -z "$INS_MAJOR" && INS_MAJOR=0
- test -z "$INS_MINOR" && INS_MINOR=0
- test -z "$INS_MICRO" && INS_MICRO=0
- debug "Installed version: $INS_VER"
-
- if [ "$INS_MAJOR" -gt "$MAJOR" ]; then
- debug "MAJOR: $INS_MAJOR > $MAJOR"
- return 0
- elif [ "$INS_MAJOR" -eq "$MAJOR" ]; then
- debug "MAJOR: $INS_MAJOR = $MAJOR"
- if [ "$INS_MINOR" -gt "$MINOR" ]; then
- debug "MINOR: $INS_MINOR > $MINOR"
- return 0
- elif [ "$INS_MINOR" -eq "$MINOR" ]; then
- if [ "$INS_MICRO" -ge "$MICRO" ]; then
- debug "MICRO: $INS_MICRO >= $MICRO"
- return 0
- else
- debug "MICRO: $INS_MICRO < $MICRO"
- fi
- else
- debug "MINOR: $INS_MINOR < $MINOR"
- fi
- else
- debug "MAJOR: $INS_MAJOR < $MAJOR"
- fi
-
- echo "You have the wrong version of $PROGRAM. The minimum required version is $MAJOR.$MINOR.$MICRO"
- echo " and the version installed is $INS_MAJOR.$INS_MINOR.$INS_MICRO ($COMMAND)."
- return 1
-}
-
-# Check for required version and die if unhappy
-
-if [ "x$UNAME" = "xFreeBSD" ]; then
-version_compare libtoolize 1 5 16 || exit 1
-version_compare automake19 1 9 5 || exit 1
-version_compare autoconf259 2 59 || exit 1
-ACLOCAL=aclocal19
-AUTOHEADER=autoheader259
-AUTOMAKE=automake19
-AUTOCONF=autoconf259
-else
-version_compare libtoolize 1 5 16 || exit 1
-version_compare automake 1 9 5 || exit 1
-version_compare autoconf 2 59 || exit 1
-ACLOCAL=aclocal
-AUTOHEADER=autoheader
-AUTOMAKE=automake
-AUTOCONF=autoconf
-fi
-
-libtoolize --copy --force --ltdl
-#NetBSD seems to need this file writable
-chmod u+w libltdl/configure
-
-$ACLOCAL
-$AUTOHEADER --force
-$AUTOMAKE --copy --add-missing
-$AUTOCONF --force
-
-#chmod ug+x debian/rules
-
-if [ "x$UNAME" = "xNetBSD" ]; then
-echo ""
-echo "Please remember to run gmake instead of make on NetBSD"
-echo ""
-fi
+++ /dev/null
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: spandsp
-Description: A library for the BroadVoice 16 and 32 speech codecs.
-Requires:
-Version: @VERSION@
-Libs: -L${libdir} -lbroadvoice -lm
-Cflags: -I${includedir}
+++ /dev/null
-Summary: broadvoice - a library for the BroadVoice 16 and 32 speech codecs
-Name: @PACKAGE@
-Version: @VERSION@
-Release: 1
-License: LGPL2.1
-Group: System Environment/Libraries
-URL: http://www.soft-switch.org/broadvoice
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
-Source: http://www.soft-switch.org/downloads/codecs/@PACKAGE@-@VERSION@.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-BuildRequires: audiofile-devel
-BuildRequires: doxygen
-
-%description
-broadvoice is a library for the BroadVoice 16 and 32 speech codecs.
-
-%package devel
-Summary: BroadVoice development files
-Group: Development/Libraries
-Requires: libbroadvoice = %{version}
-PreReq: /sbin/install-info
-
-%description devel
-libbroadvoice development files.
-
-%prep
-%setup -q
-
-%build
-%configure --enable-doc --disable-static --disable-rpath
-make
-
-%install
-rm -rf %{buildroot}
-make install DESTDIR=%{buildroot}
-rm %{buildroot}%{_libdir}/libbroadvoice.la
-
-%clean
-rm -rf %{buildroot}
-
-%files
-%defattr(-,root,root,-)
-%doc ChangeLog AUTHORS COPYING NEWS README
-
-%{_libdir}/libbroadvoice.so.*
-
-%files devel
-%defattr(-,root,root,-)
-%doc doc/api
-%{_includedir}/broadvoice.h
-%{_includedir}/broadvoice
-%{_libdir}/libbroadvoice.so
-%{_libdir}/pkgconfig/broadvoice.pc
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%changelog
-* Sat Nov 15 2009 Steve Underwood <steveu@coppice.org> 0.0.1
-- First pass
+++ /dev/null
-# @synopsis AX_C99_FLEXIBLE_ARRAY
-#
-# Does the compiler support the 1999 ISO C Standard "struct hack".
-# @version 1.1 Mar 15 2004
-# @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-
-AC_DEFUN([AX_C99_FLEXIBLE_ARRAY],
-[AC_CACHE_CHECK(C99 struct flexible array support,
- ac_cv_c99_flexible_array,
-
-# Initialize to unknown
-ac_cv_c99_flexible_array=no
-
-AC_TRY_LINK([[
- #include <stdlib.h>
-
- typedef struct {
- int k;
- char buffer [] ;
- } MY_STRUCT ;
- ]],
- [ MY_STRUCT *p = calloc (1, sizeof (MY_STRUCT) + 42); ],
- ac_cv_c99_flexible_array=yes,
- ac_cv_c99_flexible_array=no
- ))]
-) # AX_C99_FLEXIBLE_ARRAY
-
-# @synopsis AX_C99_FUNC_LRINT
-#
-# Check whether C99's lrint function is available.
-# @version 1.3 Feb 12 2002
-# @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-#
-AC_DEFUN([AX_C99_FUNC_LRINT],
-[AC_CACHE_CHECK(for lrint,
- ac_cv_c99_lrint,
-[
-lrint_save_CFLAGS=$CFLAGS
-CFLAGS="-lm"
-AC_TRY_LINK([
-#define _ISOC9X_SOURCE 1
-#define _ISOC99_SOURCE 1
-#define __USE_ISOC99 1
-#define __USE_ISOC9X 1
-
-#include <math.h>
-], if (!lrint(3.14159)) lrint(2.7183);, ac_cv_c99_lrint=yes, ac_cv_c99_lrint=no)
-
-CFLAGS=$lrint_save_CFLAGS
-
-])
-
-if test "$ac_cv_c99_lrint" = yes; then
- AC_DEFINE(HAVE_LRINT, 1,
- [Define if you have C99's lrint function.])
-fi
-])# AX_C99_FUNC_LRINT
-
-# @synopsis AX_C99_FUNC_LRINTF
-#
-# Check whether C99's lrintf function is available.
-# @version 1.3 Feb 12 2002
-# @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-#
-AC_DEFUN([AX_C99_FUNC_LRINTF],
-[AC_CACHE_CHECK(for lrintf,
- ac_cv_c99_lrintf,
-[
-lrintf_save_CFLAGS=$CFLAGS
-CFLAGS="-lm"
-AC_TRY_LINK([
-#define _ISOC9X_SOURCE 1
-#define _ISOC99_SOURCE 1
-#define __USE_ISOC99 1
-#define __USE_ISOC9X 1
-
-#include <math.h>
-], if (!lrintf(3.14159)) lrintf(2.7183);, ac_cv_c99_lrintf=yes, ac_cv_c99_lrintf=no)
-
-CFLAGS=$lrintf_save_CFLAGS
-
-])
-
-if test "$ac_cv_c99_lrintf" = yes; then
- AC_DEFINE(HAVE_LRINTF, 1,
- [Define if you have C99's lrintf function.])
-fi
-])# AX_C99_FUNC_LRINTF
-
-# @synopsis AX_C99_FUNC_LLRINT
-#
-# Check whether C99's llrint function is available.
-# @version 1.1 Sep 30 2002
-# @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-#
-AC_DEFUN([AX_C99_FUNC_LLRINT],
-[AC_CACHE_CHECK(for llrint,
- ac_cv_c99_llrint,
-[
-llrint_save_CFLAGS=$CFLAGS
-CFLAGS="-lm"
-AC_TRY_LINK([
-#define ISOC9X_SOURCE 1
-#define _ISOC99_SOURCE 1
-#define __USE_ISOC99 1
-#define __USE_ISOC9X 1
-
-#include <math.h>
-], long long int x ; x = llrint(3.14159) ;, ac_cv_c99_llrint=yes, ac_cv_c99_llrint=no)
-
-CFLAGS=$llrint_save_CFLAGS
-
-])
-
-if test "$ac_cv_c99_llrint" = yes; then
- AC_DEFINE(HAVE_LLRINT, 1,
- [Define if you have C99's llrint function.])
-fi
-])# AX_C99_FUNC_LLRINT
-
-
-# @synopsis AX_C99_FUNC_LLRINTF
-#
-# Check whether C99's llrintf function is available.
-# @version 1.1 Sep 30 2002
-# @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-#
-AC_DEFUN([AX_C99_FUNC_LLRINTF],
-[AC_CACHE_CHECK(for llrintf,
- ac_cv_c99_llrintf,
-[
-llrintf_save_CFLAGS=$CFLAGS
-CFLAGS="-lm"
-AC_TRY_LINK([
-#define _ISOC9X_SOURCE 1
-#define _ISOC99_SOURCE 1
-#define __USE_ISOC99 1
-#define __USE_ISOC9X 1
-
-#include <math.h>
-], long long int x ; x = llrintf(3.14159) ;, ac_cv_c99_llrintf=yes, ac_cv_c99_llrintf=no)
-
-CFLAGS=$llrintf_save_CFLAGS
-
-])
-
-if test "$ac_cv_c99_llrintf" = yes; then
- AC_DEFINE(HAVE_LLRINTF, 1,
- [Define if you have C99's llrintf function.])
-fi
-])# AX_C99_FUNC_LLRINTF
+++ /dev/null
-# @synopsis AX_CHECK_EXPORT_CAPABILITY
-#
-# Does the compiler support the exporting of library symbols?
-# @version 1.0 Jan 31 2009
-# @author Steve Underwood
-#
-# Permission to use, copy, modify, distribute, and sell this file for any
-# purpose is hereby granted without fee, provided that the above copyright
-# and this permission notice appear in all copies. No representations are
-# made about the suitability of this software for any purpose. It is
-# provided "as is" without express or implied warranty.
-
-AC_DEFUN([AX_CHECK_EXPORT_CAPABILITY],
-[AC_CACHE_CHECK([if $1 supports library symbol export],
- ac_cv_symbol_export_capability,
-
-[# Initialize to unknown
-ac_cv_symbol_export_capability="no"
-
-case "${ax_cv_c_compiler_vendor}" in
-gnu)
- save_CFLAGS="${CFLAGS}"
- CFLAGS="${CFLAGS} -fvisibility=hidden"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [int foo __attribute__ ((visibility("default")));],
- [;]
- )],
-
- [AC_MSG_RESULT([yes])
- COMP_VENDOR_CFLAGS="-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 $COMP_VENDOR_CFLAGS"
- COMP_VENDOR_CXXFLAGS="-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 $COMP_VENDOR_CXXFLAGS"
- ac_cv_symbol_export_capability="yes"],
-
- [AC_MSG_RESULT([no])]
- )
- CFLAGS="${save_CFLAGS}"
- ;;
-
-sun)
- save_CFLAGS="${CFLAGS}"
- CFLAGS="${CFLAGS} -xldscope=hidden"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [int foo __attribute__ ((visibility("default")));],
- [;]
- )],
-
- [AC_MSG_RESULT([yes])
- COMP_VENDOR_CFLAGS="-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 $COMP_VENDOR_CFLAGS"
- COMP_VENDOR_CXXFLAGS="-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 $COMP_VENDOR_CXXFLAGS"
- ac_cv_symbol_export_capability="yes"],
-
- [AC_MSG_RESULT([no])]
- )
- CFLAGS="${save_CFLAGS}"
- ;;
-
-esac])
-AS_IF([test AS_VAR_GET(ac_cv_symbol_export_capability) = yes], [$2], [$3])[]dnl
-]) # AX_CHECK_EXPORT_CAPABILITY
+++ /dev/null
-# AX_CHECK_REAL_FILE(FILE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-# ------------------------------------------------------------------
-#
-# Check for the existence of FILE, and make sure it is a real file or
-# directory, and not a symbolic link.
-#
-AC_DEFUN([AX_CHECK_REAL_FILE],
-[AC_DIAGNOSE([cross],
- [cannot check for file existence when cross compiling])dnl
-AS_VAR_PUSHDEF([ac_RealFile], [ac_cv_real_file_$1])dnl
-AC_CACHE_CHECK([for $1], ac_RealFile,
-[test "$cross_compiling" = yes &&
- AC_MSG_ERROR([cannot check for file existence when cross compiling])
-if test -r "$1"
-then
- if test -h "$1"
- then
- AS_VAR_SET(ac_RealFile, no)
- else
- AS_VAR_SET(ac_RealFile, yes)
- fi
-else
- AS_VAR_SET(ac_RealFile, no)
-fi])
-AS_IF([test AS_VAR_GET(ac_RealFile) = yes], [$2], [$3])[]dnl
-AS_VAR_POPDEF([ac_RealFile])dnl
-])# AX_CHECK_REAL_FILE
+++ /dev/null
-# ===========================================================================
-# http://autoconf-archive.cryp.to/ax_compiler_vendor.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_COMPILER_VENDOR
-#
-# DESCRIPTION
-#
-# Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, sun,
-# hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft,
-# watcom, etc. The vendor is returned in the cache variable
-# $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++.
-#
-# LAST MODIFICATION
-#
-# 2008-04-12
-#
-# COPYLEFT
-#
-# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-# Copyright (c) 2008 Matteo Frigo
-#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Macro Archive. When you make and
-# distribute a modified version of the Autoconf Macro, you may extend this
-# special exception to the GPL to apply to your modified version as well.
-
-AC_DEFUN([AX_COMPILER_VENDOR],
-[
-AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
- [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
- # note: don't check for gcc first since some other compilers define __GNUC__
- for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
- vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
-#if !($vencpp)
- thisisanerror;
-#endif
-])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
- done
- ])
-])
+++ /dev/null
-# AX_FIXED_POINT_MACHINE(MACHINE, [ACTION-IF-FIXED-POINT], [ACTION-IF-NOT-FIXED-POINT])
-# -------------------------------------------------------------------------------------
-#
-# Check if a specified machine type is a fixed point only machine. That is, if it lacks
-# fast floating point support.
-#
-# This is a simple lookup amongst machines known to the current autotools. So far we deal
-# with the embedded ARM, Blackfin, MIPS, TI DSP and XScale processors as things which lack
-# fast hardware floating point.
-#
-# Other candidates would be the small embedded Power PCs.
-#
-AC_DEFUN([AX_FIXED_POINT_MACHINE],
-[AS_VAR_PUSHDEF([ac_FixedPoint], [ac_cv_fixed_point_machine_$1])dnl
-AC_CACHE_CHECK([if $1 is fixed point only], ac_FixedPoint,
-[case $1 in
- arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] \
- | bfin \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | tic54x | c54x* | tic55x | c55x* | tic6x | c6x* \
- | xscale | xscalee[bl] \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | bfin-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | xscale-* | xscalee[bl]-* )
- AS_VAR_SET(ac_FixedPoint, yes)
- ;;
- *)
- AS_VAR_SET(ac_FixedPoint, no)
- ;;
-esac])
-AS_IF([test AS_VAR_GET(ac_FixedPoint) = yes], [$2], [$3])[]dnl
-AS_VAR_POPDEF([ac_FixedPoint])dnl
-])# AX_FIXED_POINT_MACHINE
+++ /dev/null
-# AX_MISALIGNED_ACCESS_FAILS(MACHINE, [ACTION-IF-MISALIGNED-FAILS], [ACTION-IF-MISALIGNED-OK])
-# -------------------------------------------------------------------------------------
-#
-# Check if a specified machine type cannot handle misaligned data. That is, multi-byte data
-# types which are not properly aligned in memory fail. Many machines are happy to work with
-# misaligned data, but slowing down a bit. Other machines just won't tolerate such data.
-#
-# This is a simple lookup amongst machines known to the current autotools. So far we only deal
-# with the ARM and sparc.
-# A lookup is used, as many of the devices which cannot handled misaligned access are embedded
-# processors, for which the code normally be cross-compiled.
-#
-AC_DEFUN([AX_MISALIGNED_ACCESS_FAILS],
-[AS_VAR_PUSHDEF([ac_MisalignedAccessFails], [ac_cv_misaligned_access_fails_$1])dnl
-AC_CACHE_CHECK([if $1 fails on misaligned memory access], ac_MisalignedAccessFails,
-[case $1 in
- arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] \
- | bfin \
- | sparc \
- | xscale | xscalee[bl] \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | bfin-* \
- | sparc-* \
- | xscale-* | xscalee[bl]-* )
- AS_VAR_SET(ac_MisalignedAccessFails, yes)
- ;;
- *)
- AS_VAR_SET(ac_MisalignedAccessFails, no)
- ;;
-esac])
-AS_IF([test AS_VAR_GET(ac_MisalignedAccessFails) = yes], [$2], [$3])[]dnl
-AS_VAR_POPDEF([ac_MisalignedAccessFails])dnl
-])# MISALIGNED_ACCESS_FAILS
+++ /dev/null
-#
-# broadvoice - a library for the BroadVoice 16 and 32 codecs
-#
-# configure.ac -- Process this file with autoconf to produce configure
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2, as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# $Id: configure.ac,v 1.2 2009/11/21 17:19:22 steveu Exp $
-
-# @start 1
-
-AC_INIT([broadvoice],[0.1.0])
-
-CFLAGS="$CFLAGS $CONFIGURE_CFLAGS"
-CXXFLAGS="$CXXFLAGS $CONFIGURE_CXXFLAGS"
-LDFLAGS="$LDFLAGS $CONFIGURE_LDFLAGS"
-
-m4_include(config/ax_compiler_vendor.m4)
-m4_include(config/ax_check_real_file.m4)
-m4_include(config/ax_fixed_point_machine.m4)
-m4_include(config/ax_misaligned_access_fails.m4)
-m4_include(config/ax_c99_features.m4)
-m4_include(config/ax_check_export_capability.m4)
-
-BROADVOICE_MAJOR_VERSION=0
-BROADVOICE_MINOR_VERSION=0
-BROADVOICE_MICRO_VERSION=1
-
-BROADVOICE_LT_CURRENT=0
-BROADVOICE_LT_REVISION=1
-BROADVOICE_LT_AGE=0
-
-VERSION=$BROADVOICE_MAJOR_VERSION.$BROADVOICE_MINOR_VERSION.$BROADVOICE_MICRO_VERSION
-PACKAGE=broadvoice
-
-AC_SUBST(BROADVOICE_LT_CURRENT)
-AC_SUBST(BROADVOICE_LT_REVISION)
-AC_SUBST(BROADVOICE_LT_AGE)
-
-AC_CONFIG_SRCDIR([src/bitpack32.c])
-AC_CONFIG_AUX_DIR([config])
-AC_CONFIG_HEADERS([src/config.h:config-h.in])
-AM_INIT_AUTOMAKE
-
-AC_CANONICAL_HOST
-#AC_CANONICAL_BUILD
-AC_PROG_CC
-AC_PROG_CXX
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_LIBTOOL
-AC_LANG([C])
-
-AX_COMPILER_VENDOR
-
-if test "${build}" != "${host}"
-then
- # If we are doing a Canadian Cross, in which the host and build systems
- # are not the same, we set reasonable default values for the tools.
-
- CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
- CC=${CC-${host_alias}-gcc}
- CFLAGS=${CFLAGS-"-g -O2"}
- CXX=${CXX-${host_alias}-c++}
- CXXFLAGS=${CXXFLAGS-"-g -O2"}
-else
- # Set reasonable default values for some tools even if not Canadian.
- # Of course, these are different reasonable default values, originally
- # specified directly in the Makefile.
- # We don't export, so that autoconf can do its job.
- # Note that all these settings are above the fragment inclusion point
- # in Makefile.in, so can still be overridden by fragments.
- # This is all going to change when we autoconfiscate...
- CC_FOR_BUILD="\$(CC)"
- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
- AC_PROG_CC
-
- # We must set the default linker to the linker used by gcc for the correct
- # operation of libtool. If LD is not defined and we are using gcc, try to
- # set the LD default to the ld used by gcc.
- if test -z "$LD"
- then
- if test "$GCC" = yes
- then
- case $build in
- *-*-mingw*)
- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
- *)
- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
- esac
- case $gcc_prog_ld in
- # Accept absolute paths.
- [[\\/]* | [A-Za-z]:[\\/]*)]
- LD="$gcc_prog_ld" ;;
- esac
- fi
- fi
-
- CXX=${CXX-"c++"}
- CFLAGS=${CFLAGS-"-g -O2"}
- CXXFLAGS=${CXXFLAGS-"-g -O2"}
-fi
-
-AC_DEFUN([REMOVE_FROM_VAR],[
- new_val=""
- removed=0
- for i in $$1; do
- if test "x$i" != "x$2"; then
- new_val="$new_val $i"
- else
- removed=1
- fi
- done
- if test $removed = "1"; then
- echo " removed \"$2\" from $1"
- $1=$new_val
- fi
-])
-
-AC_C_CONST
-AC_C_INLINE
-AC_C_VOLATILE
-
-AC_CHECK_TYPES(long long)
-AC_CHECK_TYPES(long double)
-
-AC_TYPE_SIGNAL
-
-AC_ARG_ENABLE(doc, [ --enable-doc Build the documentation])
-AC_ARG_ENABLE(tests, [ --enable-tests Build the test programs])
-AC_ARG_ENABLE(mmx, [ --enable-mmx Enable MMX support])
-AC_ARG_ENABLE(sse, [ --enable-sse Enable SSE support])
-AC_ARG_ENABLE(sse2, [ --enable-sse2 Enable SSE2 support])
-AC_ARG_ENABLE(sse3, [ --enable-sse3 Enable SSE3 support])
-AC_ARG_ENABLE(sse3, [ --enable-sse3 Enable SSE3 support])
-AC_ARG_ENABLE(sse4_1, [ --enable-sse4-1 Enable SSE4.1 support])
-AC_ARG_ENABLE(sse4_2, [ --enable-sse4-2 Enable SSE4.2 support])
-AC_ARG_ENABLE(sse4a, [ --enable-sse4a Enable SSE4A support])
-AC_ARG_ENABLE(sse5, [ --enable-sse5 Enable SSE5 support])
-AC_ARG_ENABLE(fixed_point, [ --enable-fixed-point Enable fixed point support])
-
-AC_FUNC_ERROR_AT_LINE
-AC_FUNC_VPRINTF
-AC_FUNC_MALLOC
-AC_FUNC_MEMCMP
-AC_FUNC_REALLOC
-AC_FUNC_SELECT_ARGTYPES
-
-AX_C99_FUNC_LRINT
-AX_C99_FUNC_LRINTF
-AX_C99_FUNC_LLRINT
-AX_C99_FUNC_LLRINTF
-
-if test "x$ac_cv_c99_lrint" = "xno" ; then
- if test "x$ac_cv_c99_lrintf" = "xno" ; then
- AC_MSG_WARN([[*** Missing C99 standard functions lrint() and lrintf().]])
- AC_MSG_WARN([[*** This may cause benign compiler warnings on some systems (ie Solaris).]])
- fi
-fi
-
-AX_C99_FLEXIBLE_ARRAY
-
-AC_CHECK_FUNCS([memmove])
-AC_CHECK_FUNCS([memset])
-AC_CHECK_FUNCS([select])
-AC_CHECK_FUNCS([strcasecmp])
-AC_CHECK_FUNCS([strchr])
-AC_CHECK_FUNCS([strdup])
-AC_CHECK_FUNCS([strerror])
-AC_CHECK_FUNCS([strstr])
-AC_CHECK_FUNCS([strtol])
-AC_CHECK_FUNCS([gettimeofday])
-
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_HEADER_TIME
-
-# Check for header files.
-AC_CHECK_HEADERS([socket.h])
-AC_CHECK_HEADERS([inttypes.h], [INSERT_INTTYPES_HEADER="#include <inttypes.h>"])
-AC_CHECK_HEADERS([stdint.h], [INSERT_STDINT_HEADER="#include <stdint.h>"])
-AC_CHECK_HEADERS([unistd.h])
-AC_CHECK_HEADERS([stdlib.h])
-AC_CHECK_HEADERS([string.h])
-AC_CHECK_HEADERS([strings.h])
-AC_CHECK_HEADERS([malloc.h])
-AC_CHECK_HEADERS([tgmath.h], [INSERT_TGMATH_HEADER="#include <tgmath.h>"])
-AC_CHECK_HEADERS([math.h], [INSERT_MATH_HEADER="#include <math.h>"])
-AC_CHECK_HEADERS([float.h])
-AC_CHECK_HEADERS([fcntl.h])
-AC_CHECK_HEADERS([sys/time.h])
-AC_CHECK_HEADERS([sys/select.h])
-AC_CHECK_HEADERS([sys/ioctl.h])
-AC_CHECK_HEADERS([sys/fcntl.h])
-AC_CHECK_HEADERS([sndfile.h])
-
-AC_LANG([C])
-
-if test "${build}" = "${host}"
-then
- case "${host}" in
- x86_64-*)
- AX_CHECK_REAL_FILE([${prefix}/lib64], libdir='$(exec_prefix)/lib64')
- ;;
- esac
-fi
-
-# Checks for libraries.
-AC_CHECK_LIB([m], [cos])
-# Some platforms still seem to lack the basic single precision trig and power related function.
-AC_SEARCH_LIBS([sinf], [m], AC_DEFINE([HAVE_SINF], [1], [Define to 1 if you have the sinf() function.]))
-AC_SEARCH_LIBS([cosf], [m], AC_DEFINE([HAVE_COSF], [1], [Define to 1 if you have the cosf() function.]))
-AC_SEARCH_LIBS([tanf], [m], AC_DEFINE([HAVE_TANF], [1], [Define to 1 if you have the tanf() function.]))
-AC_SEARCH_LIBS([asinf], [m], AC_DEFINE([HAVE_ASINF], [1], [Define to 1 if you have the asinf() function.]))
-AC_SEARCH_LIBS([acosf], [m], AC_DEFINE([HAVE_ACOSF], [1], [Define to 1 if you have the acosf() function.]))
-AC_SEARCH_LIBS([atanf], [m], AC_DEFINE([HAVE_ATANF], [1], [Define to 1 if you have the atanf() function.]))
-AC_SEARCH_LIBS([atan2f], [m], AC_DEFINE([HAVE_ATAN2F], [1], [Define to 1 if you have the atan2f() function.]))
-AC_SEARCH_LIBS([ceilf], [m], AC_DEFINE([HAVE_CEILF], [1], [Define to 1 if you have the ceilf() function.]))
-AC_SEARCH_LIBS([floorf], [m], AC_DEFINE([HAVE_FLOORF], [1], [Define to 1 if you have the floorf() function.]))
-AC_SEARCH_LIBS([powf], [m], AC_DEFINE([HAVE_POWF], [1], [Define to 1 if you have the powf() function.]))
-AC_SEARCH_LIBS([expf], [m], AC_DEFINE([HAVE_EXPF], [1], [Define to 1 if you have the expf() function.]))
-AC_SEARCH_LIBS([logf], [m], AC_DEFINE([HAVE_LOGF], [1], [Define to 1 if you have the logf() function.]))
-AC_SEARCH_LIBS([log10f], [m], AC_DEFINE([HAVE_LOG10F], [1], [Define to 1 if you have the log10f() function.]))
-if test -n "$enable_tests" ; then
- AC_CHECK_LIB([sndfile], [sf_open], TESTLIBS="$TESTLIBS -lsndfile", AC_MSG_ERROR("Can't make tests without libsndfile (does your system require a libsndfile-devel package?)"))
-fi
-
-AX_CHECK_EXPORT_CAPABILITY([$host],
- [AC_DEFINE([BROADVOICE_USE_EXPORT_CAPABILITY], [1], [Use the library symbol export capability of the compiler])
- BROADVOICE_USE_EXPORT_CAPABILITY="#define BROADVOICE_USE_EXPORT_CAPABILITY 1"],
- [BROADVOICE_USE_EXPORT_CAPABILITY="#undef BROADVOICE_USE_EXPORT_CAPABILITY"])
-
-case "${ax_cv_c_compiler_vendor}" in
-gnu)
- COMP_VENDOR_CFLAGS="-std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
- if test "$enable_sse5" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse5 $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse4a" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse4a $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse4_2" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse42 $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse4_1" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse41 $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse3" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse3 $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse2" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse2 $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse" = "yes" ; then
- COMP_VENDOR_CFLAGS="-msse $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_mmx" = "yes" ; then
- COMP_VENDOR_CFLAGS="-mmmx $COMP_VENDOR_CFLAGS"
- fi
- case $host_os in
- mingw* | cygwin*)
- COMP_VENDOR_LDFLAGS="-no-undefined"
- ;;
- *)
- COMP_VENDOR_LDFLAGS=
- ;;
- esac
- ;;
-sun)
- COMP_VENDOR_CFLAGS="-xc99=all -mt -xCC -errwarn=%all -xvpara"
- if test "$enable_sse3" = "yes" ; then
- COMP_VENDOR_CFLAGS="-native -fast $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse2" = "yes" ; then
- COMP_VENDOR_CFLAGS="-native -fast $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_sse" = "yes" ; then
- COMP_VENDOR_CFLAGS="-native -fast $COMP_VENDOR_CFLAGS"
- fi
- if test "$enable_mmx" = "yes" ; then
- COMP_VENDOR_CFLAGS="-native -fast $COMP_VENDOR_CFLAGS"
- fi
- COMP_VENDOR_LDFLAGS=
- REMOVE_FROM_VAR(CFLAGS, -Xc)
- ;;
-*)
- COMP_VENDOR_CFLAGS="-std=c99 -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
- COMP_VENDOR_LDFLAGS=
- ;;
-esac
-
-COMP_VENDOR_CFLAGS="-DNDEBUG $COMP_VENDOR_CFLAGS"
-
-AM_CONDITIONAL([COND_DOC], [test "$enable_doc" = yes])
-AM_CONDITIONAL([COND_TESTS], [test "$enable_tests" = yes])
-AM_CONDITIONAL([COND_TESTDATA], [test "$enable_test_data" = yes])
-AM_CONDITIONAL([COND_MMX], [test "$enable_mmx" = yes])
-AM_CONDITIONAL([COND_SSE], [test "$enable_sse" = yes])
-AM_CONDITIONAL([COND_SSE2], [test "$enable_sse2" = yes])
-AM_CONDITIONAL([COND_SSE3], [test "$enable_sse3" = yes])
-AM_CONDITIONAL([COND_SSE4_1], [test "$enable_sse4_1" = yes])
-AM_CONDITIONAL([COND_SSE4_2], [test "$enable_sse4_2" = yes])
-AM_CONDITIONAL([COND_SSE4A], [test "$enable_sse4a" = yes])
-AM_CONDITIONAL([COND_SSE5], [test "$enable_sse5" = yes])
-if test "$enable_fixed_point" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_FIXED_POINT], [1], [Enable fixed point processing, where possible, instead of floating point])
- BROADVOICE_USE_FIXED_POINT="#define BROADVOICE_USE_FIXED_POINT 1"
- BROADVOICE_VECTORS_FOR_TESTS="fixed"
-else
- AX_FIXED_POINT_MACHINE([$host],
- [AC_DEFINE([BROADVOICE_USE_FIXED_POINT], [1], [Enable fixed point processing, where possible, instead of floating point])
- BROADVOICE_USE_FIXED_POINT="#define BROADVOICE_USE_FIXED_POINT 1"],
- [BROADVOICE_USE_FIXED_POINT="#undef BROADVOICE_USE_FIXED_POINT"])
- BROADVOICE_VECTORS_FOR_TESTS="floating"
-fi
-AX_MISALIGNED_ACCESS_FAILS([$host],
- [AC_DEFINE([BROADVOICE_MISALIGNED_ACCESS_FAILS], [1], [Do not expect a misaligned memory access to work correctly])
- BROADVOICE_MISALIGNED_ACCESS_FAILS="#define BROADVOICE_MISALIGNED_ACCESS_FAILS 1"],
- [BROADVOICE_MISALIGNED_ACCESS_FAILS="#undef BROADVOICE_MISALIGNED_ACCESS_FAILS"])
-
-if test "$enable_sse5" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE5], [1], [Use the SSE5 instruction set (i386 and x86_64 only).])
- enable_sse4a="yes"
-fi
-if test "$enable_sse4a" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE4A], [1], [Use the SSE4A instruction set (i386 and x86_64 only).])
- enable_sse4_2="yes"
-fi
-if test "$enable_sse4_2" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE4_2], [1], [Use the SSE4.2 instruction set (i386 and x86_64 only).])
- enable_sse4_1="yes"
-fi
-if test "$enable_sse4_1" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE4_1], [1], [Use the SSE4.1 instruction set (i386 and x86_64 only).])
- enable_sse3="yes"
-fi
-if test "$enable_sse3" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE3], [1], [Use the SSE3 instruction set (i386 and x86_64 only).])
- enable_sse2="yes"
-fi
-if test "$enable_sse2" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE2], [1], [Use the SSE2 instruction set (i386 and x86_64 only).])
- enable_sse="yes"
-fi
-if test "$enable_sse" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_SSE], [1], [Use the SSE instruction set (i386 and x86_64 only).])
- enable_mmx="yes"
-fi
-if test "$enable_mmx" = "yes" ; then
- AC_DEFINE([BROADVOICE_USE_MMX], [1], [Use the MMX instruction set (i386 and x86_64 only).])
-fi
-
-AC_SUBST(CC_FOR_BUILD)
-AC_SUBST(COMP_VENDOR_CFLAGS)
-AC_SUBST(COMP_VENDOR_LDFLAGS)
-AC_SUBST(TESTLIBS)
-AC_SUBST(BROADVOICE_USE_FIXED_POINT)
-AC_SUBST(BROADVOICE_MISALIGNED_ACCESS_FAILS)
-AC_SUBST(BROADVOICE_USE_EXPORT_CAPABILITY)
-AC_SUBST(BROADVOICE_VECTORS_FOR_TESTS)
-AC_SUBST(INSERT_INTTYPES_HEADER)
-AC_SUBST(INSERT_STDINT_HEADER)
-AC_SUBST(INSERT_TGMATH_HEADER)
-AC_SUBST(INSERT_MATH_HEADER)
-
-AC_CONFIG_FILES([Makefile
- doc/Makefile
- src/Makefile
- src/broadvoice.h
- broadvoice.pc
- broadvoice.spec])
-
-AC_CONFIG_FILES([tests/regression_tests.sh], [chmod +x tests/regression_tests.sh])
-
-AC_OUTPUT
-
-# @end 1
+++ /dev/null
-#! /bin/sh
-srcpath=$(dirname $0 2>/dev/null ) || srcpath="."
-$srcpath/configure "$@" --disable-shared --with-pic
-
+++ /dev/null
-broadvoice (0.0.1) unstable; urgency=low
-
- [ Steve Underwood ]
- * Begun
-
- -- Steve Underwood <steveu@coppice.org> Tue, 19 Feb 2008 09:53:06 +0300
+++ /dev/null
-Source: broadvoice
-Section: libs
-Priority: optional
-Maintainer: Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org>
-Uploaders: Jose Carlos Garcia Sogo <jsogo@debian.org>, Kilian Krause <kilian@debian.org>, Santiago Garcia Mantinan <manty@debian.org>, Mark Purcell <msp@debian.org>, Tzafrir Cohen <tzafrir.cohen@xorcom.com>, Santiago Ruano Rincón <santiago@debian.org>
-Build-Depends: debhelper (>= 4.0.0), dpatch, doxygen, autotools-dev
-Standards-Version: 3.7.2
-XS-Vcs-Svn: svn://svn.debian.org/pkg-voip/
-XS-Vcs-Browser: http://svn.debian.org/wsvn/pkg-voip/
-
-Package: libgbroadvoice
-Architecture: any
-Depends: ${shlibs:Depends}
-Conflicts: libbroadvoice0, libbroadvoice1, libbroadvoice2
-Description: Telephony signal processing library
- This package contains the BroadVoice 16 and 32 low bit rate speech codecs.
- .
- This package contains the shared library.
-
-Package: libbroadvoice-dev
-Section: libdevel
-Architecture: any
-Depends: libbroadvoice3 (= ${Source-Version})
-Description: Telephony signal processing library
- This package contains the BroadVoice 16 and 32 low bit rate speech codecs.
- .
- This package contains the static library and development headers.
- .
- Homepage: http://www.soft-switch.org/
-
-Package: libbroadvoice-doc
-Section: doc
-Architecture: all
-Description: Documentation for the Broadvoice 16 and 32 low bit rate speech codecs.
+++ /dev/null
-This package was debianized by Steve Underwood <steveu@coppice.org> on
-Tue, 19 Feb 2008 15:22:58 +0100.
-
-It was downloaded from http://soft-switch.org/downloads/codecs/
-
-Copyright: Various
-
-License:
-
-LGPL 2.1
\ No newline at end of file
+++ /dev/null
-debian/tmp/usr/include
-debian/tmp/usr/lib/libbroadvoice.so
-debian/tmp/usr/lib/libbroadvoice.la
-debian/tmp/usr/lib/libbroadvoice.a
+++ /dev/null
-doc/api/html usr/share/doc/broadvoice-doc/api/
+++ /dev/null
-debian/tmp/usr/lib/libbroadvoice.so.0.*
-debian/tmp/usr/lib/libbroadvoice.so.0
+++ /dev/null
-#!/usr/bin/make -f
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
-DEBVERSION:=$(shell head -n 1 debian/changelog \
- | sed -e 's/^[^(]*(\([^)]*\)).*/\1/')
-ORIGTARVER:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//')# -e 's/.dfsg$$//' -e 's/~//')
-
-UPVERSION:=$(shell echo $(ORIGTARVER) | tr -d '~')
-
-FILENAME := broadvoice_$(ORIGTARVER).orig.tar.gz
-FULLNAME := broadvoice-$(UPVERSION)
-URL := http://soft-switch.org/downloads/codecs/broadvoice-$(UPVERSION).tgz
-
-CFLAGS = -Wall -g
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
-
-include /usr/share/dpatch/dpatch.make
-
-
-autotools: patch-stamp
- ln -s /usr/share/misc/config.sub config.sub
- ln -s /usr/share/misc/config.guess config.guess
- touch autotools
-
-config.status: autotools configure
- dh_testdir
- CFLAGS="$(CFLAGS)" ./configure \
- --host=$(DEB_HOST_GNU_TYPE) \
- --build=$(DEB_BUILD_GNU_TYPE) \
- --prefix=/usr \
- --mandir=\$${prefix}/share/man \
- --infodir=\$${prefix}/share/info \
- --enable-doc
-
-build: build-stamp
-
-build-stamp: config.status
- dh_testdir
- $(MAKE)
- touch build-stamp
-
-clean: clean-patched unpatch
-clean-patched:
- dh_testdir
- dh_testroot
- rm -f build-stamp autotools
- -$(MAKE) distclean
-
- -$(RM) -f config.sub
- -$(RM) -f config.guess
-
- dh_clean
-
-install: build-stamp
- dh_testdir
- dh_testroot
- dh_clean -k
- $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-
-binary-indep: build-stamp install
- dh_testdir -i
- dh_testroot -i
- dh_installchangelogs -i ChangeLog
- dh_install -i
- dh_compress -i
- dh_fixperms -i
- dh_installdeb -i
- dh_gencontrol -i
- dh_md5sums -i
- dh_builddeb -i
-
-binary-arch: build-stamp install
- dh_testdir -a
- dh_testroot -a
- dh_installchangelogs -a ChangeLog
- dh_installdocs -a DueDiligence
- dh_install -a
- dh_strip -a
- dh_compress -a
- dh_fixperms -a
- dh_makeshlibs -a
- dh_installdeb -a
- dh_shlibdeps -a
- dh_gencontrol -a
- dh_md5sums -a
- dh_builddeb -a
-
-get-orig-source:
- -@@dh_testdir
- @@[ -d ../tarballs/. ]||mkdir -p ../tarballs
- @@echo Downloading $(FILENAME) from $(URL) ...
- @@wget -N -nv -T10 -t3 -O ../tarballs/$(FILENAME) $(URL)
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install patch unpatch
+++ /dev/null
-# See uscan(1) for format
-
-# Compulsory line, this is a version 1 file
-version=1
-
-# <Webpage URL> <string match>
-http://soft-switch.org/downloads/voipcodecs/ broadvoice-(.*)\.tgz debian svn-upgrade
+++ /dev/null
-##
-## broadvoice - a library for the BroadVoice 16 and 32 codecs
-##
-## Makefile.am -- Process this file with automake to produce Makefile.in
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License version 2, as
-## published by the Free Software Foundation.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-##
-## $Id: Makefile.am,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
-
-MAINTAINERCLEANFILES = Makefile.in
-
-EXTRA_DIST = css.css \
- wrapper.xsl
-
-all: doxydocs
-
-doxydocs:
- doxygen broadvoice-doxygen
+++ /dev/null
-# Doxyfile 1.4.4
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = libg722_1
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = 0.0.1
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = api
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = YES
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
-# only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is YES.
-
-SHOW_DIRECTORIES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the progam writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT =
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ..
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS = *.c \
- *.h
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 2
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT =
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET = css.css
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT =
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT =
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT =
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION =
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
+++ /dev/null
-body {
- background-image: url("../images/weave.jpg");
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-
-h1 {
- text-align: center;
-}
-
-h2 {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- border-color: #c00000;
- color : black;
- margin-top: 0.8em;
- border-style: solid;
- border-width: 0px 0px 3px 0.5em;
- line-height : 130%;
-}
-
-h3 {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- border-color: #f02020;
- color : black;
- border-width: 0px 0px 2px 0.5em;
- border-style: solid;
- margin-right: 20%;
- line-height : 130%;
-}
-caption {
- font-weight: bold
-}
-a.qindex {}
-a.qindexRef {}
-a.el {
- text-decoration: none;
- font-weight: bold
-}
-a.elRef {
- font-weight: bold
-}
-a.code {
- text-decoration: none;
- font-weight: normal;
- color: #4444ee
-}
-a.codeRef {
- font-weight: normal;
- color: #4444ee
-}
-a:hover {
- text-decoration: none;
- background-color: #f2f2ff
-}
-dl.el {
- margin-left: -1cm
-}
-div.fragment {
- width: 100%;
- border: none;
- background-color: #eeeeee
-}
-div.ah {
- background-color: black;
- font-weight: bold;
- color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px
-}
-
-td {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- font-weight: bold;
-}
-
-.navheader {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- background-color: #B2B2ff;
- font-weight: bold;
-}
-
-.navfooter {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- background-color: #B2B2ff;
- font-weight: bold;
-}
-
-table.menu {
- background-color: #000066;
- font-weight: bold;
- text-align: center;
- width: 100%;
-}
-
-tr.menu {
- background-color: #ccffff;
- font-weight: bold;
- text-align: center;
-}
-td.menu {
- background-color: #f2e0d0;
- font-weight: bold;
- text-align: center;
-}
-
-td.md {
- background-color: #f2f2ff;
- font-weight: bold;
-}
-td.mdname1 {
- background-color: #f2f2ff;
- font-weight: bold;
- color: #602020;
-}
-td.mdname {
- background-color: #f2f2ff;
- font-weight: bold;
- color: #602020;
- width: 600px;
-}
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold
-}
-div.groupText {
- margin-left: 16px;
- font-style: italic;
- font-size: smaller
-}
-td.indexkey {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- background-color: #eeeeff;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-td.indexvalue {
- font-family: Verdana, Arial, Helvetica, Sans-serif;
- background-color: #eeeeff;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-span.keyword {
- color: #008000
-}
-span.keywordtype {
- color: #604020
-}
-span.keywordflow {
- color: #e08000
-}
-span.comment {
- color: #800000
-}
-span.preprocessor {
- color: #806020
-}
-span.stringliteral {
- color: #002080
-}
-span.charliteral {
- color: #008080
-}
-em {
- color: #990000;
- background-color: transparent;
-}
-h1,h2,h3,h4,h5,h6,p,center,td,th,ul,dl,div {
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
-body,td {
- font-size: 90%;
-}
-h1 {
- text-align: center;
- font-size: 160%;
-}
-h2 {
- font-size: 120%;
-}
-h3 {
- font-size: 100%;
-}
-caption {
- font-weight: bold
-}
-div.qindex {
- width: 100%;
- background-color: #eeeeff;
- border: 1px solid #b0b0b0;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-div.nav {
- width: 100%;
- background-color: #eeeeff;
- border: 1px solid #b0b0b0;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-div.navtab {
- background-color: #eeeeff;
- border: 1px solid #b0b0b0;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-td.navtab {
- font-size: 70%;
-}
-a.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1a419d;
-}
-a.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1a419d
-}
-a.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
-}
-a.qindexHL {
- text-decoration: none;
- font-weight: bold;
- background-color: #6666cc;
- color: #ffffff;
- border: 1px double #9295C2;
-}
-a.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
-}
-a.qindexHL:visited {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff
-}
-a.el {
- text-decoration: none;
- font-weight: bold
-}
-a.elRef {
- font-weight: bold
-}
-a.code:link {
- text-decoration: none;
- font-weight: normal;
- color: #0000FF
-}
-a.code:visited {
- text-decoration: none;
- font-weight: normal;
- color: #0000FF
-}
-a.codeRef:link {
- font-weight: normal;
- color: #0000FF
-}
-a.codeRef:visited {
- font-weight: normal;
- color: #0000FF
-}
-a:hover {
- text-decoration: none;
- background-color: #f2f2ff
-}
-dl.el {
- margin-left: -1cm
-}
-.fragment {
- font-family: Fixed, monospace;
- font-size: 95%;
-}
-pre.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-div.ah {
- background-color: black;
- font-weight: bold;
- color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px
-}
-td.md {
- background-color: #F4F4FB;
- font-weight: bold;
-}
-td.mdPrefix {
- background-color: #F4F4FB;
- color: #606060;
- font-size: 80%;
-}
-td.mdname1 {
- background-color: #F4F4FB;
- font-weight: bold;
- color: #602020;
-}
-td.mdname {
- background-color: #F4F4FB;
- font-weight: bold;
- color: #602020;
- width: 600px;
-}
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-div.groupText {
- margin-left: 16px;
- font-style: italic;
- font-size: 90%
-}
-td.indexkey {
- background-color: #eeeeff;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-td.indexvalue {
- background-color: #eeeeff;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-tr.memlist {
- background-color: #f0f0f0;
-}
-p.formulaDsp {
- text-align: center;
-}
-img.formulaDsp {
-}
-img.formulaInl {
- vertical-align: middle;
-}
-span.keyword {
- color: #008000
-}
-span.keywordtype {
- color: #604020
-}
-span.keywordflow {
- color: #e08000
-}
-span.comment {
- color: #800000
-}
-span.preprocessor {
- color: #806020
-}
-span.stringliteral {
- color: #002080
-}
-span.charliteral {
- color: #008080
-}
-.mdTable {
- border: 1px solid #868686;
- background-color: #F4F4FB;
-}
-.mdRow {
- padding: 8px 10px;
-}
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.search {
- color: #003399;
- font-weight: bold;
-}
-form.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-input.search {
- font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #eeeeff;
-}
-td.tiny {
- font-size: 75%;
-}
-a {
- color: #252e78;
-}
-a:visited {
- color: #3d2185;
-}
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid #b0b0b0;
-}
-th.dirtab {
- background: #eeeeff;
- font-weight: bold;
-}
-hr {
- height: 1px;
- border: none;
- border-top: 1px solid black;
-}
+++ /dev/null
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version='1.0'>
- <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
- <xsl:param name="html.stylesheet">css.css</xsl:param>
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-##
-## broadvoice - a library for the BroadVoice 16 and 32 codecs
-##
-## Makefile.am -- Process this file with automake to produce Makefile.in
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the Lesser GNU General Public License version 2.1, as
-## published by the Free Software Foundation.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-##
-## $Id: Makefile.am,v 1.4 2009/11/21 17:19:22 steveu Exp $
-
-AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
-AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
-
-MAINTAINERCLEANFILES = Makefile.in
-
-EXTRA_DIST = libbroadvoice.dsp \
- libbroadvoice.2005.sln \
- libbroadvoice.2008.sln \
- libbroadvoice.2005.vcproj \
- libbroadvoice.2008.vcproj \
- msvc/gettimeofday.c \
- msvc/inttypes.h \
- msvc/tgmath.h \
- msvc/unistd.h \
- msvc/sys/time.h \
- msvc/broadvoice.def \
- msvc/msvcproj.head \
- msvc/msvcproj.foot \
- msvc/vc8proj.foot \
- msvc/vc8proj.head \
- msvc/vc9proj.foot \
- msvc/vc9proj.head \
- broadvoice/version.h.in
-
-AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/floating/common -I$(srcdir)/floating/bv16 -I$(srcdir)/floating/bv32
-
-lib_LTLIBRARIES = libbroadvoice.la
-
-libbroadvoice_la_SOURCES = bitstream.c \
- floating/common/a2lsp.c \
- floating/common/allpole.c \
- floating/common/allzero.c \
- floating/common/autocor.c \
- floating/common/cmtables.c \
- floating/common/levdur.c \
- floating/common/lsp2a.c \
- floating/common/stblchck.c \
- floating/common/stblzlsp.c \
- floating/common/utility.c \
- bitpack16.c \
- floating/bv16/bv16decoder.c \
- floating/bv16/bv16encoder.c \
- floating/bv16/bv16coarse_pitch.c \
- floating/bv16/bv16excdec.c \
- floating/bv16/bv16excquan.c \
- floating/bv16/bv16fine_pitch.c \
- floating/bv16/bv16gaindec.c \
- floating/bv16/bv16gainquan.c \
- floating/bv16/bv16levelest.c \
- floating/bv16/bv16lspdec.c \
- floating/bv16/bv16lspquan.c \
- floating/bv16/bv16plc.c \
- floating/bv16/bv16ptdec.c \
- floating/bv16/bv16postfilter.c \
- floating/bv16/bv16ptquan.c \
- floating/bv16/bv16tables.c \
- bitpack32.c \
- floating/bv32/bv32decoder.c \
- floating/bv32/bv32encoder.c \
- floating/bv32/bv32coarse_pitch.c \
- floating/bv32/bv32excdec.c \
- floating/bv32/bv32excquan.c \
- floating/bv32/bv32fine_pitch.c \
- floating/bv32/bv32gaindec.c \
- floating/bv32/bv32gainquan.c \
- floating/bv32/bv32levelest.c \
- floating/bv32/bv32lspdec.c \
- floating/bv32/bv32lspquan.c \
- floating/bv32/bv32plc.c \
- floating/bv32/bv32ptdec.c \
- floating/bv32/bv32ptquan.c \
- floating/bv32/bv32tables.c
-
-libbroadvoice_la_LDFLAGS = -version-info @BROADVOICE_LT_CURRENT@:@BROADVOICE_LT_REVISION@:@BROADVOICE_LT_AGE@ $(COMP_VENDOR_LDFLAGS)
-
-nobase_include_HEADERS = broadvoice/broadvoice.h \
- broadvoice/version.h \
- broadvoice/private/broadvoice.h
-
-nodist_include_HEADERS = broadvoice.h
-
-noinst_HEADERS = bitpack16.h \
- bitpack32.h \
- bitstream.h \
- floating/bv16/bv16cnst.h \
- floating/bv16/bv16externs.h \
- floating/bv16/bv16postfilter.h \
- floating/bv16/bv16strct.h \
- floating/bv32/bv32cnst.h \
- floating/bv32/bv32externs.h \
- floating/bv32/bv32strct.h \
- floating/common/bvcommon.h \
- floating/common/typedef.h \
- floating/common/utility.h
-
-noinst_PROGRAMS =
-
-DSP = libbroadvoice.dsp
-VCPROJ8 = libbroadvoice.2005.vcproj
-VCPROJ9 = libbroadvoice.2008.vcproj
-
-WIN32SOURCES = $(libbroadvoice_la_SOURCES) .\\msvc\\gettimeofday.c
-WIN32HEADERS = $(nobase_include_HEADERS) broadvoice.h
-
-DSPOUT = | awk '{printf("%s\r\n", $$0)}' >> $(DSP)
-VCPROJOUT8 = | awk '{printf("%s\r\n", $$0)}' >> $(VCPROJ8)
-VCPROJOUT9 = | awk '{printf("%s\r\n", $$0)}' >> $(VCPROJ9)
-
-$(DSP): msvc/msvcproj.head msvc/msvcproj.foot Makefile.am
- echo "creating $(DSP)"
- @(cp $(srcdir)/msvc/msvcproj.head $(DSP); \
- echo "# Begin Group \"Source Files\"" $(DSPOUT); \
- for file in $(WIN32SOURCES); do \
- echo "# Begin Source File" $(DSPOUT); \
- echo "" $(DSPOUT); \
- echo "SOURCE=.\\"$$file $(DSPOUT); \
- echo "# End Source File" $(DSPOUT); \
- done; \
- echo "# End Group" $(DSPOUT); \
- echo "# Begin Group \"Header Files\"" $(DSPOUT); \
- for file in $(WIN32HEADERS); do \
- echo "# Begin Source File" $(DSPOUT); \
- echo "" $(DSPOUT); \
- echo "SOURCE=.\\"$$file $(DSPOUT); \
- echo "# End Source File" $(DSPOUT); \
- done; \
- echo "# End Group" $(DSPOUT); \
- cat $(srcdir)/msvc/msvcproj.foot $(DSPOUT) )
-
-$(VCPROJ8): msvc/vc8proj.head msvc/vc8proj.foot Makefile.am
- echo "creating $(VCPROJ8)"
- @(cp $(srcdir)/msvc/vc8proj.head $(VCPROJ8); \
- for file in $(WIN32SOURCES); do \
- myfile=`echo $$file | sed -e 's|/|\\\\|g'`; \
- echo "<File RelativePath=\""$$myfile"\"></File>" $(VCPROJOUT8); \
- done; \
- echo "</Filter><Filter Name=\"Header Files\">" $(VCPROJOUT8); \
- for file in $(WIN32HEADERS); do \
- myfile=`echo $$file | sed -e 's|/|\\\\|g'`; \
- echo "<File RelativePath=\""$$myfile"\"></File>" $(VCPROJOUT8); \
- done; \
- cat $(srcdir)/msvc/vc8proj.foot $(VCPROJOUT8) )
-
-$(VCPROJ9): msvc/vc9proj.head msvc/vc9proj.foot Makefile.am
- echo "creating $(VCPROJ9)"
- @(cp $(srcdir)/msvc/vc9proj.head $(VCPROJ9); \
- for file in $(WIN32SOURCES); do \
- myfile=`echo $$file | sed -e 's|/|\\\\|g'`; \
- echo "<File RelativePath=\""$$myfile"\"></File>" $(VCPROJOUT9); \
- done; \
- echo "</Filter><Filter Name=\"Header Files\">" $(VCPROJOUT9); \
- for file in $(WIN32HEADERS); do \
- myfile=`echo $$file | sed -e 's|/|\\\\|g'`; \
- echo "<File RelativePath=\""$$myfile"\"></File>" $(VCPROJOUT9); \
- done; \
- cat $(srcdir)/msvc/vc9proj.foot $(VCPROJOUT9) )
-
-$(srcdir)/msvc/broadvoice.h: broadvoice.h.in
- echo "creating $(srcdir)/msvc/broadvoice.h"
- @sed -e "s/#define _BROADVOICE_H_/#define _BROADVOICE_H_\n\n#define __inline__ __inline\n#pragma warning(disable:4200)/" \
- -e "s/\@BROADVOICE_USE_FIXED_POINT\@/#undef BROADVOICE_USE_FIXED_POINT/" \
- -e "s/\@BROADVOICE_MISALIGNED_ACCESS_FAILS\@/#undef BROADVOICE_MISALIGNED_ACCESS_FAILS/" \
- -e "s/\@BROADVOICE_USE_EXPORT_CAPABILITY\@/#define BROADVOICE_USE_EXPORT_CAPABILITY 1/" \
- -e "s/\@INSERT_INTTYPES_HEADER\@/#include <msvc\/inttypes.h>/" \
- -e "s/\@INSERT_MATH_HEADER\@/#include <math.h>/" $(srcdir)/broadvoice.h.in > $(srcdir)/msvc/broadvoice.h
-
-broadvoice/version.h:
- mkdir -p $(@D)
- NOWDATE=`date --utc +"%Y%m%d"` ; \
- NOWTIME=`date --utc +"%H%M%S"` ; \
- sed 's/$$BROADVOICE_RELEASE_DATE/'$$NOWDATE'/;s/$$BROADVOICE_RELEASE_TIME/'$$NOWTIME'/' \
- <$(srcdir)/broadvoice/version.h.in >$@
-
-dist-hook: broadvoice/version.h
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitpack16.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-
-#include "broadvoice.h"
-#include "bv16strct.h"
-#include "bitstream.h"
-#include "bitpack16.h"
-
-/*
- * The following is the bit table within the bit structure for
- * BroadVoice16
- *
- * int16_t bit_table[] =
- * {
- * 7, 7, // LSP
- * 7, // Pitch Lag
- * 5, // Pitch Gain
- * 4, // Excitation Vector Log-Gain
- * 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 // Excitation Vector
- * };
- */
-
-int bv16_bitpack(uint8_t *PackedStream, struct BV16_Bit_Stream *BitStruct)
-{
- bitstream_state_t bs;
- uint8_t *stream;
- int i;
-
- stream = PackedStream;
- bitstream_init(&bs);
- bitstream_put(&bs, &stream, BitStruct->lspidx[0], 7);
- bitstream_put(&bs, &stream, BitStruct->lspidx[1], 7);
- bitstream_put(&bs, &stream, BitStruct->ppidx, 7);
- bitstream_put(&bs, &stream, BitStruct->bqidx, 5);
- bitstream_put(&bs, &stream, BitStruct->gidx, 4);
-
- for (i = 0; i < 10; i++)
- bitstream_put(&bs, &stream, BitStruct->qvidx[i], 5);
- bitstream_flush(&bs, &stream);
- return stream - PackedStream;
-}
-
-void bv16_bitunpack(const uint8_t *PackedStream, struct BV16_Bit_Stream *BitStruct)
-{
- bitstream_state_t bs;
- const uint8_t *stream;
- int i;
-
- stream = PackedStream;
- bitstream_init(&bs);
-
- BitStruct->lspidx[0] = (int16_t) bitstream_get(&bs, &stream, 7);
- BitStruct->lspidx[1] = (int16_t) bitstream_get(&bs, &stream, 7);
- BitStruct->ppidx = (int16_t) bitstream_get(&bs, &stream, 7);
- BitStruct->bqidx = (int16_t) bitstream_get(&bs, &stream, 5);
- BitStruct->gidx = (int16_t) bitstream_get(&bs, &stream, 4);
-
- for (i = 0; i < 10; i++)
- BitStruct->qvidx[i] = (int16_t) bitstream_get(&bs, &stream, 5);
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitpack16.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bitpack16.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BITPACK16_H_)
-#define _BITPACK16_H_
-
-int bv16_bitpack(uint8_t *PackedStream, struct BV16_Bit_Stream *BitStruct);
-void bv16_bitunpack(const uint8_t *PackedStream, struct BV16_Bit_Stream *BitStruct);
-
-#endif
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitpack32.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-
-#include "broadvoice.h"
-#include "bv32strct.h"
-#include "bitstream.h"
-#include "bitpack32.h"
-
-/*
- * The following is the bit table within the bit structure for
- * BroadVoice32
- *
- * int16_t bit_table[] =
- * {
- * 7, 5, 5, // LSP
- * 8, // Pitch Lag
- * 5, // Pitch Gain
- * 5, 5, // Excitation Vector Log-Gain
- * 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // Excitation Vector 1st subframe
- * 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 // Excitation Vector 2nd subframe
- * };
- */
-
-int bv32_bitpack(uint8_t *PackedStream, struct BV32_Bit_Stream *BitStruct)
-{
- bitstream_state_t bs;
- uint8_t *stream;
- int i;
-
- stream = PackedStream;
- bitstream_init(&bs);
- bitstream_put(&bs, &stream, BitStruct->lspidx[0], 7);
- bitstream_put(&bs, &stream, BitStruct->lspidx[1], 5);
- bitstream_put(&bs, &stream, BitStruct->lspidx[2], 5);
- bitstream_put(&bs, &stream, BitStruct->ppidx, 8);
- bitstream_put(&bs, &stream, BitStruct->bqidx, 5);
- bitstream_put(&bs, &stream, BitStruct->gidx[0], 5);
- bitstream_put(&bs, &stream, BitStruct->gidx[1], 5);
- for (i = 0; i < 20; i++)
- bitstream_put(&bs, &stream, BitStruct->qvidx[i], 6);
- bitstream_flush(&bs, &stream);
- return stream - PackedStream;
-}
-
-void bv32_bitunpack(const uint8_t *PackedStream, struct BV32_Bit_Stream *BitStruct)
-{
- bitstream_state_t bs;
- const uint8_t *stream;
- int i;
-
- stream = PackedStream;
- bitstream_init(&bs);
-
- BitStruct->lspidx[0] = (int16_t) bitstream_get(&bs, &stream, 7);
- BitStruct->lspidx[1] = (int16_t) bitstream_get(&bs, &stream, 5);
- BitStruct->lspidx[2] = (int16_t) bitstream_get(&bs, &stream, 5);
-
- BitStruct->ppidx = (int16_t) bitstream_get(&bs, &stream, 8);
- BitStruct->bqidx = (int16_t) bitstream_get(&bs, &stream, 5);
- BitStruct->gidx[0] = (int16_t) bitstream_get(&bs, &stream, 5);
- BitStruct->gidx[1] = (int16_t) bitstream_get(&bs, &stream, 5);
-
- for (i = 0; i < 20; i++)
- BitStruct->qvidx[i] = (int16_t) bitstream_get(&bs, &stream, 6);
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitpack32.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bitpack32.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BITPACK32_H_)
-#define _BITPACK32_H_
-
-int bv32_bitpack(uint8_t *PackedStream, struct BV32_Bit_Stream *BitStruct);
-void bv32_bitunpack(const uint8_t *PackedStream, struct BV32_Bit_Stream *BitStruct);
-
-#endif
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitstream.c -
- *
- * Copyright 2009 by Steve Underwood <steveu@coppice.org>
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bitstream.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include "bitstream.h"
-
-void bitstream_put(bitstream_state_t *s, uint8_t **c, uint32_t value, int bits)
-{
- if (bits < 32)
- value &= ((1 << bits) - 1);
- if (bits > 24)
- {
- /* We can't deal with this many bits in one go. Split up the operation */
- bits -= 8;
- s->bitstream = (s->bitstream << bits) | (value >> 8);
- s->residue += bits;
- while (s->residue >= 8)
- {
- s->residue -= 8;
- *(*c)++ = (uint8_t) ((s->bitstream >> s->residue) & 0xFF);
- }
- bits = 8;
- value &= 0xFF;
- }
- s->bitstream = (s->bitstream << bits) | value;
- s->residue += bits;
- while (s->residue >= 8)
- {
- s->residue -= 8;
- *(*c)++ = (uint8_t) ((s->bitstream >> s->residue) & 0xFF);
- }
-}
-/*- End of function --------------------------------------------------------*/
-
-uint32_t bitstream_get(bitstream_state_t *s, const uint8_t **c, int bits)
-{
- uint32_t x;
-
- if (bits > 24)
- {
- /* We can't deal with this many bits in one go. Split up the operation */
- while (s->residue < 24)
- {
- s->bitstream = (s->bitstream << 8) | ((uint32_t) *(*c)++);
- s->residue += 8;
- }
- s->residue -= 24;
- bits -= 24;
- x = ((s->bitstream >> s->residue) & 0xFFFFFF) << bits;
- while (s->residue < bits)
- {
- s->bitstream = (s->bitstream << 8) | ((uint32_t) *(*c)++);
- s->residue += 8;
- }
- s->residue -= bits;
- x |= (s->bitstream >> s->residue) & ((1 << bits) - 1);
- }
- else
- {
- while (s->residue < bits)
- {
- s->bitstream = (s->bitstream << 8) | ((uint32_t) *(*c)++);
- s->residue += 8;
- }
- s->residue -= bits;
- x = (s->bitstream >> s->residue) & ((1 << bits) - 1);
- }
- return x;
-}
-/*- End of function --------------------------------------------------------*/
-
-void bitstream_flush(bitstream_state_t *s, uint8_t **c)
-{
- if (s->residue > 0)
- {
- *(*c)++ = (uint8_t) ((s->bitstream << (8 - s->residue)) & 0xFF);
- s->residue = 0;
- }
-}
-/*- End of function --------------------------------------------------------*/
-
-bitstream_state_t *bitstream_init(bitstream_state_t *s)
-{
- if (s == NULL)
- return NULL;
- s->bitstream = 0;
- s->residue = 0;
- return s;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bitstream.c -
- *
- * Copyright 2009 by Steve Underwood <steveu@coppice.org>
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bitstream.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BITSTREAM_H_)
-#define _BITSTREAM_H_
-
-/*! Bitstream handler state */
-typedef struct
-{
- /*! The bit stream. */
- uint32_t bitstream;
- /*! The residual bits in bitstream. */
- int residue;
-} bitstream_state_t;
-
-void bitstream_put(bitstream_state_t *s, uint8_t **c, uint32_t value, int bits);
-
-uint32_t bitstream_get(bitstream_state_t *s, const uint8_t **c, int bits);
-
-void bitstream_flush(bitstream_state_t *s, uint8_t **c);
-
-bitstream_state_t *bitstream_init(bitstream_state_t *s);
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-# Microsoft Developer Studio Project File - Name="g722_1" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=g722_1 - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "g722_1.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "g722_1.mak" CFG="g722_1 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "g722_1 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "g722_1 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "g722_1 - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "." /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /D "_WINDLL" /FR /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /map /debug /machine:I386 /out:"Release/libg722_1.dll"
-
-!ELSEIF "$(CFG)" == "g722_1 - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /FR /FD /GZ /c
-# SUBTRACT CPP /WX /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /incremental:no /map /debug /machine:I386 /out:"Debug/libg722_1.dll" /pdbtype:sept
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "g722_1 - Win32 Release"
-# Name "g722_1 - Win32 Debug"
-# Begin Group "Source Files"\r
-# Begin Source File\r
-\r
-SOURCE=.\msvc/gettimeofday.c\r
-# End Source File\r
-# End Group\r
-# Begin Group "Header Files"\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/broadvoice.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/version.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/private/broadvoice.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice.h\r
-# End Source File\r
-# End Group\r
-\r
-# Begin Group "Resource Files"\r
-\r
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-# End Group\r
-# End Target\r
-# End Project\r
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * broadvoice.h - The head guy amongst the headers
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2009 Steve Underwood
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * $Id: broadvoice.h.in,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if !defined(_BROADVOICE_H_)
-#define _BROADVOICE_H_
-
-@BROADVOICE_USE_FIXED_POINT@
-@BROADVOICE_MISALIGNED_ACCESS_FAILS@
-
-@BROADVOICE_USE_EXPORT_CAPABILITY@
-
-#include <stdlib.h>
-@INSERT_INTTYPES_HEADER@
-#include <string.h>
-#include <limits.h>
-#include <time.h>
-@INSERT_MATH_HEADER@
-
-#include <broadvoice/broadvoice.h>
-
-#endif
-
-#if defined(BROADVOICE_EXPOSE_INTERNAL_STRUCTURES)
-#include <broadvoice/private/broadvoice.h>
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libbroadvoice.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- ProjectSection(ProjectDependencies) = postProject
- {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "at_dictionary_gen", "src\msvc\at_dictionary_gen.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C"
- Version="9.00"
- Name="libg722_1"
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- RootNamespace="libg722_1"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="src; src\g722_1; src\msvc"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- CompileAs="1"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- ModuleDefinitionFile="src/msvc/g722_1.def"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="src; src\g722_1; src\msvc"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- ModuleDefinitionFile="src/msvc/g722_1.def"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
-<File RelativePath="msvc/gettimeofday.c"></File>\r
-</Filter><Filter Name="Header Files">\r
-<File RelativePath="broadvoice/broadvoice.h"></File>\r
-<File RelativePath="broadvoice/version.h"></File>\r
-<File RelativePath="broadvoice/private/broadvoice.h"></File>\r
-<File RelativePath="broadvoice.h"></File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * broadvoice.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: broadvoice.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BROADVOICE_BROADVOICE_H_)
-#define _BROADVOICE_BROADVOICE_H_
-
-#if defined(_M_IX86) || defined(_M_X64)
-#if defined(BROADVOICE_EXPORTS)
-#define BV_DECLARE(type) __declspec(dllexport) type __stdcall
-#define BV_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
-#define BV_DECLARE_DATA __declspec(dllexport)
-#else
-#define BV_DECLARE(type) __declspec(dllimport) type __stdcall
-#define BV_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl
-#define BV_DECLARE_DATA __declspec(dllimport)
-#endif
-#elif defined(BROADVOICE_USE_EXPORT_CAPABILITY) && (defined(__GNUC__) || defined(__SUNCC__))
-#define BV_DECLARE(type) __attribute__((visibility("default"))) type
-#define BV_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type
-#define BV_DECLARE_DATA __attribute__((visibility("default")))
-#else
-#define BV_DECLARE(type) /**/ type
-#define BV_DECLARE_NONSTD(type) /**/ type
-#define BV_DECLARE_DATA /**/
-#endif
-
-typedef struct bv16_encode_state_s bv16_encode_state_t;
-typedef struct bv16_decode_state_s bv16_decode_state_t;
-typedef struct bv32_encode_state_s bv32_encode_state_t;
-typedef struct bv32_decode_state_s bv32_decode_state_t;
-
-#define BV16_FRAME_LEN 40
-#define BV32_FRAME_LEN 80
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-BV_DECLARE(bv16_encode_state_t *) bv16_encode_init(bv16_encode_state_t *s);
-
-BV_DECLARE(int) bv16_encode(bv16_encode_state_t *cs,
- uint8_t *out,
- const int16_t amp[],
- int len);
-
-BV_DECLARE(int) bv16_encode_release(bv16_encode_state_t *s);
-
-BV_DECLARE(int) bv16_encode_free(bv16_encode_state_t *s);
-
-
-BV_DECLARE(bv16_decode_state_t *) bv16_decode_init(bv16_decode_state_t *s);
-
-BV_DECLARE(int) bv16_decode(bv16_decode_state_t *s,
- int16_t amp[],
- const uint8_t *in,
- int len);
-
-BV_DECLARE(int) bv16_fillin(bv16_decode_state_t *s,
- int16_t amp[],
- int len);
-
-BV_DECLARE(int) bv16_decode_release(bv16_decode_state_t *s);
-
-BV_DECLARE(int) bv16_decode_free(bv16_decode_state_t *s);
-
-
-BV_DECLARE(bv32_encode_state_t *) bv32_encode_init(bv32_encode_state_t *s);
-
-BV_DECLARE(int) bv32_encode(bv32_encode_state_t *s,
- uint8_t *out,
- const int16_t amp[],
- int len);
-
-BV_DECLARE(int) bv32_encode_release(bv32_encode_state_t *s);
-
-BV_DECLARE(int) bv32_encode_free(bv32_encode_state_t *s);
-
-
-BV_DECLARE(bv32_decode_state_t *) bv32_decode_init(bv32_decode_state_t *s);
-
-BV_DECLARE(int) bv32_decode(bv32_decode_state_t *s,
- int16_t amp[],
- const uint8_t *in,
- int len);
-
-BV_DECLARE(int) bv32_fillin(bv32_decode_state_t *ds,
- int16_t amp[],
- int len);
-
-BV_DECLARE(int) bv32_decode_release(bv32_decode_state_t *s);
-
-BV_DECLARE(int) bv32_decode_free(bv32_decode_state_t *s);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * broadvoice.h - The head guy amongst the headers
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2009 Steve Underwood
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * $Id: broadvoice.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if !defined(_BROADVOICE_PRIVATE_BROADVOICE_H_)
-#define _BROADVOICE_PRIVATE_BROADVOICE_H_
-
-typedef double Float;
-
-#define LPCO 8 /* LPC Order */
-#define HPO 2 /* Front end 150Hz high-pass filter order */
-#define DFO 4
-
-#define BV16_FRSZ 40 /* Frame size */
-#define BV16_MAXPP 137 /* MAXimum Pitch Period */
-#define BV16_PWSZ 120 /* Pitch analysis Window SiZe */
-#define BV16_XQOFF (BV16_MAXPP + 1) /* xq() offset before current subframe */
-#define BV16_XOFF (BV16_MAXPP + 1) /* Offset for x() frame */
-#define BV16_LTMOFF (BV16_MAXPP + 1) /* Long-Term filter Memory OFFset */
-#define BV16_LSPPORDER 8 /* LSP MA Predictor ORDER */
-#define BV16_NSTORDER 8 /* Pole-zero NFC shaping filter */
-#define BV16_LGPORDER 8 /* Log-Gain Predictor OODER */
-#define BV16_DECF 4 /* DECimation Factor for coarse pitch period search */
-#define BV16_XDOFF (BV16_LXD - BV16_FRSZD)
-
-#define BV16_FRSZD (BV16_FRSZ/BV16_DECF) /* FRame SiZe in DECF:1 lowband domain */
-#define BV16_PWSZD (BV16_PWSZ/BV16_DECF) /* Pitch ana. Window SiZe in DECF:1 domain */
-#define BV16_MAXPPD (BV16_MAXPP/BV16_DECF) /* MAX Pitch in DECF:1, if MAXPP!=4n, ceil() */
-#define BV16_LXD (BV16_MAXPPD + 1 + BV16_PWSZD)
-
-#define BV32_FRSZ 80 /* Frame size */
-#define BV32_MAXPP 265 /* MAXimum Pitch Period */
-#define BV32_PWSZ 240 /* Pitch analysis Window SiZe for 8kHz lowband */
-#define BV32_XOFF (BV32_MAXPP + 1) /* offset for x() frame */
-#define BV32_LTMOFF (BV32_MAXPP + 1) /* Long-Term filter Memory OFFset */
-#define BV32_LSPPORDER 8 /* LSP MA Predictor ORDER */
-#define BV32_PFO 1 /* Preemphasis filter order */
-#define BV32_LGPORDER 16 /* Log-Gain Predictor OODER */
-#define BV32_DECF 8 /* DECimation Factor for coarse pitch period search */
-#define BV32_XDOFF (BV32_LXD - BV32_FRSZD)
-
-#define BV32_FRSZD (BV32_FRSZ/BV32_DECF) /* FRame SiZe in DECF:1 lowband domain */
-#define BV32_PWSZD (BV32_PWSZ/BV32_DECF) /* Pitch ana. Window SiZe in DECF:1 domain */
-#define BV32_MAXPPD (BV32_MAXPP/BV32_DECF) /* MAX Pitch in DECF:1, if MAXPP!=4n, ceil() */
-#define BV32_LXD (BV32_MAXPPD + 1 + BV32_PWSZD)
-
-struct bv16_decode_state_s
-{
- Float stsym[LPCO];
- Float ltsym[BV16_LTMOFF];
- Float lsppm[LPCO*BV16_LSPPORDER];
- Float lgpm[BV16_LGPORDER];
- Float lsplast[LPCO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int16_t pp_last;
- int16_t ngfae;
- Float bq_last[3];
- int16_t nggalgc;
- Float estl_alpha_min;
- int16_t cfecount;
- uint32_t idum;
- Float E;
- Float per;
- Float atplc[LPCO + 1];
- Float ma_a;
- Float b_prv[2];
- Float xq[BV16_XQOFF];
- int pp_prv;
-};
-
-struct bv16_encode_state_s
-{
- Float x[BV16_XOFF]; /* 8kHz down-sampled signal memory */
- Float xwd[BV16_XDOFF]; /* memory of DECF:1 decimated version of xw() */
- Float dq[BV16_XOFF]; /* quantized short-term pred error */
- Float dfm[DFO]; /* decimated xwd() filter memory */
- Float stpem[LPCO]; /* ST Pred. Error filter memory */
- Float stwpm[LPCO]; /* ST Weighting all-Pole Memory */
- Float stsym[LPCO]; /* ST Synthesis filter Memory */
- Float ltsym[BV16_MAXPP + 1 + BV16_FRSZ]; /* long-term synthesis filter memory */
- Float ltnfm[BV16_MAXPP + 1 + BV16_FRSZ]; /* long-term noise feedback filter memory */
- Float lsplast[LPCO];
- Float lsppm[LPCO*BV16_LSPPORDER]; /* LSP Predictor Memory */
- Float lgpm[BV16_LGPORDER];
- Float hpfzm[HPO];
- Float hpfpm[HPO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int cpplast; /* pitch period pf the previous frame */
- Float old_A[LPCO + 1];
- Float stnfz[BV16_NSTORDER];
- Float stnfp[BV16_NSTORDER];
-};
-
-struct bv32_decode_state_s
-{
- Float stsym[LPCO];
- Float ltsym[BV32_LTMOFF];
- Float lsppm[LPCO*BV32_LSPPORDER];
- Float lgpm[BV32_LGPORDER];
- Float lsplast[LPCO];
- Float dezfm[BV32_PFO];
- Float depfm[BV32_PFO];
- int16_t cfecount;
- uint32_t idum;
- Float E;
- Float scplcg;
- Float per;
- Float atplc[LPCO + 1];
- int16_t pp_last;
- Float prevlg[2];
- Float lgq_last;
- Float bq_last[3];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int16_t nclglim;
- int16_t lctimer;
-};
-
-struct bv32_encode_state_s
-{
- Float x[BV32_XOFF];
- Float xwd[BV32_XDOFF]; /* Memory of DECF:1 decimated version of xw() */
- Float dq[BV32_XOFF]; /* Quantized short-term pred error */
- Float dfm[DFO]; /* Decimated xwd() filter memory */
- Float stpem[LPCO]; /* ST Pred. Error filter memory, low-band */
- Float stwpm[LPCO]; /* ST Weighting all-Pole Memory, low-band */
- Float stnfm[LPCO]; /* ST Noise Feedback filter Memory, Lowband */
- Float stsym[LPCO]; /* ST Synthesis filter Memory, Lowband */
- Float ltsym[BV32_MAXPP + 1 + BV32_FRSZ]; /* Long-term synthesis filter memory */
- Float ltnfm[BV32_MAXPP + 1 + BV32_FRSZ]; /* Long-term noise feedback filter memory */
- Float lsplast[LPCO];
- Float lsppm[LPCO*BV32_LSPPORDER]; /* LSP Predictor Memory */
- Float lgpm[BV32_LGPORDER];
- Float hpfzm[HPO];
- Float hpfpm[HPO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int cpplast; /* pitch period pf the previous frame */
- Float allast[LPCO + 1];
-};
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * version.h.in - A tag file, so the exact installed revision can be assertained.
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2009 Steve Underwood
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: version.h.in,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BROADVOICE_VERSION_H_)
-#define _BROADVOICE_VERSION_H_
-
-/* The date and time of the version are in UTC form. */
-
-#define BROADVOICE_RELEASE_DATE 20091119
-#define BROADVOICE_RELEASE_TIME 131751
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * version.h.in - A tag file, so the exact installed revision can be assertained.
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2009 Steve Underwood
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: version.h.in,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_BROADVOICE_VERSION_H_)
-#define _BROADVOICE_VERSION_H_
-
-/* The date and time of the version are in UTC form. */
-
-#define BROADVOICE_RELEASE_DATE $BROADVOICE_RELEASE_DATE
-#define BROADVOICE_RELEASE_TIME $BROADVOICE_RELEASE_TIME
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*****************************************************************************/
-/* BroadVoice(R)16 (BV16) Floating-Point ANSI-C Source Code */
-/* Revision Date: August 19, 2009 */
-/* Version 1.0 */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Copyright 2000-2009 Broadcom Corporation */
-/* */
-/* This software is provided under the GNU Lesser General Public License, */
-/* version 2.1, as published by the Free Software Foundation ("LGPL"). */
-/* This program is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for */
-/* more details. A copy of the LGPL is available at */
-/* http://www.broadcom.com/licenses/LGPLv2.1.php, */
-/* or by writing to the Free Software Foundation, Inc., */
-/* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/*****************************************************************************/
-
-
-/*****************************************************************************
- bv16cnst.h : BV16 constants
-
- $Log: bv16cnst.h,v $
- Revision 1.1.1.1 2009/11/19 12:10:48 steveu
- Start from Broadcom's code
-
- Revision 1.1.1.1 2009/11/17 14:06:02 steveu
- start
-
-******************************************************************************/
-
-#include "typedef.h"
-
-#ifndef BV16CNST_H
-#define BV16CNST_H
-
-
-/* ----- Basic Codec Parameters ----- */
-#define FRSZ 40 /* frame size */
-#define WINSZ 160 /* lpc analysis WINdow SiZe */
-#define MAXPP 137 /* MAXimum Pitch Period */
-#define MINPP 10 /* MINimum Pitch Period */
-#define PWSZ 120 /* Pitch analysis Window SiZe */
-#define MAXPP1 (MAXPP+1)/* MAXimum Pitch Period + 1 */
-
-/* Quantization parameters */
-#define VDIM 4 /* excitation vector dimension */
-#define CBSZ 16 /* excitation codebook size */
-#define PPCBSZ 32 /* pitch predictor codebook size */
-#define LGPORDER 8 /* Log-Gain Predictor OODER */
-#define LGPECBSZ 16 /* Log-Gain Prediction Error CodeBook SiZe */
-#define LSPPORDER 8 /* LSP MA Predictor ORDER */
-#define LSPECBSZ1 128 /* codebook size of 1st-stage LSP VQ */
-#define LSPECBSZ2 64 /* codebook size of 2nd-stage LSP VQ; 1-bit for sign */
-
-#define INVFRSZ (1./(Float)FRSZ)
-
-/* Excitation gain quantization */
-#define LGMEAN 11.45752 /* log2-gain mean */
-#define GPO 8 /* order of MA prediction */
-#define NG 18 /* number of relative gain bins */
-#define GLB -24. /* lower relative gain bound */
-#define NGC 12 /* number of gain change bins */
-#define GCLB -8. /* lower gain change bound */
-#define Minlg 0. /* minimum log-gain */
-#define TMinlg 1. /* minimum linear gain */
-#define LGCBSZ 16 /* size of codebook */
-
-/* Definitions for periodicity to gain scaling mapping */
-#define ScPLCGmin 0.1
-#define ScPLCGmax 0.9
-#define PePLCGmin 0.5
-#define PePLCGmax 0.9
-#define ScPLCG_b ((ScPLCGmin-ScPLCGmax)/(PePLCGmax-PePLCGmin))
-#define ScPLCG_a (ScPLCGmin-ScPLCG_b*PePLCGmax)
-#define HoldPLCG 8
-#define AttnPLCG 50
-#define AttnFacPLCG (1.0/(Float)AttnPLCG)
-
-/* Level Estimation */
-#define estl_alpha (4095./4096.)
-#define estl_alpha1 (255./256.)
-#define estl_beta (511./512.)
-#define estl_beta1 (1.-estl_beta)
-#define estl_a (255./256)
-#define estl_a1 (1-estl_a)
-#define estl_TH 0.2
-#define Nfdm 100 /* Max number of frames with fast decay of Lmin */
-
-/* Log-Gain Limitation */
-#define LGLB -24 /* Relative (to input level) Log-Gain Lower Bound */
-#define LGCLB -8 /* Log-Gain Change Lower Bound */
-#define NGB 18 /* Number of Gain Bins */
-#define NGCB 12 /* Number of Gain Change Bins */
-
-/* Buffer offsets and sizes */
-#define XOFF MAXPP1 /* offset for x() frame */
-#define LX (XOFF+FRSZ) /* Length of x() buffer */
-#define XQOFF (MAXPP1) /* xq() offset before current subframe */
-#define LXQ (XQOFF+FRSZ) /* Length of xq() buffer */
-#define LTMOFF (MAXPP1) /* Long-Term filter Memory OFFset */
-
-/* Long-term postfilter */
-#define DPPQNS 4 /* Delta pitch period for search */
-#define NINT 20 /* length of filter interpolation */
-#define ATHLD1 0.55 /* threshold on normalized pitch correlation */
-#define ATHLD2 0.80 /* threshold on normalized pitch correlation */
-#define ScLTPF 0.3 /* scaling of LTPF coefficient */
-
-/* coarse pitch search */
-#define cpp_Qvalue 2
-#define cpp_scale (1<<cpp_Qvalue)
-#define MAX_NPEAKS 7
-#define MPTH4 0.3 /* value to use for MPTH[] with index >= 4 */
-#define DEVTH 0.25 /* pitch period DEViation THreshold */
-#define TH1 0.73 /* first threshold for cor*cor/energy */
-#define TH2 0.4 /* second threshold for cor*cor/energy */
-#define LPTH1 0.79 /* Last Pitch cor*cor/energy THreshold 1 */
-#define LPTH2 0.43 /* Last Pitch cor*cor/energy THreshold 2 */
-#define MPDTH 0.065 /* Multiple Pitch Deviation THreshold */
-#define SMDTH 0.095 /* Sub-Multiple pitch Deviation THreshold */
-#define SMDTH1 (1.0-SMDTH)
-#define SMDTH2 (1.0+SMDTH)
-#define MPR1 (1.0-MPDTH) /* Multiple Pitch Range lower threshold */
-#define MPR2 (1.0+MPDTH) /* Multiple Pitch Range upper threshold */
-
-/* Decimation parameters */
-#define DECF 4 /* DECimation Factor for coarse pitch period search */
-#define FRSZD (FRSZ/DECF) /* FRame SiZe in DECF:1 lowband domain */
-#define MAXPPD (MAXPP/DECF) /* MAX Pitch in DECF:1, if MAXPP!=4n, ceil() */
-#define MINPPD ((int) (MINPP/DECF)) /* MINimum Pitch Period in DECF:1 */
-#define PWSZD (PWSZ/DECF) /* Pitch ana. Window SiZe in DECF:1 domain */
-#define DFO 4
-#define MAXPPD1 (MAXPPD + 1)
-#define LXD (MAXPPD1 + PWSZD)
-#define XDOFF (LXD - FRSZD)
-#define HMAXPPD (MAXPPD/2)
-#define M1 (MINPPD - 1)
-#define M2 MAXPPD1
-#define HDECF (DECF/2)
-#define INVDECF (1.0F/(float)(DECF)) /* INVerse of DECF (decimation factor) */
-
-/* Front-end 150 Hz highpass filter */
-#define HPO 2 /* High-pass filter order */
-
-/* LPC weighting filter */
-#define LTWFL 0.5
-
-/* pole-zero NFC shaping filter */
-#define NSTORDER 8
-
-#endif /* BV16CNST_H */
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16coarse_pitch.c - Coarse pitch search
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16coarse_pitch.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "utility.h"
-#include "bv16externs.h"
-
-int coarsepitch(
- Float *xw,
- Float *xwdm,
- Float *dfm, /* (i/o) ellipse low pass filter memory */
- int cpplast)
-{
- Float xwd[LXD];
- Float cor[MAXPPD1];
- Float cor2[MAXPPD1];
- Float energy[MAXPPD1];
- Float cor2i[HMAXPPD];
- Float energyi[HMAXPPD];
- Float mplth;
- Float tmp[DFO + FRSZ];
- Float threshold;
- Float *fp0, *fp1, *fp2, *fp3, s, t, a, b, c, deltae;
- Float cor2max, energymax, cor2m, energym, ci, eni;
- int i, j, k, n, npeaks, imax, im, idx[HMAXPPD], plag[HMAXPPD];
- int cpp, maxdev, flag, mpflag;
-
- /* reset local buffers */
- Fzero(cor, MAXPPD1);
- Fzero(energy, MAXPPD1);
-
- /* LOWPASS FILTER xw() TO 800 Hz; SHIFT & OUTPUT INTO xwd() */
-
- /* copy xwd[] from memory to buffer */
- Fcopy(xwd, xwdm, XDOFF);
-
- /* copy memory to temp buffer */
- Fcopy(tmp, dfm, DFO);
-
- /* AP and AZ filtering and decimation */
- fp0 = xwd + XDOFF;
- fp1 = tmp + DFO;
- fp3 = xw;
- for (i = 0; i < FRSZD; i++)
- {
- for (k = 0; k < DECF; k++)
- {
- t = *fp3++;
- fp2 = fp1 - 1;
- for (j = 0; j < DFO; j++)
- t -= bv16_adf[j + 1]*(*fp2--);
- *fp1++ = t;
- }
- fp2 = fp1 - 1;
- t = bv16_bdf[0]*(*fp2--);
- for (j = 0; j < DFO; j++)
- t += bv16_bdf[j + 1]*(*fp2--);
- *fp0++ = t;
- }
-
- /* copy temp buffer to memory */
- fp1 -= DFO;
- for (i = 0; i < DFO; i++)
- dfm[i] = *fp1++;
-
- /* update xwd() memory */
- Fcopy(xwdm, xwd + FRSZD, XDOFF);
-
- /* COMPUTE CORRELATION & ENERGY OF PREDICTION BASIS VECTOR */
- fp0 = xwd + MAXPPD1;
- fp1 = xwd + MAXPPD1 - M1;
- s = t = 0.0;
- for (i = 0; i < (LXD - MAXPPD1); i++)
- {
- s += (*fp1)*(*fp1);
- t += (*fp0++)*(*fp1++);
- }
- energy[M1 - 1] = s;
- cor[M1 - 1] = t;
- if (t > 0.0F)
- cor2[M1 - 1] = t*t;
- else
- cor2[M1 - 1] = -t*t;
-
-
- fp2 = xwd + LXD - M1 - 1;
- fp3 = xwd + MAXPPD1 - M1 - 1;
-
- for (i = M1; i < M2; i++)
- {
- fp0 = xwd + MAXPPD1;
- fp1 = xwd + MAXPPD1 - i - 1;
- t = 0.0;
- for (j = 0; j < (LXD - MAXPPD1); j++)
- t += (*fp0++)*(*fp1++);
- cor[i] = t;
- if (t > 0.0F)
- cor2[i] = t*t;
- else
- cor2[i] = -t*t;
- s = s - (*fp2)*(*fp2) + (*fp3)*(*fp3);
- fp2--;
- fp3--;
- energy[i] = s;
- }
-
- /* FIND POSITIVE COR*COR/ENERGY PEAKS */
- npeaks = 0;
- n = MINPPD - 1;
- while ((n < MAXPPD) && (npeaks < MAX_NPEAKS))
- {
- if ((cor2[n]*energy[n - 1] > cor2[n - 1]*energy[n])
- &&
- (cor2[n]*energy[n + 1] > cor2[n + 1]*energy[n])
- &&
- (cor2[n] > 0))
- {
- idx[npeaks] = n;
- npeaks++;
- }
- n++;
- }
-
- /* RETURN EARLY IF THERE IS NO PEAK OR ONLY ONE PEAK */
- if (npeaks == 0) /* if there are no positive peak, */
- return MINPPD*cpp_scale; /* minimum pitch period in decimated domain */
- if (npeaks == 1) /* if there is exactly one peak, */
- return (idx[0] + 1)*cpp_scale; /* the time lag for this single peak */
-
- /* IF PROGRAM PROCEEDS TO HERE, THERE ARE 2 OR MORE PEAKS */
- cor2max = -1e30;
- energymax = 1.0F;
- imax = 0;
- for (i = 0; i < npeaks; i++)
- {
- /* USE QUADRATIC INTERPOLATION TO FIND THE INTERPOLATED cor[] AND
- energy[] CORRESPONDING TO INTERPOLATED PEAK OF cor2[]/energy[] */
- /* first calculate coefficients of y(x)=ax^2+bx+c; */
- n = idx[i];
- a = 0.5F*(cor[n + 1] + cor[n - 1]) - cor[n];
- b = 0.5F*(cor[n + 1] - cor[n - 1]);
- c = cor[n];
-
- /* INITIALIZE VARIABLES BEFORE SEARCHING FOR INTERPOLATED PEAK */
- im = 0;
- cor2m = cor2[n];
- energym = energy[n];
- eni = energy[n];
-
- /* DERTERMINE WHICH SIDE THE INTERPOLATED PEAK FALLS IN, THEN
- DO THE SEARCH IN THE APPROPRIATE RANGE */
- if (cor2[n + 1]*energy[n - 1] > cor2[n - 1]*energy[n + 1]) /* if right side */
- {
- deltae = (energy[n + 1] - eni)*INVDECF; /*increment for linear interp.*/
- for (k = 0; k < HDECF; k++)
- {
- ci = a*bv16_x2[k] + b*bv16_x[k] + c; /* quadratically interpolated cor[] */
- eni += deltae; /* linearly interpolated energy[] */
- if (ci*ci*energym > cor2m*eni)
- {
- im = k + 1;
- cor2m = ci*ci;
- energym = eni;
- }
- }
- }
- else /* if interpolated peak is on the left side */
- {
- deltae=(energy[n-1] - eni) * INVDECF; /*increment for linear interp.*/
- for (k = 0; k < HDECF; k++)
- {
- ci = a*bv16_x2[k] - b*bv16_x[k] + c;
- eni += deltae;
- if (ci*ci*energym > cor2m*eni)
- {
- im = -k-1;
- cor2m=ci*ci;
- energym=eni;
- }
- }
- }
-
- /* SEARCH DONE; ASSIGN cor2[] AND energy[] CORRESPONDING TO
- INTERPOLATED PEAK */
- plag[i] = (idx[i] + 1)*cpp_scale + im; /* lag of interp. peak */
- cor2i[i] = cor2m; /* interpolated cor2[] of i-th interpolated peak */
- energyi[i] = energym; /* interpolated energy[] of i-th interpolated peak */
-
- /* SEARCH FOR GLOBAL MAXIMUM OF INTERPOLATED cor2[]/energy[] peak */
- if (cor2m*energymax > cor2max*energym)
- {
- imax = i;
- cor2max = cor2m;
- energymax = energym;
- }
- }
- cpp = plag[imax]; /* first candidate for coarse pitch period */
- mplth = plag[npeaks - 1]*1.0/DECF; /* plag[] is Q2 */
-
- /* FIND THE LARGEST PEAK (IF THERE IS ANY) AROUND THE LAST PITCH */
- maxdev = (int) (DEVTH*cpplast); /* maximum deviation from last pitch */
- im = -1;
- cor2m = -1e30;
- energym = 1.0F;
- for (i = 0; i < npeaks; i++) /* loop thru the peaks before the largest peak */
- {
- if (abs(plag[i] - cpplast) <= maxdev)
- {
- if (cor2i[i]*energym > cor2m*energyi[i])
- {
- im = i;
- cor2m = cor2i[i];
- energym = energyi[i];
- }
- }
- } /* if there is no peaks around last pitch, then im is still -1 */
-
- /* NOW SEE IF WE SHOULD PICK ANY ALTERNATICE PEAK */
- /* FIRST, SEARCH FIRST HALF OF PITCH RANGE, SEE IF ANY QUALIFIED PEAK
- HAS LARGE ENOUGH PEAKS AT EVERY MULTIPLE OF ITS LAG */
- i = 0;
- while (plag[i] < 0.5*mplth*DECF)
- {
- /* DETERMINE THE APPROPRIATE THRESHOLD FOR THIS PEAK */
- if (i != im) /* if not around last pitch, */
- {
- threshold = TH1; /* use a higher threshold */
- }
- else /* if around last pitch */
- {
- threshold = TH2; /* use a lower threshold */
- }
-
- /* IF THRESHOLD EXCEEDED, TEST PEAKS AT MULTIPLES OF THIS LAG */
- if (cor2i[i]*energymax > threshold*cor2max*energyi[i])
- {
- flag = 1;
- j = i + 1;
- k = 0;
- s = 2.0F*plag[i]; /* initialize t to twice the current lag */
- while (s <= mplth*DECF) /* loop thru all multiple lag <= mplth */
- {
- mpflag = 0; /* initialize multiple pitch flag to 0 */
- a = MPR1*s; /* multiple pitch range lower bound */
- b = MPR2*s; /* multiple pitch range upper bound */
- while (j < npeaks) /* loop thru peaks with larger lags */
- {
- if (plag[j] > b) /* if range exceeded, */
- {
- break; /* break the innermost while loop */
- } /* if didn't break, then plag[j] <= b */
- if (plag[j] > a) /* if current peak lag within range, */
- {
- /* then check if peak value large enough */
- if (k < 4)
- {
- c = bv16_MPTH[k];
- }
- else
- {
- c = MPTH4;
- }
- if (cor2i[j]*energymax > c*cor2max*energyi[j])
- {
- mpflag = 1; /* if peak large enough, set mpflag, */
- break; /* and break the innermost while loop */
- }
- }
- j++;
- }
- /* if no qualified peak found at this multiple lag */
- if (mpflag == 0)
- {
- flag = 0; /* disqualify the lag plag[i] */
- break; /* and break the while (s<=mplth) loop */
- }
- k++;
- s += plag[i]; /* update s to the next multiple pitch lag */
- }
- /* if there is a qualified peak at every multiple of plag[i], */
- if (flag == 1)
- return plag[i]; /* and return to calling function */
- }
- i++;
- if (i == npeaks)
- break; /* to avoid out of array bound error */
- }
-
- /* IF PROGRAM PROCEEDS TO HERE, NONE OF THE PEAKS WITH LAGS < 0.5*mplth
- QUALIFIES AS THE FINAL PITCH. IN THIS CASE, CHECK IF
- THERE IS ANY PEAK LARGE ENOUGH AROUND LAST PITCH. IF SO, USE ITS
- LAG AS THE FINAL PITCH. */
- if (im != -1) /* if there is at least one peak around last pitch */
- {
- if (im == imax) /* if this peak is also the global maximum, */
- return cpp; /* return first pitch candidate at global max */
- if (im < imax) /* if lag of this peak < lag of global max, */
- {
- if (cor2m*energymax > LPTH2*cor2max*energym)
- {
- if (plag[im] > HMAXPPD*cpp_scale)
- return plag[im];
- for (k = 2; k <= 5; k++) /* check if current candidate pitch */
- {
- s = plag[imax]/(float)(k); /* is a sub-multiple of */
- a = SMDTH1*s; /* the time lag of */
- b = SMDTH2*s; /* the global maximum peak */
- if (plag[im] > a && plag[im] < b) /* if so, */
- return plag[im]; /* and return as pitch */
- }
- }
- }
- else /* if lag of this peak > lag of global max, */
- {
- if (cor2m*energymax > LPTH1*cor2max*energym)
- return plag[im]; /* accept its lag */
- }
- }
-
- /* IF PROGRAM PROCEEDS TO HERE, WE HAVE NO CHOICE BUT TO ACCEPT THE
- LAG OF THE GLOBAL MAXIMUM */
- return cpp;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * decoder.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16decoder.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bv16strct.h"
-#include "bv16externs.h"
-#include "bvcommon.h"
-#include "utility.h"
-#include "bv16postfilter.h"
-#include "bitpack16.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(bv16_decode_state_t *) bv16_decode_init(bv16_decode_state_t *s)
-{
- int i;
-
- if (s == NULL)
- {
- if ((s = (bv16_decode_state_t *) malloc(sizeof(*s))) == NULL)
- return NULL;
- }
- for (i = 0; i < LPCO; i++)
- s->lsplast[i] = (Float)(i + 1)/(Float)(LPCO + 1);
- Fzero(s->stsym, LPCO);
- Fzero(s->ltsym, LTMOFF);
- Fzero(s->xq, XQOFF);
- Fzero(s->lgpm, LGPORDER);
- Fzero(s->lsppm, LPCO*LSPPORDER);
- Fzero(s->prevlg, 2);
- s->pp_last = 50;
- s->cfecount = 0;
- s->idum = 0;
- s->per = 0;
- s->E = 0.0;
- for (i = 0; i < LPCO; i++)
- s->atplc[i + 1] = 0.0;
- s->ngfae = LGPORDER + 1;
- s->lmax = -100.0;
- s->lmin = 100.0;
- s->lmean = 12.5;
- s->x1 = 17.0;
- s->level = 17.0;
- s->nggalgc = Nfdm + 1;
- s->estl_alpha_min = estl_alpha;
- s->ma_a = 0.0;
- s->b_prv[0] = 1.0;
- s->b_prv[1] = 0.0;
- s->pp_prv = 100;
- return s;
-}
-
-BV_DECLARE(int) bv16_decode(bv16_decode_state_t *ds,
- int16_t amp[],
- const uint8_t *in,
- int len)
-{
- Float xq[LXQ]; /* quantized 8 kHz low-band signal */
- Float ltsym[LTMOFF + FRSZ];
- Float a[LPCO + 1];
- Float lspq[LPCO];
- Float bq[3];
- Float gainq;
- Float lgq;
- Float lg_el;
- Float xpf[FRSZ];
- int16_t pp;
- Float bss;
- Float E;
- struct BV16_Bit_Stream bs;
- int ii;
- int outlen;
-
- outlen = 0;
- for (ii = 0; ii < len; ii += 10)
- {
- bv16_bitunpack(&in[ii], &bs);
-
- /* Set frame erasure flags */
- if (ds->cfecount != 0)
- {
- ds->ngfae = 1;
- }
- else
- {
- ds->ngfae++;
- if (ds->ngfae > LGPORDER)
- ds->ngfae = LGPORDER + 1;
- }
-
- /* Reset frame erasure counter */
- ds->cfecount = 0;
-
- /* Decode pitch period */
- pp = bs.ppidx + MINPP;
-
- /* Decode spectral information */
- lspdec(lspq, bs.lspidx, ds->lsppm, ds->lsplast);
- lsp2a(lspq, a);
- Fcopy(ds->lsplast, lspq, LPCO);
-
- /* Decode pitch taps */
- bv16_pp3dec(bs.bqidx, bq);
-
- /* Decode gain */
- gainq = gaindec(&lgq, bs.gidx, ds->lgpm, ds->prevlg, ds->level, &ds->nggalgc, &lg_el);
-
- /* Copy state memory to buffer */
- Fcopy(ltsym, ds->ltsym, LTMOFF);
- Fcopy(xq, ds->xq, XQOFF);
-
- /* Decode the excitation signal including long-term synthesis and codevector scaling */
- excdec_w_LT_synth(ltsym, bs.qvidx, gainq, bq, pp, bv16_cccb, &E);
-
- ds->E = E;
-
- /* LPC synthesis filtering of short-term excitation */
- apfilter(a, LPCO, ltsym + LTMOFF, xq + XQOFF, FRSZ, ds->stsym, 1);
-
- /* Update the remaining state memory */
- ds->pp_last = pp;
- Fcopy(ds->xq, xq + FRSZ, XQOFF);
- Fcopy(ds->ltsym, ltsym + FRSZ, LTMOFF);
- Fcopy(ds->bq_last, bq, 3);
-
- /* Level estimation */
- estlevel(lg_el, &ds->level, &ds->lmax, &ds->lmin, &ds->lmean, &ds->x1, ds->ngfae, ds->nggalgc, &ds->estl_alpha_min);
-
- /* Adaptive postfiltering */
- postfilter(xq, pp, &(ds->ma_a), ds->b_prv, &(ds->pp_prv), xpf);
- F2s(&[outlen], xpf, FRSZ);
-
- Fcopy(ds->atplc, a, LPCO + 1);
-
- bss = bq[0] + bq[1] + bq[2];
- if (bss > 1.0)
- bss = 1.0;
- else if (bss < 0.0)
- bss = 0.0;
- ds->per = 0.5*ds->per + 0.5*bss;
- outlen += FRSZ;
- }
- return outlen;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv16_decode_release(bv16_decode_state_t *s)
-{
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv16_decode_free(bv16_decode_state_t *s)
-{
- free(s);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * encoder.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "utility.h"
-#include "bv16externs.h"
-#include "bv16strct.h"
-#include "bvcommon.h"
-#include "bitpack16.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(bv16_encode_state_t *) bv16_encode_init(bv16_encode_state_t *s)
-{
- int k;
-
- if (s == NULL)
- {
- if ((s = (bv16_encode_state_t *) malloc(sizeof(*s))) == NULL)
- return NULL;
- }
- Fzero(s->lgpm, LGPORDER);
- s->old_A[0] = 1.0;
- Fzero(s->old_A + 1, LPCO);
- for (k = 0; k < LPCO; k++)
- s->lsplast[k] = (Float) (k + 1)/(Float)(LPCO + 1);
- Fzero(s->lsppm, LPCO*LSPPORDER);
- Fzero(s->x, XOFF);
- Fzero(s->xwd, XDOFF);
- Fzero(s->dq, XOFF);
- Fzero(s->stpem, LPCO);
- Fzero(s->stwpm, LPCO);
- Fzero(s->dfm, DFO);
- Fzero(s->stsym, LPCO);
- Fzero(s->stnfz, NSTORDER);
- Fzero(s->stnfp, NSTORDER);
- Fzero(s->ltsym, MAXPP1 + FRSZ);
- Fzero(s->ltnfm, MAXPP1 + FRSZ);
- Fzero(s->hpfzm, HPO);
- Fzero(s->hpfpm, HPO);
- Fzero(s->prevlg, 2);
- s->cpplast = 12*cpp_scale;
- s->lmax = -100.0;
- s->lmin = 100.0;
- s->lmean = 12.5;
- s->x1 = 17.0;
- s->level = 17.0;
- return s;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv16_encode(bv16_encode_state_t *cs,
- uint8_t *out,
- const int16_t amp[],
- int len)
-{
- Float x[LX]; /* Signal buffer */
- Float dq[LX]; /* Quantized int16_t term pred error, low-band */
- Float xw[FRSZ]; /* Perceptually weighted low-band signal */
- Float r[NSTORDER + 1];
- Float a[LPCO + 1];
- Float aw[LPCO + 1];
- Float fsz[1 + NSTORDER];
- Float fsp[1 + NSTORDER];
- Float lsp[LPCO];
- Float lspq[LPCO];
- Float cbs[VDIM*CBSZ];
- Float bq[3];
- Float beta;
- Float gainq;
- Float lg;
- Float ppt;
- Float dummy;
- int pp;
- int cpp;
- int i;
- struct BV16_Bit_Stream bs;
- int ii;
- int outlen;
-
- outlen = 0;
- for (ii = 0; ii < len; ii += FRSZ)
- {
- /* Copy state memory to local memory buffers */
- Fcopy(x, cs->x, XOFF);
- for (i = 0; i < FRSZ; i++)
- x[XOFF + i] = (Float) amp[ii + i];
-
- /* 150Hz high pass filtering */
- azfilter(bv16_hpfb, HPO, x + XOFF, x + XOFF, FRSZ, cs->hpfzm, 1);
- apfilter(bv16_hpfa, HPO, x + XOFF, x + XOFF, FRSZ, cs->hpfpm, 1);
-
- /* Update highpass filtered signal buffer */
- Fcopy(cs->x, x + FRSZ, XOFF);
-
- /* Perform lpc analysis with asymmetrical window */
- Autocor(r, x + LX - WINSZ, bv16_winl, WINSZ, NSTORDER); /* get autocorrelation lags */
- for (i = 0; i <= NSTORDER; i++)
- r[i] *= bv16_sstwin[i]; /* apply spectral smoothing */
- Levinson(r, a, cs->old_A, LPCO); /* Levinson-Durbin recursion */
-
- /* Pole-zero noise feedback filter */
- for (i = 0; i <= NSTORDER; i++)
- {
- fsz[i] = a[i]*bv16_gfsz[i];
- fsp[i] = a[i]*bv16_gfsp[i];
- }
-
- /* Bandwidth expansion */
- for (i = 0; i <= LPCO; i++)
- a[i] *= bwel[i];
-
- /* LPC -> LSP Conversion */
- a2lsp(a, lsp, cs->lsplast);
-
- /* Spectral Quantization */
- lspquan(lspq, bs.lspidx, lsp, cs->lsppm);
-
- lsp2a(lspq, a);
-
- /* Calculate lpc prediction residual */
- Fcopy(dq, cs->dq, XOFF); /* copy dq() state to buffer */
- azfilter(a, LPCO, x + XOFF, dq + XOFF, FRSZ, cs->stpem, 1);
-
- /* Weighted version of lpc filter to generate weighted speech */
- for (i = 0; i <= LPCO; i++)
- aw[i] = STWAL[i]*a[i];
-
- /* Get perceptually weighted speech signal */
- apfilter(aw, LPCO, dq + XOFF, xw, FRSZ, cs->stwpm, 1);
-
- /* Get the coarse version of pitch period using 4:1 decimation */
- cpp = coarsepitch(xw, cs->xwd, cs->dfm, cs->cpplast);
- cs->cpplast = cpp;
-
- /* Refine the pitch period in the neighborhood of coarse pitch period
- also calculate the pitch predictor tap for single-tap predictor */
- pp = refinepitch(dq, cpp, &ppt);
- bs.ppidx = (int16_t) (pp - MINPP);
-
- /* Vector quantize 3 pitch predictor taps with minimum residual energy */
- bs.bqidx = (int16_t) pitchtapquan(dq, pp, bq, &lg);
-
- /* Get coefficients of long-term noise feedback filter */
- if (ppt > 1.0)
- beta = LTWFL;
- else if (ppt < 0.0)
- beta = 0.0;
- else
- beta = LTWFL*ppt;
-
- /* Gain quantization */
- lg = (lg < FRSZ) ? 0 : log(lg/FRSZ)/log(2.0);
- bs.gidx = (int16_t) gainquan(&gainq, lg, cs->lgpm, cs->prevlg, cs->level);
-
- /* Level estimation */
- dummy = estl_alpha;
- estlevel(cs->prevlg[0],
- &cs->level,
- &cs->lmax,
- &cs->lmin,
- &cs->lmean,
- &cs->x1,
- LGPORDER + 1,
- Nfdm + 1,
- &dummy);
-
- /* Scale the scalar quantizer codebook */
- for (i = 0; i < (VDIM*CBSZ); i++)
- cbs[i] = gainq*bv16_cccb[i];
-
- /* Perform noise feedback coding of the excitation signal */
- excquan(bs.qvidx, x + XOFF, a, fsz, fsp, bq, beta, cs->stsym,
- cs->ltsym, cs->ltnfm, cs->stnfz, cs->stnfp, cbs, pp);
-
- /* Update state memory */
- Fcopy(dq + XOFF, cs->ltsym + MAXPP1, FRSZ);
- Fcopy(cs->dq, dq + FRSZ, XOFF);
- i = bv16_bitpack(out, &bs);
- out += i;
- outlen += i;
- }
- return outlen;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv16_encode_release(bv16_encode_state_t *s)
-{
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv16_encode_free(bv16_encode_state_t *s)
-{
- free(s);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16excdec.c - Excitation signal decoding including long-term synthesis.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16excdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bv16externs.h"
-
-void excdec_w_LT_synth(Float *ltsym, /* Long-term synthesis filter memory at decoder */
- int16_t *idx, /* Excitation codebook index array for current subframe */
- Float gainq, /* Quantized linear gains for sub-subframes */
- Float *b, /* Coefficient of 3-tap pitch predictor */
- int16_t pp, /* Pitch period */
- const Float *cb, /* Scalar quantizer codebook */
- Float *EE)
-{
- Float a0;
- Float *fp1;
- Float *fp2;
- const Float *fp3;
- Float gain;
- int m;
- int n;
- int id;
- int16_t *ip;
- Float E;
- Float t;
-
- ip = idx;
- fp1 = <sym[LTMOFF]; /* fp1 points to 1st sample of current subframe */
- fp2 = <sym[LTMOFF - pp + 1];
- E = 0.0;
- for (m = 0; m < FRSZ; m += VDIM) /* loop thru vectors in sub-subframe */
- {
- id = *ip++; /* get codebook index of current vector */
- if (id < CBSZ)
- {
- gain = gainq;
- }
- else
- {
- gain = -gainq;
- id -= CBSZ;
- }
- fp3 = &cb[id*VDIM];
- for (n = 0; n < VDIM; n++)
- {
- a0 = b[0] * *fp2--;
- a0 += b[1] * *fp2--;
- a0 += b[2] * *fp2;/* a0=pitch predicted value of LT syn filt */
- t = *fp3++ * gain;
- E += t*t;
- *fp1++ = a0 + t; /* add scale codevector to a0 */
- fp2 = &fp2[3]; /* prepare fp2 for filtering next sample */
- }
- }
- *EE = E;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16excquan.c : Vector Quantizer for 2-Stage Noise Feedback Coding
- * with long-term predictive noise feedback coding embedded
- * inside the int16_t-term predictive noise feedback coding loop.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <assert.h>
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bvcommon.h"
-#include "bv16externs.h"
-
-void excquan(int16_t *idx, /* quantizer codebook index for uq[] vector */
- Float *s, /* input speech signal vector */
- Float *aq, /* int16_t-term predictor coefficient array */
- Float *fsz, /* int16_t-term noise feedback filter - numerator */
- Float *fsp, /* int16_t-term noise feedback filter - denominator */
- Float *b, /* coefficient of 3-tap pitch predictor */
- Float beta, /* coefficient of 1-tap LT noise feedback filter */
- Float *stsym, /* int16_t-term synthesis filter memory */
- Float *ltsym, /* long-term synthesis filter memory */
- Float *ltnfm, /* long-term noise feedback filter memory */
- Float *stnfz,
- Float *stnfp,
- Float *cb, /* scalar quantizer codebook */
- int pp) /* pitch period */
-{
- Float qzir[VDIM]; /* Zero-input response */
- Float qzsr[VDIM*CBSZ]; /* Negated zero-state response of codebook */
- Float uq[VDIM]; /* Selected codebook vector (incl. sign) */
- Float buf1[LPCO + FRSZ]; /* Buffer for filter memory & signal */
- Float buf2[NSTORDER + FRSZ]; /* Buffer for filter memory */
- Float buf3[NSTORDER + FRSZ]; /* Buffer for filter memory */
- Float buf4[VDIM]; /* Buffer for filter memory */
- Float a0;
- Float a1;
- Float a2;
- Float *fp1;
- Float *fp2;
- Float *fp3;
- Float *fp4;
- Float sign;
- Float *fpa;
- Float *fpb;
- Float ltfv[VDIM];
- Float ppv[VDIM];
- int i;
- int j;
- int m;
- int n;
- int jmin;
- int iv;
- Float buf5[VDIM]; /* Buffer for filter memory */
- Float buf6[VDIM]; /* Buffer for filter memory */
- Float e;
- Float E;
- Float Emin;
- Float *p_ppv;
- Float *p_ltfv;
- Float *p_uq;
- Float v;
-
- /* copy filter memory to beginning part of temporary buffer */
- fp1 = &stsym[LPCO - 1];
- for (i = 0; i < LPCO; i++)
- buf1[i] = *fp1--; /* this buffer is used to avoid memory shifts */
-
- /* copy noise feedback filter memory */
- fp1 = &stnfz[NSTORDER - 1];
- fp2 = &stnfp[NSTORDER - 1];
- for (i = 0; i < NSTORDER; i++)
- {
- buf2[i] = *fp1--;
- buf3[i] = *fp2--;
- }
-
- /************************************************************************************/
- /* Z e r o - S t a t e R e s p o n s e */
- /************************************************************************************/
- /* Calculate negated Zero State Response */
- fp2 = cb; /* fp2 points to start of first codevector */
- fp3 = qzsr; /* fp3 points to start of first zero-state response vector */
-
- /* For each codevector */
- for (j = 0; j < CBSZ; j++)
- {
- /* Calculate the elements of the negated ZSR */
- for (i = 0; i < VDIM; i++)
- {
- /* int16_t-term prediction */
- a0 = 0.0;
- fp1 = buf4;
- for (n = i; n > 0; n--)
- a0 -= *fp1++ * aq[n];
-
- /* Update memory of int16_t-term prediction filter */
- *fp1++ = a0 + *fp2;
-
- /* noise feedback filter */
- a1 = 0.0;
- fpa = buf5;
- fpb = buf6;
- for (n = i; n > 0; n--)
- a1 += ((*fpa++ * fsz[n]) - (*fpb++ * fsp[n]));
-
- /* Update memory of pole section of noise feedback filter */
- *fpb++ = a1;
-
- /* ZSR */
- *fp3 = *fp2++ + a0 + a1;
-
- /* Update memory of zero section of noise feedback filter */
- *fpa++ = -(*fp3++);
- }
- }
-
- /* loop through every vector of the current subframe */
- iv = 0; /* iv = index of the current vector */
- for (m = 0; m < FRSZ; m += VDIM)
- {
- /********************************************************************************/
- /* Z e r o - I n p u t R e s p o n s e */
- /********************************************************************************/
- /* compute pitch-predicted vector, which should be independent of the
- residual vq codevectors being tried if vdim < min. pitch period */
- fp2 = ltfv;
- fp3 = ppv;
- for (n = m; n < m + VDIM; n++)
- {
- fp1 = <sym[MAXPP1 + n - pp + 1];
- a1 = b[0] * *fp1--;
- a1 += b[1] * *fp1--;
- a1 += b[2] * *fp1--;/* a1=pitch predicted vector of LT syn filt */
- *fp3++ = a1; /* write result to ppv[] vector */
-
- *fp2++ = a1 + beta*ltnfm[MAXPP1 + n - pp];
- }
-
- /* compute zero-input response */
- fp2 = ppv;
- fp4 = ltfv;
- fp3 = qzir;
- for (n = m; n < m + VDIM; n++)
- {
- /* perform multiply-adds along the delay line of the predictor */
- fp1 = &buf1[n];
- a0 = 0.;
- for (i = LPCO; i > 0; i--)
- a0 -= *fp1++ * aq[i];
-
- /* perform multiply-adds along the noise feedback filter */
- fpa = &buf2[n];
- fpb = &buf3[n];
- a1 = 0.;
- for (i = NSTORDER; i > 0; i--)
- a1 += ((*fpa++ * fsz[i]) - (*fpb++ * fsp[i]));
- *fpb = a1; /* update output of the noise feedback filter */
-
- a2 = s[n] - (a0 + a1); /* v[n] */
-
- /* a2 now contains v[n]; subtract the sum of the two long-term
- filters to get the zero-input response */
- *fp3++ = a2 - *fp4++; /* q[n] = u[n] during ZIR computation */
-
- /* update int16_t-term noise feedback filter memory */
- a0 += *fp2; /* a0 now conatins the qs[n] */
- *fp1 = a0;
- a2 -= *fp2++; /* a2 now contains qszi[n] */
- *fpa = a2; /* update int16_t-term noise feedback filter memory */
- }
-
- /********************************************************************************/
- /* S e a r c h C o d e b o o k */
- /********************************************************************************/
- /* loop through every codevector of the residual vq codebook */
- /* and find the one that minimizes the energy of q[n] */
- Emin = 1e30;
- fp4 = qzsr;
- sign = 0.0F;
- jmin = 0;
- for (j = 0; j < CBSZ; j++)
- {
- /* Try positive sign */
- fp2 = qzir;
- E = 0.0;
- for (n = 0; n < VDIM; n++)
- {
- e = *fp2++ - *fp4++; // sign impacted by negated ZSR
- E += e*e;
- }
- if (E < Emin)
- {
- jmin = j;
- Emin = E;
- sign = +1.0F;
- }
- /* Try negative sign */
- fp4 -= VDIM;
- fp2 = qzir;
- E = 0.0;
- for (n = 0; n < VDIM; n++)
- {
- e = *fp2++ + *fp4++; // sign impacted by negated ZSR
- E += e*e;
- }
- if (E < Emin)
- {
- jmin = j;
- Emin = E;
- sign = -1.0F;
- }
- }
-
- /* The best codevector has been found; assign vq codebook index */
- if (sign == 1.0F)
- idx[iv++] = (int16_t) jmin;
- else
- idx[iv++] = (int16_t) (jmin + CBSZ); /* MSB of index is sign bit */
-
- fp3 = &cb[jmin*VDIM]; /* fp3 points to start of best codevector */
- for (n = 0; n < VDIM; n++)
- uq[n] = sign * *fp3++;
- /********************************************************************************/
-
-
- /********************************************************************************/
- /* U p d a t e F i l t e r M e m o r y */
- /********************************************************************************/
- fp3 = ltsym + MAXPP1 + m;
- fp4 = ltnfm + MAXPP1 + m;
- p_ltfv = ltfv;
- p_ppv = ppv;
- p_uq = uq;
- for (n = m; n < m + VDIM; n++)
- {
- /* Update memory of long-term synthesis filter */
- *fp3 = *p_ppv++ + *p_uq;
-
- /* int16_t-term prediction */
- a0 = 0.0;
- fp1 = &buf1[n];
- for (i = LPCO; i > 0; i--)
- a0 -= *fp1++ * aq[i];
-
- /* Update memory of int16_t-term synthesis filter */
- *fp1++ = a0 + *fp3;
-
- /* int16_t-term pole-zero noise feedback filter */
- fpa = &buf2[n];
- fpb = &buf3[n];
- a1 = 0.0;
- for (i = NSTORDER; i > 0; i--)
- a1 += ((*fpa++ * fsz[i]) - (*fpb++ * fsp[i]));
-
- /* Update memory of pole section of noise feedback filter */
- *fpb++ = a1;
-
- v = s[n] - a0 - a1;
-
- /* Update memory of zero section of noise feedback filter */
- *fpa++ = v - *fp3++;
-
- /* Update memory of long-term noise feedback filter */
- *fp4++ = v - *p_ltfv++ - *p_uq++;
- }
- }
-
- /* Update short-term predictor and noise feedback filter memories after subframe */
- for (i = 0; i < LPCO; i++)
- stsym[i] = *--fp1;
-
- for (i = 0; i < NSTORDER; i++)
- {
- stnfz[i] = *--fpa;
- stnfp[i] = *--fpb;
- }
-
- /* update long-term predictor and noise feedback filter memories after subframe */
- fp2 = <nfm[FRSZ];
- fp3 = <sym[FRSZ];
- for (i = 0; i < MAXPP1; i++)
- {
- ltnfm[i] = fp2[i];
- ltsym[i] = fp3[i];
- }
-}
+++ /dev/null
-/*****************************************************************************/
-/* BroadVoice(R)16 (BV16) Floating-Point ANSI-C Source Code */
-/* Revision Date: August 19, 2009 */
-/* Version 1.0 */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Copyright 2000-2009 Broadcom Corporation */
-/* */
-/* This software is provided under the GNU Lesser General Public License, */
-/* version 2.1, as published by the Free Software Foundation ("LGPL"). */
-/* This program is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for */
-/* more details. A copy of the LGPL is available at */
-/* http://www.broadcom.com/licenses/LGPLv2.1.php, */
-/* or by writing to the Free Software Foundation, Inc., */
-/* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/*****************************************************************************/
-
-
-/*****************************************************************************
- bv16externs.c : BV16 Fixed-Point externs
-
- $Log: bv16externs.h,v $
- Revision 1.1.1.1 2009/11/19 12:10:48 steveu
- Start from Broadcom's code
-
- Revision 1.1.1.1 2009/11/17 14:06:02 steveu
- start
-
-******************************************************************************/
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bvcommon.h"
-
-/* POINTERS */
-extern const Float bv16_winl[WINSZ];
-extern const Float bv16_sstwin[1 + LPCO];
-extern const Float bv16_gfsz[];
-extern const Float bv16_gfsp[];
-extern const int bv16_idxord[];
-extern const Float bv16_hpfa[];
-extern const Float bv16_hpfb[];
-extern const Float bv16_adf[];
-extern const Float bv16_bdf[];
-extern const Float bv16_x[];
-extern const Float bv16_x2[];
-extern const Float bv16_MPTH[];
-
-/* LSP Quantization */
-extern const Float bv16_lspecb1[LSPECBSZ1*LPCO];
-extern const Float bv16_lspecb2[LSPECBSZ2*LPCO];
-extern const Float bv16_lspmean[LPCO];
-extern const Float bv16_lspp[LSPPORDER*LPCO];
-
-/* Pitch Predictor Codebook */
-extern const Float bv16_pp9cb[PPCBSZ*9];
-
-/* Log-Gain Quantization */
-extern const Float bv16_lgpecb[LGPECBSZ];
-extern const Float bv16_lgp[LGPORDER];
-extern const Float bv16_lgmean;
-
-/* Log-Gain Limitation */
-extern const Float bv16_lgclimit[];
-
-/* Excitation Codebook */
-extern const Float bv16_cccb[CBSZ*VDIM];
-
-extern const Float bv16_lgpecb_nh[];
-
-/* Function Prototypes */
-extern Float estlevel(Float lg,
- Float *level,
- Float *lmax,
- Float *lmin,
- Float *lmean,
- Float *x1,
- int16_t ngfae,
- int16_t nggalgc,
- Float *estl_alpha_min);
-
-extern void excdec_w_LT_synth(
- Float *ltsym, /* long-term synthesis filter memory at decoder*/
- int16_t *idx, /* excitation codebook index array for current subframe */
- Float gainq, /* quantized linear gains for sub-subframes */
- Float *b, /* coefficient of 3-tap pitch predictor */
- int16_t pp, /* pitch period */
- const Float *cb, /* scalar quantizer codebook */
- Float *EE);
-
-extern Float gaindec(Float *lgq,
- int16_t gidx,
- Float *lgpm,
- Float *prevlg, /* previous log gains (last two frames) */
- Float level,
- int16_t *nggalgc,
- Float *lg_el);
-
-extern Float gaindec_fe(Float lgq_last,
- Float *lgpm);
-
-void gainplc(Float E,
- Float *lgeqm,
- Float *lgqm);
-
-extern void lspdec(
- Float *lspq,
- int16_t *lspidx,
- Float *lsppm,
- Float *lspq_last);
-
-extern void lspplc(
- Float *lspq,
- Float *lsppm);
-
-extern int coarsepitch(
- Float *xw,
- Float *xwd,
- Float *dfm,
- int cpplast);
-
-extern int refinepitch(
- Float *x,
- int cpp,
- Float *ppt);
-
-extern int pitchtapquan(
- Float *x,
- int pp,
- Float *b,
- Float *re);
-
-extern void excquan(
- int16_t *idx, /* quantizer codebook index for uq[] vector */
- Float *s, /* input speech signal vector */
- Float *aq, /* short-term predictor coefficient array */
- Float *fsz, /* short-term noise feedback filter - numerator */
- Float *fsp, /* short-term noise feedback filter - denominator */
- Float *b, /* coefficient of 3-tap pitch predictor */
- Float beta, /* coefficient of 1-tap LT noise feedback filter */
- Float *stsym, /* filter memory before filtering of current vector */
- Float *ltsym, /* long-term synthesis filter memory */
- Float *ltnfm, /* long-term noise feedback filter memory */
- Float *stnfz,
- Float *stnfp,
- Float *cb, /* scalar quantizer codebook */
- int pp); /* pitch period (# of 8 kHz samples) */
-
-extern int gainquan(
- Float *gainq,
- Float lg,
- Float *lgpm,
- Float *prevlg,
- Float level);
-
-extern void lspquan(
- Float *lspq,
- int16_t *lspidx,
- Float *lsp,
- Float *lsppm);
-
-extern void bv16_pp3dec(int16_t idx, Float *b);
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16fine_pitch.c - Fine pitch search
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16fine_pitch.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bv16externs.h"
-
-#define FS (XOFF+1) /* Frame Starting index */
-#define FE (XOFF+FRSZ) /* Frame Ending index */
-#define DEV (DECF-1)
-
-int refinepitch(Float *x,
- int cpp,
- Float *ppt)
-{
- Float cor, cor2, energy, cormax, cor2max, energymax;
- Float *fp0, *fp1, *fp2, *fp3;
- int lb, ub, pp, i, j;
-
- if (cpp >= MAXPP)
- cpp = MAXPP - 1;
- if (cpp < MINPP)
- cpp = MINPP;
- lb = cpp - DEV;
- if (lb < MINPP)
- lb = MINPP; /* lower bound of pitch period search range */
- ub = cpp + DEV;
- /* to avoid selecting MAXPP as the refined pitch period */
- if (ub >= MAXPP)
- ub = MAXPP - 1;/* lower bound of pitch period search range */
-
- i = lb; /* start the search from lower bound */
-
- fp0 = x + FS - 1;
- fp1 = x + FS - 1 - i;
- cor = energy = 0.0;
- for (j = 0; j < (FE - FS + 1); j++)
- {
- energy += (*fp1) * (*fp1);
- cor += (*fp0++) * (*fp1++);
- }
-
- pp = i;
- cormax = cor;
- cor2max = cor*cor;
- energymax = energy;
-
- fp0 = x + FE - lb - 1;
- fp1 = x + FS - lb - 2;
- for (i = lb + 1; i <= ub; i++)
- {
- fp2 = x + FS - 1;
- fp3 = x + FS - i - 1;
- cor = 0.;
- for (j = 0; j < (FE - FS + 1); j++)
- cor += (*fp2++)*(*fp3++);
- cor2 = cor*cor;
- energy += ((*fp1)*(*fp1) - (*fp0)*(*fp0));
- fp0--;
- fp1--;
- if ((cor2*energymax) > (cor2max*energy))
- {
- pp = i;
- cormax = cor;
- cor2max = cor2;
- energymax = energy;
- }
- }
-
- *ppt = (energymax != 0) ? (cormax/energymax) : 0.0;
-
- return pp;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16gaindec.c - Gain decoding
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16gaindec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bv16strct.h"
-#include "bv16externs.h"
-
-Float gaindec(Float *lgq,
- int16_t gidx,
- Float *lgpm,
- Float *prevlg, /* previous log gains (last two frames) */
- Float level,
- int16_t *nggalgc,
- Float *lg_el)
-{
- Float gainq;
- Float elg;
- Float lgc;
- Float lgq_nh;
- int i;
- int n;
- int k;
-
- /* calculate estimated log-gain */
- elg = 0;
- for (i = 0; i < LGPORDER; i++)
- elg += bv16_lgp[i]*lgpm[i];
-
- elg += bv16_lgmean;
-
- /* Calculate decoded log-gain */
- *lgq = bv16_lgpecb[gidx] + elg;
-
- /* next higher gain */
- if (gidx < LGPECBSZ - 1)
- {
- lgq_nh = bv16_lgpecb_nh[gidx] + elg;
- if (*lgq < 0.0 && fabs(lgq_nh) < fabs(*lgq))
- {
- /* To avoid thresholding when the enc Q makes it below the threshold */
- *lgq = 0.0;
- }
- }
-
- /* look up from lgclimit() table the maximum log gain change allowed */
- i = (int) ((prevlg[0] - level - LGLB) * 0.5F); /* get column index */
- if (i >= NGB)
- i = NGB - 1;
- else if (i < 0)
- i = 0;
- n = (int) ((prevlg[0] - prevlg[1] - LGCLB) * 0.5F); /* get row index */
- if (n >= NGCB)
- n = NGCB - 1;
- else if (n < 0)
- n = 0;
-
- i = i*NGCB + n;
-
- /* update log-gain predictor memory,
- check whether decoded log-gain exceeds lgclimit */
- for (k = LGPORDER - 1; k > 0; k--)
- lgpm[k] = lgpm[k - 1];
-
- lgc = *lgq - prevlg[0];
- if ((lgc > bv16_lgclimit[i]) && (gidx > 0)) /* if decoded log-gain exceeds limit */
- {
- *lgq = prevlg[0]; /* use the log-gain of previous frame */
- lgpm[0] = *lgq - elg;
- *nggalgc = 0;
- *lg_el = bv16_lgclimit[i] + prevlg[0];
- }
- else
- {
- lgpm[0] = bv16_lgpecb[gidx];
- *nggalgc = *nggalgc + 1;
- if (*nggalgc > Nfdm)
- *nggalgc = Nfdm + 1;
- *lg_el = *lgq;
- }
-
- /* update log-gain predictor memory */
- prevlg[1] = prevlg[0];
- prevlg[0] = *lgq;
-
- /* convert quantized log-gain to linear domain */
- gainq = pow(2.0F, 0.5F * *lgq);
-
- return gainq;
-}
-
-Float gaindec_fe(Float lgq_last,
- Float *lgpm)
-{
- Float elg;
- int i;
-
- /* calculate estimated log-gain */
- elg = 0.0F;
- for (i = 0; i < LGPORDER; i++)
- elg += bv16_lgp[i]*lgpm[i];
-
- /* update log-gain predictor memory */
- for (i = LGPORDER - 1; i > 0; i--)
- lgpm[i] = lgpm[ i- 1];
- lgpm[0] = lgq_last - bv16_lgmean - elg;
-
- return lgq_last;
-}
-
-void gainplc(Float E,
- Float *lgeqm,
- Float *lgqm)
-{
- int k;
- Float pe;
- Float lg;
- Float mrlg;
- Float elg;
- Float lge;
-
- pe = INVFRSZ*E;
-
- if (pe - TMinlg > 0.0)
- lg = log(pe)/log(2.0);
- else
- lg = Minlg;
-
- mrlg = lg - bv16_lgmean;
-
- elg = 0.0;
- for (k = 0; k < GPO; k++)
- elg += bv16_lgp[k]*lgeqm[k];
-
- /* Predicted log-gain error */
- lge = mrlg - elg;
-
- /* Update quantizer memory */
- for (k = GPO - 1; k > 0; k--)
- lgeqm[k] = lgeqm[k - 1];
- lgeqm[0] = lge;
-
- /* Update quantized log-gain memory */
- lgqm[1] = lgqm[0];
- lgqm[0] = lg;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16gainquan.c - Gain quantization based on inter-subframe
- * moving-average prediction of logarithmic gain.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16gainquan.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bv16externs.h"
-
-int gainquan(Float *gainq,
- Float lg,
- Float *lgpm,
- Float *prevlg, /* previous log gains (last two frames) */
- Float level)
-{
- Float elg;
- Float lgpe;
- Float limit;
- Float dmin;
- Float d;
- int i;
- int n;
- int gidx = 0;
- const int *p_gidx;
-
- /* Calculate estimated log-gain */
- elg = bv16_lgmean;
- for (i = 0; i < LGPORDER; i++)
- elg += bv16_lgp[i]*lgpm[i];
-
- /* subtract log-gain mean & estimated log-gain to get prediction error */
- lgpe = lg - elg;
-
- /* scalar quantization of log-gain prediction error */
- dmin = 1e30;
- p_gidx = bv16_idxord;
- for (i = 0; i < LGPECBSZ; i++)
- {
- d = lgpe - bv16_lgpecb[*p_gidx++];
- if (d < 0.0F)
- d = -d;
- if (d < dmin)
- {
- dmin = d;
- gidx = i;
- }
- }
-
- /* calculate quantized log-gain */
- *gainq = bv16_lgpecb[bv16_idxord[gidx]] + elg;
-
- /* look up from lgclimit() table the maximum log gain change allowed */
- i = (int) ((prevlg[0] - level - LGLB)*0.5F); /* get column index */
- if (i >= NGB)
- {
- i = NGB - 1;
- }
- else if (i < 0)
- {
- i = 0;
- }
- n = (int) ((prevlg[0] - prevlg[1] - LGCLB) * 0.5F); /* get row index */
- if (n >= NGCB)
- {
- n = NGCB - 1;
- }
- else if (n < 0)
- {
- n = 0;
- }
- i = i * NGCB + n;
-
- /* check whether quantized log-gain cause a gain change > lgclimit */
- limit = prevlg[0] + bv16_lgclimit[i];/* limit that log-gain shouldn't exceed */
- while ((*gainq > limit) && (gidx > 0)) /* if q log-gain exceeds limit */
- {
- gidx -= 1; /* decrement gain quantizer index by 1 */
- *gainq = bv16_lgpecb[bv16_idxord[gidx]] + elg; /* use next quantizer output*/
- }
-
- /* Get true codebook index */
- gidx = bv16_idxord[gidx];
-
- /* update log-gain predictor memory */
- prevlg[1] = prevlg[0];
- prevlg[0] = *gainq;
- for (i = LGPORDER - 1; i > 0; i--)
- lgpm[i] = lgpm[i - 1];
- lgpm[0] = bv16_lgpecb[gidx];
-
- /* convert quantized log-gain to linear domain */
- *gainq = pow(2.0F, 0.5F * *gainq);
-
- return gidx;
-}
-
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16levelest.c - Signal level estimation
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16levelest.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16externs.h"
-
-Float estlevel(
- Float lg,
- Float *level,
- Float *lmax,
- Float *lmin,
- Float *lmean,
- Float *x1,
- int16_t ngfae,
- int16_t nggalgc,
- Float *estl_alpha_min)
-{
- Float lth;
-
- /* Reset forgetting factor for Lmin to fast decay. This is to avoid Lmin staying at an
- incorrect low level compensating for the possibility it has caused incorrect bit-error
- declaration by making the estimated level too low. */
- if (nggalgc == 0)
- {
- *estl_alpha_min = estl_alpha1;
- }
- /* Reset forgetting factor for Lmin to regular decay if fast decay has taken place for
- the past Nfdm frames. */
- else if (nggalgc == Nfdm+1)
- {
- *estl_alpha_min = estl_alpha;
- }
-
- /* update the new maximum, minimum, & mean of log-gain */
- if (lg > *lmax)
- {
- *lmax=lg; /* use new log-gain as max if it is > max */
- }
- else
- {
- *lmax=*lmean+estl_alpha*(*lmax-*lmean); /* o.w. attenuate toward lmean */
- }
-
- if (lg < *lmin && ngfae == LGPORDER+1 && nggalgc > LGPORDER
- )
- {
- *lmin=lg; /* use new log-gain as min if it is < min */
- /* Reset forgetting factor for Lmin to regular decay in case it has been on
- fast decay since it has now found a new minimum level. */
- *estl_alpha_min = estl_alpha;
- }
- else
- {
- *lmin=*lmean+(*estl_alpha_min)*(*lmin-*lmean); /* o.w. attenuate toward lmean */
- }
-
- *lmean=estl_beta*(*lmean)+estl_beta1*(0.5*(*lmax+*lmin));
-
- /* update estimated input level, by calculating a running average
- (using an exponential window) of log-gains exceeding lmean */
- lth=*lmean+estl_TH*(*lmax-*lmean);
- if (lg > lth)
- {
- *x1=estl_a*(*x1)+estl_a1*lg;
- *level=estl_a*(*level)+estl_a1*(*x1);
- }
-
- return lth;
-
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16lspdec.c - LSP decoding
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16lspdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include "typedef.h"
-#include "bv16externs.h"
-#include "bvcommon.h"
-
-void vqdec(Float *, int16_t, const Float *, int, int);
-
-void lspdec(Float *lspq,
- int16_t *lspidx,
- Float *lsppm,
- Float *lspq_last)
-{
- Float elsp[LPCO];
- Float lspe[LPCO];
- Float lspeq1[LPCO];
- Float lspeq2[LPCO];
- Float a0;
- Float *fp1;
- Float *fp2;
- const Float *fp3;
- int i;
- int k;
- int sign;
- int stbl;
-
- /* calculate estimated (ma-predicted) lsp vector */
- fp3 = bv16_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp3++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* perform first-stage vq codebook decode */
- vqdec(lspeq1, lspidx[0], bv16_lspecb1, LPCO, LSPECBSZ1);
-
- /* perform second-stage vq codebook decode */
- if (lspidx[1] >= LSPECBSZ2)
- {
- sign = -1;
- lspidx[1] = (2*LSPECBSZ2 - 1) - lspidx[1];
- }
- else
- {
- sign = 1;
- }
- vqdec(lspeq2, lspidx[1], bv16_lspecb2, LPCO, LSPECBSZ2);
-
- /* get overall quantizer output vector of the two-stage vq */
- for (i = 0; i < LPCO; i++)
- lspe[i] = lspeq1[i] + sign*lspeq2[i];
-
- /* calculate quantized lsp for stability check */
- for (i = 0; i < STBLDIM; i++)
- lspq[i] = lspe[i] + elsp[i] + bv16_lspmean[i];
-
- /* detect bit-errors based on ordering property of LSP */
- stbl = stblchck(lspq, STBLDIM);
-
- /* replace LSP if bit-errors are detected */
- if (!stbl)
- {
- for (i = 0; i < LPCO; i++)
- {
- lspq[i] = lspq_last[i];
- lspe[i] = lspq[i] - elsp[i] - bv16_lspmean[i];
- }
- }
- else
- {
- /* calculate remaining quantized LSP for error free case */
- for (i = STBLDIM; i < LPCO; i++)
- lspq[i] = lspe[i] + elsp[i] + bv16_lspmean[i];
- }
-
- /* update lsp ma predictor memory */
- i = LPCO * LSPPORDER - 1;
- fp1 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp1-- = *fp2--;
- *fp1-- = lspe[i];
- fp2--;
- }
-
- /* ensure correct ordering of lsp to guarantee lpc filter stability */
- stblz_lsp(lspq, LPCO);
-}
-
-
-void vqdec(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t idx, /* VQ codebook index for the nearest neighbor */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- int j;
- int k;
-
- j = idx * vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = cb[j + k];
-}
-
-
-void lspplc(Float *lspq, Float *lsppm)
-{
- Float elsp[LPCO];
- Float a0;
- Float *fp1;
- const Float *fp2;
- const Float *fp3;
- int i;
- int k;
-
- /* Calculate estimated (ma-predicted) lsp vector */
- fp3 = bv16_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp3++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* Update lsp ma predictor memory */
- i = LPCO*LSPPORDER - 1;
- fp1 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp1-- = *fp2--;
- *fp1-- = lspq[i] - bv16_lspmean[i] - elsp[i];
- fp2--;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16lspquan.c - LSP quantization based on inter-frame moving-average
- * prediction and two-stage VQ.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include "typedef.h"
-#include "bv16externs.h"
-#include "bvcommon.h"
-
-void vqmse(Float *xq,
- int16_t *idx,
- Float *x,
- const Float *cb,
- int vdim,
- int cbsz);
-
-void svqwmse(Float *xq,
- int16_t *idx,
- Float *x,
- Float *xa,
- Float *w,
- const Float *cb,
- int vdim,
- int cbsz);
-
-void lspquan(Float *lspq,
- int16_t *lspidx,
- Float *lsp,
- Float *lsppm)
-{
- Float d[LPCO];
- Float w[LPCO];
- Float elsp[LPCO];
- Float lspe[LPCO];
- Float lspa[LPCO];
- Float lspeq1[LPCO];
- Float lspeq2[LPCO];
- Float a0;
- Float *fp1;
- const Float *fp2;
- const Float *fp3;
- int i;
- int k;
-
- /* Calculate the weights for weighted mean-square error distortion */
- for (i = 0; i < LPCO - 1; i++)
- d[i] = lsp[i + 1] - lsp[i]; /* LSP difference vector */
- w[0] = 1.0F/d[0];
- for (i = 1; i < LPCO - 1; i++)
- {
- if (d[i] < d[i-1])
- w[i] = 1.0F/d[i];
- else
- w[i] = 1.0F/d[i - 1];
- }
- w[LPCO - 1] = 1.0F/d[LPCO - 2];
-
- /* Calculate estimated (ma-predicted) lsp vector */
- fp3 = bv16_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp3++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* Subtract lsp mean value & estimated lsp to get prediction error */
- for (i = 0; i < LPCO; i++)
- lspe[i] = lsp[i] - bv16_lspmean[i] - elsp[i];
-
- /* Perform first-stage mse vq codebook search */
- vqmse(lspeq1, &lspidx[0], lspe, bv16_lspecb1, LPCO, LSPECBSZ1);
-
- /* Calculate quantization error vector of first-stage vq */
- for (i = 0; i < LPCO; i++)
- d[i] = lspe[i] - lspeq1[i];
-
- /* Perform second-stage vq codebook search, signed codebook with wmse */
- for (i = 0; i < LPCO; i++)
- lspa[i] = bv16_lspmean[i] + elsp[i] + lspeq1[i];
- svqwmse(lspeq2, &lspidx[1], d, lspa, w, bv16_lspecb2, LPCO, LSPECBSZ2);
-
- /* Get overall quantizer output vector of the two-stage vq */
- for (i = 0; i < LPCO; i++)
- lspe[i] = lspeq1[i] + lspeq2[i];
-
- /* Update lsp ma predictor memory */
- i = LPCO * LSPPORDER - 1;
- fp1 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp1-- = *fp2--;
- *fp1-- = lspe[i];
- fp2--;
- }
-
- /* Calculate quantized lsp */
- for (i = 0; i < LPCO; i++)
- lspq[i] = lspa[i] + lspeq2[i];
-
- /* Ensure correct ordering of lsp to guarantee lpc filter stability */
- stblz_lsp(lspq, LPCO);
-}
-
-void vqmse(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t *idx, /* VQ codebook index for the nearest neighbor */
- Float *x, /* input vector */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- const Float *fp1;
- Float dmin;
- Float d;
- int j;
- int k;
- Float e;
-
- fp1 = cb;
- dmin = 1.0e30;
- for (j = 0; j < cbsz; j++)
- {
- d = 0.0F;
- for (k = 0; k < vdim; k++)
- {
- e = x[k] - (*fp1++);
- d += e*e;
- }
- if (d < dmin)
- {
- dmin = d;
- *idx = (int16_t) j;
- }
- }
-
- j = *idx * vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = cb[j + k];
-}
-
-/* Signed WMSE VQ */
-void svqwmse(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t *idx, /* VQ codebook index for the nearest neighbor */
- Float *x, /* input vector */
- Float *xa, /* approximation prior to current stage */
- Float *w, /* weights for weighted Mean-Square Error */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- const Float *fp1;
- const Float *fp2;
- Float dmin;
- Float d;
- Float xqc[STBLDIM];
- int j;
- int k;
- int stbl;
- int sign = 1;
- Float e;
-
- fp1 = cb;
- dmin = 1e30;
- *idx = -1;
-
- for (j = 0; j < cbsz; j++)
- {
- /* Try negative sign */
- d = 0.0;
- fp2 = fp1;
-
- for (k = 0; k < vdim; k++)
- {
- e = x[k] + *fp1++;
- d += w[k]*e*e;
- }
-
- /* Check candidate - negative sign */
- if (d < dmin)
- {
- for (k = 0; k < STBLDIM; k++)
- xqc[k] = xa[k] - *fp2++;
- /* Check stability - negative sign */
- stbl = stblchck(xqc, STBLDIM);
- if (stbl > 0)
- {
- dmin = d;
- *idx = (int16_t) j;
- sign = -1;
- }
- }
-
- /* Try positive sign */
- fp1 -= vdim;
- d = 0.0;
- fp2 = fp1;
-
- for (k = 0; k < vdim; k++)
- {
- e = x[k] - *fp1++;
- d += w[k]*e*e;
- }
-
- /* Check candidate - positive sign */
- if (d < dmin)
- {
- for (k = 0; k < STBLDIM; k++)
- xqc[k] = xa[k] + *fp2++;
-
- /* Check stability - positive sign */
- stbl = stblchck(xqc, STBLDIM);
- if (stbl > 0)
- {
- dmin = d;
- *idx = (int16_t) j;
- sign = +1;
- }
- }
- }
-
- if (*idx == -1)
- {
- printf("\nWARNING: Encoder-decoder synchronization lost for clean channel!!!\n");
- *idx = 0;
- sign = 1;
- }
-
- fp1 = cb + (*idx)*vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = (double) sign*(*fp1++);
- if (sign < 0)
- *idx = (2*cbsz - 1) - (*idx);
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16plc.c - Packet loss concealment
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16plc.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bv16strct.h"
-#include "bv16externs.h"
-#include "bvcommon.h"
-
-#include "utility.h"
-#include "bv16postfilter.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(int) bv16_fillin(bv16_decode_state_t *ds, int16_t amp[], int len)
-{
- int n;
- Float r[FRSZ]; /* random excitation */
- Float E;
- Float gain;
- Float scplcg;
- Float xq[LXQ];
- Float s[FRSZ]; /* enhanced short-term excitation */
- Float d[LTMOFF + FRSZ]; /* long-term synthesis filter memory */
- Float *sq;
-
- /************************************************************/
- /* Copy decoder state memory */
- /************************************************************/
- Fcopy(d, ds->ltsym, LTMOFF); /* excitation */
- Fcopy(xq, ds->xq, XQOFF);
-
- sq = xq + XQOFF;
- /************************************************************/
- /* Update counter of consecutive list frames */
- /************************************************************/
- if (ds->cfecount < HoldPLCG + AttnPLCG - 1)
- ds->cfecount++;
- ds->ngfae = 0;
-
- /************************************************************/
- /* Generate Unscaled Excitation */
- /************************************************************/
- E = 0.0;
- for (n = 0; n < FRSZ; n++)
- {
- ds->idum = 1664525L*ds->idum + 1013904223L;
- r[n] = (Float)(ds->idum >> 16) - 32767.0;
- E += r[n]*r[n];
- }
-
- /************************************************************/
- /* Calculate Scaling */
- /************************************************************/
- scplcg = ScPLCG_a + ScPLCG_b*ds->per;
- if (scplcg > ScPLCGmax)
- scplcg = ScPLCGmax;
- else if (scplcg < ScPLCGmin)
- scplcg = ScPLCGmin;
- gain = scplcg * sqrt(ds->E/E);
-
- /************************************************************/
- /* Long-term synthesis filter */
- /************************************************************/
- for (n = 0; n < FRSZ; n++)
- {
- d[LTMOFF+n] = gain*r[n];
- d[LTMOFF+n] += ds->bq_last[0]*d[LTMOFF + n-ds->pp_last + 1];
- d[LTMOFF+n] += ds->bq_last[1]*d[LTMOFF + n-ds->pp_last];
- d[LTMOFF+n] += ds->bq_last[2]*d[LTMOFF + n-ds->pp_last - 1];
- }
-
- /************************************************************/
- /* Short-term synthesis filter */
- /************************************************************/
- apfilter(ds->atplc, LPCO, d+LTMOFF, sq, FRSZ, ds->stsym, 1);
-
- /************************************************************/
- /* Save decoder state memory */
- /************************************************************/
- Fcopy(ds->ltsym, d+FRSZ, LTMOFF); /* excitation */
-
- /************************************************************/
- /* Update memory of predictive LSP quantizer */
- /************************************************************/
- lspplc(ds->lsplast, ds->lsppm);
-
- /************************************************************/
- /* Update memory of predictive gain quantizer */
- /************************************************************/
- gainplc(ds->E, ds->lgpm, ds->prevlg);
-
- /************************************************************/
- /* Signal level estimation */
- /************************************************************/
- estlevel(ds->prevlg[0], &ds->level, &ds->lmax, &ds->lmin, &ds->lmean,
- &ds->x1, ds->ngfae, ds->nggalgc, &ds->estl_alpha_min);
-
- /************************************************************/
- /* Attenuation during long packet losses */
- /************************************************************/
- if (ds->cfecount >= HoldPLCG)
- {
- gain = 1.0 - AttnFacPLCG*(Float)(ds->cfecount - (HoldPLCG - 1));
- ds->bq_last[0] = gain*ds->bq_last[0];
- ds->bq_last[1] = gain*ds->bq_last[1];
- ds->bq_last[2] = gain*ds->bq_last[2];
- ds->E = (gain*gain)*ds->E;
- }
-
- /************************************************************/
- /* Adaptive Postfiltering */
- /************************************************************/
- postfilter(xq, ds->pp_last, &(ds->ma_a), ds->b_prv, &(ds->pp_prv), s);
- F2s(amp, s, FRSZ);
- Fcopy(ds->xq, xq + FRSZ, XQOFF);
-
- return FRSZ;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * postfilt.c - Pitch postfilter
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16postfilter.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bv16strct.h"
-#include "bv16postfilter.h"
-
-/* Standard Long-Term Postfilter */
-
-void postfilter(Float *s, /* input : quantized speech signal */
- int pp, /* input : pitch period */
- Float *ma_a,
- Float *b_prv,
- int *pp_prv,
- Float *e) /* output: enhanced speech signal */
-{
- int n;
- Float gain;
- Float w1;
- Float w2;
- int ppt;
- int pptmin;
- int pptmax;
- int ppnew;
- Float Rx0x1Sq;
- Float Rx0Rx1;
- Float Rx0x1Sqmax;
- Float Rx0Rx1max;
- Float Rx0x1max;
- Float bi0;
- Float bi1c;
- Float bi1p;
- Float Rx0x1;
- Float Rx0;
- Float Rx1;
- Float Rxf;
- Float a;
- Float b[2];
-
- /********************************************************************/
- /* pitch search around decoded pitch */
- /********************************************************************/
- pptmin = pp - DPPQNS;
- pptmax = pp + DPPQNS;
- if (pptmin < MINPP)
- {
- pptmin = MINPP;
- pptmax = pptmin + 2 * DPPQNS;
- }
- else if (pptmax > MAXPP)
- {
- pptmax = MAXPP;
- pptmin = pptmax - 2 * DPPQNS;
- }
- Rx0 = 0.0;
- Rx1 = 0.0;
- Rx0x1 = 0.0;
- for (n = 0; n < FRSZ; n++)
- {
- Rx0 += s[XQOFF + n]*s[XQOFF + n];
- Rx1 += s[XQOFF + n - pptmin]*s[XQOFF + n - pptmin];
- Rx0x1 += s[XQOFF + n]*s[XQOFF + n - pptmin];
- }
- ppnew = pptmin;
- Rx0Rx1max = Rx0*Rx1;
- Rx0x1max = Rx0x1;
- Rx0x1Sqmax = Rx0x1*Rx0x1;
- for (ppt = pptmin + 1; ppt <= pptmax; ppt++)
- {
- Rx1 -= s[XQOFF + FRSZ - ppt]*s[XQOFF + FRSZ - ppt];
- Rx1 += s[XQOFF - ppt]*s[XQOFF - ppt];
- Rx0Rx1 = Rx0*Rx1;
- Rx0x1 = 0.0;
- for (n = 0; n < FRSZ; n++)
- Rx0x1 += s[XQOFF + n]*s[XQOFF + n - ppt];
- Rx0x1Sq = Rx0x1 * Rx0x1;
- if (Rx0x1Sq*Rx0Rx1max > Rx0x1Sqmax*Rx0Rx1)
- {
- ppnew = ppt;
- Rx0x1Sqmax = Rx0x1Sq;
- Rx0x1max = Rx0x1;
- Rx0Rx1max = Rx0Rx1;
- }
- }
-
- /******************************************************************/
- /* calculate all-zero pitch postfilter */
- /******************************************************************/
- if (Rx0Rx1max == 0.0 || Rx0x1max <= 0.0)
- a = 0.0;
- else
- a = Rx0x1max/sqrt(Rx0Rx1max);
- *ma_a = 0.75*(*ma_a) + 0.25*a;
- if (*ma_a < ATHLD1 && a < ATHLD2)
- a = 0.0;
- b[1] = ScLTPF*a;
-
- /******************************************************************/
- /* calculate normalization energies */
- /******************************************************************/
- Rxf = 0.0;
- for (n = 0; n < FRSZ; n++)
- {
- e[n] = s[XQOFF + n] + b[1]*s[XQOFF + n - ppnew];
- Rxf += e[n]*e[n];
- }
- if (Rx0 == 0.0 || Rxf == 0.0)
- gain = 1.0;
- else
- gain = sqrt(Rx0/Rxf);
-
- /******************************************************************/
- /* interpolate from the previous postfilter to the current */
- /******************************************************************/
- b[0] = gain;
- b[1] = gain*b[1];
- for (n = 0; n < NINT; n++)
- {
- w1 = ((Float) (n + 1))/((Float) (NINT + 1));
- w2 = 1.0 - w1;
-
- /* interpolate between two filters */
- bi0 = w1*b[0] + w2*b_prv[0];
- bi1c = w1*b[1];
- bi1p = w2*b_prv[1];
- e[n] = bi1c*s[XQOFF + n - ppnew] + bi1p*s[XQOFF + n - (*pp_prv)] + bi0*s[XQOFF + n];
-
- }
- for (n = NINT; n < FRSZ; n++)
- e[n] = gain*e[n];
-
- /******************************************************************/
- /* save state memory */
- /******************************************************************/
- b_prv[0] = b[0];
- b_prv[1] = b[1];
- *pp_prv = ppnew;
-}
+++ /dev/null
-/*****************************************************************************/
-/* BroadVoice(R)16 (BV16) Floating-Point ANSI-C Source Code */
-/* Revision Date: August 19, 2009 */
-/* Version 1.0 */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Copyright 2000-2009 Broadcom Corporation */
-/* */
-/* This software is provided under the GNU Lesser General Public License, */
-/* version 2.1, as published by the Free Software Foundation ("LGPL"). */
-/* This program is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for */
-/* more details. A copy of the LGPL is available at */
-/* http://www.broadcom.com/licenses/LGPLv2.1.php, */
-/* or by writing to the Free Software Foundation, Inc., */
-/* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/*****************************************************************************/
-
-
-/*****************************************************************************
- postfilt.h : BV16 Post Filter
-
- $Log: bv16postfilter.h,v $
- Revision 1.1.1.1 2009/11/19 12:10:48 steveu
- Start from Broadcom's code
-
- Revision 1.1.1.1 2009/11/17 14:06:02 steveu
- start
-
-******************************************************************************/
-
-void postfilter(Float *s, /* input : quantized speech signal */
- int pp, /* input : pitch period */
- Float *ma_a,
- Float *b_prv,
- int *pp_prv,
- Float *e); /* output: enhanced speech signal */
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16ptdec.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16ptdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16externs.h"
-
-void bv16_pp3dec(int16_t idx, Float *b)
-{
- const Float *fp;
- int i;
-
- fp = bv16_pp9cb + idx*9;
- for (i = 0; i < 3; i++)
- b[i] = fp[i]*0.5;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * ptquan.c - Pitch quantizer
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16ptquan.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bv16externs.h"
-
-int pitchtapquan(
- Float *x,
- int pp,
- Float *b,
- Float *re)
-{
- Float p[9], t, s0, s1, s2, cormax, cor;
- Float t0, t1, t2;
- Float *xt;
- Float *fp0;
- Float *fp1;
- const Float *fp2;
- int ppm2, qidx=0, i, j;
-
- ppm2 = pp - 2;
- xt = x + XOFF;
-
- for (i = 0; i < 3; i++)
- {
- fp0 = xt;
- fp1 = x + XOFF - ppm2 - i - 1;
- t = 0;
- for (j = 0; j < FRSZ; j++)
- t += (*fp0++) * (*fp1++);
- p[i] = t;
- }
-
- fp0 = x+XOFF-ppm2-3;
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- t0 = p[8] = s0*s0;
- t1 = p[4] = s0*s1;
- p[5] = s0*s2;
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- t2 = s0*s0;
- p[8] += t2;
- p[4] += s0*s1;
- p[5] += s0*s2;
- for (i = 0; i < (FRSZ - 2); i++)
- {
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- p[8] += s0*s0;
- p[4] += s0*s1;
- p[5] += s0*s2;
- }
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- p[7] = p[8] + (s0*s0) - t0;
- p[3] = p[4] + (s0*s1) - t1;
- p[6] = p[7] + (s1*s1) - t2;
-
- cormax = -1.0e30;
- fp2 = bv16_pp9cb;
- for (i = 0; i < PPCBSZ; i++)
- {
- cor = 0.0;
- fp1 = p;
- for (j = 0; j < 9; j++)
- cor += (*fp2++)*(*fp1++);
- if (cor > cormax)
- {
- cormax = cor;
- qidx = i;
- }
- }
-
- fp2 = bv16_pp9cb + qidx*9;
- for (i = 0; i < 3; i++)
- b[i] = fp2[i]*0.5;
-
- fp0 = x + XOFF;
- fp1 = x + XOFF - ppm2 - 1;
- t = 0;
- for (i = 0; i < FRSZ; i++)
- {
- t0 = *fp0++ - b[0]*fp1[0] - b[1]*fp1[-1] - b[2]*fp1[-2];
- fp1++;
- t += t0*t0;
- }
- *re = t;
- return qidx;
-}
-
+++ /dev/null
-/*****************************************************************************/
-/* BroadVoice(R)16 (BV16) Floating-Point ANSI-C Source Code */
-/* Revision Date: August 19, 2009 */
-/* Version 1.0 */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Copyright 2000-2009 Broadcom Corporation */
-/* */
-/* This software is provided under the GNU Lesser General Public License, */
-/* version 2.1, as published by the Free Software Foundation ("LGPL"). */
-/* This program is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for */
-/* more details. A copy of the LGPL is available at */
-/* http://www.broadcom.com/licenses/LGPLv2.1.php, */
-/* or by writing to the Free Software Foundation, Inc., */
-/* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/*****************************************************************************/
-
-
-/*****************************************************************************
- bv16strct.h : BV16 data structures
-
- $Log: bv16strct.h,v $
- Revision 1.1.1.1 2009/11/19 12:10:48 steveu
- Start from Broadcom's code
-
- Revision 1.1.1.1 2009/11/17 14:06:02 steveu
- start
-
-******************************************************************************/
-
-#include "typedef.h"
-#include "bv16cnst.h"
-#include "bvcommon.h"
-
-#if !defined(_BV16STRCT_H_)
-#define _BV16STRCT_H_
-
-struct bv16_decode_state_s
-{
- Float stsym[LPCO];
- Float ltsym[LTMOFF];
- Float lsppm[LPCO*LSPPORDER];
- Float lgpm[LGPORDER];
- Float lsplast[LPCO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int16_t pp_last;
- int16_t ngfae;
- Float bq_last[3];
- int16_t nggalgc;
- Float estl_alpha_min;
- int16_t cfecount;
- uint32_t idum;
- Float E;
- Float per;
- Float atplc[LPCO + 1];
- Float ma_a;
- Float b_prv[2];
- Float xq[XQOFF];
- int pp_prv;
-};
-
-struct bv16_encode_state_s
-{
- Float x[XOFF]; /* 8kHz down-sampled signal memory */
- Float xwd[XDOFF]; /* memory of DECF:1 decimated version of xw() */
- Float dq[XOFF]; /* quantized short-term pred error */
- Float dfm[DFO]; /* decimated xwd() filter memory */
- Float stpem[LPCO]; /* ST Pred. Error filter memory */
- Float stwpm[LPCO]; /* ST Weighting all-Pole Memory */
- Float stsym[LPCO]; /* ST Synthesis filter Memory */
- Float ltsym[MAXPP1 + FRSZ]; /* long-term synthesis filter memory */
- Float ltnfm[MAXPP1 + FRSZ]; /* long-term noise feedback filter memory */
- Float lsplast[LPCO];
- Float lsppm[LPCO*LSPPORDER]; /* LSP Predictor Memory */
- Float lgpm[LGPORDER];
- Float hpfzm[HPO];
- Float hpfpm[HPO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int cpplast; /* pitch period pf the previous frame */
- Float old_A[LPCO + 1];
- Float stnfz[NSTORDER];
- Float stnfp[NSTORDER];
-};
-
-struct BV16_Bit_Stream
-{
- int16_t lspidx[2];
- int16_t ppidx;
- int16_t bqidx;
- int16_t gidx;
- int16_t qvidx[FRSZ/VDIM];
-};
-
-#endif /* BV16STRCT_H */
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * tables.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16tables.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv16externs.h"
-
-const Float bv16_lgclimit[] =
-{
- 0.00000, 0.79102, 0.55664, 14.26563, 14.08398, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- 0.00000, 13.85156, 1.73047, 13.76758, 13.92773, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- -1.96094, 8.91211, 7.83594, 14.09961, 13.77930, 0.91016, -2.41406, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- -1.96094, 8.66992, 13.53125, 14.09570, 13.95117, 12.97461, 2.14648, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- -1.47266, 9.29297, 13.92578, 13.89063, 13.87891, 13.93750, 12.20703, -4.99023, 0.00000, 0.00000, 0.00000, 0.00000,
- 4.60547, 12.33398, 14.09180, 14.14258, 14.16016, 13.48633, 12.39063, 2.01172, 0.00000, 0.00000, 0.00000, 0.00000,
- 10.66016, 10.72656, 13.83203, 13.68359, 13.93945, 13.77930, 13.09570, 10.17578, -0.15430, -2.92578, 0.00000, 0.00000,
- 6.59375, 10.19531, 13.34375, 12.87305, 13.36719, 13.36328, 13.12891, 12.66797, 0.72852, 0.30078, 4.87109, 7.85742,
- 2.64063, 9.52539, 9.85547, 10.35938, 10.63086, 12.92383, 12.70508, 12.65234, 8.96680, 1.32422, 4.86719, 7.81445,
- 6.24805, 8.26758, 8.78125, 9.08594, 9.03125, 10.34180, 11.21875, 11.07227, 8.32617, 8.41992, 7.70313, 7.86133,
- 6.18945, 6.71875, 7.98438, 7.37109, 7.50391, 7.69922, 9.09180, 8.73633, 6.91211, 7.68750, 7.22266, 3.50977,
- 4.40430, 5.46484, 6.17773, 6.04492, 6.14063, 6.84766, 5.89063, 5.43750, 4.67188, 5.58008, 7.70898, 7.46094,
- 3.39648, 5.41602, 5.40039, 4.77734, 4.59375, 4.63477, 6.43359, 3.54102, 4.37891, 3.70117, 6.64844, 4.74414,
- 0.00000, 3.50000, 4.60352, 3.92188, 3.68164, 4.21680, 4.18750, 3.32617, 3.38867, 2.32813, 5.15039, 1.76563,
- 0.00000, 1.10156, 3.04492, 3.18945, 2.60156, 2.43164, 2.91016, 1.48438, 0.43555, 0.44336, 1.50391, 1.75391,
- 0.00000, -0.11914, -1.13672, 1.41602, 1.49609, 0.72852, 0.60352, -0.35352, -0.98242, -1.15039, -1.99414, 0.00000,
- 0.00000, 0.00000, 0.00000, 1.36861, 1.18557, -0.36990, -4.01682, -2.21214, 0.00000, -1.33077, -3.04360, 0.00000,
- 0.00000, 0.00000, 0.00000, 0.52843, 0.43190, 0.00000, 0.00000, -2.86324, 0.00000, 0.00000, 0.00000, 0.00000
-};
-
-const Float bv16_lspecb1[] =
-{
- -0.0059814, -0.0075378, -0.0113449, -0.0002670, -0.0103607, -0.0055771, 0.0091400, -0.0032730,
- -0.0053177, -0.0019302, 0.0037079, -0.0106049, -0.0021820, -0.0003815, 0.0100098, 0.0037460,
- -0.0009308, -0.0001831, -0.0040741, -0.0110474, -0.0238800, -0.0042191, 0.0014114, -0.0061035,
- 0.0031128, 0.0013046, 0.0076218, -0.0042191, -0.0073776, -0.0045013, -0.0051651, 0.0158539,
- -0.0023270, -0.0014496, -0.0036392, 0.0071030, 0.0026093, -0.0172119, -0.0009613, -0.0059662,
- -0.0081329, -0.0077362, 0.0091782, 0.0048294, 0.0101395, 0.0007172, 0.0030212, 0.0013885,
- 0.0006104, 0.0040817, -0.0010300, -0.0081787, -0.0126343, -0.0218582, -0.0007629, -0.0092163,
- 0.0090561, 0.0081329, 0.0096436, 0.0009613, 0.0011063, -0.0042572, 0.0038910, -0.0034485,
- -0.0044785, -0.0070572, -0.0158615, 0.0019913, 0.0087204, 0.0005951, 0.0022583, -0.0074539,
- 0.0042114, 0.0052719, -0.0061417, 0.0057449, 0.0057068, -0.0022202, 0.0133896, 0.0077362,
- -0.0039902, -0.0037308, -0.0103226, -0.0064774, -0.0049667, -0.0043411, -0.0066986, -0.0186844,
- 0.0035553, 0.0042877, 0.0199356, 0.0078812, 0.0031281, -0.0082245, -0.0142746, -0.0015106,
- 0.0032806, 0.0013351, -0.0004501, 0.0149384, 0.0076141, 0.0033264, -0.0038376, -0.0110245,
- 0.0010910, 0.0050964, 0.0128632, 0.0091553, 0.0088348, 0.0151443, 0.0096664, 0.0043411,
- -0.0047226, -0.0046234, 0.0096664, 0.0042496, -0.0064697, -0.0039902, -0.0056915, -0.0162430,
- -0.0000229, 0.0000000, 0.0265427, 0.0128021, 0.0049896, 0.0054398, 0.0008698, -0.0047150,
- -0.0074081, -0.0089569, -0.0175552, -0.0174561, -0.0057831, -0.0148010, 0.0076141, 0.0079803,
- -0.0019760, -0.0027161, -0.0077667, -0.0104675, -0.0090866, -0.0027542, 0.0306244, 0.0160751,
- -0.0044403, -0.0059509, -0.0128784, -0.0197525, -0.0304413, -0.0161133, 0.0037613, 0.0098114,
- -0.0001907, 0.0020599, 0.0160294, 0.0045853, -0.0091476, -0.0058670, 0.0226593, 0.0125122,
- -0.0057526, -0.0060425, -0.0029755, -0.0092010, 0.0054550, -0.0046692, -0.0137711, -0.0035477,
- -0.0022125, -0.0046158, -0.0083923, 0.0117264, 0.0248260, 0.0126343, 0.0082626, 0.0001907,
- -0.0016632, 0.0000076, -0.0051346, -0.0084305, -0.0128784, -0.0196915, -0.0223007, -0.0168076,
- 0.0046158, 0.0114517, 0.0148926, 0.0092087, 0.0188599, -0.0058212, 0.0079727, 0.0046082,
- -0.0006714, -0.0006714, -0.0119095, -0.0186539, 0.0112305, -0.0053024, 0.0070267, -0.0016022,
- 0.0114136, 0.0131760, 0.0045929, -0.0096207, 0.0138092, 0.0076675, 0.0137863, 0.0142441,
- 0.0089951, 0.0114975, -0.0246811, -0.0092545, -0.0067444, -0.0065155, -0.0055161, -0.0072098,
- 0.0116730, 0.0303574, 0.0396042, 0.0238495, 0.0113144, 0.0006714, -0.0080719, 0.0067749,
- 0.0061035, 0.0072174, 0.0028000, -0.0075989, 0.0156174, 0.0043716, -0.0073624, -0.0141525,
- 0.0069580, 0.0107727, 0.0140839, 0.0036621, 0.0325394, 0.0216980, 0.0056152, 0.0061188,
- 0.0065002, 0.0056458, 0.0067139, 0.0007935, 0.0008087, -0.0099030, -0.0182724, -0.0288086,
- 0.0147324, 0.0161285, 0.0276260, 0.0238800, 0.0214386, 0.0131302, 0.0047607, -0.0047836,
- -0.0083008, -0.0135345, -0.0167313, -0.0003433, -0.0090408, -0.0008469, -0.0017624, 0.0161667,
- -0.0031662, -0.0056992, -0.0011444, 0.0063324, -0.0090790, 0.0121918, 0.0022354, 0.0048523,
- -0.0050354, -0.0077744, -0.0103531, -0.0145035, -0.0191193, -0.0035934, -0.0159454, 0.0042343,
- 0.0078888, 0.0054169, 0.0038223, -0.0016632, -0.0109177, -0.0039520, -0.0170212, -0.0018616,
- -0.0038910, -0.0082321, -0.0112686, 0.0100861, -0.0043945, -0.0049820, -0.0151062, 0.0018616,
- -0.0030060, -0.0051117, 0.0013962, 0.0250015, -0.0003738, -0.0045395, 0.0120697, 0.0071411,
- -0.0017471, -0.0031509, -0.0094299, -0.0154495, -0.0188980, -0.0264816, -0.0149384, 0.0071030,
- 0.0070190, 0.0111084, 0.0142746, 0.0070648, -0.0085373, -0.0219345, 0.0042267, 0.0029221,
- -0.0084000, -0.0120621, -0.0198364, -0.0063629, 0.0110550, 0.0045700, 0.0082169, 0.0152664,
- -0.0012970, -0.0023575, 0.0041809, 0.0055084, 0.0066299, 0.0041122, 0.0141602, 0.0310822,
- -0.0008011, 0.0027390, -0.0027847, -0.0278168, -0.0051651, -0.0065536, -0.0094833, -0.0070724,
- 0.0257950, 0.0224075, 0.0190277, 0.0123291, 0.0018692, -0.0124512, -0.0261765, -0.0093994,
- 0.0024414, 0.0011520, -0.0020218, 0.0018616, 0.0149918, 0.0050735, -0.0103073, 0.0105972,
- 0.0045166, 0.0086136, 0.0284348, 0.0160980, 0.0127563, 0.0124054, 0.0261307, 0.0190277,
- -0.0064392, -0.0072556, 0.0081406, 0.0079956, -0.0225372, -0.0159760, -0.0059891, -0.0012741,
- -0.0008316, 0.0018845, 0.0423431, 0.0217514, 0.0008698, -0.0041199, 0.0085602, 0.0102158,
- -0.0227127, -0.0309753, -0.0029831, -0.0045471, -0.0044708, -0.0003662, 0.0006409, 0.0024567,
- 0.0003204, -0.0007782, 0.0007553, -0.0061646, -0.0099792, 0.0272598, 0.0179977, 0.0155029,
- -0.0022583, -0.0034180, -0.0074692, -0.0160370, -0.0401917, -0.0083847, -0.0189896, -0.0101929,
- 0.0022202, 0.0045013, 0.0243607, 0.0083466, -0.0246048, 0.0046997, -0.0021439, 0.0023041,
- -0.0029678, -0.0052338, 0.0025406, 0.0110321, 0.0029221, -0.0056763, -0.0311356, -0.0081024,
- 0.0019226, 0.0010529, 0.0046844, 0.0322113, 0.0202255, 0.0150070, 0.0069733, 0.0021973,
- 0.0002441, 0.0029984, 0.0021286, 0.0054932, -0.0150223, -0.0383453, -0.0137787, -0.0153046,
- 0.0024185, 0.0418625, 0.0316925, 0.0256805, 0.0141296, 0.0077591, 0.0154495, 0.0091095,
- -0.0076904, -0.0126266, -0.0251846, -0.0261307, 0.0040588, 0.0132675, 0.0196609, 0.0226059,
- 0.0066910, 0.0088730, 0.0157623, 0.0102997, 0.0193558, 0.0230255, 0.0201874, 0.0446930,
- -0.0050049, -0.0121231, -0.0460205, -0.0182266, -0.0260468, -0.0259018, -0.0209122, -0.0175323,
- 0.0057602, 0.0139847, 0.0579147, 0.0351944, -0.0040665, -0.0186386, -0.0284729, -0.0171432,
- 0.0025711, 0.0053101, 0.0119553, 0.0070419, 0.0170135, 0.0213165, -0.0242462, -0.0078735,
- 0.0176849, 0.0341110, 0.0360947, 0.0325394, 0.0362167, 0.0317612, 0.0233765, 0.0178757,
- 0.0018082, 0.0054245, 0.0223770, 0.0096283, -0.0214233, -0.0161209, -0.0263824, -0.0237961,
- 0.0040436, 0.0186539, 0.0682678, 0.0692520, 0.0290146, 0.0145493, 0.0086975, 0.0001144,
- -0.0073166, -0.0097580, -0.0165558, -0.0164719, -0.0054932, 0.0104904, 0.0003052, -0.0026093,
- 0.0012283, 0.0010452, -0.0012741, -0.0147095, 0.0082169, 0.0179520, 0.0043182, 0.0050583,
- -0.0025101, -0.0054626, -0.0107498, -0.0207672, -0.0277328, 0.0124207, 0.0075836, 0.0025177,
- 0.0082932, 0.0077057, 0.0032272, -0.0084229, -0.0114975, 0.0151215, 0.0005341, -0.0019226,
- -0.0067825, -0.0089111, -0.0184479, 0.0017242, -0.0064545, -0.0217209, -0.0024490, -0.0019455,
- -0.0006104, -0.0049820, 0.0121994, 0.0176392, 0.0069962, 0.0066605, -0.0074310, 0.0169830,
- -0.0000534, 0.0012283, -0.0020981, -0.0062180, -0.0171661, -0.0240707, 0.0151367, 0.0081100,
- 0.0176697, 0.0149918, 0.0140686, 0.0097809, 0.0034790, 0.0105209, 0.0014572, 0.0027390,
- -0.0064240, -0.0083618, -0.0160828, -0.0105820, 0.0212021, 0.0123367, -0.0018921, -0.0081329,
- -0.0053406, -0.0044250, -0.0000076, 0.0004807, 0.0158310, 0.0097198, 0.0251846, 0.0064545,
- -0.0037766, -0.0038528, -0.0154724, -0.0229874, 0.0008011, 0.0042114, -0.0171432, -0.0225220,
- 0.0014191, 0.0062637, 0.0232925, 0.0124817, 0.0117035, 0.0014648, -0.0106812, -0.0250015,
- -0.0061264, -0.0116348, -0.0150681, 0.0248032, 0.0146561, 0.0051270, -0.0047836, -0.0073013,
- -0.0086670, -0.0107346, 0.0193634, 0.0210648, 0.0206528, 0.0170822, 0.0147781, 0.0120239,
- -0.0034256, -0.0035858, -0.0015869, -0.0019073, -0.0142975, 0.0131302, -0.0151138, -0.0197067,
- -0.0020447, 0.0006714, 0.0414658, 0.0249710, 0.0197296, 0.0175705, -0.0016098, 0.0003967,
- -0.0080795, -0.0119095, -0.0216980, -0.0280533, -0.0105896, -0.0002365, -0.0009079, 0.0161667,
- 0.0123291, 0.0056229, -0.0075455, -0.0211258, -0.0128326, 0.0001068, 0.0061417, 0.0149689,
- -0.0029373, -0.0080795, -0.0181351, -0.0304947, -0.0477219, 0.0010223, 0.0070724, 0.0156937,
- 0.0141983, 0.0176315, 0.0056763, -0.0044098, -0.0164795, 0.0085678, 0.0159912, 0.0168228,
- -0.0061722, -0.0097046, -0.0205307, -0.0133286, 0.0058441, -0.0068512, -0.0228195, 0.0043335,
- -0.0051880, -0.0111084, -0.0178680, 0.0235138, 0.0195084, 0.0178680, 0.0160370, 0.0151443,
- 0.0019531, -0.0010757, -0.0006256, -0.0082626, -0.0146942, -0.0227509, -0.0364304, 0.0097427,
- 0.0283661, 0.0346222, 0.0130768, 0.0101700, 0.0174866, 0.0197144, 0.0173874, 0.0145874,
- -0.0066528, -0.0088272, -0.0246811, -0.0331345, 0.0143738, 0.0057602, -0.0002747, -0.0007629,
- 0.0018539, 0.0035934, -0.0006332, -0.0124893, 0.0327225, 0.0176163, 0.0233994, 0.0193710,
- -0.0135727, -0.0340042, -0.0894012, -0.0189590, -0.0093231, -0.0084381, -0.0090332, -0.0088577,
- 0.0099640, 0.0462646, 0.0453796, 0.0276489, 0.0160370, 0.0025406, -0.0106049, -0.0192184,
- -0.0034714, -0.0054245, -0.0114441, 0.0039444, 0.0178375, 0.0054550, -0.0171051, -0.0267639,
- -0.0011978, 0.0003204, 0.0082169, 0.0209274, 0.0536499, 0.0358963, 0.0197830, 0.0092850,
- 0.0023346, 0.0034943, -0.0014572, 0.0014343, -0.0054932, -0.0127716, -0.0328522, -0.0487366,
- 0.0088501, 0.0262756, 0.0493164, 0.0377655, 0.0499496, 0.0279236, -0.0018158, -0.0138168,
- -0.0091782, -0.0182266, -0.0430679, 0.0019302, 0.0016556, 0.0016785, -0.0005188, -0.0010605,
- -0.0042267, -0.0044327, -0.0011826, 0.0068283, 0.0034714, 0.0279465, 0.0020370, -0.0107651,
- -0.0088577, -0.0077744, -0.0206451, -0.0217667, -0.0166931, -0.0166321, -0.0041122, -0.0111160,
- 0.0114822, 0.0137863, 0.0051422, 0.0017090, -0.0126801, -0.0010223, -0.0035172, -0.0167770,
- -0.0047989, -0.0082703, -0.0190659, 0.0137558, -0.0056305, -0.0116806, -0.0150452, -0.0211258,
- -0.0013351, -0.0021439, 0.0114136, 0.0434952, 0.0037308, -0.0042496, -0.0063400, -0.0076370,
- -0.0027390, -0.0010986, -0.0103989, -0.0135803, -0.0289612, -0.0440826, 0.0028915, 0.0004730,
- 0.0343170, 0.0352859, 0.0218124, 0.0093842, -0.0054703, -0.0086594, 0.0062637, 0.0050507,
- -0.0057678, -0.0092545, -0.0224991, -0.0150681, 0.0306778, 0.0213089, 0.0150299, 0.0065155,
- -0.0029221, -0.0022583, 0.0017624, 0.0089951, 0.0164185, 0.0172653, 0.0484390, 0.0271988,
- -0.0026627, 0.0002594, -0.0224304, -0.0537415, -0.0119095, -0.0128479, -0.0069809, -0.0067749,
- 0.0076294, 0.0422287, 0.0109787, 0.0002823, 0.0060196, 0.0020523, -0.0027847, -0.0075226,
- -0.0038986, -0.0030670, 0.0042572, 0.0127869, 0.0384750, 0.0027542, -0.0117798, -0.0054169,
- -0.0036087, 0.0035782, 0.0424576, 0.0331345, 0.0332794, 0.0281830, 0.0280609, 0.0207291,
- 0.0046082, 0.0080490, 0.0111084, -0.0065918, -0.0519485, -0.0157547, -0.0019455, -0.0029144,
- 0.0034485, 0.0175858, 0.0821762, 0.0272980, 0.0156860, 0.0159531, 0.0184174, 0.0143356,
- -0.0314102, -0.0573120, -0.0361557, -0.0185471, -0.0215912, -0.0093765, -0.0097656, -0.0018997,
- 0.0007401, 0.0014343, 0.0100021, 0.0084229, 0.0087585, 0.0477676, 0.0178299, 0.0107193,
- -0.0015106, -0.0081024, -0.0302200, -0.0461807, -0.0730972, -0.0303497, -0.0201721, -0.0060349,
- 0.0099411, 0.0259781, 0.0389252, -0.0061798, -0.0111618, 0.0061264, 0.0084991, -0.0016098,
- -0.0020447, -0.0056534, -0.0065460, -0.0004425, -0.0104218, -0.0178070, -0.0585556, -0.0127106,
- -0.0028152, -0.0029221, 0.0108337, 0.0616455, 0.0292282, 0.0216827, 0.0112686, 0.0042725,
- 0.0102158, 0.0152206, -0.0010757, -0.0186920, -0.0433731, -0.0584030, -0.0330887, -0.0182495,
- 0.0341263, 0.0759430, 0.0464096, 0.0330963, 0.0261612, 0.0209045, 0.0158920, 0.0113602,
- -0.0082016, -0.0157471, -0.0547714, -0.0575638, 0.0062866, 0.0029297, 0.0097733, 0.0060959,
- 0.0022659, 0.0080261, 0.0222321, 0.0229797, 0.0417252, 0.0456924, 0.0649796, 0.0428009,
- -0.0109406, -0.0265427, -0.0845337, -0.0739746, -0.0471725, -0.0384445, -0.0217361, -0.0125504,
- 0.0284500, 0.0826721, 0.1126251, 0.0532761, 0.0114975, -0.0184174, -0.0278168, -0.0385132,
- -0.0009766, -0.0013504, 0.0082321, 0.0411072, 0.0223083, 0.0020828, -0.0291138, -0.0363312,
- 0.0068207, 0.0242920, 0.0580826, 0.0683975, 0.0789490, 0.0621414, 0.0445786, 0.0190887,
- 0.0293198, 0.0630722, 0.0497131, -0.0120468, -0.0440521, -0.0440979, -0.0299225, -0.0291214,
- 0.0271988, 0.0838776, 0.1353760, 0.1022873, 0.0741501, 0.0458984, 0.0275192, -0.0002823
-};
-
-const Float bv16_lspecb2[] =
-{
- -0.00045776, 0.00002289, 0.00099182, 0.00270081, 0.00746155, 0.00529480, -0.00106049, -0.00178528,
- -0.00029755, -0.00101471, -0.00086212, 0.00087738, -0.00106049, 0.00087738, -0.01163483, 0.00027466,
- -0.00118256, -0.00199127, -0.00380707, -0.00403595, -0.00030518, 0.00240326, 0.00474548, 0.00889587,
- -0.00337219, -0.00188446, 0.00494385, -0.00525665, 0.00161743, -0.00501251, 0.00176239, 0.00527191,
- 0.00021362, 0.00082397, -0.00271606, -0.00733185, 0.00150299, 0.00543213, 0.00144958, -0.00333405,
- -0.00189972, -0.00291443, -0.00379944, -0.00436401, -0.00100708, -0.00173187, -0.00433350, -0.00628662,
- -0.00256348, -0.00302124, -0.00202942, 0.00238037, -0.00732422, 0.00712585, 0.00381470, 0.00191498,
- -0.00487518, -0.00572205, 0.00082397, 0.00188446, -0.00714111, -0.00489044, -0.00206757, -0.00262451,
- -0.00010681, -0.00145721, -0.00476074, 0.00331116, 0.01039886, -0.00167847, 0.00269318, 0.00548553,
- -0.00064850, -0.00139618, -0.00781250, -0.00374603, 0.00415039, -0.00397491, -0.00685883, 0.00500488,
- -0.00432587, -0.00485229, -0.00765228, 0.00385284, 0.00276184, -0.00205231, 0.00595856, -0.00077057,
- -0.01011658, 0.00389099, -0.00176239, 0.00331116, 0.00072479, -0.00367737, -0.00161743, -0.00171661,
- -0.00463867, -0.00547791, -0.00512695, -0.00231171, 0.00556183, 0.00563049, -0.00107574, 0.00090027,
- -0.00424957, -0.00586700, -0.00111389, 0.00374603, 0.00692749, -0.00564575, -0.00616455, -0.00193024,
- -0.00263214, -0.00723267, -0.00938416, 0.00535583, -0.00386810, 0.00198364, -0.00283813, 0.00453949,
- 0.00451660, -0.01326752, -0.00163269, -0.00040436, 0.00058746, -0.00355530, -0.00116730, -0.00093842,
- 0.00000763, 0.00039673, 0.00560760, -0.00251770, 0.00186157, 0.01089478, -0.00137329, 0.00457001,
- -0.00207520, -0.00434113, 0.00380707, 0.00775909, -0.00274658, 0.00917053, -0.00515747, -0.00215149,
- -0.00079346, -0.00209808, 0.00601196, -0.00038147, -0.00785828, 0.00248718, -0.00209808, 0.01184082,
- -0.00298309, -0.00412750, 0.01414490, 0.00212097, -0.00019073, -0.00061798, -0.00274658, 0.00065613,
- 0.00035858, 0.00170898, 0.00259399, -0.01609802, -0.00000763, 0.00162506, -0.00133514, 0.00100708,
- -0.00503540, -0.00462341, 0.00434875, -0.00257874, 0.00315094, 0.00467682, 0.00090790, -0.01029968,
- -0.00057220, -0.00221252, -0.00485992, -0.00782013, -0.00888824, 0.00464630, -0.00598145, 0.00544739,
- -0.00719452, -0.01031494, 0.00247192, -0.00617218, -0.00236511, 0.00193024, -0.00309753, 0.00254059,
- -0.00290680, -0.00582886, 0.00511169, 0.00539398, 0.00604248, 0.00421143, 0.00669861, 0.00392151,
- -0.00224304, -0.00450134, 0.00026703, 0.00598907, 0.00528717, 0.00506592, -0.00660706, 0.01150513,
- -0.00428772, -0.00616455, 0.00080872, 0.00531769, -0.00407410, -0.00506592, 0.00903320, 0.00828552,
- -0.01528931, -0.00518799, 0.00449371, 0.00463104, 0.00074005, 0.00062561, 0.00030518, 0.00215912,
- -0.00177765, -0.00195313, -0.00070953, -0.01091003, 0.01485443, 0.00244141, 0.00580597, -0.00041199,
- -0.00414276, -0.00515747, -0.00126648, 0.00601959, 0.01933289, 0.00696564, -0.00712585, -0.00523376,
- -0.00677490, -0.01074219, -0.01129150, -0.00234985, -0.00765991, -0.00885773, 0.00039673, 0.00651550,
- -0.00891113, -0.01766968, 0.00561523, 0.00578308, 0.00490570, 0.00194550, -0.00356293, -0.00082397,
- -0.00096130, -0.00098419, -0.00413513, 0.00173950, 0.00495911, 0.01183319, 0.00845337, -0.00122833,
- -0.00326538, -0.00333405, 0.00357056, -0.00922394, 0.00468445, 0.00469971, -0.01351166, -0.00124359,
- -0.00380707, -0.00453949, -0.00596619, -0.00867462, -0.00395966, -0.00065613, 0.00699615, -0.00128174,
- -0.00752258, -0.00469208, 0.00773621, -0.00899506, 0.00354004, -0.01000214, 0.00416565, -0.00489044,
- 0.00000763, -0.00075531, -0.00958252, -0.00546265, -0.00563049, 0.01355743, 0.00136566, -0.01033783,
- -0.00630951, -0.00655365, -0.00659943, 0.00173950, -0.00452423, 0.00329590, -0.00886536, -0.01154327,
- -0.00095367, -0.00313568, -0.00857544, 0.00354767, -0.01430511, 0.00208282, 0.00795746, -0.00600433,
- -0.00719452, -0.01290894, 0.00675201, 0.00386047, -0.01235962, -0.00559235, 0.00556183, -0.00572968,
- -0.00801086, -0.00989532, -0.00411224, -0.00192261, 0.01290894, -0.00526428, 0.00534058, 0.01023865,
- -0.00186920, -0.00344086, -0.00266266, -0.01030731, 0.00197601, -0.00857544, -0.01191711, 0.01605988,
- -0.00836945, -0.00853729, -0.00543976, 0.00074005, 0.00202942, -0.00057983, 0.01557922, -0.00852203,
- -0.01739502, 0.00542450, -0.00310516, -0.00865936, -0.00068665, 0.00004578, 0.00126648, 0.00104523,
- -0.00631714, -0.01346588, -0.01500702, -0.00602722, 0.00646210, 0.01339722, -0.00647736, -0.00049591,
- -0.00720215, -0.01295471, -0.00642395, -0.00480652, 0.01066589, -0.01364136, -0.01339722, -0.00752258,
- -0.00552368, -0.01621246, -0.01331329, 0.01739502, -0.00738525, 0.00836182, 0.00555420, 0.00202942,
- 0.00701904, -0.02751923, 0.00681305, 0.00177765, -0.00151062, -0.00057220, 0.00139618, 0.00026703,
- 0.00125885, 0.00099945, 0.00302887, -0.00566864, -0.00022125, 0.02838135, -0.00177765, 0.00128937,
- -0.00152588, -0.00276184, 0.01119232, 0.00526428, -0.00367737, 0.01557159, -0.01921844, -0.00600433,
- -0.00518036, -0.00488281, 0.00891876, -0.00863647, -0.00762939, 0.00898743, 0.00974274, 0.00371552,
- -0.00656891, -0.00149536, 0.02567291, -0.01044464, -0.00462341, -0.00055695, -0.00331879, -0.00172424,
- 0.00264740, 0.00337219, -0.00964355, -0.03454590, 0.00086975, 0.01454163, 0.00080109, 0.00027466,
- -0.00373077, -0.00283813, 0.00484467, -0.00320435, 0.00572968, 0.00675201, -0.00530243, -0.03117371,
- -0.00197601, -0.01000214, -0.00423431, -0.00650787, -0.02683258, 0.01259613, -0.00359344, 0.00352478,
- -0.01738739, -0.02180481, 0.00868988, -0.01496887, -0.00506592, -0.00038147, -0.00035858, 0.00020599,
- -0.00734711, -0.00748444, 0.01610565, 0.00942993, 0.01790619, 0.01776123, 0.01367950, 0.01322937,
- -0.00354767, -0.00787354, -0.00128937, 0.00877380, -0.00132751, 0.00061798, -0.02446747, 0.01464081,
- -0.00668335, -0.00952911, 0.00102997, 0.00148010, -0.00872040, 0.00305176, 0.03495026, 0.01872253,
- -0.03459930, 0.00503540, 0.00631714, 0.00146484, 0.00110626, -0.00109100, -0.00064850, 0.00020599,
- -0.00075531, -0.00411224, -0.02098846, -0.01145172, 0.03794098, 0.02877808, 0.01161194, 0.00054932,
- -0.00887299, -0.02392578, -0.01149750, 0.03517151, 0.02966309, 0.00566864, -0.02129364, -0.02059937,
- -0.01180267, -0.03713226, -0.03850555, -0.00773621, -0.01717377, -0.01065826, -0.00489044, -0.00129700,
- -0.02636719, -0.04943848, 0.01272583, 0.01393127, 0.00457001, 0.00045776, 0.00072479, 0.00040436
-};
-
-const Float bv16_lspmean[] = /* mean value of LSP components */
-{
- 0.0950317, 0.1489563, 0.2513123, 0.3629456, 0.4780884, 0.5877075, 0.7058105, 0.8007202
-};
-
-const Float bv16_lspp[] = /* LSP Predictor Coefficients */
-{
- 1.040710, 0.844971, 0.682922, 0.575989, 0.464600, 0.346008, 0.226074, 0.103577,
- 1.034851, 0.884094, 0.723816, 0.609863, 0.489563, 0.366516, 0.240234, 0.109253,
- 1.055237, 0.922180, 0.762695, 0.644531, 0.512695, 0.373474, 0.238037, 0.108337,
- 1.076843, 0.935608, 0.790771, 0.673523, 0.540588, 0.399841, 0.264221, 0.118774,
- 1.065552, 0.901978, 0.746155, 0.636047, 0.514282, 0.386169, 0.256165, 0.117493,
- 1.037476, 0.848816, 0.684326, 0.577393, 0.463684, 0.347717, 0.232666, 0.107239,
- 1.022278, 0.809021, 0.645081, 0.535767, 0.430481, 0.325562, 0.219055, 0.099304,
- 0.964844, 0.743469, 0.578125, 0.484375, 0.393250, 0.297913, 0.201416, 0.091736
-};
-
-const Float bv16_lgpecb[] = /* Log-Gain Prediction Error CodeBook */
-{
- -5.38477, -3.68066, -2.76855, -2.09717, -1.47217, -0.33984, 0.67285, 1.82031,
- -0.88525, 0.16748, 1.20313, 2.62549, 3.80518, 5.64551, 8.70605, 11.85156
-};
-
-const Float bv16_lgp[] =
-{
- 0.7801514, 0.7377625, 0.6150818, 0.5926208, 0.4674072, 0.3635864, 0.2378540, 0.1286926
-};
-
-const Float bv16_lgmean = 11.45752;
-
-const Float bv16_cccb[] =
-{
- -0.514526, 0.847412, 0.166748, 0.120605,
- 0.389648, 1.125000, -1.070557, 0.048584,
- -0.263916, -0.053101, 0.189209, 0.177734,
- 2.927368, -0.262695, -0.092896, 0.274292,
- -0.348755, -0.356812, -0.765747, -0.639038,
- 1.912231, 0.890869, -2.045654, -0.802124,
- -0.180298, -1.221802, -1.728760, -0.965210,
- 1.743286, -1.338379, 0.184204, -0.281128,
- -1.407593, 1.109497, 1.724487, -0.347900,
- 2.324219, 1.637939, 0.742188, 0.526001,
- -0.330933, -0.405396, 0.890747, 1.477661,
- 1.545532, -0.195068, 0.148560, 0.073486,
- -0.583740, 0.456055, 0.253296, -1.269043,
- 0.587769, -0.129028, 0.616699, -0.256714,
- -1.211426, -0.743896, -0.608887, -0.219360,
- 0.196289, -1.870728, -0.309326, 1.111694
-};
-
-const Float bv16_pp9cb[PPCBSZ*9] =
-{
- -0.022522, -0.353455, 0.002197, -0.003967, 0.000366, 0.000000, -0.000122, -0.031250, 0.000000,
- -0.426147, 0.989624, 0.063049, 0.210876, -0.031189, 0.013428, -0.045410, -0.244812, -0.000977,
- 0.337036, -1.186096, 0.409424, 0.199890, 0.242798, -0.068970, -0.028381, -0.351685, -0.041931,
- 0.262207, 0.473328, 0.251770, -0.062073, -0.059570, -0.033020, -0.017212, -0.056030, -0.015869,
- 0.534241, 0.753235, 0.150085, -0.201172, -0.056519, -0.040100, -0.071350, -0.141846, -0.005615,
- 0.545532, 1.699646, -0.329407, -0.463623, 0.279907, 0.089844, -0.074402, -0.722168, -0.027100,
- 0.283752, 0.565430, -0.156372, -0.080200, 0.044189, 0.022217, -0.020142, -0.079956, -0.006104,
- 0.838562, 1.034973, 0.089111, -0.433960, -0.046143, -0.037354, -0.175781, -0.267761, -0.002014,
- -0.158081, 0.575684, -0.197205, 0.045471, 0.056763, -0.015564, -0.006226, -0.082825, -0.009705,
- 0.020447, 1.079346, -0.422424, -0.011047, 0.227966, 0.004333, -0.000122, -0.291260, -0.044617,
- 0.236511, -0.646912, -0.251587, 0.076538, -0.081360, 0.029785, -0.013977, -0.104614, -0.015808,
- 0.116882, 0.874512, 0.108887, -0.051086, -0.047607, -0.006348, -0.003418, -0.191162, -0.002991,
- 0.535400, 1.342102, -0.004028, -0.359253, 0.002686, 0.001099, -0.071655, -0.450317, 0.000000,
- 0.102112, 1.911194, -0.150574, -0.097534, 0.143860, 0.007690, -0.002625, -0.913147, -0.005676,
- 0.576660, 0.916931, -0.272522, -0.264404, 0.124939, 0.078552, -0.083130, -0.210205, -0.018555,
- 0.921509, 1.341675, -0.355408, -0.618164, 0.238403, 0.163757, -0.212280, -0.450012, -0.031555,
- 0.053589, 0.331238, 0.060120, -0.008850, -0.009949, -0.001587, -0.000732, -0.027405, -0.000916,
- -0.334106, 1.298950, 0.939758, 0.216980, -0.610352, 0.156982, -0.027893, -0.421814, -0.220764,
- 0.198242, -0.586304, 0.324402, 0.058105, 0.095093, -0.032166, -0.009827, -0.085938, -0.026306,
- 0.101135, 0.724731, 0.504761, -0.036621, -0.182922, -0.025513, -0.002563, -0.131287, -0.063721,
- 0.157104, 0.999268, 0.802124, -0.078491, -0.400757, -0.062988, -0.006165, -0.249634, -0.160828,
- -0.035217, 1.416809, 0.517395, 0.024963, -0.366516, 0.009094, -0.000305, -0.501831, -0.066895,
- 0.446411, 0.646851, 0.513916, -0.144409, -0.166199, -0.114685, -0.049805, -0.104614, -0.066040,
- 0.547058, 0.942505, 0.471069, -0.257813, -0.221985, -0.128845, -0.074829, -0.222107, -0.055481,
- -0.173523, 0.558838, 0.263611, 0.048462, -0.073669, 0.022888, -0.007507, -0.078064, -0.017395,
- -0.424072, 1.610962, 0.640259, 0.341553, -0.515747, 0.135742, -0.044983, -0.648804, -0.102478,
- -0.355591, -0.702820, 0.022034, -0.124939, 0.007751, 0.003906, -0.031616, -0.123474, -0.000122,
- -0.244446, 0.940491, 0.598267, 0.114929, -0.281311, 0.073120, -0.014954, -0.221130, -0.089478,
- 0.347046, 1.152039, 0.385620, -0.199890, -0.222168, -0.066895, -0.030090, -0.331787, -0.037170,
- -0.189636, 1.869568, 0.246582, 0.177246, -0.230469, 0.023376, -0.008972, -0.873840, -0.015198,
- 0.635010, 0.814880, 0.510864, -0.258728, -0.208130, -0.162231, -0.100830, -0.166016, -0.065247,
- 0.191528, 1.579285, 0.121948, -0.151245, -0.096313, -0.011658, -0.009155, -0.623535, -0.003723
-};
-
-/* Front-end highpass filter */
-const Float bv16_hpfa[] = {1.000000, -1.899109, 0.905396};
-const Float bv16_hpfb[] = {0.924133, -1.848267, 0.924133};
-
-/* coarse pitch search */
-const Float bv16_adf[] = {1.00000000000000, -2.95802363194525, 3.63373126275837, -2.12495286948979, 0.50039692036808};
-const Float bv16_bdf[] = {0.04330826, -0.06871796, 0.09910965, -0.06871796, 0.04330826};
-const Float bv16_x[] = {0.25, 0.5};
-const Float bv16_x2[] = {0.0625, 0.25}; /* square of x[] */
-const Float bv16_MPTH[]= {0.6300049, 0.4800110, 0.4200134, 0.3599854};
-
-const Float bv16_winl[] =
-{
- 0.0001221, 0.0004883, 0.0011292, 0.0019836, 0.0031128, 0.0044556, 0.0060730, 0.0079346,
- 0.0100098, 0.0123596, 0.0149536, 0.0177612, 0.0208130, 0.0241394, 0.0276794, 0.0314331,
- 0.0354309, 0.0396729, 0.0441284, 0.0488281, 0.0537415, 0.0588684, 0.0642395, 0.0697937,
- 0.0755920, 0.0815735, 0.0877686, 0.0941772, 0.1007996, 0.1076050, 0.1145935, 0.1217957,
- 0.1291809, 0.1367493, 0.1444702, 0.1524048, 0.1604919, 0.1687622, 0.1771851, 0.1857605,
- 0.1945190, 0.2033997, 0.2124634, 0.2216492, 0.2309570, 0.2404175, 0.2500000, 0.2597046,
- 0.2695313, 0.2794800, 0.2895203, 0.2996826, 0.3099365, 0.3202820, 0.3307495, 0.3412476,
- 0.3518677, 0.3625488, 0.3732910, 0.3840942, 0.3949585, 0.4058838, 0.4168396, 0.4278259,
- 0.4388733, 0.4499512, 0.4610596, 0.4721680, 0.4833069, 0.4944153, 0.5055847, 0.5166931,
- 0.5278320, 0.5389404, 0.5500488, 0.5611267, 0.5721741, 0.5831604, 0.5941162, 0.6050415,
- 0.6159058, 0.6267090, 0.6374512, 0.6481323, 0.6587524, 0.6692505, 0.6797180, 0.6900635,
- 0.7003174, 0.7104797, 0.7205200, 0.7304688, 0.7402954, 0.7500000, 0.7595825, 0.7690430,
- 0.7783508, 0.7875366, 0.7966003, 0.8054810, 0.8142395, 0.8228149, 0.8312378, 0.8395081,
- 0.8475952, 0.8555298, 0.8632507, 0.8708191, 0.8782043, 0.8854065, 0.8923950, 0.8992004,
- 0.9058228, 0.9122314, 0.9184265, 0.9244080, 0.9302063, 0.9357605, 0.9411316, 0.9462585,
- 0.9511719, 0.9558716, 0.9603271, 0.9645691, 0.9685669, 0.9723206, 0.9758606, 0.9791870,
- 0.9822388, 0.9850464, 0.9876404, 0.9899902, 0.9920654, 0.9939270, 0.9955444, 0.9968872,
- 0.9980164, 0.9988708, 0.9995117, 0.9998779, 1.0000000, 0.9969177, 0.9877014, 0.9723816,
- 0.9510498, 0.9238892, 0.8910217, 0.8526306, 0.8090210, 0.7604065, 0.7070923, 0.6494446,
- 0.5877991, 0.5224915, 0.4539795, 0.3826904, 0.3090210, 0.2334595, 0.1564331, 0.0784607
-};
-
-const Float bv16_sstwin[] =
-{
- 1.00009999953429, 0.99950664069252, 0.99802802477777, 0.99556852473654, 0.99213540467992,
- 0.98773878257675, 0.98239158368278, 0.97610947534163, 0.96891079060864
-};
-
-/* pole-zero noise feedback filter */
-const Float bv16_gfsz[] =
-{
- 0.00000000000000, -0.40000000000000, -0.54000000000000, -0.56275000000000,
- -0.53527500000000, -0.48872828125000, -0.43730950781250, -0.38724014365234,
- -0.34101742974609
-};
-
-const Float bv16_gfsp[] =
-{
- 1.00000000000000, 0.87500000000000, 0.76562500000000, 0.66992187500000,
- 0.58618164062500, 0.51290893554688, 0.44879531860352, 0.39269590377808,
- 0.34360891580582
-};
-
-const int bv16_idxord[] = { 0, 1, 2, 3, 4, 8, 5, 9, 6, 10, 7, 11, 12, 13, 14, 15 };
-
-const Float bv16_lgpecb_nh[] = /* Log-Gain Prediction Error Next-Higher CodeBook */
-{
- -3.68066, -2.76855, -2.09717, -1.47217, -0.88525, 0.16748, 1.20313, 2.62549,
- -0.33984, 0.67285, 1.82031, 3.80518, 5.64551, 8.70605, 11.85156
-};
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32cnst.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32cnst.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#include "typedef.h"
-
-#ifndef __BV32__
-#define __BV32__
-
-/* ----- Basic Codec Parameters ----- */
-#define SF 16 /* input Sampling Frequency (in kHz) */
-#define FRSZ 80 /* the FRame SiZe */
-#define MAXPP 265 /* MAXimum Pitch Period */
-#define MINPP 10 /* Half of MINimum Pitch Period */
-#define NSF 2 /* number of subframes per frame */
-#define PWSZ 240 /* Pitch analysis Window SiZe for 8kHz lowband */
-#define SFRSZ (FRSZ/NSF) /* SubFrame SiZe */
-#define WINSZ 160 /* Half of LPC analysis WINdow SiZe */
-#define MAXPP1 (MAXPP+1) /* Half of MAXimum Pitch Period + 1a */
-
-/* NFC VQ coding parameters */
-#define VDIM 4 /* excitation vector dimension */
-#define CBSZ 32 /* codebook size */
-#define PPCBSZ 32
-#define LGPORDER 16 /* Log-Gain Predictor OODER */
-#define LGPECBSZ 32 /* Log-Gain Prediction Error CodeBook SiZe */
-#define LSPPORDER 8 /* LSP MA Predictor ORDER */
-#define LSPECBSZ1 128 /* codebook size of 1st-stage LSP VQ */
-#define SVD1 3 /* split VQ dimension 1 */
-#define LSPECBSZ21 32 /* codebook size of 2nd-stage LSP split VQ */
-#define SVD2 5 /* split VQ dimension 2 */
-#define LSPECBSZ22 32 /* codebook size of 2nd stage LSP split VQ */
-
-#define NVPSF (FRSZ/VDIM)
-#define NVPSSF (SFRSZ/VDIM)
-
-/* Packetloss Concealment */
-#define ScPLCGmin 0.1
-#define ScPLCGmax 0.9
-#define PePLCGmin 0.5
-#define PePLCGmax 0.9
-#define ScPLCG_b ((ScPLCGmin - ScPLCGmax)/(PePLCGmax - PePLCGmin))
-#define ScPLCG_a (ScPLCGmin - ScPLCG_b*PePLCGmax)
-#define HoldPLCG 8
-#define AttnPLCG 50
-#define AttnFacPLCG (1.0/(Float)AttnPLCG)
-
-/* Pre-emphasis filter coefficients */
-#define PEAPFC 0.75
-#define PEAZFC 0.5
-
-#define INVSFRSZ (1./(Float)SFRSZ)
-#define FECNSF 2 /* number of FEC subframes per frame */
-
-#define Minlg -2.0 /* minimum log-gain */
-#define TMinlg 0.25 /* minimum linear gain */
-#define GPO 16 /* order of MA prediction */
-
-/* Level Estimation */
-#define estl_alpha (8191.0/8192.0)
-#define estl_beta (1023.0/1024.0)
-#define estl_beta1 (1.0 - estl_beta)
-#define estl_a (511.0/512.0)
-#define estl_a1 (1 - estl_a)
-#define estl_TH 0.2
-
-/* Log-Gain Limitation */
-#define LGLB -24 /* Log-Gain Lower Bound */
-#define GCLB -8 /* Log-Gain Change Lower Bound */
-#define NGB 18 /* Number of Gain Bins */
-#define NGCB 11 /* Number of Gain Change Bins */
-#define MinE -2.0
-
-#define PFO 1 /* preemphasis filter order */
-
-#define LTMOFF MAXPP1 /* Long-Term filter Memory OFFset */
-
-/* Parameters related to the gain decoder trap */
-#define NCLGLIM_TRAPPED 50 /* 0.125 sec */
-#define LEVEL_CONVERGENCE_TIME 100 /* 0.25 sec */
-
-/* front-end highpass filter */
-#define HPO 2 /* High-pass filter order */
-
-/* LPC weighting filter */
-#define LTWFL 0.5
-
-/* Minimum gain threshold */
-#define TMinE (SFRSZ*0.25)
-
-/* coarse pitch search */
-#define cpp_Qvalue 3
-#define cpp_scale (1<<cpp_Qvalue)
-
-/* ------ Decimation Parameters ----- */
-#define DECF 8 /* DECimation Factor for coarse pitch period search */
-#define FRSZD (FRSZ/DECF) /* FRame SiZe in DECF:1 lowband domain */
-#define MAXPPD (MAXPP/DECF) /* MAX Pitch in DECF:1, if MAXPP!=4n, ceil() */
-#define MINPPD ((int) (MINPP/DECF)) /* MINimum Pitch Period in DECF:1 */
-#define PWSZD (PWSZ/DECF) /* Pitch ana. Window SiZe in DECF:1 domain */
-#define DFO 4
-#define MAXPPD1 (MAXPPD + 1)
-#define LXD (MAXPPD1 + PWSZD)
-#define XDOFF (LXD - FRSZD)
-#define HMAXPPD (MAXPPD/2)
-#define M1 (MINPPD - 1)
-#define M2 MAXPPD1
-#define HDECF (DECF/2)
-#define INVDECF (1.0F/(float)(DECF)) /* INVerse of DECF (decimation factor) */
-
-/* coarse pitch */
-#define MPTH4 0.3 /* value to use for MPTH[] with index >= 4 */
-#define DEVTH 0.25 /* pitch period DEViation THreshold */
-#define TH1 0.73 /* first threshold for cor*cor/energy */
-#define TH2 0.4 /* second threshold for cor*cor/energy */
-#define LPTH1 0.78 /* Last Pitch cor*cor/energy THreshold 1 */
-#define LPTH2 0.43 /* Last Pitch cor*cor/energy THreshold 2 */
-#define MPDTH 0.06 /* Multiple Pitch Deviation THreshold */
-#define SMDTH 0.095 /* Sub-Multiple pitch Deviation THreshold */
-#define SMDTH1 (1.0 - SMDTH)
-#define SMDTH2 (1.0 + SMDTH)
-#define MPR1 (1.0 - MPDTH) /* Multiple Pitch Range lower threshold */
-#define MPR2 (1.0 + MPDTH) /* Multiple Pitch Range upper threshold */
-#define MAX_NPEAKS 7
-
-/* buffer offset and length */
-#define XOFF MAXPP1 /* offset for x() frame */
-#define LX (XOFF+FRSZ) /* Length of x() buffer */
-
-#endif
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32_coarptch.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32coarse_pitch.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "utility.h"
-#include "bv32externs.h"
-
-int bv32_coarsepitch(Float *xw,
- Float *xwdm,
- Float *dfm, /* (i/o) ellipse low pass filter memory */
- int cpplast) /* in the undecimated domain Q3 */
-{
- Float xwd[LXD];
- Float _cor[MAXPPD1 + 1];
- Float _cor2[MAXPPD1 + 1];
- Float _energy[MAXPPD1 + 1];
- Float *cor, *cor2, *energy;
- Float cor2i[MAX_NPEAKS], energyi[MAX_NPEAKS];
- Float tmp[DFO+FRSZ], threshold;
- Float *fp0, *fp1, *fp2, *fp3, s, t, a, b, c, deltae;
- Float cor2max, energymax, cor2m, energym, ci, eni;
- int cpp, maxdev, plag[MAX_NPEAKS], mplth; /* in the undecimated domain Q3 */
- int i, j, k, n, npeaks, imax, im, idx[HMAXPPD];
- int flag, mpflag;
-
- cor = _cor + 1;
- cor2 = _cor2 + 1;
- energy = _energy + 1;
-
- /* LOWPASS FILTER xw() TO 800 Hz; SHIFT & OUTPUT INTO xwd() */
-
- /* load xwd[] buffer memory */
- Fcopy(xwd, xwdm, XDOFF);
-
- /* copy memory to temp buffer */
- fp1 = tmp;
- fp2 = dfm;
- for (i = 0; i < DFO; i++)
- *fp1++ = *fp2++;
-
- /* AP and AZ filtering and decimation */
- fp0 = xwd + XDOFF;
- fp3 = xw;
- for (i = 0; i < FRSZD; i++)
- {
- for (k = 0; k < DECF; k++)
- {
- t = *fp3++;
- fp2 = fp1 - 1;
- for (j = 0; j < DFO; j++)
- t -= bv32_adf[j + 1]*(*fp2--);
- *fp1++ = t;
- }
- fp2 = fp1 - 1;
- t = bv32_bdf[0]*(*fp2--);
- for (j = 0; j < DFO; j++)
- t += bv32_bdf[j + 1]*(*fp2--);
- *fp0++ = t;
- }
-
- /* copy temp buffer to memory */
- fp1 -= DFO;
- for (i = 0; i < DFO; i++)
- dfm[i] = *fp1++;
- Fcopy(xwdm, xwd + FRSZD, XDOFF);
-
- /* COMPUTE CORRELATION & ENERGY OF PREDICTION BASIS VECTOR */
- fp0 = xwd + MAXPPD1;
- fp1 = xwd + MAXPPD1 - M1;
- s = t = 0.0;
- for (i = 0; i < (LXD - MAXPPD1); i++)
- {
- s += (*fp1)*(*fp1);
- t += (*fp0++)*(*fp1++);
- }
- if (s < 1.e-10)
- {
- s = t = 0.0;
- }
- energy[M1 - 1] = s;
- cor[M1 - 1] = t;
- if (t > 0.0F)
- cor2[M1 - 1] = t*t;
- else
- cor2[M1 - 1] = -t*t;
-
-
- fp2 = xwd + LXD - M1 - 1;
- fp3 = xwd + MAXPPD1 - M1 - 1;
-
- for (i = M1; i < M2; i++)
- {
- fp0 = xwd + MAXPPD1;
- fp1 = xwd + MAXPPD1 - i - 1;
- t = 0.0;
- for (j = 0; j < (LXD - MAXPPD1); j++)
- t += (*fp0++)*(*fp1++);
- s = s - (*fp2)*(*fp2) + (*fp3)*(*fp3);
- if (s < 1.e-10)
- {
- s = t = 0.0;
- }
- cor[i] = t;
- if (t > 0.0F)
- cor2[i] = t*t;
- else
- cor2[i] = -t*t;
- fp2--;
- fp3--;
- energy[i] = s;
- }
-
- /* FIND POSITIVE COR*COR/ENERGY PEAKS */
- npeaks = 0;
- n = MINPPD-1;
- while ((npeaks < MAX_NPEAKS) && (n < MAXPPD))
- {
- if ((cor2[n]*energy[n - 1] > cor2[n - 1]*energy[n])
- &&
- (cor2[n]*energy[n + 1] > cor2[n + 1]*energy[n])
- &&
- (cor2[n] > 0))
- {
- idx[npeaks] = n;
- npeaks++;
- }
- n++;
- }
-
- /* RETURN EARLY IF THERE IS NO PEAK OR ONLY ONE PEAK */
- if (npeaks == 0) /* if there are no positive peak, */
- return MINPPD*cpp_scale; /* return minimum pitch period */
- if (npeaks == 1) /* if there is exactly one peak, */
- return (idx[0] + 1)*cpp_scale; /* return the time lag for this peak */
-
- /* IF PROGRAM PROCEEDS TO HERE, THERE ARE 2 OR MORE PEAKS */
- cor2max = -1e30;
- energymax = 1.0F;
- imax = 0;
- for (i = 0; i < npeaks; i++)
- {
- /* USE QUADRATIC INTERPOLATION TO FIND THE INTERPOLATED cor[] AND
- energy[] CORRESPONDING TO INTERPOLATED PEAK OF cor2[]/energy[] */
- /* first calculate coefficients of y(x)=ax^2+bx+c; */
- n = idx[i];
- a = 0.5F*(cor[n + 1] + cor[n - 1]) - cor[n];
- b = 0.5F*(cor[n + 1] - cor[n - 1]);
- c = cor[n];
-
- /* INITIALIZE VARIABLES BEFORE SEARCHING FOR INTERPOLATED PEAK */
- im = 0;
- cor2m = cor2[n];
- energym = energy[n];
- eni = energy[n];
-
- /* DERTERMINE WHICH SIDE THE INTERPOLATED PEAK FALLS IN, THEN
- DO THE SEARCH IN THE APPROPRIATE RANGE */
- if (cor2[n + 1]*energy[n - 1] > cor2[n - 1]*energy[n + 1]) /* if right side */
- {
- deltae=(energy[n + 1] - eni)*INVDECF; /*increment for linear interp.*/
- for (k = 0; k < HDECF; k++)
- {
- ci = a*bv32_x2[k] + b*bv32_x[k] + c; /* quadratically interpolated cor[] */
- eni += deltae; /* linearly interpolated energy[] */
- if (ci*ci*energym > cor2m*eni)
- {
- im = k + 1;
- cor2m = ci*ci;
- energym = eni;
- }
- }
- }
- else /* if interpolated peak is on the left side */
- {
- deltae = (energy[n-1] - eni)*INVDECF; /*increment for linear interp.*/
- for (k = 0; k < HDECF; k++)
- {
- ci = a*bv32_x2[k] - b*bv32_x[k] + c;
- eni += deltae;
- if (ci*ci*energym > cor2m*eni)
- {
- im = -k - 1;
- cor2m = ci*ci;
- energym = eni;
- }
- }
- }
-
- /* SEARCH DONE; ASSIGN cor2[] AND energy[] CORRESPONDING TO
- INTERPOLATED PEAK */
- plag[i] = (idx[i] + 1)*cpp_scale + im; /* lag of interp. peak */
- cor2i[i] = cor2m; /* interpolated cor2[] of i-th interpolated peak */
- energyi[i] = energym; /* interpolated energy[] of i-th interpolated peak */
-
- /* SEARCH FOR GLOBAL MAXIMUM OF INTERPOLATED cor2[]/energy[] peak */
- if (cor2m*energymax > cor2max*energym)
- {
- imax = i;
- cor2max = cor2m;
- energymax = energym;
- }
- }
- cpp = plag[imax]; /* first candidate for coarse pitch period */
- mplth = plag[npeaks - 1]; /* set mplth to the lag of last peak */
-
- /* FIND THE LARGEST PEAK (IF THERE IS ANY) AROUND THE LAST PITCH */
- maxdev = (int) (DEVTH*cpplast); /* maximum deviation from last pitch */
- im = -1;
- cor2m = -1.0e30;
- energym = 1.0F;
- for (i = 0; i < npeaks; i++) /* loop thru the peaks before the largest peak */
- {
- if (abs(plag[i] - cpplast) <= maxdev)
- {
- if (cor2i[i]*energym > cor2m*energyi[i])
- {
- im = i;
- cor2m = cor2i[i];
- energym = energyi[i];
- }
- }
- } /* if there is no peaks around last pitch, then im is still -1 */
-
- /* NOW SEE IF WE SHOULD PICK ANY ALTERNATICE PEAK */
- /* FIRST, SEARCH FIRST HALF OF PITCH RANGE, SEE IF ANY QUALIFIED PEAK
- HAS LARGE ENOUGH PEAKS AT EVERY MULTIPLE OF ITS LAG */
- i = 0;
- while (plag[i] < 0.5*mplth)
- {
- /* DETERMINE THE APPROPRIATE THRESHOLD FOR THIS PEAK */
- if (i != im) /* if not around last pitch, */
- {
- threshold = TH1; /* use a higher threshold */
- }
- else /* if around last pitch */
- {
- threshold = TH2; /* use a lower threshold */
- }
-
- /* IF THRESHOLD EXCEEDED, TEST PEAKS AT MULTIPLES OF THIS LAG */
- if (cor2i[i]*energymax > threshold*cor2max*energyi[i])
- {
- flag = 1;
- j = i + 1;
- k = 0;
- s = 2.0F*plag[i]; /* initialize t to twice the current lag */
- while (s <= mplth) /* loop thru all multiple lag <= mplth */
- {
- mpflag = 0; /* initialize multiple pitch flag to 0 */
- a = MPR1*s; /* multiple pitch range lower bound */
- b = MPR2*s; /* multiple pitch range upper bound */
- while (j < npeaks) /* loop thru peaks with larger lags */
- {
- if (plag[j] > b) /* if range exceeded, */
- {
- break; /* break the innermost while loop */
- } /* if didn't break, then plag[j] <= b */
- if (plag[j] > a) /* if current peak lag within range, */
- {
- /* then check if peak value large enough */
- if (k < 4)
- {
- c = bv32_MPTH[k];
- }
- else
- {
- c = MPTH4;
- }
- if (cor2i[j]*energymax > c*cor2max*energyi[j])
- {
- mpflag = 1; /* if peak large enough, set mpflag, */
- break; /* and break the innermost while loop */
- }
- }
- j++;
- }
- /* if no qualified peak found at this multiple lag */
- if (mpflag == 0)
- {
- flag=0; /* disqualify the lag plag[i] */
- break; /* and break the while (s<=mplth) loop */
- }
- k++;
- s += plag[i]; /* update s to the next multiple pitch lag */
- }
- /* if there is a qualified peak at every multiple of plag[i], */
- if (flag == 1)
- return plag[i]; /* and return to calling function */
- }
- i++;
- if (i == npeaks)
- break; /* to avoid out of array bound error */
- }
-
- /* IF PROGRAM PROCEEDS TO HERE, NONE OF THE PEAKS WITH LAGS < 0.5*mplth
- QUALIFIES AS THE FINAL PITCH. IN THIS CASE, CHECK IF
- THERE IS ANY PEAK LARGE ENOUGH AROUND LAST PITCH. IF SO, USE ITS
- LAG AS THE FINAL PITCH. */
- if (im != -1) /* if there is at least one peak around last pitch */
- {
- if (im == imax) /* if this peak is also the global maximum, */
- return cpp; /* return first pitch candidate at global max */
- if (im < imax) /* if lag of this peak < lag of global max, */
- {
- if (cor2m*energymax > LPTH2*cor2max*energym)
- {
- if (plag[im] > HMAXPPD*cpp_scale)
- return plag[im];
- for (k = 2; k <= 5; k++) /* check if current candidate pitch */
- {
- s = plag[imax]/(float)(k); /* is a sub-multiple of */
- a = SMDTH1*s; /* the time lag of */
- b = SMDTH2*s; /* the global maximum peak */
- if (plag[im] > a && plag[im] < b) /* if so, */
- return plag[im]; /* and return as pitch */
- }
- }
- }
- else /* if lag of this peak > lag of global max, */
- {
- if (cor2m*energymax > LPTH1*cor2max*energym)
- return plag[im]; /* accept its lag */
- }
- }
-
- /* IF PROGRAM PROCEEDS TO HERE, WE HAVE NO CHOICE BUT TO ACCEPT THE
- LAG OF THE GLOBAL MAXIMUM */
- return cpp;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * decoder.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32decoder.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "utility.h"
-#include "bvcommon.h"
-#include "bv32externs.h"
-#include "bv32strct.h"
-#include "bitpack32.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(bv32_decode_state_t *) bv32_decode_init(bv32_decode_state_t *s)
-{
- int i;
-
- if (s == NULL)
- {
- if ((s = (bv32_decode_state_t *) malloc(sizeof(*s))) == NULL)
- return NULL;
- }
- for (i = 0; i < LPCO; i++)
- s->lsplast[i] = (Float)(i + 1)/(Float)(LPCO + 1);
- Fzero(s->stsym, LPCO);
- Fzero(s->ltsym, LTMOFF);
- Fzero(s->lgpm, LGPORDER);
- Fzero(s->lsppm, LPCO*LSPPORDER);
- Fzero(s->dezfm, PFO);
- Fzero(s->depfm, PFO);
- s->cfecount = 0;
- s->idum = 0;
- s->scplcg = 1.0;
- s->per = 0;
- s->E = 0.0;
- for (i = 0; i < LPCO; i++)
- s->atplc[i + 1] = 0.0;
- s->pp_last = 100;
- s->prevlg[0] = MinE;
- s->prevlg[1] = MinE;
- s->lgq_last = MinE;
- s->lmax = -100.0;
- s->lmin = 100.0;
- s->lmean = 8.0;
- s->x1 = 13.5;
- s->level = 13.5;
- s->nclglim = 0;
- s->lctimer = 0;
- return s;
-}
-
-BV_DECLARE(int) bv32_decode(bv32_decode_state_t *ds,
- int16_t amp[],
- const uint8_t *in,
- int len)
-{
- Float xq[FRSZ];
- Float ltsym[LTMOFF + FRSZ];
- Float a[LPCO + 1];
- Float lspq[LPCO];
- Float bq[3];
- Float gainq[NSF];
- Float lgq[NSF];
- Float E;
- int16_t pp;
- int16_t i;
- Float bss;
- struct BV32_Bit_Stream bs;
- int ii;
- int outlen;
-
- outlen = 0;
- for (ii = 0; ii < len; ii += 20)
- {
- bv32_bitunpack(&in[ii], &bs);
-
- /* Reset frame erasure counter */
- ds->cfecount = 0;
-
- /* Decode spectral information */
- bv32_lspdec(lspq, bs.lspidx, ds->lsppm, ds->lsplast);
- lsp2a(lspq, a);
-
- /* Decode pitch period & 3 pitch predictor taps */
- pp = (bs.ppidx + MINPP);
- bv32_pp3dec(bs.bqidx, bq);
-
- /* Decode excitation gain */
- for (i = 0; i < NSF; i++)
- {
- gainq[i] = bv32_gaindec(lgq + i,
- bs.gidx[i],
- ds->lgpm,
- ds->prevlg,
- ds->level,
- &ds->nclglim,
- ds->lctimer);
-
- if (ds->lctimer > 0)
- ds->lctimer = ds->lctimer - 1;
- if (ds->nclglim == NCLGLIM_TRAPPED)
- ds->lctimer = LEVEL_CONVERGENCE_TIME;
-
- /* Level estimation */
- bv32_estlevel(ds->prevlg[0], &ds->level, &ds->lmax, &ds->lmin, &ds->lmean, &ds->x1);
- }
-
- /* Copy state memory ltsym[] to local buffer */
- Fcopy(ltsym, ds->ltsym, LTMOFF);
-
- /* Decode the excitation signal */
- bv32_excdec_w_LT_synth(ltsym, bs.qvidx, gainq, bq, pp, &E);
-
- ds->E = E;
-
- /* LPC synthesis filtering of excitation */
- apfilter(a, LPCO, ltsym + LTMOFF, xq, FRSZ, ds->stsym, 1);
-
- /* Update pitch period of last frame */
- ds->pp_last = pp;
-
- /* Update signal memory */
- Fcopy(ds->ltsym, ltsym + FRSZ, LTMOFF);
- Fcopy(ds->bq_last, bq, 3);
-
- /* Update average quantized log-gain */
- ds->lgq_last = 0.5*(lgq[0] + lgq[1]);
-
- /* De-emphasis filtering */
- azfilter(bv32_a_pre, PFO, xq, xq, FRSZ, ds->dezfm, 1);
- apfilter(bv32_b_pre, PFO, xq, xq, FRSZ, ds->depfm, 1);
-
- F2s(&[outlen], xq, FRSZ);
- Fcopy(ds->lsplast, lspq, LPCO);
-
- Fcopy(ds->atplc, a, LPCO + 1);
-
- bss = bq[0] + bq[1] + bq[2];
- if (bss > 1.0)
- bss = 1.0;
- else if (bss < 0.0)
- bss = 0.0;
- ds->per = 0.5*ds->per + 0.5*bss;
- outlen += FRSZ;
- }
- return outlen;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv32_decode_release(bv32_decode_state_t *s)
-{
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv32_decode_free(bv32_decode_state_t *s)
-{
- free(s);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * encoder.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "utility.h"
-#include "bvcommon.h"
-#include "bv32externs.h"
-#include "bv32strct.h"
-#include "bitpack32.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(bv32_encode_state_t *) bv32_encode_init(bv32_encode_state_t *s)
-{
- int k;
-
- if (s == NULL)
- {
- if ((s = (bv32_encode_state_t *) malloc(sizeof(*s))) == NULL)
- return NULL;
- }
- Fzero(s->lgpm, LGPORDER);
- s->allast[0] = 1.0;
- Fzero(s->allast + 1, LPCO);
- for (k = 0; k < LPCO; k++)
- s->lsplast[k] = (Float) (k + 1)/(Float)(LPCO + 1);
- Fzero(s->lsppm, LPCO*LSPPORDER);
- Fzero(s->x, XOFF);
- Fzero(s->xwd, XDOFF);
- Fzero(s->dq, XOFF);
- Fzero(s->stpem, LPCO);
- Fzero(s->stwpm, LPCO);
- Fzero(s->dfm, DFO);
- Fzero(s->stnfm, LPCO);
- Fzero(s->stsym, LPCO);
- Fzero(s->ltsym, MAXPP1 + FRSZ);
- Fzero(s->ltnfm, MAXPP1 + FRSZ);
- s->cpplast = 12*cpp_scale;
- Fzero(s->hpfzm,HPO);
- Fzero(s->hpfpm,HPO);
- s->prevlg[0] = MinE;
- s->prevlg[1] = MinE;
- s->lmax = -100.0;
- s->lmin = 100.0;
- s->lmean = 8.0;
- s->x1 = 13.5;
- s->level = 13.5;
- return s;
-}
-
-BV_DECLARE(int) bv32_encode(bv32_encode_state_t *cs,
- uint8_t *out,
- const int16_t amp[],
- int len)
-{
- Float x[LX];
- Float dq[LX];
- Float xw[FRSZ];
- Float r[LPCO + 1];
- Float a[LPCO + 1];
- Float aw[LPCO + 1];
- Float lsp[LPCO];
- Float lspq[LPCO];
- Float cbs[VDIM*CBSZ];
- Float qv[SFRSZ];
- Float bq[3];
- Float beta;
- Float gainq[2];
- Float lg;
- Float e;
- Float ee;
- Float ppt;
- int pp;
- int cpp;
- int i;
- int issf;
- Float *fp0;
- Float *fp1;
- struct BV32_Bit_Stream bs;
- int ii;
- int outlen;
-
- outlen = 0;
- for (ii = 0; ii < len; ii += FRSZ)
- {
- /* Copy state memory to local memory buffers */
- Fcopy(x, cs->x, XOFF);
- for (i = 0; i < FRSZ; i++)
- x[XOFF + i] = (Float) amp[ii + i];
-
- /* High pass filtering & pre-emphasis filtering */
- azfilter(bv32_hpfb, HPO, x + XOFF, x + XOFF, FRSZ, cs->hpfzm, 1);
- apfilter(bv32_hpfa, HPO, x + XOFF, x + XOFF, FRSZ, cs->hpfpm, 1);
-
- /* Copy to coder state */
- Fcopy(cs->x, x + FRSZ, XOFF);
-
- /* Perform lpc analysis with asymmetrical window */
- Autocor(r, x + LX - WINSZ, bv32_winl, WINSZ, LPCO); /* get autocorrelation lags */
-
- for (i = 0; i <= LPCO; i++)
- r[i] *= bv32_sstwin[i]; /* apply spectral smoothing */
- Levinson(r, a, cs->allast, LPCO); /* Levinson-Durbin recursion */
- for (i = 0; i <= LPCO; i++)
- a[i] *= bwel[i];
-
- a2lsp(a, lsp, cs->lsplast);
-
- bv32_lspquan(lspq, bs.lspidx, lsp, cs->lsppm);
-
- lsp2a(lspq, a);
-
- /* Calculate LPC prediction residual */
- Fcopy(dq, cs->dq, XOFF); /* copy dq() state to buffer */
- azfilter(a, LPCO, x + XOFF, dq + XOFF, FRSZ, cs->stpem, 1);
-
- /* Use weighted version of LPC filter as noise feedback filter */
- for (i = 0; i <= LPCO; i++)
- aw[i] = STWAL[i]*a[i];
-
- /* Get perceptually weighted version of speech */
- apfilter(aw, LPCO, dq + XOFF, xw, FRSZ, cs->stwpm, 1);
-
- /* Get the coarse version of pitch period using 8:1 decimation */
- cpp = bv32_coarsepitch(xw, cs->xwd, cs->dfm, cs->cpplast);
- cs->cpplast = cpp;
-
- /* Refine the pitch period in the neighborhood of coarse pitch period
- also calculate the pitch predictor tap for single-tap predictor */
- pp = bv32_refinepitch(dq, cpp, &ppt);
- bs.ppidx = (int16_t) (pp - MINPP);
-
- /* vq 3 pitch predictor taps with minimum residual energy */
- bs.bqidx = (int16_t) bv32_pitchtapquan(dq, pp, bq);
-
- /* get coefficients for long-term noise feedback filter */
- if (ppt > 1.0)
- beta = LTWFL;
- else if (ppt < 0.0)
- beta = 0.0;
- else
- beta = LTWFL*ppt;
-
- /* Loop over excitation sub-frames */
- for (issf = 0; issf < NSF; issf++)
- {
- /* Calculate pitch prediction residual */
- fp0 = dq + XOFF + issf*SFRSZ;
- fp1 = dq + XOFF + issf*SFRSZ - (pp - 2) - 1;
- ee = 0.0;
- for (i = 0; i < SFRSZ; i++)
- {
- e = *fp0++ - bq[0]*fp1[0] - bq[1] * fp1[-1] - bq[2] * fp1[-2];
- fp1++;
- ee += e*e;
- }
-
- /* Log-gain quantization within each sub-frame */
- lg = (ee < TMinE) ? MinE : log(ee/SFRSZ)/log(2.0);
- bs.gidx[issf] = (int16_t) bv32_gainquan(gainq + issf, lg, cs->lgpm, cs->prevlg, cs->level);
-
- /* Level Estimation */
- bv32_estlevel(cs->prevlg[0], &cs->level, &cs->lmax, &cs->lmin, &cs->lmean, &cs->x1);
-
- /* Scale the excitation codebook */
- for (i = 0; i < (VDIM*CBSZ); i++)
- cbs[i] = gainq[issf]*bv32_cccb[i];
-
- /* Perform noise feedback coding of the excitation signal */
- bv32_excquan(qv, bs.qvidx + issf*NVPSSF, dq + XOFF + issf*SFRSZ, aw, bq, beta, cs->ltsym, cs->ltnfm, cs->stnfm, cbs, pp);
-
- /* Update quantized short-term prediction residual buffer */
- Fcopy(dq + XOFF + issf*SFRSZ, qv, SFRSZ);
- }
-
- /* update state memory */
- Fcopy(cs->dq, dq + FRSZ, XOFF);
- Fcopy(cs->lsplast, lspq, LPCO);
- i = bv32_bitpack(out, &bs);
- out += i;
- outlen += i;
- }
- return outlen;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv32_encode_release(bv32_encode_state_t *s)
-{
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-BV_DECLARE(int) bv32_encode_free(bv32_encode_state_t *s)
-{
- free(s);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * excdec.c - Excitation signal decoding including long-term synthesis.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32excdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32externs.h"
-
-void bv32_excdec_w_LT_synth(Float *ltsymd, /* long-term synthesis filter memory at decoder*/
- int16_t *idx, /* excitation codebook index array for current subframe */
- Float *gainq, /* quantized linear gains for sub-subframes */
- Float *b, /* coefficient of 3-tap pitch predictor */
- int16_t pp, /* pitch period (# of 8 kHz samples) */
- Float *EE)
-{
- Float a0;
- Float *fp1;
- Float *fp2;
- const Float *fp3;
- Float gain;
- int i;
- int m;
- int n;
- int id;
- int16_t *ip;
- Float E;
- Float t;
-
- ip = idx;
- fp1 = <symd[LTMOFF]; /* fp1 points to 1st sample of current subframe */
- fp2 = <symd[LTMOFF - pp + 1];
- for (i = 0; i < NSF; i++) /* loop through sub-subframes */
- {
- E = 0.0;
- for (m = 0; m < SFRSZ; m += VDIM) /* loop thru vectors in sub-subframe */
- {
- id = *ip++; /* get codebook index of current vector */
- if (id < CBSZ)
- {
- gain = gainq[i];
- }
- else
- {
- gain = -gainq[i];
- id -= CBSZ;
- }
- fp3 = &bv32_cccb[id*VDIM];
- for (n = 0; n < VDIM; n++)
- {
- a0 = b[0] * *fp2--;
- a0 += b[1] * *fp2--;
- a0 += b[2] * *fp2;/* a0=pitch predicted value of LT syn filt */
- t = *fp3++ * gain;
- E += t*t;
- *fp1++ = a0 + t; /* add scale codevector to a0 */
- fp2 = &fp2[3]; /* prepare fp2 for filtering next sample */
- }
- }
- }
- *EE = E;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * excquan.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-/*****************************************************************************
- Vector Quantizer for 2-Stage Noise Feedback Coding
- with long-term predictive noise feedback coding embedded
- inside the short-term predictive noise feedback coding loop.
-
- Note that the Noise Feedback Coding of the excitation signal is implemented
- using the Zero-State Responsse and Zero-input Response decomposition as
- described in: J.-H. Chen, "Novel Codec Structures for Noise Feedback
- Coding of Speech," Proc. ICASSP, 2006.
-******************************************************************************/
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bvcommon.h"
-#include "bv32externs.h"
-
-void bv32_excquan(Float *qv, /* output quantized excitation signal vector */
- int16_t *idx, /* quantizer codebook index for uq[] vector */
- Float *d, /* input prediction residual signal vector */
- Float *h, /* noise feedback filter coefficient array */
- Float *b, /* coefficient of 3-tap pitch predictor */
- Float beta, /* coefficient of 1-tap LT noise feedback filter */
- Float *ltsym, /* long-term synthesis filter memory */
- Float *ltnfm, /* long-term noise feedback filter memory */
- Float *stnfm, /* short-term noise feedback filter memory */
- Float *cb, /* scalar quantizer codebook */
- int pp) /* pitch period (# of 8 kHz samples) */
-{
- Float qzir[VDIM];
- Float zbuf[VDIM];
- Float buf[LPCO + SFRSZ]; /* buffer for filter memory & signal */
- Float a0;
- Float a1;
- Float *fp1;
- Float *fp2;
- Float *fp3;
- Float *fp4;
- Float sign = 1.0;
- Float ltfv[VDIM];
- Float ppv[VDIM];
- Float qzsr[VDIM*CBSZ];
- int i;
- int j;
- int m;
- int n;
- int jmin;
- int iv;
- Float E;
- Float Emin;
- Float e;
-
- /* COPY FILTER MEMORY TO BEGINNING PART OF TEMPORARY BUFFER */
- fp1 = &stnfm[LPCO - 1];
- for (i = 0; i < LPCO; i++)
- buf[i] = *fp1--; /* this buffer is used to avoid memory shifts */
-
- /* COMPUTE CODEBOOK ZERO-STATE RESPONSE */
- fp2 = cb;
- fp3 = qzsr;
- for (j = 0; j < CBSZ; j++)
- {
- *fp3 = *fp2++; /* no multiply-add needed for 1st ZSR vector element*/
- for (n = 1; n < VDIM; n++) /* loop from 2nd to last vector element */
- {
- /* PERFORM MULTIPLY-ADDS ALONG THE DELAY LINE OF FILTER */
- fp1 = &h[n];
- fp4 = fp3; /* fp4 --> first element of current ZSR vector */
- a0 = *fp2++; /* initialize a0 to codebook element */
- for (i = 0; i < n; i++)
- a0 -= *fp4++ * *fp1--;
- *fp4 = a0; /* update short-term noise feedback filter memory */
- }
- fp3 += VDIM; /* fp3 --> 1st element of next ZSR vector */
- }
-
- /* LOOP THROUGH EVERY VECTOR OF THE CURRENT SUBFRAME */
- iv = 0; /* iv = index of the current vector */
- for (m = 0; m < SFRSZ; m += VDIM)
- {
- /* COMPUTE PITCH-PREDICTED VECTOR, WHICH SHOULD BE INDEPENDENT OF THE
- RESIDUAL VQ CODEVECTORS BEING TRIED IF VDIM < MIN. PITCH PERIOD */
- fp2 = ltfv;
- fp3 = ppv;
- for (n = m; n < m + VDIM; n++)
- {
- fp1 = <sym[MAXPP1 + n - pp + 1];
- a1 = b[0] * *fp1--;
- a1 += b[1] * *fp1--;
- a1 += b[2] * *fp1--;/* a1=pitch predicted vector of LT syn filt */
- *fp3++ = a1; /* write result to ppv[] vector */
-
- *fp2++ = a1 + beta*ltnfm[MAXPP1 + n - pp];
- }
-
- /* COMPUTE ZERO-INPUT RESPONSE */
- fp2 = ppv;
- fp4 = ltfv;
- fp3 = qzir;
- for (n = m; n < m + VDIM; n++)
- {
- /* PERFORM MULTIPLY-ADDS ALONG THE DELAY LINE OF FILTER */
- fp1 = &buf[n];
- a0 = d[n];
- for (i = LPCO; i > 0; i--)
- a0 -= *fp1++ * h[i];
-
- /* a0 NOW CONTAINS v[n]; SUBTRACT THE SUM OF THE TWO LONG_TERM
- FILTERS TO GET THE ZERO-INPUT RESPONSE */
- *fp3++ = a0 - *fp4++; /* q[n] = u[n] during ZIR computation */
-
- /* UPDATE SHORT-TERM NOISE FEEDBACK FILTER MEMORY */
- a0 -= *fp2++; /* a0 now contains qs[n] */
- *fp1 = a0; /* update short-term noise feedback filter memory */
- }
-
- /* LOOP THROUGH EVERY CODEVECTOR OF THE RESIDUAL VQ CODEBOOK */
- /* AND FIND THE ONE THAT MINIMIZES THE ENERGY OF q[n] */
-
- Emin = 1.0e30;
- fp4 = qzsr;
- jmin = 0;
- for (j = 0; j < CBSZ; j++)
- {
- /* Try positive sign */
- fp2 = qzir;
- E = 0.0;
- for (n = 0; n < VDIM; n++)
- {
- e = *fp2++ - *fp4++; // sign impacted by negated ZSR
- E += e*e;
- }
- if (E < Emin)
- {
- jmin = j;
- Emin = E;
- sign = +1.0F;
- }
- /* Try negative sign */
- fp4 -= VDIM;
- fp2 = qzir;
- E = 0.0;
- for (n = 0; n < VDIM; n++)
- {
- e = *fp2++ + *fp4++; // sign impacted by negated ZSR
- E += e*e;
- }
- if (E < Emin)
- {
- jmin = j;
- Emin = E;
- sign = -1.0F;
- }
- }
-
- /* THE BEST CODEVECTOR HAS BEEN FOUND; ASSIGN VQ CODEBOOK INDEX */
- if (sign == 1.0F)
- idx[iv++] = (int16_t) jmin;
- else
- idx[iv++] = (int16_t) (jmin + CBSZ); /* MSB of index is sign bit */
-
- /* BORROW zbuf[] TO STORE FINAL VQ OUTPUT VECTOR WITH CORRECT SIGN */
- fp3 = &cb[jmin*VDIM]; /* fp3 points to start of best codevector */
- for (n = 0; n < VDIM; n++)
- zbuf[n] = sign * *fp3++;
-
- /* UPDATE FILTER MEMORY */
- fp2 = ppv; /* fp2 points to start of pitch-predicted vector */
- fp3 = zbuf; /* fp3 points to start of final VQ output vector */
- fp4 = ltfv; /* fp4 points to long-term filtered vector */
-
- /* LOOP THROUGH EVERY ELEMENT OF THE CURRENT VECTOR */
- for (n = m; n < m + VDIM; n++)
- {
- /* PERFORM MULTIPLY-ADDS ALONG THE DELAY LINE OF FILTER */
- fp1 = &buf[n];
- a0 = d[n];
- for (i = LPCO; i > 0; i--)
- a0 -= *fp1++ * h[i];
-
- /* COMPUTE VQ INPUT SIGNAL u[n] */
- a1 = a0 - *fp4++; /* a1 now contains u[n] */
-
- /* COMPUTE VQ ERROR q[n] */
- a1 -= *fp3; /* a1 now contains VQ quantization error q[n] */
-
- /* UPDATE LONG-TERM NOISE FEEDBACK FILTER MEMORY */
- ltnfm[MAXPP1 + n] = a1;
-
- /* CALCULATE QUANTIZED LPC EXCITATION VECTOR qv[n] */
- qv[n] = (*fp3++ + *fp2++);
-
- /* UPDATE LONG-TERM PREDICTOR MEMORY */
- ltsym[MAXPP1 + n] = qv[n];
-
- /* COMPUTE ERROR BETWEEN v[n] AND qv[n] */
- a0 -= qv[n]; /* a0 now contains u[n] - qv[n] = qs[n] */
-
- /* UPDATE SHORT-TERM NOISE FEEDBACK FILTER MEMORY */
- *fp1 = a0;
- }
- }
-
- /* UPDATE NOISE FEEDBACK FILTER MEMORY AFTER FILTERING CURRENT SUBFRAME */
- for (i = 0; i < LPCO; i++)
- stnfm[i] = *fp1--;
-
- /* UPDATE LONG-TERM PREDICTOR MEMORY AFTER PROCESSING CURRENT SUBFRAME */
- fp2 = <nfm[SFRSZ];
- fp3 = <sym[SFRSZ];
- for (i = 0; i < MAXPP1; i++)
- {
- ltnfm[i] = fp2[i];
- ltsym[i] = fp3[i];
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32externs.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32externs.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bvcommon.h"
-
-/* Pointers */
-extern const Float bv32_winl[];
-extern const Float bv32_sstwin[];
-extern const int bv32_idxord[];
-extern const Float bv32_hpfa[];
-extern const Float bv32_hpfb[];
-extern const Float bv32_adf[];
-extern const Float bv32_bdf[];
-extern const Float bv32_x[];
-extern const Float bv32_x2[];
-extern Float bv32_invk[];
-extern const Float bv32_MPTH[];
-
-
-/* LSP Quantization */
-extern const Float bv32_lspecb1[LSPECBSZ1*LPCO];
-extern const Float bv32_lspecb21[LSPECBSZ21*SVD1];
-extern const Float bv32_lspecb22[LSPECBSZ22*SVD2];
-extern const Float bv32_lspmean[LPCO];
-extern const Float bv32_lspp[LSPPORDER*LPCO];
-
-/* Pitch Predictor Codebook */
-extern const Float bv32_pp9cb[];
-
-/* Log-Gain Quantization */
-extern const Float bv32_lgpecb[LGPECBSZ];
-extern const Float bv32_lgp[LGPORDER];
-extern const Float bv32_lgmean;
-
-/* Log-Gain Limitation */
-extern const Float bv32_lgclimit[];
-
-/* Excitation Codebook */
-extern const Float bv32_cccb[CBSZ*VDIM];
-
-extern const Float bv32_lgpecb_nh[];
-extern const Float bv32_a_pre[];
-extern const Float bv32_b_pre[];
-
-/* Function Prototypes */
-
-extern Float bv32_estlevel(Float lg,
- Float *level,
- Float *lmax,
- Float *lmin,
- Float *lmean,
- Float *x1);
-
-extern void bv32_excdec_w_LT_synth(Float *ltsymd, /* long-term synthesis filter memory at decoder*/
- int16_t *idx, /* excitation codebook index array for current subframe */
- Float *gainq, /* quantized linear gains for sub-subframes */
- Float *b, /* coefficient of 3-tap pitch predictor */
- int16_t pp, /* pitch period (# of 8 kHz samples) */
- Float *EE);
-
-extern Float bv32_gaindec(Float *lgq,
- int16_t gidx,
- Float *lgpm,
- Float *prevlg,
- Float level,
- int16_t *nclglim,
- int16_t lctimer);
-
-extern void bv32_gainplc(Float E,
- Float *lgeqm,
- Float *lgqm);
-
-extern void bv32_lspdec(Float *lspq,
- int16_t *lspidx,
- Float *lsppm,
- Float *lspq_last);
-
-extern void bv32_lspplc(Float *lspq,
- Float *lsppm);
-
-extern int bv32_coarsepitch(Float *xw,
- Float *xwd,
- Float *dfm,
- int cpplast);
-
-
-extern int bv32_refinepitch(Float *x,
- int cpp,
- Float *ppt);
-
-extern int bv32_pitchtapquan(Float *x,
- int pp,
- Float *b);
-
-extern void bv32_excquan(
- Float *qv, /* output quantized excitation signal vector */
- int16_t *idx, /* quantizer codebook index for uq[] vector */
- Float *d, /* input prediction residual signal vector */
- Float *h, /* noise feedback filter coefficient array */
- Float *b, /* coefficient of 3-tap pitch predictor */
- Float beta, /* coefficient of weighted 3-tap pitch predictor */
- Float *ltsym, /* long-term synthesis filter memory */
- Float *ltnfm, /* long-term noise feedback filter memory */
- Float *stnfm, /* short-term noise feedback filter memory */
- Float *cb, /* scalar quantizer codebook */
- int pp); /* pitch period (# of 8 kHz samples) */
-
-extern int bv32_gainquan(Float *gainq,
- Float lg,
- Float *lgpm,
- Float *prevlg,
- Float level);
-
-extern void bv32_lspquan(Float *lspq,
- int16_t *lspidx,
- Float *lsp,
- Float *lsppm);
-
-extern void bv32_pp3dec(int16_t idx, Float *b);
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * fineptch.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32fine_pitch.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bv32externs.h"
-
-#define FS (XOFF + 1) /* Frame Starting index */
-#define FE (XOFF + FRSZ) /* Frame Ending index */
-#define DEV 6
-
-int bv32_refinepitch(Float *x, int cpp, Float *ppt)
-{
- Float cor;
- Float cor2;
- Float energy;
- Float cormax;
- Float cor2max;
- Float energymax;
- Float *fp0;
- Float *fp1;
- Float *fp2;
- Float *fp3;
- int lb;
- int ub;
- int pp;
- int i;
- int j;
-
- if (cpp >= MAXPP)
- cpp = MAXPP - 1;
- if (cpp < MINPP)
- cpp = MINPP;
- lb = cpp - DEV;
- if (lb < MINPP)
- lb = MINPP; /* lower bound of pitch period search range */
- ub = cpp + DEV;
- /* to avoid selecting MAXPP as the refined pitch period */
- if (ub >= MAXPP)
- ub = MAXPP - 1; /* lower bound of pitch period search range */
-
- i = lb; /* start the search from lower bound */
-
- fp0 = x + FS - 1;
- fp1 = x + FS - 1 - i;
- cor = energy = 0.0;
- for (j = 0; j < (FE - FS + 1); j++)
- {
- energy += (*fp1) * (*fp1);
- cor += (*fp0++) * (*fp1++);
- }
-
- pp = i;
- cormax = cor;
- cor2max = cor*cor;
- energymax = energy;
-
- fp0 = x + FE - lb - 1;
- fp1 = x + FS - lb - 2;
- for (i = lb + 1; i <= ub; i++)
- {
- fp2 = x + FS - 1;
- fp3 = x + FS - i - 1;
- cor = 0.;
- for (j = 0; j < (FE - FS + 1); j++)
- cor += (*fp2++)*(*fp3++);
- cor2 = cor*cor;
- energy += ((*fp1)*(*fp1) - (*fp0)*(*fp0));
- fp0--;
- fp1--;
- if ((cor2*energymax) > (cor2max*energy))
- {
- pp = i;
- cormax = cor;
- cor2max = cor2;
- energymax = energy;
- }
- }
-
- *ppt = (energymax != 0) ? (cormax/energymax) : 0.0;
-
- return pp;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * lspquan.c - Quantize LSPs.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32gaindec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-
-#include "typedef.h"
-#include "bv32externs.h"
-
-Float bv32_gaindec(Float *lgq,
- int16_t gidx,
- Float *lgpm,
- Float *prevlg, /* previous log gains (last two frames) */
- Float level, /* input level estimate */
- int16_t *nclglim,
- int16_t lctimer)
-{
- Float gainq;
- Float elg;
- Float lgc;
- Float lgq_nh;
- int i;
- int n;
- int k;
-
- /* CALCULATE ESTIMATED LOG-GAIN (WITH MEAN VALUE OF LOG GAIN RESTORED) */
- elg = bv32_lgmean;
- for (i = 0; i < LGPORDER; i++)
- elg += bv32_lgp[i]*lgpm[i];
-
- /* CALCULATE DECODED LOG-GAIN */
- *lgq = bv32_lgpecb[gidx] + elg;
-
- /* next higher gain */
- if (gidx < LGPECBSZ - 1)
- {
- lgq_nh = bv32_lgpecb_nh[gidx] + elg;
- if (*lgq < MinE && fabs(lgq_nh-MinE) < fabs(*lgq-MinE))
- {
- /* To avoid thresholding when the enc Q makes it below the threshold */
- *lgq = MinE;
- }
- }
-
- /* LOOK UP FROM lgclimit() TABLE THE MAXIMUM LOG GAIN CHANGE ALLOWED */
- i = (int) ((prevlg[0] - level - LGLB) * 0.5F); /* get column index */
- if (i >= NGB)
- i = NGB - 1;
- else if (i < 0)
- i = 0;
- n = (int) ((prevlg[0] - prevlg[1] - GCLB) * 0.5F); /* get row index */
- if (n >= NGCB)
- n = NGCB - 1;
- else if (n < 0)
- n = 0;
- i = i * NGCB + n;
-
- /* UPDATE LOG-GAIN PREDICTOR MEMORY, CHECK WHETHER DECODED LOG-GAIN EXCEEDS LGCLIMIT */
- for (k = LGPORDER - 1; k > 0; k--)
- lgpm[k] = lgpm[k-1];
- lgc = *lgq - prevlg[0];
- if (lgc > bv32_lgclimit[i] && gidx > 0 && lctimer == 0) /* if decoded log-gain exceeds limit */
- {
- *lgq = prevlg[0]; /* use the log-gain of previous frame */
- lgpm[0] = *lgq - elg;
- *nclglim = *nclglim + 1;
- if (*nclglim > NCLGLIM_TRAPPED)
- *nclglim = NCLGLIM_TRAPPED;
- }
- else
- {
- lgpm[0] = bv32_lgpecb[gidx];
- *nclglim = 0;
- }
-
- /* UPDATE PREVIOUS LOG-GAINS */
- prevlg[1] = prevlg[0];
- prevlg[0] = *lgq;
-
- /* CONVERT QUANTIZED LOG-GAIN TO LINEAR DOMAIN */
- gainq = pow(2.0F, 0.5F * *lgq);
-
- return gainq;
-}
-
-void bv32_gainplc(Float E,
- Float *lgeqm,
- Float *lgqm)
-{
- int k;
- Float pe, lg, mrlg, elg, lge;
-
- pe = INVSFRSZ * E;
-
- if (pe - TMinlg > 0.0)
- lg = log(pe)/log(2.0);
- else
- lg = Minlg;
-
- mrlg = lg - bv32_lgmean;
-
- elg = 0.0;
- for (k = 0; k < GPO; k++)
- elg += bv32_lgp[k]*lgeqm[k];
-
- /* predicted log-gain error */
- lge = mrlg - elg;
-
- /* update quantizer memory */
- for (k = GPO - 1; k > 0; k--)
- lgeqm[k] = lgeqm[k-1];
- lgeqm[0] = lge;
-
- /* update quantized log-gain memory */
- lgqm[1] = lgqm[0];
- lgqm[0] = lg;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * gainquan.c - Quantize gains.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32gainquan.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bv32externs.h"
-
-int bv32_gainquan(Float *gainq,
- Float lg,
- Float *lgpm,
- Float *prevlg, /* previous log gains (last two frames) */
- Float level) /* input level estimate */
-{
- Float elg;
- Float lgpe;
- Float limit;
- Float dmin;
- Float d;
- int i;
- int n;
- int gidx = 0;
- const int *p_gidx;
-
- /* CALCULATE ESTIMATED LOG-GAIN */
- elg = bv32_lgmean;
- for (i = 0; i < LGPORDER; i++)
- elg += bv32_lgp[i]*lgpm[i];
-
- /* SUBTRACT LOG-GAIN MEAN & ESTIMATED LOG-GAIN TO GET PREDICTION ERROR */
- lgpe = lg - elg;
-
- /* SCALAR QUANTIZATION OF LOG-GAIN PREDICTION ERROR */
- dmin = 1e30;
- p_gidx = bv32_idxord;
- for (i = 0; i < LGPECBSZ; i++)
- {
- d = lgpe - bv32_lgpecb[*p_gidx++];
- if (d < 0.0F)
- {
- d = -d;
- }
- if (d < dmin)
- {
- dmin = d;
- /* index into ordered codebook */
- gidx=i;
- }
- }
-
- /* CALCULATE QUANTIZED LOG-GAIN */
- *gainq = bv32_lgpecb[bv32_idxord[gidx]] + elg;
-
- /* LOOK UP FROM lgclimit() TABLE THE MAXIMUM LOG GAIN CHANGE ALLOWED */
- i = (int) ((prevlg[0] - level - LGLB) * 0.5F); /* get column index */
- if (i >= NGB)
- i = NGB - 1;
- else if (i < 0)
- i = 0;
- n = (int) ((prevlg[0] - prevlg[1] - GCLB) * 0.5F); /* get row index */
- if (n >= NGCB)
- n = NGCB - 1;
- else if (n < 0)
- n = 0;
- i = i*NGCB + n;
-
- /* CHECK WHETHER QUANTIZED LOG-GAIN CAUSE A GAIN CHANGE > LGCLIMIT */
- limit = prevlg[0] + bv32_lgclimit[i];/* limit that log-gain shouldn't exceed */
- while (*gainq > limit && gidx > 0) /* if quantized gain exceeds limit */
- {
- gidx -= 1; /* decrement gain quantizer index by 1 */
- *gainq = bv32_lgpecb[bv32_idxord[gidx]] + elg; /* use next quantizer output*/
- }
- /* get true codebook index */
- gidx = bv32_idxord[gidx];
-
- /* UPDATE LOG-GAIN PREDICTOR MEMORY */
- prevlg[1] = prevlg[0];
- prevlg[0] = *gainq;
- for (i = LGPORDER - 1; i > 0; i--)
- lgpm[i] = lgpm[i - 1];
- lgpm[0] = bv32_lgpecb[gidx];
-
- /* CONVERT QUANTIZED LOG-GAIN TO LINEAR DOMAIN */
- *gainq = pow(2.0F, 0.5F * *gainq);
-
- return gidx;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * levelest.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32levelest.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bv32externs.h"
-
-Float bv32_estlevel(Float lg,
- Float *level,
- Float *lmax,
- Float *lmin,
- Float *lmean,
- Float *x1)
-{
- Float lth;
-
- /* UPDATE THE NEW MAXIMUM, MINIMUM, & MEAN OF LOG-GAIN */
- if (lg > *lmax)
- *lmax = lg; /* use new log-gain as max if it is > max */
- else
- *lmax = *lmean + estl_alpha*(*lmax - *lmean); /* o.w. attenuate toward lmean */
- if (lg < *lmin)
- *lmin=lg; /* use new log-gain as min if it is < min */
- else
- *lmin = *lmean + estl_alpha*(*lmin - *lmean); /* o.w. attenuate toward lmean */
- *lmean = estl_beta*(*lmean) + estl_beta1*(0.5*(*lmax + *lmin));
-
- /* UPDATE ESTIMATED INPUT LEVEL, BY CALCULATING A RUNNING AVERAGE
- (USING AN EXPONENTIAL WINDOW) OF LOG-GAINS EXCEEDING lmean */
- lth = *lmean + estl_TH*(*lmax - *lmean);
- if (lg > lth)
- {
- *x1 = estl_a*(*x1) + estl_a1*lg;
- *level = estl_a*(*level) + estl_a1*(*x1);
- }
-
- return lth;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32lspdec.c - Decode LSPs.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32lspdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include "typedef.h"
-#include "bv32externs.h"
-#include "bvcommon.h"
-
-static void vqdec(Float *, int16_t, const Float *, int);
-
-void bv32_lspdec(Float *lspq,
- int16_t *lspidx,
- Float *lsppm,
- Float *lspq_last)
-{
- Float elsp[LPCO];
- Float lspe[LPCO];
- Float lspeq1[LPCO];
- Float lspeq2[LPCO];
- Float a0;
- const Float *fp1;
- Float *fp2;
- Float *fp3;
- int i;
- int k;
- int lsfdordr;
-
- /* CALCULATE ESTIMATED (MA-PREDICTED) LSP VECTOR */
- fp1 = bv32_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp1++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* PERFORM FIRST-STAGE VQ CODEBOOK DECODE */
- vqdec(lspeq1, lspidx[0], bv32_lspecb1, LPCO);
-
- /* PERFORM SECOND-STAGE VQ CODEBOOK DECODE */
- vqdec(lspeq2, lspidx[1], bv32_lspecb21, SVD1);
- vqdec(lspeq2 + SVD1, lspidx[2], bv32_lspecb22, SVD2);
-
- /* GET OVERALL QUANTIZER OUTPUT VECTOR OF THE TWO-STAGE VQ */
- /* AND CALCULATE QUANTIZED LSP */
- for (i = 0; i < LPCO; i++)
- {
- lspe[i] = lspeq1[i] + lspeq2[i];
- lspq[i] = lspe[i] + elsp[i] + bv32_lspmean[i];
- }
-
- /* detect bit-errors based on ordering property */
- if (lspq[0] < 0.0)
- lsfdordr = 1;
- else
- lsfdordr = 0;
- for (i = 1; i < SVD1; i++)
- {
- if (lspq[i] - lspq[i-1] < 0.0)
- lsfdordr = 1;
- }
-
- /* substitute LSP and MA predictor update if bit-error detected */
- if (lsfdordr)
- {
- for (i = 0; i < LPCO; i++)
- {
- lspq[i] = lspq_last[i];
- lspe[i] = lspq[i] - elsp[i] - bv32_lspmean[i];
- }
- }
-
- /* UPDATE LSP MA PREDICTOR MEMORY */
- i = LPCO * LSPPORDER - 1;
- fp3 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp3-- = *fp2--;
- *fp3-- = lspe[i];
- fp2--;
- }
-
- /* ENSURE CORRECT ORDERING & MINIMUM SPACING TO GUARANTEE STABILITY */
- stblz_lsp(lspq, LPCO);
-}
-
-static void vqdec(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t idx, /* VQ codebook index for the nearest neighbor */
- const Float *cb, /* VQ codebook */
- int vdim) /* vector dimension */
-{
- int j;
- int k;
-
- j = idx * vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = cb[j + k];
-}
-
-
-void bv32_lspplc(Float *lspq,
- Float *lsppm)
-{
- Float elsp[LPCO];
- Float a0;
- const Float *fp1;
- Float *fp2;
- Float *fp3;
- int i, k;
-
- /* CALCULATE ESTIMATED (MA-PREDICTED) LSP VECTOR */
- fp1 = bv32_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp1++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* UPDATE LSP MA PREDICTOR MEMORY */
- i = LPCO * LSPPORDER - 1;
- fp3 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp3-- = *fp2--;
- *fp3-- = lspq[i] - bv32_lspmean[i] - elsp[i];
- fp2--;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * lspquan.c - Quantize LSPs.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include "typedef.h"
-#include "bv32externs.h"
-#include "bvcommon.h"
-
-static void vqmse(Float *xq, int16_t *idx, Float *x, const Float *cb, int vdim, int cbsz);
-static void vqwmse_stbl(Float *xq, int16_t *idx, Float *x, Float *w, Float *xa,
- const Float *cb, int vdim, int cbsz);
-static void vqwmse(Float *xq, int16_t *idx, Float *x, Float *w, const Float *cb, int vdim,
- int cbsz);
-
-void bv32_lspquan(Float *lspq,
- int16_t *lspidx,
- Float *lsp,
- Float *lsppm)
-{
- Float d[LPCO];
- Float w[LPCO];
- Float elsp[LPCO];
- Float lspe[LPCO];
- Float lspeq1[LPCO];
- Float lspeq2[LPCO];
- Float lspa[LPCO];
- Float a0;
- const Float *fp1;
- Float *fp2;
- Float *fp3;
- int i;
- int k;
-
- /* CALCULATE THE WEIGHTS FOR WEIGHTED MEAN-SQUARE ERROR DISTORTION */
- for (i = 0; i < LPCO - 1; i++)
- d[i] = lsp[i + 1] - lsp[i]; /* LSP difference vector */
- w[0] = 1.0F / d[0];
- for (i = 1; i < LPCO - 1; i++)
- {
- if (d[i] < d[i - 1])
- w[i] = 1.0F/d[i];
- else
- w[i] = 1.0F/d[i - 1];
- }
- w[LPCO - 1] = 1.0F/d[LPCO - 2];
-
- /* CALCULATE ESTIMATED (MA-PREDICTED) LSP VECTOR */
- fp1 = bv32_lspp;
- fp2 = lsppm;
- for (i = 0; i < LPCO; i++)
- {
- a0 = 0.0F;
- for (k = 0; k < LSPPORDER; k++)
- a0 += *fp1++ * *fp2++;
- elsp[i] = a0;
- }
-
- /* SUBTRACT LSP MEAN VALUE & ESTIMATED LSP TO GET PREDICTION ERROR */
- for (i = 0; i < LPCO; i++)
- lspe[i] = lsp[i] - bv32_lspmean[i] - elsp[i];
-
- /* PERFORM FIRST-STAGE VQ CODEBOOK SEARCH, MSE VQ */
- vqmse(lspeq1, &lspidx[0], lspe, bv32_lspecb1, LPCO, LSPECBSZ1);
-
- /* CALCULATE QUANTIZATION ERROR VECTOR OF FIRST-STAGE VQ */
- for (i = 0; i < LPCO; i++)
- d[i] = lspe[i] - lspeq1[i];
-
- /* PERFORM SECOND-STAGE VQ CODEBOOK SEARCH */
- for (i = 0; i < SVD1; i++)
- lspa[i] = bv32_lspmean[i] + elsp[i] + lspeq1[i];
- vqwmse_stbl(lspeq2, &lspidx[1], d, w, lspa, bv32_lspecb21, SVD1, LSPECBSZ21);
- vqwmse(&lspeq2[SVD1], &lspidx[2], &d[SVD1], &w[SVD1], bv32_lspecb22, SVD2, LSPECBSZ22);
-
- /* GET OVERALL QUANTIZER OUTPUT VECTOR OF THE TWO-STAGE VQ */
- for (i = 0; i < LPCO; i++)
- lspe[i] = lspeq1[i] + lspeq2[i];
-
- /* UPDATE LSP MA PREDICTOR MEMORY */
- i = LPCO * LSPPORDER - 1;
- fp3 = &lsppm[i];
- fp2 = &lsppm[i - 1];
- for (i = LPCO - 1; i >= 0; i--)
- {
- for (k = LSPPORDER; k > 1; k--)
- *fp3-- = *fp2--;
- *fp3-- = lspe[i];
- fp2--;
- }
-
- /* CALCULATE QUANTIZED LSP */
- for (i = 0; i < LPCO; i++)
- lspq[i] = lspe[i] + elsp[i] + bv32_lspmean[i];
-
- /* ENSURE CORRECT ORDERING & MINIMUM SPACING TO GUARANTEE STABILITY */
- stblz_lsp(lspq, LPCO);
-}
-
-/* MSE VQ */
-static void vqmse(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t *idx, /* VQ codebook index for the nearest neighbor */
- Float *x, /* input vector */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- const Float *fp1;
- Float dmin;
- Float d;
- int j;
- int k;
- Float e;
-
- fp1 = cb;
- dmin = 1.0e30;
- for (j = 0; j < cbsz; j++)
- {
- d = 0.0F;
- for (k = 0; k < vdim; k++)
- {
- e = x[k] - (*fp1++);
- d += e * e;
- }
- if (d < dmin)
- {
- dmin = d;
- *idx = (int16_t) j;
- }
- }
-
- j = *idx * vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = cb[j + k];
-}
-
-/* WMSE VQ with enforcement of ordering property */
-static void vqwmse_stbl(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t *idx, /* VQ codebook index for the nearest neighbor */
- Float *x, /* input vector */
- Float *w, /* weights for weighted Mean-Square Error */
- Float *xa, /* lsp approximation */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- Float a0;
- const Float *fp1;
- const Float *fp2;
- Float dmin;
- Float d;
- Float xqc[LPCO];
- int j;
- int k;
- int stbl;
-
- fp1 = cb;
- dmin = 1.0e30;
- *idx = -1;
- for (j = 0; j < cbsz; j++)
- {
- /* Check stability */
- fp2 = fp1;
- xqc[0] = xa[0] + *fp2++;
- stbl = (xqc[0] < 0.0) ? 0 : 1;
- for (k = 1; k < vdim; k++)
- {
- xqc[k] = xa[k] + *fp2++;
- if (xqc[k] - xqc[k-1] < 0.0)
- stbl = 0;
- }
-
- /* Calculate distortion */
- d = 0.0F;
- for (k = 0; k < vdim; k++)
- {
- a0 = x[k] - *fp1++;
- d += w[k] * a0 * a0;
- }
-
- if (stbl > 0)
- {
- if (d < dmin)
- {
- dmin = d;
- *idx = (int16_t) j;
- }
- }
- }
-
- if (*idx == -1)
- {
- //printf("\nWARNING: Encoder-decoder synchronization lost for clean channel!!!\n");
- *idx = 1;
- }
-
- fp1 = cb + (*idx)*vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = *fp1++;
-}
-
-/* MSE VQ */
-static void vqwmse(Float *xq, /* VQ output vector (quantized version of input vector) */
- int16_t *idx, /* VQ codebook index for the nearest neighbor */
- Float *x, /* input vector */
- Float *w, /* weights for weighted Mean-Square Error */
- const Float *cb, /* VQ codebook */
- int vdim, /* vector dimension */
- int cbsz) /* codebook size (number of codevectors) */
-{
- Float a0;
- const Float *fp1;
- Float dmin;
- Float d;
- int j;
- int k;
-
- fp1 = cb;
- dmin = 1.0e30;
- for (j = 0; j < cbsz; j++)
- {
- d = 0.0F;
- for (k = 0; k < vdim; k++)
- {
- a0 = x[k] - *fp1++;
- d += w[k]*a0*a0;
- }
- if (d < dmin)
- {
- dmin = d;
- *idx = (int16_t) j;
- }
- }
-
- j = *idx * vdim;
- for (k = 0; k < vdim; k++)
- xq[k] = cb[j + k];
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * plc.c - Packet loss concealment.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32plc.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <math.h>
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "utility.h"
-#include "bvcommon.h"
-#include "bv32externs.h"
-#include "bv32strct.h"
-#include "broadvoice/broadvoice.h"
-
-BV_DECLARE(int) bv32_fillin(bv32_decode_state_t *ds, int16_t amp[], int len)
-{
- int n;
- int i_sf;
- Float r[SFRSZ]; /* random excitation */
- Float E;
- Float gain;
- Float tmp;
- Float xq[SFRSZ];
- Float d[LTMOFF + FRSZ]; /* long-term synthesis filter memory */
-
- /************************************************************/
- /* Copy decoder state memory */
- /************************************************************/
- Fcopy(d, ds->ltsym, LTMOFF); /* excitation */
-
- /************************************************************/
- /* Update counter of consecutive list frames */
- /************************************************************/
- if (ds->cfecount < HoldPLCG + AttnPLCG - 1)
- ds->cfecount++;
-
- /* loop over subframes */
- for (i_sf = 0; i_sf < FECNSF; i_sf++)
- {
- /* Generate Unscaled Excitation */
- E = 0.0;
- for (n = 0; n < SFRSZ; n++)
- {
- ds->idum = 1664525L*ds->idum + 1013904223L;
- r[n] = (Float)(ds->idum >> 16) - 32767.0;
- E += r[n] * r[n];
- }
-
- /* Calculate Scaling */
- ds->scplcg = ScPLCG_a + ScPLCG_b * ds->per;
- if (ds->scplcg > ScPLCGmax)
- ds->scplcg = ScPLCGmax;
- else if (ds->scplcg < ScPLCGmin)
- ds->scplcg = ScPLCGmin;
- gain = ds->scplcg * sqrt(ds->E/E);
-
- /* Long-term synthesis filter */
- for (n = 0; n < SFRSZ; n++)
- {
- d[LTMOFF+i_sf*SFRSZ+n] = gain * r[n];
- d[LTMOFF+i_sf*SFRSZ+n] += ds->bq_last[0] * d[LTMOFF+i_sf*SFRSZ+n-ds->pp_last+1];
- d[LTMOFF+i_sf*SFRSZ+n] += ds->bq_last[1] * d[LTMOFF+i_sf*SFRSZ+n-ds->pp_last];
- d[LTMOFF+i_sf*SFRSZ+n] += ds->bq_last[2] * d[LTMOFF+i_sf*SFRSZ+n-ds->pp_last-1];
- }
-
- /************************************************************/
- /* Short-term synthesis filter */
- /************************************************************/
- apfilter(ds->atplc, LPCO, d+i_sf*SFRSZ+LTMOFF, xq, SFRSZ, ds->stsym, 1);
-
- /**********************************************************/
- /* De-emphasis filter */
- /**********************************************************/
- for (n = 0; n < SFRSZ; n++)
- {
- tmp = xq[n] + PEAPFC*ds->dezfm[0] - PEAZFC*ds->depfm[0];
- ds->dezfm[0] = xq[n];
- ds->depfm[0] = tmp;
- if (tmp >= 0)
- tmp += 0.5;
- else tmp -= 0.5;
-
- if (tmp > 32767.0)
- tmp = 32767.0;
- else if (tmp < -32768.0)
- tmp = -32768.0;
- amp[i_sf*SFRSZ + n] = (int16_t) tmp;
- }
-
- /************************************************************/
- /* Update memory of predictive gain quantizer */
- /************************************************************/
- bv32_gainplc(ds->E, ds->lgpm, ds->prevlg);
-
- /* Estimate the signal level */
- bv32_estlevel(ds->prevlg[0], &ds->level, &ds->lmax, &ds->lmin, &ds->lmean, &ds->x1);
- }
-
- /************************************************************/
- /* Save decoder state memory */
- /************************************************************/
- Fcopy(ds->ltsym, d + FRSZ, LTMOFF);
-
- /************************************************************/
- /* Update memory of predictive LSP quantizer */
- /************************************************************/
- bv32_lspplc(ds->lsplast,ds->lsppm);
-
- /************************************************************/
- /* Attenuation during long packet losses */
- /************************************************************/
- if (ds->cfecount >= HoldPLCG)
- {
- gain = 1.0 - AttnFacPLCG*(Float) (ds->cfecount - (HoldPLCG - 1));
- ds->bq_last[0] = gain*ds->bq_last[0];
- ds->bq_last[1] = gain*ds->bq_last[1];
- ds->bq_last[2] = gain*ds->bq_last[2];
- ds->E = gain*gain*ds->E;
- }
- return FRSZ;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32ptdec.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32ptdec.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32externs.h"
-
-void bv32_pp3dec(int16_t idx, Float *b)
-{
- const Float *fp;
- int i;
-
- fp = bv32_pp9cb + idx*9;
- for (i = 0; i < 3; i++)
- b[i] = fp[i]*0.5;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * ptquan.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32ptquan.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bvcommon.h"
-#include "bv32externs.h"
-
-int bv32_pitchtapquan(Float *x,
- int pp,
- Float *b)
-{
- Float p[9];
- Float t;
- Float s0;
- Float s1;
- Float s2;
- Float cormax;
- Float cor;
- Float t0;
- Float t1;
- Float t2;
- Float *xt;
- const Float *fp0;
- Float *fp1;
- const Float *fp2;
- int ppm2;
- int qidx = 0;
- int i;
- int j;
-
- ppm2 = pp - 2;
- xt = x + XOFF;
-
- for (i = 0; i < 3; i++)
- {
- fp0 = xt;
- fp1 = x + XOFF - ppm2 - i - 1;
- t = 0;
- for (j = 0; j < FRSZ; j++)
- t += (*fp0++) * (*fp1++);
- p[i] = t;
- }
-
- fp0 = x + XOFF - ppm2 - 3;
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- t0 = p[8] = s0*s0;
- t1 = p[4] = s0*s1;
- p[5] = s0*s2;
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- t2 = s0*s0;
- p[8] += t2;
- p[4] += s0*s1;
- p[5] += s0*s2;
- for (i = 0; i < (FRSZ - 2); i++)
- {
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- p[8] += s0*s0;
- p[4] += s0*s1;
- p[5] += s0*s2;
- }
- s0 = *fp0++;
- s1 = *fp0++;
- s2 = *fp0--;
- p[7] = p[8] + (s0*s0) - t0;
- p[3] = p[4] + (s0*s1) - t1;
- p[6] = p[7] + (s1*s1) - t2;
-
- cormax = -1.0e30;
- fp0 = bv32_pp9cb;
- for (i = 0; i < PPCBSZ; i++)
- {
- cor = 0.0;
- fp1 = p;
- for (j = 0; j < 9; j++)
- cor += (*fp0++)*(*fp1++);
- if (cor > cormax)
- {
- cormax = cor;
- qidx = i;
- }
- }
-
- fp2 = bv32_pp9cb + qidx*9;
- for (i = 0; i < 3; i++)
- b[i] = fp2[i]*0.5;
-
- return qidx;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32strct.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32strct.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bvcommon.h"
-
-#if !defined(_BV32STRCT_H_)
-#define _BV32STRCT_H_
-
-struct bv32_decode_state_s
-{
- Float stsym[LPCO];
- Float ltsym[LTMOFF];
- Float lsppm[LPCO*LSPPORDER];
- Float lgpm[LGPORDER];
- Float lsplast[LPCO];
- Float dezfm[PFO];
- Float depfm[PFO];
- int16_t cfecount;
- uint32_t idum;
- Float E;
- Float scplcg;
- Float per;
- Float atplc[LPCO + 1];
- int16_t pp_last;
- Float prevlg[2];
- Float lgq_last;
- Float bq_last[3];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int16_t nclglim;
- int16_t lctimer;
-};
-
-struct bv32_encode_state_s
-{
- Float x[XOFF];
- Float xwd[XDOFF]; /* memory of DECF:1 decimated version of xw() */
- Float dq[XOFF]; /* quantized short-term pred error */
- Float dfm[DFO]; /* decimated xwd() filter memory */
- Float stpem[LPCO]; /* ST Pred. Error filter memory, low-band */
- Float stwpm[LPCO]; /* ST Weighting all-Pole Memory, low-band */
- Float stnfm[LPCO]; /* ST Noise Feedback filter Memory, Lowband */
- Float stsym[LPCO]; /* ST Synthesis filter Memory, Lowband */
- Float ltsym[MAXPP1 + FRSZ]; /* long-term synthesis filter memory */
- Float ltnfm[MAXPP1 + FRSZ]; /* long-term noise feedback filter memory */
- Float lsplast[LPCO];
- Float lsppm[LPCO*LSPPORDER]; /* LSP Predictor Memory */
- Float lgpm[LGPORDER];
- Float hpfzm[HPO];
- Float hpfpm[HPO];
- Float prevlg[2];
- Float lmax; /* level-adaptation */
- Float lmin;
- Float lmean;
- Float x1;
- Float level;
- int cpplast; /* pitch period pf the previous frame */
- Float allast[LPCO + 1];
-};
-
-struct BV32_Bit_Stream
-{
- int16_t lspidx[3];
- int16_t ppidx;
- int16_t bqidx;
- int16_t gidx[2];
- int16_t qvidx[NVPSF];
-};
-
-#endif
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * tables.c - Constant data tables for the BroadVoice32 codec.
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32tables.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bv32cnst.h"
-#include "bv32externs.h"
-
-/* spec */
-/* log-gain change limitation */
-const Float bv32_lgclimit[] =
-{
- 0.00000, 0.13477, 2.26563, 2.94336, 4.71875, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- 0.00000, 0.64453, 4.90039, 3.38281, 4.58203, 5.69336, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- 0.00000, 0.33594, 7.27734, 5.82422, 11.66211, 11.66211, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000,
- 6.31250, 5.50977, 4.83984, 6.99023, 8.22852, 11.49805, 1.89844, 0.00000, 0.00000, 0.00000, 0.00000,
- 0.00000, 5.04883, 5.09180, 5.91406, 6.92188, 7.38086, 4.13867, 0.00000, 0.00000, 0.00000, 0.00000,
- -0.36523, 6.15625, 8.26953, 5.40430, 5.88477, 11.53906, 5.31836, -4.97070, 0.00000, 0.00000, 0.00000,
- 5.51172, 6.31641, 9.66602, 7.58594, 10.63281, 12.03906, 8.79297, 3.06836, 0.00000, 0.00000, 0.00000,
- 3.95703, 10.51172, 8.42969, 7.62891, 11.45703, 11.95898, 10.85352, 2.83008, 1.50000, 0.00000, 0.00000,
- 7.37305, 8.93945, 8.57422, 6.85742, 9.67773, 11.54492, 10.98242, 10.43359, 2.53320, 5.05859, 0.00000,
- 7.37305, 8.12109, 6.66406, 5.87891, 7.59766, 10.67969, 10.42578, 9.46875, 6.85938, 3.06445, 0.00000,
- 4.39844, 5.94336, 5.73047, 5.10742, 5.69531, 8.31641, 10.05273, 8.23047, 7.11328, 3.04102, -1.27930,
- 0.58789, 5.10938, 5.41602, 4.55273, 4.32813, 5.75586, 7.42383, 6.63867, 6.81055, 4.14258, 3.31641,
- 0.14453, 5.64844, 5.05859, 4.06836, 3.51758, 4.07617, 4.56055, 4.99219, 5.51953, 4.82227, 5.19141,
- 0.00000, 5.54688, 5.15625, 3.37891, 2.90430, 2.74805, 2.82422, 3.37500, 4.02930, 4.49805, 3.42188,
- 0.00000, 0.39258, 3.92188, 2.67383, 2.66602, 2.40039, 4.65039, 3.29883, 2.16016, 2.95703, 0.40820,
- 0.00000, 0.00000, 1.15039, 2.56641, 3.98438, 3.61133, 4.66797, 0.58398, -0.26563, 0.09570, 0.00000,
- 0.00000, 0.00000, 0.37695, 4.30664, 7.07031, 0.81641, 2.86914, 1.19336, 0.69922, -1.23242, 0.00000,
- 0.00000, 0.00000, 0.07617, 1.46875, 3.49219, 3.16992, -0.84180, 3.81250, -0.50781, 0.00000, 0.00000
-};
-
-/* spec */
-const Float bv32_lspecb1[] =
-{
- -0.00384521, -0.00849915, -0.01591492, -0.00360107, -0.00013733, 0.00610352, 0.01640320, -0.00166321,
- -0.00511169, -0.01313782, -0.01698303, -0.00103760, -0.01216125, -0.00427246, -0.00271606, 0.00846863,
- -0.00367737, -0.00166321, 0.00045776, -0.00309753, 0.01814270, -0.00053406, 0.00256348, -0.00833130,
- -0.00312805, -0.00488281, 0.00282288, -0.00173950, 0.00004578, -0.00094604, -0.01976013, 0.00306702,
- -0.00250244, -0.00323486, 0.00154114, 0.00422668, -0.00964355, -0.01895142, 0.01704407, 0.00219727,
- -0.00090027, -0.00347900, -0.00909424, -0.00746155, -0.00656128, -0.02726746, -0.00769043, -0.00224304,
- 0.00399780, 0.01086426, 0.00677490, 0.00090027, 0.00244141, -0.00988770, 0.00549316, -0.00628662,
- -0.00151062, -0.00581360, -0.00186157, -0.00430298, -0.01788330, -0.01603699, -0.03099060, -0.00659180,
- -0.00547791, -0.00958252, 0.00094604, 0.01203918, 0.00695801, 0.02105713, 0.00720215, 0.00140381,
- -0.00393677, -0.00848389, -0.01943970, -0.01473999, 0.01364136, -0.00468445, -0.00344849, 0.00566101,
- -0.00331116, -0.00723267, 0.00175476, 0.03128052, 0.00772095, -0.00163269, 0.00566101, -0.00460815,
- -0.00222778, -0.00709534, -0.00581360, 0.01132202, -0.00482178, -0.00050354, -0.01037598, -0.01887512,
- -0.00325012, -0.00445557, 0.00651550, 0.00497437, -0.01744080, 0.01000977, 0.01194763, -0.00160217,
- -0.00054932, -0.00219727, -0.00631714, -0.01139832, -0.01916504, -0.00711060, 0.00106812, -0.01481628,
- -0.00546265, 0.00070190, 0.02934265, 0.01412964, 0.00656128, 0.00003052, 0.01229858, 0.00367737,
- -0.00254822, 0.00099182, 0.02000427, -0.00164795, -0.01643372, -0.00813293, -0.00671387, -0.01013184,
- -0.00204468, 0.00265503, -0.00135803, -0.02322388, 0.00332642, 0.01715088, 0.01350403, 0.00199890,
- -0.00289917, -0.00740051, -0.01710510, -0.02655029, -0.01350403, 0.00151062, -0.00038147, 0.00778198,
- -0.00028992, 0.00064087, 0.00022888, -0.00819397, 0.00061035, 0.02536011, -0.00822449, -0.02096558,
- -0.00028992, 0.00001526, -0.00805664, -0.02310181, -0.00082397, -0.00106812, -0.02081299, -0.01762390,
- -0.00030518, 0.00170898, -0.00651550, -0.01683044, 0.00083923, -0.00955200, 0.02677917, 0.00958252,
- 0.00292969, 0.00251770, -0.00447083, -0.01782227, -0.02940369, -0.02981567, 0.00372314, -0.00421143,
- 0.01701355, 0.02578735, -0.00593567, 0.00595093, 0.01370239, 0.01223755, 0.00622559, -0.00111389,
- 0.00061035, -0.00015259, 0.00686646, 0.00129700, -0.00637817, -0.02079773, -0.05078125, -0.01544189,
- -0.00398254, 0.00350952, 0.01591492, -0.00076294, 0.02429199, 0.02890015, 0.01559448, 0.00701904,
- -0.00177002, -0.00981140, -0.03118896, -0.01042175, -0.00013733, 0.00044250, -0.00659180, -0.01545715,
- 0.00256348, 0.01017761, 0.01966858, 0.01533508, 0.01405334, 0.01646423, -0.00257874, -0.01338196,
- 0.00088501, -0.00016785, -0.00163269, -0.00199890, -0.00700378, -0.00726318, -0.02569580, -0.03907776,
- 0.00035095, 0.00717163, 0.00427246, 0.00279236, 0.02046204, 0.00689697, 0.02848816, 0.01043701,
- 0.00041199, 0.00004578, -0.01815796, -0.03132629, -0.00378418, -0.02220154, 0.00140381, -0.00294495,
- 0.01571655, 0.02601624, 0.01066589, 0.03164673, 0.03356934, 0.02770996, 0.01812744, 0.00709534,
- 0.00881958, 0.02149963, 0.01010132, 0.00360107, 0.00122070, -0.00657654, -0.01893616, -0.02380371,
- -0.00672913, -0.01612854, -0.02481079, -0.00184631, 0.00761414, 0.01754761, 0.00720215, 0.01480103,
- -0.00515747, -0.01365662, -0.01542664, -0.01049805, -0.01742554, 0.02040100, -0.00880432, -0.00152588,
- -0.00303650, -0.00975037, -0.02221680, 0.01498413, 0.02423096, 0.00935364, -0.00544739, -0.00675964,
- -0.00221252, -0.00933838, -0.02006531, 0.00033569, 0.00292969, -0.01268005, -0.02940369, -0.00543213,
- -0.00231934, -0.00257874, 0.00263977, -0.00134277, -0.00151062, -0.00566101, 0.00665283, 0.03112793,
- -0.00123596, -0.00584412, -0.01034546, -0.01982117, -0.02880859, -0.02052307, -0.01663208, 0.00572205,
- 0.00738525, 0.02700806, 0.01812744, 0.02203369, 0.00323486, -0.00514221, 0.01075745, 0.00660706,
- 0.00349426, 0.00294495, -0.00387573, -0.01075745, -0.02171326, -0.03224182, -0.02403259, -0.02343750,
- -0.00619507, -0.01358032, -0.01676941, 0.01498413, 0.02687073, 0.02645874, 0.01818848, 0.01010132,
- -0.00459290, -0.00839233, -0.02026367, -0.02606201, 0.02151489, 0.02061462, -0.00651550, -0.00538635,
- -0.00405884, -0.00538635, 0.00645447, 0.03422546, 0.03749084, 0.02166748, 0.00497437, -0.00592041,
- -0.00209045, -0.00204468, -0.00219727, 0.00228882, 0.02597046, 0.00415039, -0.02684021, -0.01873779,
- -0.00489807, -0.00955200, -0.00572205, 0.00482178, -0.00778198, 0.01531982, 0.03317261, 0.01727295,
- -0.00341797, -0.00909424, -0.00500488, -0.00860596, -0.04263306, -0.00547791, 0.00357056, 0.00357056,
- -0.00016785, 0.01191711, 0.03486633, 0.03454590, 0.02195740, 0.01472473, 0.03034973, 0.02073669,
- -0.00109863, 0.00473022, 0.01737976, 0.00859070, -0.00253296, -0.03044128, -0.00776672, -0.01104736,
- -0.00527954, -0.00999451, -0.00939941, -0.00805664, -0.00268555, 0.04862976, 0.01870728, 0.00442505,
- -0.00317383, -0.00744629, -0.00877380, -0.02050781, -0.03236389, 0.01905823, 0.01884460, 0.00524902,
- 0.00453186, 0.01782227, 0.00762939, -0.00749207, 0.03543091, 0.01852417, -0.00367737, -0.01086426,
- 0.00018311, -0.00355530, -0.01539612, -0.02656555, -0.00277710, -0.01931763, -0.03083801, 0.00360107,
- -0.00143433, 0.00292969, 0.01277161, 0.00936890, 0.00128174, -0.00985718, 0.04154968, 0.02775574,
- 0.00213623, 0.00561523, 0.00642395, -0.00889587, -0.03330994, -0.05546570, 0.00897217, 0.00265503,
- 0.01060486, 0.05717468, 0.03829956, 0.03216553, 0.02561951, 0.02203369, 0.01969910, 0.00923157,
- 0.00221252, 0.00817871, 0.01704407, -0.00007629, -0.00616455, -0.04737854, -0.03558350, 0.00561523,
- -0.00749207, -0.00627136, 0.02369690, 0.02711487, 0.03462219, 0.04241943, 0.02859497, 0.01635742,
- -0.02087402, -0.04931641, 0.00619507, 0.00404358, 0.01080322, 0.00926208, 0.00779724, 0.00225830,
- -0.00173950, 0.01293945, 0.04112244, 0.03024292, 0.03976440, 0.03063965, 0.00881958, -0.00358582,
- -0.00424194, -0.00158691, 0.02459717, 0.01078796, 0.00611877, 0.00105286, -0.02471924, -0.02410889,
- -0.00451660, -0.00415039, 0.00253296, 0.01228333, 0.02276611, 0.02371216, 0.05001831, 0.02963257,
- -0.00369263, -0.01776123, -0.03298950, -0.01219177, -0.03230286, -0.02035522, -0.01049805, -0.00700378,
- 0.01309204, 0.03527832, 0.04226685, 0.04809570, 0.04991150, 0.04533386, 0.03337097, 0.01974487,
- 0.00236511, 0.01925659, 0.04072571, 0.02778625, 0.01647949, -0.01173401, -0.02360535, -0.01696777,
- -0.00433350, -0.01188660, -0.02235413, 0.01066589, 0.01145935, -0.00656128, 0.02409363, 0.01565552,
- -0.00448608, -0.01176453, -0.02374268, -0.01464844, -0.01629639, -0.01852417, 0.01446533, 0.01126099,
- -0.00320435, 0.00030518, 0.00944519, 0.01014709, 0.03031921, 0.00007629, -0.00328064, 0.01599121,
- -0.00141907, -0.00477600, -0.00032043, -0.00436401, -0.00563049, -0.02128601, -0.03314209, 0.02626038,
- -0.00105286, -0.00151062, -0.00180054, -0.00811768, -0.02941895, -0.01837158, 0.03617859, 0.01126099,
- -0.00238037, -0.00828552, -0.00988770, 0.00376892, -0.02708435, -0.03489685, -0.00431824, 0.00047302,
- 0.01274109, 0.02935791, 0.00981140, -0.00921631, -0.01629639, -0.00587463, 0.00247192, 0.00064087,
- 0.00193787, -0.00151062, -0.00468445, -0.01261902, -0.02470398, -0.03384399, -0.04949951, -0.00338745,
- -0.00361633, -0.00816345, 0.00148010, 0.03401184, 0.01333618, 0.01911926, 0.02272034, 0.01939392,
- -0.00132751, -0.00799561, -0.02526855, -0.03221130, 0.00328064, 0.00810242, 0.00950623, 0.01345825,
- -0.00360107, -0.00260925, 0.03428650, 0.04959106, 0.01815796, 0.00881958, -0.00042725, -0.00680542,
- -0.00175476, -0.00695801, 0.00030518, 0.02726746, -0.00277710, -0.01660156, -0.02694702, -0.01084900,
- -0.00105286, 0.00723267, 0.02352905, 0.00462341, -0.01211548, 0.02276611, 0.02523804, 0.01177979,
- 0.00044250, -0.00314331, -0.00833130, -0.02253723, -0.03590393, 0.00534058, -0.01576233, -0.01797485,
- 0.00265503, 0.02203369, 0.05549622, 0.02410889, 0.00866699, 0.00965881, 0.00958252, -0.00190735,
- 0.00163269, 0.00399780, 0.01559448, -0.00083923, -0.03933716, -0.01277161, -0.02479553, -0.01690674,
- -0.00450134, -0.00598145, -0.01719666, -0.02134705, 0.02500916, 0.02310181, 0.02972412, 0.01644897,
- -0.00181580, -0.00743103, -0.02114868, -0.03652954, -0.03193665, -0.00167847, 0.00451660, 0.00935364,
- -0.00350952, -0.00422668, -0.00115967, 0.00111389, 0.03088379, 0.04490662, -0.00390625, -0.01063538,
- 0.00189209, -0.00177002, -0.01432800, -0.02612305, -0.01161194, -0.01190186, -0.04681396, -0.02130127,
- -0.00234985, -0.00527954, -0.01350403, -0.01855469, -0.00726318, -0.00196838, 0.04997253, 0.02980042,
- 0.00024414, -0.00541687, -0.01794434, -0.02980042, -0.03829956, -0.04582214, 0.01480103, 0.01237488,
- 0.05004883, 0.03166199, 0.02220154, 0.01562500, 0.00930786, 0.00764465, 0.00833130, 0.00251770,
- 0.00430298, 0.00444031, 0.00691223, -0.00653076, -0.01719666, -0.04112244, -0.09020996, -0.00898743,
- 0.00041199, 0.00929260, 0.00347900, 0.00259399, 0.05375671, 0.03878784, 0.02937317, 0.01449585,
- -0.00491333, -0.02757263, -0.06730652, -0.02465820, -0.00869751, -0.00566101, -0.00590515, 0.00354004,
- 0.01916504, 0.03500366, 0.02929688, 0.03329468, 0.02725220, 0.01902771, -0.00694275, -0.01644897,
- 0.00370789, 0.00387573, 0.00061035, -0.00419617, -0.01568604, -0.02262878, -0.05206299, -0.04679871,
- 0.01432800, 0.03143311, 0.01612854, 0.00932312, 0.01620483, 0.02969360, 0.03417969, 0.02700806,
- 0.00350952, 0.00082397, -0.03111267, -0.06707764, -0.02024841, -0.01860046, -0.00958252, -0.00173950,
- 0.05522156, 0.04231262, 0.04219055, 0.03793335, 0.03443909, 0.03150940, 0.02209473, 0.01277161,
- 0.03974915, 0.03291321, 0.01431274, 0.00024414, 0.00086975, -0.01142883, -0.03588867, -0.01281738,
- -0.00840759, -0.02593994, -0.04820251, 0.00361633, 0.01782227, 0.03044128, 0.02810669, 0.02386475,
- -0.00660706, -0.02162170, -0.03446960, -0.01261902, -0.02426147, 0.01382446, 0.01550293, 0.01689148,
- -0.00529480, -0.00663757, -0.01538086, -0.00068665, 0.05569458, 0.01844788, 0.00303650, 0.00178528,
- -0.00257874, -0.00895691, -0.00971985, -0.00666809, 0.00314331, -0.00125122, -0.05572510, 0.00030518,
- -0.00048828, 0.00041199, -0.00028992, -0.00938416, -0.00831604, -0.03677368, 0.01962280, 0.03395081,
- 0.00151062, -0.00248718, -0.01004028, -0.02021790, -0.03338623, -0.05041504, -0.02108765, 0.00358582,
- 0.01791382, 0.06657410, 0.02952576, 0.01698303, 0.00154114, -0.00361633, 0.00166321, -0.00538635,
- 0.00483704, 0.01110840, 0.01173401, -0.00868225, -0.03361511, -0.06233215, -0.03771973, -0.02009583,
- -0.00576782, -0.01533508, -0.01855469, 0.03782654, 0.04870605, 0.04002380, 0.02944946, 0.01617432,
- -0.00526428, -0.01495361, -0.03617859, -0.05659485, 0.00096130, 0.01994324, 0.01362610, 0.00981140,
- -0.00202942, -0.00065613, 0.02978516, 0.07008362, 0.05216980, 0.03585815, 0.01889038, 0.00332642,
- -0.00016785, 0.00070190, 0.00903320, 0.03486633, 0.03285217, 0.00875854, -0.03100586, -0.03533936,
- -0.00460815, -0.00889587, -0.00535583, -0.00605774, -0.01533508, 0.03904724, 0.05235291, 0.02601624,
- 0.00132751, -0.00230408, -0.00685120, -0.03175354, -0.06939697, -0.02249146, -0.01206970, -0.00375366,
- -0.00267029, 0.01330566, 0.07746887, 0.05206299, 0.03462219, 0.02912903, 0.02680969, 0.01100159,
- 0.00160217, 0.01959229, 0.05360413, 0.01110840, -0.02023315, -0.03753662, -0.01402283, -0.01716614,
- -0.00639343, -0.01054382, -0.00729370, 0.00303650, 0.02307129, 0.07855225, 0.04028320, 0.01892090,
- -0.00352478, -0.01866150, -0.02894592, -0.03585815, -0.06474304, -0.00245667, 0.02102661, 0.01512146,
- -0.00077820, 0.01048279, 0.01577759, 0.02217102, 0.07875061, 0.04440308, 0.00306702, -0.00975037,
- 0.00099182, -0.01753235, -0.02914429, -0.03764343, -0.03930664, -0.04081726, -0.06845093, -0.01873779,
- -0.00256348, -0.00033569, 0.00053406, 0.00070190, -0.00105286, 0.00088501, 0.08264160, 0.03260803,
- 0.00869751, 0.00711060, -0.00775146, -0.03376770, -0.06314087, -0.08934021, -0.01795959, 0.00088501,
- 0.02838135, 0.09507751, 0.06649780, 0.05419922, 0.04470825, 0.03926086, 0.02592468, 0.01179504,
- 0.04316711, 0.05152893, 0.01130676, -0.02204895, -0.04406738, -0.06632996, -0.08439636, -0.05546570,
- -0.00311279, 0.00325012, 0.02406311, 0.04458618, 0.07960510, 0.07987976, 0.04357910, 0.01593018,
- -0.02593994, -0.07890320, -0.02648926, -0.02957153, -0.01586914, -0.01681519, -0.00686646, -0.00469971,
- 0.00602722, 0.03062439, 0.07060242, 0.06431580, 0.04623413, 0.02545166, -0.00128174, -0.01522827,
- 0.00640869, 0.01506042, 0.02645874, 0.01609802, 0.00148010, -0.01939392, -0.05572510, -0.06500244,
- -0.00239563, 0.00444031, 0.01907349, 0.03089905, 0.03352356, 0.05075073, 0.07539368, 0.03486633,
- -0.00079346, -0.03021240, -0.05854797, -0.07080078, -0.06494141, -0.05015564, -0.02285767, -0.00508118,
- 0.00588989, 0.03402710, 0.08795166, 0.09323120, 0.07124329, 0.05776978, 0.03340149, 0.01075745,
- 0.02717590, 0.07472229, 0.08680725, 0.03575134, 0.00018311, -0.03523254, -0.05368042, -0.04931641
-};
-
-/* spec */
-const Float bv32_lspecb21[] =
-{
- 0.00281525, 0.00292778, 0.00433731,
- -0.00021553, -0.00037766, -0.00252151,
- 0.00709152, -0.00558853, -0.00040245,
- -0.00341034, -0.00456047, 0.00535393,
- -0.00196075, 0.00144005, 0.01340103,
- -0.00179482, -0.00482559, -0.00926208,
- -0.00576019, 0.00680923, 0.00318718,
- -0.00498390, -0.01045990, -0.00181580,
- 0.00724030, 0.00892258, -0.00010681,
- -0.00100517, 0.00750542, -0.01124763,
- 0.01622772, 0.00503349, -0.00928497,
- -0.01317978, -0.00148201, -0.00485039,
- 0.00139236, 0.01294518, 0.01284790,
- 0.00160599, -0.00276566, -0.02051735,
- 0.00048065, 0.02153206, -0.00239372,
- 0.00121498, -0.01841927, 0.00706482,
- 0.01221657, 0.00114632, 0.01258469,
- 0.00564766, 0.00059319, -0.00907707,
- 0.02144051, -0.01291847, -0.00042725,
- -0.01160431, -0.01168442, 0.01208878,
- -0.00497437, -0.00429916, 0.02562332,
- -0.00357437, -0.01308441, -0.01529694,
- -0.01611328, 0.01459503, 0.00725365,
- -0.01193810, -0.02121544, -0.00399017,
- 0.01710129, 0.01618958, 0.00624657,
- 0.00753784, 0.01832008, -0.02398491,
- 0.03960609, 0.01548195, -0.00556374,
- -0.03484535, 0.00230217, 0.00053406,
- -0.00045013, 0.01565170, 0.03667641,
- -0.00150681, -0.01651573, -0.03601646,
- 0.00778198, 0.04269028, 0.00644302,
- -0.01263237, -0.04002953, 0.00638008
-};
-
-/* spec */
-const Float bv32_lspecb22[] =
-{
- 0.00223160, -0.00800133, -0.00899124, 0.00006485, 0.00058365,
- 0.00498199, 0.00384903, -0.00713539, -0.00961494, -0.00307274,
- -0.00000954, 0.00230217, 0.00827026, 0.00367355, 0.00186920,
- 0.00362587, 0.01415634, 0.00111580, 0.00265884, -0.00458145,
- -0.01116562, 0.00059700, -0.01137161, 0.00316811, -0.00823975,
- 0.00366402, 0.00034904, -0.00654984, 0.00271797, -0.01940155,
- -0.00282288, -0.00809288, 0.00408554, -0.00595474, -0.00964355,
- 0.01284599, 0.00154495, 0.00731087, 0.00330925, -0.00998116,
- -0.00849152, -0.00714302, 0.00018120, 0.00532913, 0.00732613,
- -0.00639915, 0.00654030, -0.00492859, -0.00344276, 0.01243401,
- -0.00438499, 0.00685120, -0.00248146, 0.01663589, 0.00031281,
- 0.01028252, 0.00627327, -0.00315285, 0.00683403, 0.00990868,
- -0.01620674, 0.00895309, 0.00953102, 0.00367737, -0.00362778,
- -0.00172234, 0.00682259, 0.00998497, -0.01184273, 0.00318718,
- -0.00300217, -0.00821686, 0.00954819, 0.01287270, -0.00807762,
- 0.01217651, -0.00773621, 0.00847435, -0.00031281, 0.00645638,
- -0.00471497, -0.01052666, -0.02195930, -0.01058769, 0.00412560,
- 0.00894547, -0.00356674, -0.00493240, -0.02550888, -0.00962448,
- -0.00122452, 0.00730324, 0.01606369, 0.01205063, 0.01569366,
- -0.00556946, 0.02675247, -0.00582695, -0.00326729, 0.00189209,
- -0.01784134, 0.00078583, -0.00429535, -0.01312637, -0.00244522,
- -0.00508881, 0.00965881, 0.00708389, -0.01148987, -0.02126884,
- -0.00472450, -0.01339912, 0.00592613, -0.01262474, 0.00816154,
- 0.02260780, 0.01769447, 0.00827408, -0.00707054, -0.00349998,
- -0.00877571, -0.00870895, -0.01420212, 0.01482201, 0.01783562,
- 0.00730515, 0.00027847, -0.00198555, -0.01367950, 0.02097321,
- 0.00929070, -0.00706673, -0.00564384, 0.01904678, 0.00018692,
- 0.01049805, 0.01000977, -0.02177620, 0.00494194, 0.00013351,
- -0.02701187, -0.01168251, 0.01052856, 0.00321388, 0.00094223,
- 0.00286293, -0.00534248, 0.02644157, -0.00658035, -0.00415039,
- 0.00362587, -0.02618980, 0.00177765, 0.00383186, -0.00398064,
- 0.02854538, -0.00962830, -0.00597000, -0.00085640, -0.00148964
-};
-
-/* spec */
-const Float bv32_lspmean[] = /* mean value of LSP components */
-{
- 0.0551453,
- 0.1181030,
- 0.2249756,
- 0.3316040,
- 0.4575806,
- 0.5720825,
- 0.7193298,
- 0.8278198
-};
-
-/* spec */
-const Float bv32_lspp[] = /* LSP Predictor Coefficients */
-{
- 0.7401123, 0.6939697, 0.6031494, 0.5333862, 0.4295044, 0.3234253, 0.2177124, 0.1162720,
- 0.7939453, 0.7693481, 0.6712036, 0.5919189, 0.4750366, 0.3556519, 0.2369385, 0.1181030,
- 0.7534180, 0.7318115, 0.6326294, 0.5588379, 0.4530029, 0.3394775, 0.2307739, 0.1201172,
- 0.7188110, 0.6765747, 0.5792847, 0.5169067, 0.4223022, 0.3202515, 0.2235718, 0.1181030,
- 0.6431885, 0.6023560, 0.5112305, 0.4573364, 0.3764038, 0.2803345, 0.2060547, 0.1090698,
- 0.5687866, 0.5837402, 0.4616089, 0.4351196, 0.3502808, 0.2602539, 0.1951294, 0.0994263,
- 0.5292969, 0.4835205, 0.3890381, 0.3581543, 0.2882080, 0.2261353, 0.1708984, 0.0941162,
- 0.5134277, 0.4365845, 0.3521729, 0.3118896, 0.2514038, 0.1951294, 0.1443481, 0.0841064
-};
-
-/* spec */
-const Float bv32_lgpecb[] = /* Log-Gain Prediction Error CodeBook */
-{
- -4.91895,
- -3.75049,
- -3.09082,
- -2.59961,
- -2.22656,
- -1.46240,
- -0.88037,
- -0.34717,
- -1.93408,
- -1.25635,
- -0.70117,
- -0.16650,
- 0.20361,
- 0.82568,
- 1.59863,
- 2.75684,
- -1.68457,
- -1.06299,
- -0.52588,
- 0.01563,
- 0.39941,
- 1.05664,
- 1.91602,
- 3.34326,
- 0.60693,
- 1.31201,
- 2.29736,
- 4.11426,
- 5.20996,
- 6.70410,
- 8.74316,
- 10.92188
-};
-
-/* spec */
-const Float bv32_lgp[] = /* Log-Gain Predictor */
-{
- 0.5913086,
- 0.5251160,
- 0.5724792,
- 0.5977783,
- 0.4800720,
- 0.4939270,
- 0.4729614,
- 0.4158936,
- 0.3805847,
- 0.3395081,
- 0.2780151,
- 0.2455139,
- 0.1916199,
- 0.1470032,
- 0.1138611,
- 0.0664673
-};
-
-/* spec */
-const Float bv32_lgmean = 11.82031;
-
-/* spec */
-const Float bv32_cccb[] =
-{
- -0.537476, 0.974976, -0.631104, -0.617920,
- 1.145142, 1.222534, -1.252441, 0.616211,
- 1.174194, 1.399414, 0.330933, 0.823120,
- 2.946899, 0.798096, -0.274658, -0.027344,
- -1.704102, 0.098755, -0.526001, -0.395508,
- -0.889038, -0.337402, 0.784546, 0.298462,
- -0.756958, -0.061890, 0.558960, -0.907227,
- 1.373169, -0.413330, 0.690552, -0.794067,
- -0.573364, -0.463745, -0.606934, -0.623535,
- 1.058716, -0.566040, -1.677246, 0.752563,
- 0.432617, 0.441895, -0.630493, -1.445801,
- 2.542358, 0.207031, -1.611450, 0.313354,
- -2.572266, -2.758423, -0.499390, -0.020142,
- 0.432251, -2.303711, -2.016479, 0.228638,
- 0.701538, -1.355591, -0.861572, -0.243042,
- 0.857056, -1.842285, -0.006348, 1.216919,
- -1.474365, 1.636108, -0.683838, 0.362915,
- -0.361694, 0.711914, -0.136353, 1.619873,
- 0.407104, 1.661255, 0.566406, -0.559937,
- 1.670288, 1.159668, 1.760254, 0.524780,
- -1.860596, 0.592285, 1.213379, 0.719482,
- -0.845703, 0.081421, 2.197754, 1.654785,
- 0.425415, 0.641357, 1.210205, -1.444580,
- 0.208374, 0.481567, 1.808472, 0.685913,
- -1.022583, 0.425781, -0.168945, -1.642700,
- 0.502075, -0.491455, -0.296631, -0.068359,
- 0.270630, 0.005981, 0.257813, -0.466309,
- 2.266357, -1.128540, -0.399414, 0.438477,
- -1.876343, -0.895142, -0.012207, 0.886841,
- -0.389771, -1.818604, 1.185791, 0.913452,
- -0.040771, -1.141968, 0.364258, -0.283691,
- 0.448242, -0.755127, 1.767578, -0.691406
-};
-
-const Float bv32_pp9cb[] =
-{
- -2.9005200e-001, 5.9857400e-001, 2.8242800e-001, 8.6808793e-002,
- -8.4527029e-002, 4.0959403e-002, -2.1032541e-002, -8.9572708e-002,
- -1.9941394e-002,
- -2.5773600e-001, 1.3779820e+000, 8.1913200e-001, 1.7757778e-001,
- -5.6437458e-001, 1.0555990e-001, -1.6606961e-002, -4.7470860e-001,
- -1.6774431e-001,
- -6.8988000e-002, 4.0204400e-001, 2.3288400e-001, 1.3868106e-002,
- -4.6814807e-002, 8.0331007e-003, -1.1898360e-003, -4.0409844e-002,
- -1.3558739e-002,
- -1.0210000e-002, 1.0048600e+000, 7.7118200e-001, 5.1298103e-003,
- -3.8746497e-001, 3.9368841e-003, -2.6061025e-005, -2.5243590e-001,
- -1.4868042e-001,
- -1.1636000e-002, 5.6408400e-001, 1.0782800e-001, 3.2818407e-003,
- -3.0412025e-002, 6.2734330e-004, -3.3849124e-005, -7.9547690e-002,
- -2.9067194e-003,
- 4.8679200e-001, 8.9901600e-001, 5.7433200e-001, -2.1881690e-001,
- -2.5816683e-001, -1.3979011e-001, -5.9241613e-002, -2.0205744e-001,
- -8.2464312e-002,
- -1.3678200e-001, -4.6110800e-001, 1.5254600e-001, -3.1535637e-002,
- 3.5170090e-002, 1.0432773e-002, -4.6773289e-003, -5.3155147e-002,
- -5.8175705e-003,
- 4.1686000e-002, 6.4152800e-001, 4.3733400e-001, -1.3371368e-002,
- -1.4028100e-001, -9.1153526e-003, -4.3443065e-004, -1.0288954e-001,
- -4.7815257e-002,
- 1.6641000e-001, 6.6628800e-001, 4.2048000e-002, -5.5438493e-002,
- -1.4008039e-002, -3.4986038e-003, -6.9230720e-003, -1.1098492e-001,
- -4.4200858e-004,
- 2.3891400e-001, 1.2416060e+000, 4.7916200e-001, -1.4831853e-001,
- -2.9746521e-001, -5.7239255e-002, -1.4269975e-002, -3.8539636e-001,
- -5.7399056e-002,
- 1.5663800e-001, 3.7065800e-001, 1.8346800e-001, -2.9029564e-002,
- -3.4001941e-002, -1.4369030e-002, -6.1338658e-003, -3.4346838e-002,
- -8.4151268e-003,
- 3.2286400e-001, 8.4265000e-001, 6.6942000e-001, -1.3603067e-001,
- -2.8204338e-001, -1.0806581e-001, -2.6060291e-002, -1.7751476e-001,
- -1.1203078e-001,
- 3.4039200e-001, 4.8907800e-001, 9.7528000e-002, -8.3239119e-002,
- -2.3849400e-002, -1.6598875e-002, -2.8966678e-002, -5.9799323e-002,
- -2.3779277e-003,
- 6.8932600e-001, 9.7475400e-001, 2.9750200e-001, -3.3596164e-001,
- -1.4499563e-001, -1.0253793e-001, -1.1879258e-001, -2.3753634e-001,
- -2.2126860e-002,
- 2.3204200e-001, -4.9914600e-001, 1.4655400e-001, 5.7911418e-002,
- 3.6575921e-002, -1.7003342e-002, -1.3460872e-002, -6.2286682e-002,
- -5.3695187e-003,
- 5.7895600e-001, 6.7697000e-001, 4.8903800e-001, -1.9596792e-001,
- -1.6553203e-001, -1.4156574e-001, -8.3797512e-002, -1.1457210e-001,
- -5.9789541e-002,
- -2.6667800e-001, 6.9637800e-001, -1.3954600e-001, 9.2854346e-002,
- 4.8588382e-002, -1.8606924e-002, -1.7779289e-002, -1.2123558e-001,
- -4.8682715e-003,
- -1.7600000e-002, 1.6969620e+000, 2.8014800e-001, 1.4933266e-002,
- -2.3770026e-001, 2.4653024e-003, -7.7440000e-005, -7.1992001e-001,
- -1.9620725e-002,
- -1.6124400e-001, 4.1076200e-001, -3.2358000e-002, 3.3116454e-002,
- 6.6457184e-003, -2.6087667e-003, -6.4999069e-003, -4.2181355e-002,
- -2.6176004e-004,
- -6.6390000e-002, 9.5376600e-001, 2.3754200e-001, 3.1660262e-002,
- -1.1327974e-001, 7.8852067e-003, -1.1019080e-003, -2.2741740e-001,
- -1.4106550e-002,
- 3.8460000e-003, 5.3013600e-001, -2.6145400e-001, -1.0194515e-003,
- 6.9303089e-002, 5.0277604e-004, -3.6979290e-006, -7.0261045e-002,
- -1.7089549e-002,
- 4.3861400e-001, 1.4447380e+000, 6.2326000e-002, -3.1684116e-001,
- -4.5022370e-002, -1.3668528e-002, -4.8095560e-002, -5.2181697e-001,
- -9.7113257e-004,
- 1.5442000e-002, 1.4250800e-001, 2.5232000e-002, -1.1003043e-003,
- -1.7978809e-003, -1.9481627e-004, -5.9613841e-005, -5.0771325e-003,
- -1.5916346e-004,
- 2.9463000e-001, 5.2297600e-001, 3.5731600e-001, -7.7042209e-002,
- -9.3433846e-002, -5.2638007e-002, -2.1701709e-002, -6.8375974e-002,
- -3.1918681e-002,
- 2.6816800e-001, 9.2876800e-001, -2.0899000e-001, -1.2453293e-001,
- 9.7051612e-002, 2.8022215e-002, -1.7978519e-002, -2.1565250e-001,
- -1.0919205e-002,
- 8.3488800e-001, 1.3611020e+000, -2.3238000e-001, -5.6818386e-001,
- 1.5814644e-001, 9.7005637e-002, -1.7425949e-001, -4.6314966e-001,
- -1.3500116e-002,
- 1.2479600e-001, 3.8813600e-001, -5.9852000e-002, -2.4218910e-002,
- 1.1615358e-002, 3.7346451e-003, -3.8935104e-003, -3.7662389e-002,
- -8.9556548e-004,
- 3.3026200e-001, 8.9619600e-001, 2.9964600e-001, -1.4798974e-001,
- -1.3427077e-001, -4.9480844e-002, -2.7268247e-002, -2.0079182e-001,
- -2.2446931e-002,
- 3.2806200e-001, 5.4098200e-001, -2.0613400e-001, -8.8737818e-002,
- 5.5757392e-002, 3.3812366e-002, -2.6906169e-002, -7.3165381e-002,
- -1.0622806e-002,
- 7.7764400e-001, 1.0285520e+000, -4.9966000e-002, -3.9992365e-001,
- 2.5696315e-002, 1.9427880e-002, -1.5118255e-001, -2.6447980e-001,
- -6.2415029e-004,
- 8.2660000e-003, -4.3842200e-001, -1.6479000e-001, 1.8119981e-003,
- -3.6123781e-002, 6.8107707e-004, -1.7081689e-005, -4.8053463e-002,
- -6.7889360e-003,
- 5.4489000e-001, 7.3032400e-001, 1.0464600e-001, -1.9897312e-001,
- -3.8212743e-002, -2.8510279e-002, -7.4226278e-002, -1.3334329e-001,
- -2.7376963e-003
-};
-
-/* Pre-Emphasis or De-Emphasis Filter */
-const Float bv32_a_pre[] = { 1.0, PEAPFC };
-const Float bv32_b_pre[] = { 1.0, PEAZFC };
-
-/* Combined High-Pass & Pre-Emphasis Filter */
-const Float bv32_hpfa[] = {1.00000000000000, PEAPFC-(127./128), PEAPFC*(-127./128)};
-const Float bv32_hpfb[] = {255./256, 255./256*(PEAZFC-1.), -255./256*PEAZFC};
-
-/* spec */
-/* coarse pitch search */
-const Float bv32_adf[] =
-{
- 1.00000000000000,
- -3.56023061648011,
- 4.85584780946374,
- -2.99882978945971,
- 0.70692772790790
-};
-
-/* spec */
-const Float bv32_bdf[] =
-{
- 0.0322952,
- -0.1028824,
- 0.1446838,
- -0.1028824,
- 0.0322952
-};
-
-const Float bv32_x[] = {0.125, 0.25, 0.375, 0.5};
-const Float bv32_x2[] = {0.015625, 0.0625, 0.140625, 0.25}; /* square of x[] */
-const Float bv32_MPTH[] = {0.7, 0.55, 0.48, 0.37};
-
-/* spec */
-const Float bv32_winl[] =
-{
- 0.0001831,
- 0.0006714,
- 0.0015259,
- 0.0026855,
- 0.0042114,
- 0.0060425,
- 0.0082397,
- 0.0107422,
- 0.0135803,
- 0.0167542,
- 0.0202637,
- 0.0240784,
- 0.0281982,
- 0.0326843,
- 0.0374451,
- 0.0425110,
- 0.0479126,
- 0.0536194,
- 0.0596008,
- 0.0659180,
- 0.0725098,
- 0.0793762,
- 0.0865479,
- 0.0939636,
- 0.1016846,
- 0.1096497,
- 0.1179199,
- 0.1264038,
- 0.1351624,
- 0.1441650,
- 0.1534119,
- 0.1628723,
- 0.1725769,
- 0.1824951,
- 0.1926270,
- 0.2029724,
- 0.2135010,
- 0.2242432,
- 0.2351685,
- 0.2462769,
- 0.2575378,
- 0.2689514,
- 0.2805481,
- 0.2922974,
- 0.3041687,
- 0.3161926,
- 0.3283081,
- 0.3405762,
- 0.3529053,
- 0.3653870,
- 0.3779297,
- 0.3905334,
- 0.4032593,
- 0.4160156,
- 0.4288330,
- 0.4417114,
- 0.4546204,
- 0.4675598,
- 0.4805298,
- 0.4934998,
- 0.5065002,
- 0.5194702,
- 0.5324402,
- 0.5453796,
- 0.5582886,
- 0.5711670,
- 0.5839844,
- 0.5967407,
- 0.6094666,
- 0.6220703,
- 0.6346130,
- 0.6470947,
- 0.6594238,
- 0.6716919,
- 0.6838074,
- 0.6958313,
- 0.7077026,
- 0.7194519,
- 0.7310486,
- 0.7424622,
- 0.7537231,
- 0.7648315,
- 0.7757568,
- 0.7864990,
- 0.7970276,
- 0.8073730,
- 0.8175049,
- 0.8274231,
- 0.8371277,
- 0.8465881,
- 0.8558350,
- 0.8648376,
- 0.8735962,
- 0.8820801,
- 0.8903503,
- 0.8983154,
- 0.9060364,
- 0.9134521,
- 0.9206238,
- 0.9274902,
- 0.9340820,
- 0.9403992,
- 0.9463806,
- 0.9520874,
- 0.9574890,
- 0.9625549,
- 0.9673157,
- 0.9718018,
- 0.9759216,
- 0.9797363,
- 0.9832458,
- 0.9864197,
- 0.9892578,
- 0.9917603,
- 0.9939575,
- 0.9957886,
- 0.9973145,
- 0.9984741,
- 0.9993286,
- 0.9998169,
- 1.0000000,
- 0.9992371,
- 0.9969177,
- 0.9930725,
- 0.9877014,
- 0.9807739,
- 0.9723816,
- 0.9624634,
- 0.9510498,
- 0.9382019,
- 0.9238892,
- 0.9081421,
- 0.8910217,
- 0.8724976,
- 0.8526306,
- 0.8314819,
- 0.8090210,
- 0.7853088,
- 0.7604065,
- 0.7343140,
- 0.7070923,
- 0.6788025,
- 0.6494446,
- 0.6190796,
- 0.5877991,
- 0.5555725,
- 0.5224915,
- 0.4886169,
- 0.4539795,
- 0.4186707,
- 0.3826904,
- 0.3461304,
- 0.3090210,
- 0.2714539,
- 0.2334595,
- 0.1950989,
- 0.1564331,
- 0.1175232,
- 0.0784607,
- 0.0392456
-};
-
-/* spec */
-const Float bv32_sstwin[] =
-{
- 1.00003162253432,
- 0.99950664035278,
- 0.99802802494523,
- 0.99556852541705,
- 0.99213540445135,
- 0.98773878305059,
- 0.98239158372414,
- 0.97610947553847,
- 0.96891079029551
-};
-
-const int bv32_idxord[] =
-{
- 0, 1, 2, 3, 4, 8, 16, 5, 9, 17, 6, 10, 18, 7, 11, 19,
- 12, 20, 24, 13, 21, 25, 14, 22, 26, 15, 23, 27, 28, 29, 30, 31
-};
-
-/* spec */
-const Float bv32_lgpecb_nh[] = /* Log-Gain Prediction Error Next-Higher CodeBook */
-{
- -3.75049,
- -3.09082,
- -2.59961,
- -2.22656,
- -1.93408,
- -1.25635,
- -0.70117,
- -0.16650,
- -1.68457,
- -1.06299,
- -0.52588,
- 0.01563,
- 0.39941,
- 1.05664,
- 1.91602,
- 3.34326,
- -1.46240,
- -0.88037,
- -0.34717,
- 0.20361,
- 0.60693,
- 1.31201,
- 2.29736,
- 4.11426,
- 0.82568,
- 1.59863,
- 2.75684,
- 5.20996,
- 6.70410,
- 8.74316,
- 10.92188
-};
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * a2lsp.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: a2lsp.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <math.h>
-#include "typedef.h"
-#include "bvcommon.h"
-
-#define PI 3.14159265358979
-
-#define NAB ((LPCO >> 1) + 1)
-
-static Float FNevChebP(Float x, Float *c, int nd2);
-
-#define NBIS 4 /* number of bisections */
-
-/*----------------------------------------------------------------------------
-* a2lsp - Convert predictor coefficients to line spectral pairs
-*
-* Description:
-* The transfer function of the prediction error filter is formed from the
-* predictor coefficients. This polynomial is transformed into two reciprocal
-* polynomials having roots on the unit circle. The roots of these polynomials
-* interlace. It is these roots that determine the line spectral pairs.
-* The two reciprocal polynomials are expressed as series expansions in
-* Chebyshev polynomials with roots in the range -1 to +1. The inverse cosine
-* of the roots of the Chebyshev polynomial expansion gives the line spectral
-* pairs. If np line spectral pairs are not found, this routine
-* stops with an error message. This error occurs if the input coefficients
-* do not give a prediction error filter with minimum phase.
-*
-* Line spectral pairs and predictor coefficients are usually expressed
-* algebraically as vectors.
-* lsp[0] first (lowest frequency) line spectral pair
-* lsp[i] 1 <= i < np
-* pc[0]=1.0 predictor coefficient corresponding to lag 0
-* pc[i] 1 <= 1 <= np
-*
-* Parameters:
-* -> Float pc[]
-* Vector of predictor coefficients (Np+1 values). These are the
-* coefficients of the predictor filter, with pc[0] being the predictor
-* coefficient corresponding to lag 0, and pc[Np] corresponding to lag Np.
-* The predictor coeffs. must correspond to a minimum phase prediction
-* error filter.
-* <- Float lsp[]
-* Array of Np line spectral pairss (in ascending order). Each line
-* spectral pair lies in the range 0 to pi.
-* -> int Np
-* Number of coefficients (at most LPCO = 50)
-*----------------------------------------------------------------------------
-*/
-
-void a2lsp(Float pc[], /* (i) input the np+1 predictor coeff. */
- Float lsp[], /* (o) line spectral pairs */
- Float old_lsp[]) /* (i/o) old lsp[] (in case not found 10 roots) */
-{
- Float fa[NAB], fb[NAB];
- Float ta[NAB], tb[NAB];
- Float *t;
- Float xlow, xmid, xhigh;
- Float ylow, ymid, yhigh;
- Float xroot;
- Float dx;
- int i, j, nf, nd2, nab = ((LPCO>>1) + 1), ngrd;
-
- fb[0] = fa[0] = 1.0;
- for (i = 1, j = LPCO; i <= (LPCO/2); i++, j--)
- {
- fa[i] = pc[i] + pc[j] - fa[i-1];
- fb[i] = pc[i] - pc[j] + fb[i-1];
- }
-
- nd2 = LPCO/2;
-
- /*
- * To look for roots on the unit circle, Ga(D) and Gb(D) are evaluated for
- * D=exp(jw). Since Gz(D) and Gb(D) are symmetric, they can be expressed in
- * terms of a series in cos(nw) for D on the unit circle. Since M is odd and
- * D=exp(jw)
- *
- * M-1 n
- * Ga(D) = SUM fa(n) D (symmetric, fa(n) = fa(M-1-n))
- * n=0
- * Mh-1
- * = exp(j Mh w) [ f1(Mh) + 2 SUM fa(n) cos((Mh-n)w) ]
- * n=0
- * Mh
- * = exp(j Mh w) SUM ta(n) cos(nw),
- * n=0
- *
- * where Mh=(M-1)/2=Nc-1. The Nc=Mh+1 coefficients ta(n) are defined as
- *
- * ta(n) = fa(Nc-1), n=0,
- * = 2 fa(Nc-1-n), n=1,...,Nc-1.
- * The next step is to identify cos(nw) with the Chebyshev polynomial T(n,x).
- * The Chebyshev polynomials satisfy the relationship T(n,cos(w)) = cos(nw).
- * Omitting the exponential delay term, the series expansion in terms of
- * Chebyshev polynomials is
- *
- * Nc-1
- * Ta(x) = SUM ta(n) T(n,x)
- * n=0
- *
- * The domain of Ta(x) is -1 < x < +1. For a given root of Ta(x), say x0,
- * the corresponding position of the root of Fa(D) on the unit circle is
- * exp(j arccos(x0)).
- */
- ta[0] = fa[nab-1];
- tb[0] = fb[nab-1];
- for (i = 1, j = nab - 2; i < nab; ++i, --j)
- {
- ta[i] = 2.0 * fa[j];
- tb[i] = 2.0 * fb[j];
- }
-
- /*
- * To find the roots, we sample the polynomials Ta(x) and Tb(x) looking for
- * sign changes. An interval containing a root is successively bisected to
- * narrow the interval and then linear interpolation is used to estimate the
- * root. For a given root at x0, the line spectral pair is w0=acos(x0).
- *
- * Since the roots of the two polynomials interlace, the search for roots
- * alternates between the polynomials Ta(x) and Tb(x). The sampling interval
- * must be small enough to avoid having two cancelling sign changes in the
- * same interval. The sampling (grid) points were trained from a large amount
- * of LSP vectors derived with high accuracy and stored in a table.
- */
-
- nf = 0;
- t = ta;
- xroot = 2.0;
- ngrd = 0;
- xlow = grid[0];
- ylow = FNevChebP(xlow, t, nd2);
-
-
- /* Root search loop */
- while (ngrd<(Ngrd-1) && nf < LPCO)
- {
-
- /* New trial point */
- ngrd++;
- xhigh = xlow;
- yhigh = ylow;
- xlow = grid[ngrd];
- ylow = FNevChebP(xlow, t, nd2);
-
- if (ylow * yhigh <= 0.0)
- {
-
- /* Bisections of the interval containing a sign change */
- dx = xhigh - xlow;
- for (i = 1; i <= NBIS; ++i)
- {
- dx = 0.5 * dx;
- xmid = xlow + dx;
- ymid = FNevChebP(xmid, t, nd2);
- if (ylow * ymid <= 0.0)
- {
- yhigh = ymid;
- xhigh = xmid;
- }
- else
- {
- ylow = ymid;
- xlow = xmid;
- }
- }
-
- /*
- * Linear interpolation in the subinterval with a sign change
- * (take care if yhigh=ylow=0)
- */
- if (yhigh != ylow)
- xmid = xlow + dx * ylow / (ylow - yhigh);
- else
- xmid = xlow + dx;
-
- /* New root position */
- lsp[nf] = acos(xmid)/PI;
- ++nf;
-
- /* Start the search for the roots of the next polynomial at the estimated
- * location of the root just found. We have to catch the case that the
- * two polynomials have roots at the same place to avoid getting stuck at
- * that root.
- */
- if (xmid >= xroot)
- {
- xmid = xlow - dx;
- }
- xroot = xmid;
- if (t == ta)
- t = tb;
- else
- t = ta;
- xlow = xmid;
- ylow = FNevChebP(xlow, t, nd2);
- }
- }
-
- if (nf != LPCO)
- {
- /* LPCO roots have not been found */
- printf("\nWARNING: a2lsp failed to find all lsp nf=%d LPCO=%d\n", nf, LPCO);
- for (i = 0; i < LPCO; i++)
- lsp[i] = old_lsp[i];
- }
- else
- {
- /* Update LSP of previous frame with the new LSP */
- for (i = 0; i < LPCO; i++)
- old_lsp[i] = lsp[i];
- }
-}
-
-static Float FNevChebP(Float x, /* (i) value */
- Float *c, /* (i) coefficient array */
- int nd2)
-{
- Float t;
- Float b[NAB];
- int i;
-
- t = x*2;
- b[0] = c[nd2];
- b[1] = c[nd2 - 1] + t*b[0];
- for (i = 2; i < nd2; i++)
- b[i] = c[nd2 - i] - b[i - 2] + t * b[i - 1];
- return (c[0] - b[nd2 - 2] + x * b[nd2 - 1]);
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * allpole.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: allpole.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bvcommon.h"
-
-#define MAXDIM 160 /* maximum vector dimension */
-#define MAXORDER LPCO /* maximum filter order */
-
-void apfilter(const Float *a, /* (i) a[m+1] prediction coefficients (m=10) */
- int m, /* (i) LPC order */
- Float *x, /* (i) input signal */
- Float *y, /* (o) output signal */
- int lg, /* (i) size of filtering */
- Float *mem, /* (i/o) input memory */
- int16_t update) /* (i) flag for memory update */
-{
- Float buf[MAXORDER + MAXDIM]; /* buffer for filter memory & signal */
- Float a0;
- Float *fp1;
- int i;
- int n;
-
- /* copy filter memory to beginning part of temporary buffer */
- fp1 = &mem[m - 1];
- for (i = 0; i < m; i++)
- buf[i] = *fp1--; /* this buffer is used to avoid memory shifts */
-
- /* loop through every element of the current vector */
- for (n = 0; n < lg; n++)
- {
- /* perform multiply-adds along the delay line of filter */
- fp1 = &buf[n];
- a0 = x[n];
- for (i = m; i > 0; i--)
- a0 -= *fp1++ * a[i];
-
- /* update the output & temporary buffer for filter memory */
- y[n] = a0;
- *fp1 = a0;
- }
-
- /* get the filter memory after filtering the current vector */
- if (update)
- {
- for (i = 0; i < m; i++)
- mem[i] = *fp1--;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * allzero.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: allzero.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bvcommon.h"
-
-#define MAXDIM 160 /* maximum vector dimension */
-#define MAXORDER LPCO /* maximum filter order */
-
-void azfilter(
- const Float *a, /* (i) prediction coefficients */
- int m, /* (i) LPC order */
- Float *x, /* (i) input signal vector */
- Float *y, /* (o) output signal vector */
- int lg, /* (i) size of filtering */
- Float *mem, /* (i/o) filter memory before filtering */
- int16_t update) /* (i) flag for memory update */
-{
- Float buf[MAXORDER + MAXDIM]; /* buffer for filter memory & signal */
- Float a0;
- Float *fp1;
- int i;
- int n;
-
- /* copy filter memory to beginning part of temporary buffer */
- fp1 = &mem[m - 1];
- for (i = 0; i < m; i++)
- buf[i] = *fp1--; /* this buffer is used to avoid memory shifts */
-
- /* loop through every element of the current vector */
- for (n = 0; n < lg; n++)
- {
- /* perform multiply-adds along the delay line of filter */
- fp1 = &buf[n];
- a0 = 0.0F;
- for (i = m; i > 0; i--)
- a0 += *fp1++ * a[i];
-
- /* update the temporary buffer for filter memory */
- *fp1 = x[n];
-
- /* do the last multiply-add separately and get the output */
- y[n] = a0 + x[n] * a[0];
- }
-
- /* get the filter memory after filtering the current vector */
- if (update)
- {
- for (i = 0; i < m; i++)
- mem[i] = *fp1--;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * autocor.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: autocor.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdlib.h>
-
-#include "typedef.h"
-#include "bvcommon.h"
-
-#define WINSZ 320 /* maximum analysis window size */
-
-void Autocor(Float *r, /* (o) : Autocorrelations */
- Float *x, /* (i) : Input signal */
- const Float *window, /* (i) : LPC Analysis window */
- int l_window, /* (i) : window length */
- int m) /* (i) : LPC order */
-{
- Float buf[WINSZ];
- Float a0;
- int i;
- int n;
-
- /* Apply analysis window */
- for (n = 0; n < l_window; n++)
- buf[n] = x[n]*window[n];
-
- /* Compute autocorrealtion coefficients up to lag order */
- for (i = 0; i <= m; i++)
- {
- a0 = 0.0F;
- for (n = i; n < l_window; n++)
- a0 += buf[n]*buf[n - i];
- r[i] = a0;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bvcommon.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bvcommon.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#include "typedef.h"
-
-#ifndef BVCOMMON_H
-#define BVCOMMON_H
-
-/* Function Prototypes */
-
-void apfilter(const Float *a, /* (i) a[m+1] prediction coefficients (m=10) */
- int m, /* (i) LPC order */
- Float *x, /* (i) input signal */
- Float *y, /* (o) output signal */
- int lg, /* (i) size of filtering */
- Float *mem, /* (i/o) input memory */
- int16_t update); /* (i) flag for memory update */
-
-void azfilter(const Float *a, /* (i) prediction coefficients */
- int m, /* (i) LPC order */
- Float *x, /* (i) input signal vector */
- Float *y, /* (o) output signal vector */
- int lg, /* (i) size of filtering */
- Float *mem, /* (i/o) filter memory before filtering */
- int16_t update); /* (i) flag for memory update */
-
-void Autocor(Float *r, /* (o) : Autocorrelations */
- Float *x, /* (i) : Input signal */
- const Float *window, /* (i) : LPC Analysis window */
- int l_window, /* (i) : window length */
- int m); /* (i) : LPC order */
-
-void Levinson(Float *r, /* (i): autocorrelation coefficients */
- Float *a, /* (o): LPC coefficients */
- Float *old_a, /* (i/o): LPC coefficients of previous frame */
- int m); /* (i): LPC order */
-
-void a2lsp(Float pc[], /* (i) input the np+1 predictor coeff. */
- Float lsp[], /* (o) line spectral pairs */
- Float old_lsp[]); /* (i/o) old lsp[] (in case not found 10 roots) */
-
-void lsp2a(Float *lsp, /* (i) LSP vector */
- Float *a); /* (o) LPC coefficients */
-
-void stblz_lsp(Float *lsp, int order);
-
-int stblchck(Float *x, int vdim);
-
-/* LPC to LSP Conversion */
-extern Float grid[];
-
-/* LPC bandwidth expansion */
-extern Float bwel[];
-
-/* LPC WEIGHTING FILTER */
-extern Float STWAL[];
-
-/* ----- Basic Codec Parameters ----- */
-#define LPCO 8 /* LPC Order */
-#define Ngrd 60 /* LPC to LSP Conversion */
-
-#define LSPMIN 0.00150 /* minimum LSP frequency, 6/12 Hz for BV16/BV32 */
-#define LSPMAX 0.99775 /* maximum LSP frequency, 3991/7982 Hz for BV16/BV32 */
-#define DLSPMIN 0.01250 /* minimum LSP spacing, 50/100 Hz for BV16/BV32 */
-#define STBLDIM 3 /* dimension of stability enforcement */
-
-#endif /* BVCOMMON_H */
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * cmtables.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: cmtables.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-
-Float bwel[] =
-{
- 1.000000, 0.968526251091, 0.938025365420, 0.908506308303, 0.879914932377,
- 0.852235186110, 0.825387345342, 0.799409908158, 0.774255089985
-};
-
-Float STWAL[]=
-{
- 1.000000, 0.750000, 0.562500, 0.421875, 0.316406, 0.237305, 0.177979, 0.133484, 0.100098
-};
-
-Float grid[]=
-{
- 0.9999390, 0.9935608, 0.9848633, 0.9725342, 0.9577942, 0.9409180, 0.9215393, 0.8995972,
- 0.8753662, 0.8487854, 0.8198242, 0.7887573, 0.7558899, 0.7213440, 0.6853943, 0.6481323,
- 0.6101379, 0.5709839, 0.5300903, 0.4882507, 0.4447632, 0.3993530, 0.3531189, 0.3058167,
- 0.2585754, 0.2109680, 0.1630859, 0.1148682, 0.0657349, 0.0161438, -0.0335693, -0.0830994,
- -0.1319580, -0.1804199, -0.2279663, -0.2751465, -0.3224487, -0.3693237, -0.4155884, -0.4604187,
- -0.5034180, -0.5446472, -0.5848999, -0.6235962, -0.6612244, -0.6979980, -0.7336731, -0.7675781,
- -0.7998962, -0.8302002, -0.8584290, -0.8842468, -0.9077148, -0.9288635, -0.9472046, -0.9635010,
- -0.9772034, -0.9883118, -0.9955139, -0.9999390
-};
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * levdur.c - Levinson Durbin
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: levdur.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bvcommon.h"
-
-/* Levinson-Durbin recursion */
-void Levinson(Float *r, /* (i): autocorrelation coefficients */
- Float *a, /* (o): LPC coefficients */
- Float *old_a, /* (i/o): LPC coefficients of previous frame */
- int m) /* (i): LPC order */
-{
- Float alpha;
- Float a0, a1;
- Float rc, *aip, *aib, *alp;
- int mh, minc, ip;
-
- *a = 1.;
- if (*r <= 0.0)
- goto illcond;
-
- /* start durbin's recursion */
- rc = - *(r + 1) / *r;
- *(a + 1) = rc;
- alpha = *r + *(r+1) * rc;
- if (alpha <= 0.0)
- goto illcond;
- for (minc = 2; minc <= m; minc++)
- {
- a0 = 0.0;
- aip = a;
- aib = r + minc;
- for (ip = 0; ip <= minc - 1; ip++)
- a0 = a0 + *aib-- * *aip++;
- rc = -a0 / alpha;
- mh = minc / 2;
- aip = a + 1;
- aib = a + minc - 1;
- for (ip = 1; ip <= mh; ip++)
- {
- a1 = *aip + rc * *aib;
- *aib = *aib + rc * *aip;
- aib--;
- *aip++ = a1;
- }
- *(a+minc) = rc;
- alpha = alpha + rc * a0;
- if (alpha <= 0.0)
- goto illcond;
- }
-
- aip = a;
- alp = old_a;
- for (ip = 0; ip <= m; ip++)
- *alp++ = *aip++;
-
- return;
-illcond:
- aip = a;
- alp = old_a;
- for (ip = 0; ip <= m; ip++)
- *aip++ = *alp++;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * lsp2a.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: lsp2a.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <math.h>
-#include "typedef.h"
-#include "bvcommon.h"
-
-#define OR (LPCO+1) /* Maximum LPC order */
-#define PI 3.14159265358979
-
-void lsp2a(
- Float *lsp, /* (i) LSP vector */
- Float *a) /* (o) LPC coefficients */
-{
- Float c1, c2, p[OR], q[OR];
- int orderd2, n, i, nor;
-
- orderd2=LPCO/2;
- for (i = 1; i <= LPCO ; i++)
- p[i] = q[i]= 0.;
- /* Get Q & P polyn. less the (1 +- z-1) ( or (1 +- z-2) ) factor */
- p[0] = q[0] = 1.;
- for (n = 1; n <= orderd2; n++)
- {
- nor= 2 * n;
- c1 = 2. * cos((double)PI*lsp[nor-1]);
- c2 = 2. * cos((double)PI*lsp[nor-2]);
- for (i = nor; i >= 2; i--)
- {
- q[i] += q[i-2] - c1*q[i-1];
- p[i] += p[i-2] - c2*p[i-1];
- }
- q[1] -= c1;
- p[1] -= c2;
- }
- /* Get the the predictor coeff. */
- a[0] = 1.;
- a[1] = 0.5 * (p[1] + q[1]);
- for (i=1, n=2; i < LPCO ; i++, n++)
- a[n] = 0.5 * (p[i] + p[n] + q[n] - q[i]);
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * stblchck.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: stblchck.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "bvcommon.h"
-
-int stblchck(Float *x, int vdim)
-{
- int k;
- int stbl;
-
- if (x[0] < 0.0)
- {
- stbl = 0;
- }
- else
- {
- stbl = 1;
- for (k = 1; k < vdim; k++)
- {
- if (x[k] - x[k-1] < 0.0)
- stbl = 0;
- }
- }
- return stbl;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * stblzlsp.c - Find stability flag (LSPs)
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: stblzlsp.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-//#include "bv16cnst.h"
-#include "bvcommon.h"
-
-void stblz_lsp(Float *lsp, int order)
-{
-
- /* This function orders the lsp to prevent */
- /* unstable synthesis filters and imposes basic */
- /* lsp properties in order to avoid marginal */
- /* stability of the synthesis filter. */
-
- int k, i;
- Float mintmp, maxtmp, a0;
-
-
- /* order lsps as minimum stability requirement */
- do
- {
- k = 0; /* use k as a flag for order reversal */
- for (i = 0; i < order - 1; i++)
- {
- if (lsp[i] > lsp[i+1]) /* if there is an order reversal */
- {
- a0 = lsp[i+1];
- lsp[i+1] = lsp[i]; /* swap the two LSP elements */
- lsp[i] = a0;
- k = 1; /* set the flag for order reversal */
- }
- }
- }
- while (k > 0); /* repeat order checking if there was order reversal */
-
-
- /* impose basic lsp properties */
- maxtmp=LSPMAX-(order-1)*DLSPMIN;
-
- if (lsp[0] < LSPMIN)
- lsp[0] = LSPMIN;
- else if (lsp[0] > maxtmp)
- lsp[0] = maxtmp;
-
- for (i=0; i<order-1; i++)
- {
- /* space lsp(i+1) */
-
- /* calculate lower and upper bound for lsp(i+1) */
- mintmp=lsp[i]+DLSPMIN;
- maxtmp += DLSPMIN;
-
- /* guarantee minimum spacing to lsp(i) */
- if (lsp[i+1] < mintmp)
- lsp[i+1] = mintmp;
-
- /* make sure the remaining lsps fit within the remaining space */
- else if (lsp[i+1] > maxtmp)
- lsp[i+1] = maxtmp;
-
- }
-
- return;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * typedef.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: typedef.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#if !defined(_TYPEDEF_H_)
-#define _TYPEDEF_H_
-
-#include <inttypes.h>
-
-typedef double Float;
-
-#endif
-
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * utility.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: utility.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include "typedef.h"
-#include "utility.h"
-
-void Fcopy(Float *y, Float *x, int size)
-{
- while ((size--) > 0)
- *y++ = *x++;
-}
-
-void Fzero(Float *x, int size)
-{
- while ((size--) > 0)
- *x++ = 0.0;
-}
-
-void F2s(int16_t *s, Float *f, int size)
-{
- Float t;
- int16_t v;
- int i;
-
- for (i = 0; i < size; i++)
- {
- t = *f++;
-
- /* Rounding */
- if (t >= 0)
- t += 0.5;
- else
- t -= 0.5;
-
- if (t > 32767.0)
- v = 32767;
- else if (t < -32768.0)
- v = -32768;
- else
- v = (int16_t) t;
- *s++ = v;
- }
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * utility.h -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: utility.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-#include "typedef.h"
-
-extern void Fcopy(Float *y, Float *x, int size);
-extern void Fzero(Float *x, int size);
-extern void F2s(int16_t *s, Float *f, int size);
-
+++ /dev/null
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libbroadvoice.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- ProjectSection(ProjectDependencies) = postProject
- {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "at_dictionary_gen", "src\msvc\at_dictionary_gen.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="libbroadvoice"
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- RootNamespace="libbroadvoice"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- CompileAs="1"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- CompileAs="1"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
-<File RelativePath="bitstream.c"></File>\r
-<File RelativePath="floating\common\a2lsp.c"></File>\r
-<File RelativePath="floating\common\allpole.c"></File>\r
-<File RelativePath="floating\common\allzero.c"></File>\r
-<File RelativePath="floating\common\autocor.c"></File>\r
-<File RelativePath="floating\common\cmtables.c"></File>\r
-<File RelativePath="floating\common\levdur.c"></File>\r
-<File RelativePath="floating\common\lsp2a.c"></File>\r
-<File RelativePath="floating\common\stblchck.c"></File>\r
-<File RelativePath="floating\common\stblzlsp.c"></File>\r
-<File RelativePath="floating\common\utility.c"></File>\r
-<File RelativePath="bitpack16.c"></File>\r
-<File RelativePath="floating\bv16\bv16decoder.c"></File>\r
-<File RelativePath="floating\bv16\bv16encoder.c"></File>\r
-<File RelativePath="floating\bv16\bv16coarse_pitch.c"></File>\r
-<File RelativePath="floating\bv16\bv16excdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16excquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16fine_pitch.c"></File>\r
-<File RelativePath="floating\bv16\bv16gaindec.c"></File>\r
-<File RelativePath="floating\bv16\bv16gainquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16levelest.c"></File>\r
-<File RelativePath="floating\bv16\bv16lspdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16lspquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16plc.c"></File>\r
-<File RelativePath="floating\bv16\bv16ptdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16postfilter.c"></File>\r
-<File RelativePath="floating\bv16\bv16ptquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16tables.c"></File>\r
-<File RelativePath="bitpack32.c"></File>\r
-<File RelativePath="floating\bv32\bv32decoder.c"></File>\r
-<File RelativePath="floating\bv32\bv32encoder.c"></File>\r
-<File RelativePath="floating\bv32\bv32coarse_pitch.c"></File>\r
-<File RelativePath="floating\bv32\bv32excdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32excquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32fine_pitch.c"></File>\r
-<File RelativePath="floating\bv32\bv32gaindec.c"></File>\r
-<File RelativePath="floating\bv32\bv32gainquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32levelest.c"></File>\r
-<File RelativePath="floating\bv32\bv32lspdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32lspquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32plc.c"></File>\r
-<File RelativePath="floating\bv32\bv32ptdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32ptquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32tables.c"></File>\r
-<File RelativePath=".\msvc\gettimeofday.c"></File>\r
-</Filter><Filter Name="Header Files">\r
-<File RelativePath="broadvoice\broadvoice.h"></File>\r
-<File RelativePath="broadvoice\version.h"></File>\r
-<File RelativePath="broadvoice\private\broadvoice.h"></File>\r
-<File RelativePath="broadvoice.h"></File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libbroadvoice.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- ProjectSection(ProjectDependencies) = postProject
- {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "at_dictionary_gen", "src\msvc\at_dictionary_gen.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32
- {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
- {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9.00"\r
- Name="libbroadvoice"\r
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
- RootNamespace="libbroadvoice"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- <Platform\r
- Name="x64"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="1"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="1"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Debug|x64"\r
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="1"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|x64"\r
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="1"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
-<File RelativePath="bitstream.c"></File>\r
-<File RelativePath="floating\common\a2lsp.c"></File>\r
-<File RelativePath="floating\common\allpole.c"></File>\r
-<File RelativePath="floating\common\allzero.c"></File>\r
-<File RelativePath="floating\common\autocor.c"></File>\r
-<File RelativePath="floating\common\cmtables.c"></File>\r
-<File RelativePath="floating\common\levdur.c"></File>\r
-<File RelativePath="floating\common\lsp2a.c"></File>\r
-<File RelativePath="floating\common\stblchck.c"></File>\r
-<File RelativePath="floating\common\stblzlsp.c"></File>\r
-<File RelativePath="floating\common\utility.c"></File>\r
-<File RelativePath="bitpack16.c"></File>\r
-<File RelativePath="floating\bv16\bv16decoder.c"></File>\r
-<File RelativePath="floating\bv16\bv16encoder.c"></File>\r
-<File RelativePath="floating\bv16\bv16coarse_pitch.c"></File>\r
-<File RelativePath="floating\bv16\bv16excdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16excquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16fine_pitch.c"></File>\r
-<File RelativePath="floating\bv16\bv16gaindec.c"></File>\r
-<File RelativePath="floating\bv16\bv16gainquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16levelest.c"></File>\r
-<File RelativePath="floating\bv16\bv16lspdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16lspquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16plc.c"></File>\r
-<File RelativePath="floating\bv16\bv16ptdec.c"></File>\r
-<File RelativePath="floating\bv16\bv16postfilter.c"></File>\r
-<File RelativePath="floating\bv16\bv16ptquan.c"></File>\r
-<File RelativePath="floating\bv16\bv16tables.c"></File>\r
-<File RelativePath="bitpack32.c"></File>\r
-<File RelativePath="floating\bv32\bv32decoder.c"></File>\r
-<File RelativePath="floating\bv32\bv32encoder.c"></File>\r
-<File RelativePath="floating\bv32\bv32coarse_pitch.c"></File>\r
-<File RelativePath="floating\bv32\bv32excdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32excquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32fine_pitch.c"></File>\r
-<File RelativePath="floating\bv32\bv32gaindec.c"></File>\r
-<File RelativePath="floating\bv32\bv32gainquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32levelest.c"></File>\r
-<File RelativePath="floating\bv32\bv32lspdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32lspquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32plc.c"></File>\r
-<File RelativePath="floating\bv32\bv32ptdec.c"></File>\r
-<File RelativePath="floating\bv32\bv32ptquan.c"></File>\r
-<File RelativePath="floating\bv32\bv32tables.c"></File>\r
-<File RelativePath=".\msvc\gettimeofday.c"></File>\r
-</Filter><Filter Name="Header Files">\r
-<File RelativePath="broadvoice\broadvoice.h"></File>\r
-<File RelativePath="broadvoice\version.h"></File>\r
-<File RelativePath="broadvoice\private\broadvoice.h"></File>\r
-<File RelativePath="broadvoice.h"></File>\r
- </Filter>\r\r
- <Filter\r\r
- Name="Resource Files"\r\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r\r
- >\r\r
- </Filter>\r\r
- </Files>\r\r
- <Globals>\r\r
- </Globals>\r\r
-</VisualStudioProject>\r\r
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup>\r
- <Filter Include="Source Files">\r
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
- </Filter>\r
- <Filter Include="Header Files">\r
- <UniqueIdentifier>{f5d987d2-ff66-4c4f-9d5d-38f05fedf46a}</UniqueIdentifier>\r
- </Filter>\r
- <Filter Include="Resource Files">\r
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\r
- </Filter>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClCompile Include="bitstream.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\a2lsp.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\allpole.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\allzero.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\autocor.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\cmtables.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\levdur.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\lsp2a.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\stblchck.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\stblzlsp.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\common\utility.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="bitpack16.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16decoder.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16encoder.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16coarse_pitch.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16excdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16excquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16fine_pitch.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16gaindec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16gainquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16levelest.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16lspdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16lspquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16plc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16ptdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16postfilter.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16ptquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv16\bv16tables.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="bitpack32.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32decoder.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32encoder.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32coarse_pitch.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32excdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32excquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32fine_pitch.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32gaindec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32gainquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32levelest.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32lspdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32lspquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32plc.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32ptdec.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32ptquan.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="floating\bv32\bv32tables.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- <ClCompile Include="msvc\gettimeofday.c">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="broadvoice\broadvoice.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="broadvoice\version.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="broadvoice\private\broadvoice.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- <ClInclude Include="broadvoice.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
- </ItemGroup>\r
-</Project>
\ No newline at end of file
+++ /dev/null
-# Microsoft Developer Studio Project File - Name="gbroadvoice" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=gbroadvoice - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gbroadvoice.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gbroadvoice.mak" CFG="gbroadvoice - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gbroadvoice - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gbroadvoice - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "gbroadvoice - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "." /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /D "_WINDLL" /FR /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /map /debug /machine:I386 /out:"Release/libgbroadvoice.dll"
-
-!ELSEIF "$(CFG)" == "gbroadvoice - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /FR /FD /GZ /c
-# SUBTRACT CPP /WX /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /incremental:no /map /debug /machine:I386 /out:"Debug/libgbroadvoice.dll" /pdbtype:sept
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "gbroadvoice - Win32 Release"
-# Name "gbroadvoice - Win32 Debug"
-# Begin Group "Source Files"\r
-# Begin Source File\r
-\r
-SOURCE=.\bitstream.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/a2lsp.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/allpole.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/allzero.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/autocor.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/cmtables.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/levdur.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/lsp2a.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/stblchck.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/stblzlsp.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/common/utility.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\bitpack16.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16decoder.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16encoder.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16coarse_pitch.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16excdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16excquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16fine_pitch.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16gaindec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16gainquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16levelest.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16lspdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16lspquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16plc.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16ptdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16postfilter.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16ptquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv16/bv16tables.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\bitpack32.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32decoder.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32encoder.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32coarse_pitch.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32excdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32excquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32fine_pitch.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32gaindec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32gainquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32levelest.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32lspdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32lspquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32plc.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32ptdec.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32ptquan.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\floating/bv32/bv32tables.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\.\msvc\gettimeofday.c\r
-# End Source File\r
-# End Group\r
-# Begin Group "Header Files"\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/broadvoice.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/version.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice/private/broadvoice.h\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\broadvoice.h\r
-# End Source File\r
-# End Group\r
-\r
-# Begin Group "Resource Files"\r
-\r
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-# End Group\r
-# End Target\r
-# End Project\r
+++ /dev/null
-#ifdef _MSC_VER
-#pragma warning(disable:4100)
-#endif
-
-#include "windows.h"
-
-void gettimeofday(struct timeval *tv, void *tz)
-{
- long int l = GetTickCount();
-
- tv->tv_sec = l / 1000;
- tv->tv_usec = (l % 1000) * 1000;
- return;
-}
+++ /dev/null
-/*
- * SpanDSP - a series of DSP components for telephony
- *
- * inttypes.h - a fudge for MSVC, which lacks this header
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2006 Michael Jerris
- *
- *
- * This file is released in the public domain.
- *
- */
-
-#if !defined(_INTTYPES_H_)
-#define _INTTYPES_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef _MSC_VER
-#if (_MSC_VER >= 1400) // VC8+
-#ifndef _CRT_SECURE_NO_DEPRECATE
-#define _CRT_SECURE_NO_DEPRECATE
-#endif
-#ifndef _CRT_NONSTDC_NO_DEPRECATE
-#define _CRT_NONSTDC_NO_DEPRECATE
-#endif
-#endif // VC8+
-#include <windows.h>
-typedef unsigned __int8 uint8_t;
-typedef unsigned __int16 uint16_t;
-typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-typedef __int8 int8_t;
-typedef __int16 int16_t;
-typedef __int32 int32_t;
-typedef __int64 int64_t;
-#define inline __inline
-#define __inline__ __inline
-#define INT16_MAX 0x7fff
-#define INT16_MIN (-INT16_MAX - 1)
-#define _MMX_H_
-
-/* disable the following warnings
- * C4100: The formal parameter is not referenced in the body of the function. The unreferenced parameter is ignored.
- * C4200: Non standard extension C zero sized array
- * C4706: assignment within conditional expression
- * C4244: conversion from 'type1' to 'type2', possible loss of data
- * C4295: array is too small to include a terminating null character
- * C4125: decimal digit terminates octal escape sequence
- */
-#pragma warning(disable:4100 4200 4706 4295 4125)
-
-#pragma comment(lib, "ws2_32.lib")
-
-#define strncasecmp _strnicmp
-#define strcasecmp _stricmp
-#if _MSC_VER < 1900
-#define snprintf _snprintf
-#else
-#include <math.h>
-#endif
-
-#if !defined(INFINITY)
-#define INFINITY 0x7fffffff
-#endif
-#endif
-
-#define PACKAGE "ilbc"
-#define VERSION "0.0.1andabit"
-
-#define INT32_MAX (2147483647)
-#define INT32_MIN (-2147483647 - 1)
-
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "ld"
-#define PRId64 "lld"
-
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "lu"
-#define PRIu64 "llu"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
+++ /dev/null
-# Microsoft Developer Studio Project File - Name="gbroadvoice" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=gbroadvoice - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gbroadvoice.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gbroadvoice.mak" CFG="gbroadvoice - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gbroadvoice - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "gbroadvoice - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "gbroadvoice - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "." /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /D "_WINDLL" /FR /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /map /debug /machine:I386 /out:"Release/libgbroadvoice.dll"
-
-!ELSEIF "$(CFG)" == "gbroadvoice - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /FR /FD /GZ /c
-# SUBTRACT CPP /WX /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /incremental:no /map /debug /machine:I386 /out:"Debug/libgbroadvoice.dll" /pdbtype:sept
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "gbroadvoice - Win32 Release"
-# Name "gbroadvoice - Win32 Debug"
+++ /dev/null
-extern void gettimeofday(struct timeval *tv, void *tz);
+++ /dev/null
-/*
- * SpanDSP - a series of DSP components for telephony
- *
- * tgmath.h - a fudge for MSVC, which lacks this header
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2006 Michael Jerris
- *
- *
- * This file is released in the public domain.
- *
- */
-
-#if !defined(_TGMATH_H_)
-#define _TGMATH_H_
-
-#include <math.h>
-
-#if !defined(M_PI)
-/* C99 systems may not define M_PI */
-#define M_PI 3.14159265358979323846264338327
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A kindofa rint() for VC++ (only kindofa, because rint should be type generic,
- and this one is purely float to int */
-static inline long int lrintf(float a)
-{
- long int i;
-
- __asm
- {
- fld a
- fistp i
- }
- return i;
-}
-
-static inline long int lrint(double a)
-{
- long int i;
-
- __asm
- {
- fld a
- fistp i
- }
- return i;
-}
-
-static inline int rintf(float a)
-{
- int i;
-
- __asm
- {
- fld a
- fistp i
- }
- return i;
-}
-
-static inline int rint(double a)
-{
- int i;
-
- __asm
- {
- fld a
- fistp i
- }
- return i;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-/*
- * SpanDSP - a series of DSP components for telephony
- *
- * inttypes.h - a fudge for MSVC, which lacks this header
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2006 Michael Jerris
- *
- *
- * This file is released in the public domain.
- *
- */
-
-#if !defined(_INTTYPES_H_)
-#define _INTTYPES_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define open _open
-#define write _write
-
-extern int gethostname (char *name, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="libbroadvoice"
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
- RootNamespace="libbroadvoice"
- Keyword="Win32Proj"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- CompileAs="1"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- CompileAs="1"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
+++ /dev/null
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9.00"\r
- Name="libbroadvoice"\r
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
- RootNamespace="libbroadvoice"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- <Platform\r
- Name="x64"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="1"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
- IntermediateDirectory="$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="1"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Debug|x64"\r
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="1"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="2"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|x64"\r
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"\r
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="1"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- TargetEnvironment="3"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=".; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="4"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- LinkIncremental="1"\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="17"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
+++ /dev/null
-##
-## broadvoice - a library for the BroadVoice 16 and 32 codecs
-##
-## Makefile.am -- Process this file with automake to produce Makefile.in
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License version 2, as
-## published by the Free Software Foundation.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-##
-## $Id: Makefile.am,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
-
-SUBDIRS = broadcom local
-
-DIST_SUBDIRS = broadcom local
-
-EXTRA_DIST =
-
-all:
-
-clean:
+++ /dev/null
-Test data is located at http://files.freeswitch.org/broadvoice/test-data.tar.gz
+++ /dev/null
-##
-## broadvoice - a library for the BroadVoice 16 and 32 codecs
-##
-## Makefile.am -- Process this file with automake to produce Makefile.in
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License version 2, as
-## published by the Free Software Foundation.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-##
-## $Id: Makefile.am,v 1.2 2009/11/20 13:12:23 steveu Exp $
-
-AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
-AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
-
-LIBS += $(TESTLIBS)
-
-EXTRA_DIST = regression_tests.sh.in
-
-MAINTAINERCLEANFILES = Makefile.in
-
-INCLUDES = -I$(top_builddir)/src -DDATADIR="\"$(pkgdatadir)\""
-
-LIBDIR = -L$(top_builddir)/src
-
-noinst_PROGRAMS = broadvoice_tests
-
-noinst_HEADERS = g192_bit_stream.h \
- timing.h
-
-broadvoice_tests_SOURCES = broadvoice_tests.c g192_bit_stream.c
-broadvoice_tests_LDADD = $(LIBDIR) -lbroadvoice
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * broadvoice_tests.c
- *
- * Copyright 2008-2009 Steve Underwood <steveu@coppice.org>
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: broadvoice_tests.c,v 1.2 2009/11/20 13:12:23 steveu Exp $
- */
-
-/*! \file */
-
-/*! \page broadvoice_tests_page BroadVoice 16 and 32 codec tests
-\section broadvoice_tests_page_sec_1 What does it do?
-
-\section broadvoice_tests_page_sec_2 How is it used?
-*/
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <string.h>
-#include <audiofile.h>
-
-#define BROADVOICE_EXPOSE_INTERNAL_STRUCTURES
-#include <broadvoice.h>
-
-#include "timing.h"
-#include "g192_bit_stream.h"
-
-#define MAX_FRAME_SIZE 80
-#define MAX_BITS_PER_FRAME 160
-
-typedef struct
-{
- int encode;
- int encoded_format;
- int bit_rate;
- int sample_rate;
- int number_of_bits_per_frame;
- int frame_size;
- char *source_file;
- char *dest_file;
- FILE *fp;
- FILE *fp_bitstream;
-} coder_control_t;
-
-static int encode_test(coder_control_t *control, int frames)
-{
- bv16_encode_state_t encode_state_16;
- bv16_encode_state_t *s16;
- bv32_encode_state_t encode_state_32;
- bv32_encode_state_t *s32;
- int16_t amp[frames*MAX_FRAME_SIZE];
- uint8_t bv_code[frames*MAX_BITS_PER_FRAME/8];
- int samples;
- int padded_samples;
- int frame_cnt;
- int bytes;
- int actual_frames;
- int i;
- int64_t start;
- int64_t end;
- int64_t total;
-
- if ((control->fp = fopen(control->source_file, "rb")) == NULL)
- {
- printf("Error opening %s.\n", control->source_file);
- exit(1);
- }
- if ((control->fp_bitstream = fopen(control->dest_file, "wb")) == NULL)
- {
- printf("Error opening %s.\n", control->dest_file);
- exit(1);
- }
-
- s16 = NULL;
- s32 = NULL;
- if (control->bit_rate == 16000)
- {
- if ((s16 = bv16_encode_init(&encode_state_16)) == NULL)
- {
- printf("Failed to initialise the encoder.\n");
- exit(2);
- }
- }
- else
- {
- if ((s32 = bv32_encode_init(&encode_state_32)) == NULL)
- {
- printf("Failed to initialise the encoder.\n");
- exit(2);
- }
- }
- frame_cnt = 0;
- total = 0;
- for (;;)
- {
- samples = fread(amp, sizeof(int16_t), frames*control->frame_size, control->fp);
- if (samples <= 0)
- break;
- if (samples%control->frame_size != 0)
- {
- padded_samples = samples - samples%control->frame_size + control->frame_size;
- /* Pad this fractional frame out to a full one with silence */
- for (i = samples; i < padded_samples; i++)
- amp[i] = 0;
- samples = padded_samples;
- }
- actual_frames = samples/control->frame_size;
- start = rdtscll();
- if (control->bit_rate == 16000)
- bytes = bv16_encode(s16, bv_code, amp, samples);
- else
- bytes = bv32_encode(s32, bv_code, amp, samples);
- end = rdtscll();
- frame_cnt += actual_frames;
- /* Write output bitstream to the output file */
- for (i = 0; i < actual_frames; i++)
- itu_codec_bitstream_write(&bv_code[i*bytes/actual_frames], 8*bytes/actual_frames, control->encoded_format, control->fp_bitstream);
- total += (end - start);
- }
- fclose(control->fp);
- fclose(control->fp_bitstream);
- printf("%d frames encoded\n", frame_cnt);
- if (frame_cnt == 0)
- frame_cnt = 1;
- printf("%" PRId64 " cycles. %" PRId64 " per frame\n", total, total/frame_cnt);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-static int decode_test(coder_control_t *control, int frames)
-{
- bv16_decode_state_t decode_state_16;
- bv16_decode_state_t *s16;
- bv32_decode_state_t decode_state_32;
- bv32_decode_state_t *s32;
- int16_t amp[frames*MAX_FRAME_SIZE];
- uint8_t bv_code[frames*MAX_BITS_PER_FRAME/8];
- int bytes;
- int samples;
- int frame_cnt;
- int number_of_bytes_per_frame;
- int actual_frames;
- int i;
- int j;
- int k;
- int n;
- int16_t frame_error_flag;
- int64_t start;
- int64_t end;
- int64_t total;
-
- if ((control->fp_bitstream = fopen(control->source_file, "rb")) == NULL)
- {
- printf("Error opening %s.\n", control->source_file);
- exit(1);
- }
- if ((control->fp = fopen(control->dest_file, "wb")) == NULL)
- {
- printf("Error opening %s.\n", control->dest_file);
- exit(1);
- }
-
- number_of_bytes_per_frame = control->number_of_bits_per_frame/8;
-
- s16 = NULL;
- s32 = NULL;
- if (control->bit_rate == 16000)
- {
- if ((s16 = bv16_decode_init(&decode_state_16)) == NULL)
- {
- printf("Failed to initialise the decoder.\n");
- exit(2);
- }
- }
- else
- {
- if ((s32 = bv32_decode_init(&decode_state_32)) == NULL)
- {
- printf("Failed to initialise the decoder.\n");
- exit(2);
- }
- }
-
- frame_cnt = 0;
- total = 0;
- frame_error_flag = 0;
- n = 0;
- for (;;)
- {
- for (actual_frames = 0, bytes = 0, i = 0; i < frames; i++)
- {
- n = itu_codec_bitstream_read(&bv_code[i*number_of_bytes_per_frame],
- &frame_error_flag,
- number_of_bytes_per_frame*8,
- control->encoded_format,
- control->fp_bitstream)/8;
- bytes += n;
- if (n == number_of_bytes_per_frame)
- actual_frames++;
- if (frame_error_flag || n != number_of_bytes_per_frame)
- break;
- }
- if (frame_error_flag || bytes >= number_of_bytes_per_frame)
- {
- if (frame_error_flag)
- {
- samples = 0;
- if (actual_frames > 0)
- {
- start = rdtscll();
- if (control->bit_rate == 16000)
- samples = bv16_decode(s16, amp, bv_code, bytes - number_of_bytes_per_frame);
- else
- samples = bv32_decode(s32, amp, bv_code, bytes - number_of_bytes_per_frame);
- end = rdtscll();
- total += (end - start);
- }
- j = bytes - number_of_bytes_per_frame;
- if (j < 0)
- j = 0;
- k = (actual_frames - 1)*control->frame_size;
- if (k < 0)
- k = 0;
-#if 0
- if (control->bit_rate == 16000)
- samples += bv16_fillin(s16, &[k], &bv_code[j], number_of_bytes_per_frame);
- else
- samples += bv32_fillin(s32, &[k], &bv_code[j], number_of_bytes_per_frame);
-#else
- if (control->bit_rate == 16000)
- samples += bv16_fillin(s16, &[k], number_of_bytes_per_frame);
- else
- samples += bv32_fillin(s32, &[k], number_of_bytes_per_frame);
-#endif
- }
- else
- {
- start = rdtscll();
- if (control->bit_rate == 16000)
- samples = bv16_decode(s16, amp, bv_code, bytes);
- else
- samples = bv32_decode(s32, amp, bv_code, bytes);
- end = rdtscll();
- total += (end - start);
- }
- frame_cnt += actual_frames;
- /* For ITU testing, chop off the 2 LSBs. */
- //for (i = 0; i < samples; i++)
- // amp[i] &= 0xFFFC;
- /* Write frame of output samples */
- fwrite(amp, sizeof(int16_t), samples, control->fp);
- }
- if (!frame_error_flag && n != number_of_bytes_per_frame)
- break;
- }
- fclose(control->fp);
- fclose(control->fp_bitstream);
- printf("%d frames decoded\n", frame_cnt);
- if (frame_cnt == 0)
- frame_cnt = 1;
- printf("%" PRId64 " cycles. %" PRId64 " per frame\n", total, total/frame_cnt);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-static void parse_command_line(char *argv[], coder_control_t *control)
-{
- control->encode = (strcasecmp(*++argv, "e") == 0);
-
- if (strcasecmp(*++argv, "p") == 0)
- {
- control->encoded_format = ITU_CODEC_BITSTREAM_PACKED;
- printf("Encoding format = packed bitstream\n");
- }
- else if (strcasecmp(*argv, "i") == 0)
- {
- control->encoded_format = ITU_CODEC_BITSTREAM_G192;
- printf("Encoding format = ITU G.192 format bitstream\n");
- }
- else
- {
- printf("Error. Encoded format must be P for packed, or I for ITU format\n");
- exit(1);
- }
- control->bit_rate = (int32_t) atoi(*++argv);
- control->number_of_bits_per_frame = (int16_t) (control->bit_rate/200);
-
-
- control->sample_rate = (control->bit_rate == 16000) ? 8000 : 16000;
- if (control->sample_rate == 8000)
- {
- control->frame_size = MAX_FRAME_SIZE >> 1;
-
- printf("Sample rate = 8000 (BroadVoice16, 3.4kHz bandwidth)\n");
- }
- else if (control->sample_rate == 16000)
- {
- control->frame_size = MAX_FRAME_SIZE;
-
- printf("Sample rate = 16000 (BroadVoice32, 7.1kHz bandwidth)\n");
- }
- else
- {
- printf("Error. Sample rate must be 8000 or 16000\n");
- exit(1);
- }
- control->source_file = *++argv;
- control->dest_file = *++argv;
-
- printf("Bit rate = %d\n", control->bit_rate);
- printf("Framesize = %d samples\n", control->frame_size);
- printf("Number of bits per frame = %d bits\n", control->number_of_bits_per_frame);
- printf("\n");
- printf("\n");
-}
-/*- End of function --------------------------------------------------------*/
-
-int main(int argc, char *argv[])
-{
- coder_control_t control;
-
- /* Check usage */
- if (argc < 6)
- {
- printf("Usage: %s <E/D> <P(packed)/I(ITU)> <bit rate> <input-file> <output-file>\n\n", argv[0]);
- printf("Sample rate: 3.5kHz = 8000\n");
- printf(" 7.1kHz = 16000\n");
- printf("\n");
- exit(1);
- }
-
- parse_command_line(argv, &control);
- if (control.encode)
- encode_test(&control, 4);
- else
- decode_test(&control, 4);
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-#!/bin/sh
-
-TESTDATADIR=../test-data/broadcom/fixed/bv16
-
-# Clean
-if test -f tv.bv16
-then
-\rm tv.bv16
-fi
-if test -f tv.bv16.raw
-then
-\rm tv.bv16.raw
-fi
-if test -f bit.enc.tmp
-then
-\rm bit.enc.tmp
-fi
-if test -f bit.dec.tmp
-then
-\rm bit.dec.tmp
-fi
-if test -f tv.bv16.bfe10.raw
-then
-\rm tv.bv16.bfe10.raw
-fi
-
-# Set error pattern files
-./bv16_tests enc ${TESTDATADIR}/tv.raw tv.bv16
-./bv16_tests dec ${TESTDATADIR}/tv.bv16.ref tv.bv16.raw
-./bv16_tests dec ${TESTDATADIR}/tv.bfe10.bv16 tv.bv16.bfe10.raw
-
-checksum=0;
-if test -n "`cmp tv.bv16 ${TESTDATADIR}/tv.bv16.ref`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv16.raw ${TESTDATADIR}/tv.bv16.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv16.bfe10.raw ${TESTDATADIR}/tv.bv16.bfe10.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-
-if test $checksum -eq 0
-then
-echo " **************************************************************************"
-echo " * CONGRATULATIONS: Your compilation passed the simple functionality test *"
-echo " **************************************************************************"
-echo ""
-\rm tv.bv16 tv.bv16.raw tv.bv16.bfe10.raw
-else
-echo " ************************************************************************"
-echo " * WARNING: Your compilation DID NOT pass the simple functionality test *"
-echo " ************************************************************************"
-echo ""
-fi
+++ /dev/null
-#!/bin/sh
-
-TESTDATADIR=../test-data/broadcom/floating/bv16
-
-# Clean
-if test -f tv.bv16
-then
-\rm tv.bv16
-fi
-if test -f tv.bv16.raw
-then
-\rm tv.bv16.raw
-fi
-if test -f bit.enc.tmp
-then
-\rm bit.enc.tmp
-fi
-if test -f bit.dec.tmp
-then
-\rm bit.dec.tmp
-fi
-if test -f tv.bv16.bfe10.raw
-then
-\rm tv.bv16.bfe10.raw
-fi
-
-# Set error pattern files
-./bv16_tests enc ${TESTDATADIR}/tv.raw tv.bv16
-./bv16_tests dec ${TESTDATADIR}/tv.bv16.ref tv.bv16.raw
-./bv16_tests dec ${TESTDATADIR}/tv.bfe10.bv16 tv.bv16.bfe10.raw
-
-checksum=0;
-if test -n "`cmp tv.bv16 ${TESTDATADIR}/tv.bv16.ref`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv16.raw ${TESTDATADIR}/tv.bv16.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv16.bfe10.raw ${TESTDATADIR}/tv.bv16.bfe10.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-
-if test $checksum -eq 0
-then
-echo " **************************************************************************"
-echo " * CONGRATULATIONS: Your compilation passed the simple functionality test *"
-echo " **************************************************************************"
-echo ""
-\rm tv.bv16 tv.bv16.raw tv.bv16.bfe10.raw
-else
-echo " ************************************************************************"
-echo " * WARNING: Your compilation DID NOT pass the simple functionality test *"
-echo " ************************************************************************"
-echo ""
-fi
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv16_tests.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv16_tests.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define BROADVOICE_EXPOSE_INTERNAL_STRUCTURES
-#include "broadvoice.h"
-#include "g192_bit_stream.h"
-
-#define G192BITSTREAM
-
-int frame;
-int16_t bfi = 0;
-
-static void usage(const char *name)
-{
- fprintf(stderr, "usage: %s enc|dec input output\n", name);
- fprintf(stderr, "\nFormat for speech_file:\n Binary file of 8 kHz sampled 16-bit PCM data.\n");
-#if defined(G192BITSTREAM)
- fprintf(stderr, "\nFormat for bitstream_file per frame: ITU-T G.192 format\n\
- One (2-byte) synchronization word [0x6B21],\n\
- One (2-byte) size word,\n\
- 160 words (2-byte) containing 160 bits.\n\n");
-#else
- fprintf(stderr, "\nFormat for bitstream_file per frame: Packed Bits\n");
-#endif
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- FILE *fi;
- FILE *fo;
- FILE *fbdi = NULL;
- int enc = 1;
- int nread;
- int i;
- int len;
- int16_t x[BV16_FRAME_LEN];
- bv16_encode_state_t *cs;
- bv16_decode_state_t *ds;
- uint8_t PackedStream[10];
- int next_bad_frame = -1;
- int packing;
-
- if ((argc != 4) && (argc != 5))
- usage(argv[0]);
- if (!strcmp(argv[1], "enc"))
- enc = 1;
- else if (!strcmp(argv[1], "dec"))
- enc = 0;
- else
- usage(argv[0]);
-
- if (!(fi = fopen(argv[2], "rb")))
- {
- fprintf(stderr, "error: can't read %s\n", argv[2]);
- exit(2);
- }
- if (!(fo = fopen(argv[3], "wb")))
- {
- fprintf(stderr, "error: can't write to %s\n", argv[3]);
- exit(3);
- }
- if (argc == 5)
- {
- if (!(fbdi = fopen(argv[4], "rb")))
- {
- fprintf(stderr, "error: can't read %s\n", argv[4]);
- exit(3);
- }
- }
-
- if (enc)
- {
- fprintf(stderr, " BroadVoice16 Encoder V1.0 with ITU-T G.192\n");
- fprintf(stderr, " Input speech file : %s\n", argv[2]);
- fprintf(stderr, " Output bit-stream file: %s\n", argv[3]);
- }
- else
- {
- fprintf(stderr, " BroadVoice16 Decoder V1.0 with ITU-T G.192\n");
- fprintf(stderr, " Input bit-stream file : %s\n", argv[2]);
- fprintf(stderr, " Output speech file : %s\n", argv[3]);
- }
-
-#if defined(G192BITSTREAM)
- packing = ITU_CODEC_BITSTREAM_G192;
-#else
- packing = ITU_CODEC_BITSTREAM_PACKED;
-#endif
-
- cs = NULL;
- ds = NULL;
- if (enc)
- cs = bv16_encode_init(NULL);
- else
- ds = bv16_decode_init(NULL);
-
- frame = 0;
- /* Read for the 1st bad frame */
- if (fbdi != NULL)
- fscanf(fbdi, "%d", &next_bad_frame);
-
- for (;;)
- {
- frame++;
-
- /* Read one speech frame */
- if (enc == 1)
- {
- nread = fread(x, sizeof(int16_t), BV16_FRAME_LEN, fi);
- if (nread <= 0)
- break;
- for (i = nread; i < BV16_FRAME_LEN; i++)
- x[i] = 0;
-
- len = bv16_encode(cs, PackedStream, x, BV16_FRAME_LEN);
- itu_codec_bitstream_write(PackedStream, 8*len, packing, fo);
- }
- else
- {
- nread = itu_codec_bitstream_read(PackedStream, &bfi, 80, packing, fi);
- if (nread <= 0)
- break;
- if (frame == next_bad_frame)
- {
- fscanf(fbdi, "%d", &next_bad_frame);
- bfi = 1;
- }
-
- if (bfi)
- len = bv16_fillin(ds, x, BV16_FRAME_LEN);
- else
- len = bv16_decode(ds, x, PackedStream, 10);
- fwrite(x, sizeof(int16_t), len, fo);
- }
- }
-
- if (enc)
- bv16_encode_free(cs);
- else
- bv16_decode_free(ds);
-
- fprintf(stderr, "\r %d %d-sample frames processed.\n", --frame, BV16_FRAME_LEN);
-
- fclose(fi);
- fclose(fo);
-
- if (fbdi != NULL)
- fclose(fbdi);
-
- fprintf(stderr, "\n\n");
-
- return 0;
-}
+++ /dev/null
-#!/bin/sh
-
-TESTDATADIR=../test-data/broadcom/fixed/bv32
-
-# Clean
-if test -f tv.bv32
-then
-\rm tv.bv32
-fi
-if test -f tv.bv32.raw
-then
-\rm tv.bv32.raw
-fi
-if test -f tv.bv32.bfe10.raw
-then
-\rm tv.bv32.bfe10.raw
-fi
-
-# Set error pattern files
-./bv32_tests enc ${TESTDATADIR}/tv.raw tv.bv32
-./bv32_tests dec ${TESTDATADIR}/tv.bv32.ref tv.bv32.raw
-./bv32_tests dec ${TESTDATADIR}/tv.bfe10.bv32 tv.bv32.bfe10.raw
-
-checksum=0;
-if test -n "`cmp tv.bv32 ${TESTDATADIR}/tv.bv32.ref`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv32.raw ${TESTDATADIR}/tv.bv32.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv32.bfe10.raw ${TESTDATADIR}/tv.bv32.bfe10.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-
-if test $checksum -eq 0
-then
-echo " **************************************************************************"
-echo " * CONGRATULATIONS: Your compilation passed the simple functionality test *"
-echo " **************************************************************************"
-echo ""
-\rm tv.bv32 tv.bv32.raw tv.bv32.bfe10.raw
-else
-echo " ************************************************************************"
-echo " * WARNING: Your compilation DID NOT pass the simple functionality test *"
-echo " ************************************************************************"
-echo ""
-fi
+++ /dev/null
-#!/bin/sh
-
-TESTDATADIR=../test-data/broadcom/floating/bv32
-
-# Clean
-if test -f tv.bv32
-then
-\rm tv.bv32
-fi
-if test -f tv.bv32.raw
-then
-\rm tv.bv32.raw
-fi
-if test -f tv.bv32.bfe10.raw
-then
-\rm tv.bv32.bfe10.raw
-fi
-
-# Set error pattern files
-./bv32_tests enc ${TESTDATADIR}/tv.raw tv.bv32
-./bv32_tests dec ${TESTDATADIR}/tv.bv32.ref tv.bv32.raw
-./bv32_tests dec ${TESTDATADIR}/tv.bfe10.bv32 tv.bv32.bfe10.raw
-
-checksum=0;
-if test -n "`cmp tv.bv32 ${TESTDATADIR}/tv.bv32.ref`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv32.raw ${TESTDATADIR}/tv.bv32.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-if test -n "`cmp tv.bv32.bfe10.raw ${TESTDATADIR}/tv.bv32.bfe10.ref.raw`"
-then
-checksum=`expr $checksum + 1`
-fi
-
-if test $checksum -eq 0
-then
-echo " **************************************************************************"
-echo " * CONGRATULATIONS: Your compilation passed the simple functionality test *"
-echo " **************************************************************************"
-echo ""
-\rm tv.bv32 tv.bv32.raw tv.bv32.bfe10.raw
-else
-echo " ************************************************************************"
-echo " * WARNING: Your compilation DID NOT pass the simple functionality test *"
-echo " ************************************************************************"
-echo ""
-fi
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * bv32_tests.c -
- *
- * Adapted by Steve Underwood <steveu@coppice.org> from code which is
- * Copyright 2000-2009 Broadcom Corporation
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: bv32_tests.c,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define BROADVOICE_EXPOSE_INTERNAL_STRUCTURES
-#include "broadvoice.h"
-#include "g192_bit_stream.h"
-
-#define G192BITSTREAM
-
-int frame;
-int16_t bfi = 0;
-
-static void usage(const char *name)
-{
- fprintf(stderr, "usage: %s enc|dec input output\n", name);
- fprintf(stderr, "\nFormat for speech_file:\n Binary file of 16 kHz sampled 16-bit PCM data.\n");
-#if defined(G192BITSTREAM)
- fprintf(stderr, "\nFormat for bitstream_file per frame: ITU-T G.192 format\n\
- One (2-byte) synchronization word [0x6B21],\n\
- One (2-byte) size word,\n\
- 160 words (2-byte) containing 160 bits.\n\n");
-#else
- fprintf(stderr, "\nFormat for bitstream_file per frame: Packed Bits\n");
-#endif
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- FILE *fi;
- FILE *fo;
- FILE *fbdi = NULL;
- int enc = 1;
- int nread;
- int i;
- int len;
- int16_t x[BV32_FRAME_LEN];
- bv32_encode_state_t *cs;
- bv32_decode_state_t *ds;
- uint8_t PackedStream[20];
- int next_bad_frame = -1;
- int packing;
-
- if ((argc != 4) && (argc != 5))
- usage(argv[0]);
- if (!strcmp(argv[1], "enc"))
- enc = 1;
- else if (!strcmp(argv[1], "dec"))
- enc = 0;
- else
- usage(argv[0]);
-
- if (!(fi = fopen(argv[2], "rb")))
- {
- fprintf(stderr, "error: can't read %s\n", argv[2]);
- exit(2);
- }
- if (!(fo = fopen(argv[3], "wb")))
- {
- fprintf(stderr, "error: can't write to %s\n", argv[3]);
- exit(3);
- }
- if (argc == 5)
- {
- if (!(fbdi = fopen(argv[4], "rb")))
- {
- fprintf(stderr, "error: can't read %s\n", argv[4]);
- exit(3);
- }
- }
-
- if (enc)
- {
- fprintf(stderr, " BroadVoice32 Encoder V1.0 with ITU-T G.192\n");
- fprintf(stderr, " Input speech file : %s\n", argv[2]);
- fprintf(stderr, " Output bit-stream file: %s\n", argv[3]);
- }
- else
- {
- fprintf(stderr, " BroadVoice32 Decoder V1.0 with ITU-T G.192\n");
- fprintf(stderr, " Input bit-stream file : %s\n", argv[2]);
- fprintf(stderr, " Output speech file : %s\n", argv[3]);
- }
-
-#if defined(G192BITSTREAM)
- packing = ITU_CODEC_BITSTREAM_G192;
-#else
- packing = ITU_CODEC_BITSTREAM_PACKED;
-#endif
-
- cs = NULL;
- ds = NULL;
- if (enc)
- cs = bv32_encode_init(NULL);
- else
- ds = bv32_decode_init(NULL);
-
- frame = 0;
- /* Read for the 1st bad frame */
- if (fbdi != NULL)
- fscanf(fbdi, "%d", &next_bad_frame);
-
- for (;;)
- {
- frame++;
-#if 0
- /* Floating only */
- if (frame == 1737)
- frame++;
-#endif
- /* Read one speech frame */
- if (enc == 1)
- {
- nread = fread(x, sizeof(int16_t), BV32_FRAME_LEN, fi);
- if (nread <= 0)
- break;
- for (i = nread; i < BV32_FRAME_LEN; i++)
- x[i] = 0;
-
- len = bv32_encode(cs, PackedStream, x, BV32_FRAME_LEN);
- itu_codec_bitstream_write(PackedStream, 8*len, packing, fo);
- }
- else
- {
- nread = itu_codec_bitstream_read(PackedStream, &bfi, 160, packing, fi);
- if (nread <= 0)
- break;
- if (frame == next_bad_frame)
- {
- fscanf(fbdi, "%d", &next_bad_frame);
- bfi = 1;
- }
-
- if (bfi)
- len = bv32_fillin(ds, x, BV32_FRAME_LEN);
- else
- len = bv32_decode(ds, x, PackedStream, 20);
- fwrite(x, sizeof(int16_t), len, fo);
- }
- }
-
- if (enc)
- bv32_encode_free(cs);
- else
- bv32_decode_free(ds);
-
- fprintf(stderr, "\r %d %d-sample frames processed.\n", --frame, BV32_FRAME_LEN);
-
- fclose(fi);
- fclose(fo);
-
- if (fbdi != NULL)
- fclose(fbdi);
-
- fprintf(stderr, "\n\n");
-
- return 0;
-}
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * g192_bit_stream.c
- *
- * Copyright 2008-2009 Steve Underwood <steveu@coppice.org>
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: g192_bit_stream.c,v 1.2 2009/11/20 13:12:24 steveu Exp $
- */
-
-/*! \file */
-
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
-
-#include <inttypes.h>
-#include <stdio.h>
-#include <string.h>
-#include <audiofile.h>
-
-#include "g192_bit_stream.h"
-
-enum
-{
- G192_FRAME_ERASURE = 0x6B20,
- G192_FRAME_SYNC_1 = 0x6B21,
- G192_FRAME_SYNC_2 = 0x6B22,
- G192_FRAME_SYNC_3 = 0x6B23,
- G192_FRAME_SYNC_4 = 0x6B24,
- G192_FRAME_SYNC_5 = 0x6B25,
- G192_FRAME_SYNC_6 = 0x6B26,
- G192_FRAME_SYNC_7 = 0x6B27,
- G192_FRAME_SYNC_8 = 0x6B28,
- G192_FRAME_SYNC_9 = 0x6B29,
- G192_FRAME_SYNC_10 = 0x6B2A,
- G192_FRAME_SYNC_11 = 0x6B2B,
- G192_FRAME_SYNC_12 = 0x6B2C,
- G192_FRAME_SYNC_13 = 0x6B2D,
- G192_FRAME_SYNC_14 = 0x6B2E,
- G192_FRAME_SYNC_15 = 0x6B2F,
- G192_HARD_ZERO = 0x7F,
- G192_INDETERMINATE = 0x00,
- G192_HARD_ONE = 0x81,
-};
-
-void itu_codec_bitstream_write(const uint8_t out_data[],
- int number_of_bits,
- int mode,
- FILE *fp_bitstream)
-{
- int i;
- int j;
- int bit_count;
- int number_of_bytes;
- uint8_t packed_word;
- int16_t out_array[2 + number_of_bits + 7];
-
- number_of_bytes = (number_of_bits + 7)/8;
- if (mode == ITU_CODEC_BITSTREAM_PACKED)
- {
- fwrite(out_data, 1, number_of_bytes, fp_bitstream);
- return;
- }
- j = 0;
- out_array[j++] = G192_FRAME_SYNC_1;
- out_array[j++] = number_of_bits;
- for (i = 0; i < number_of_bytes; i++)
- {
- packed_word = out_data[i];
- for (bit_count = 7; bit_count >= 0; bit_count--)
- out_array[j++] = ((packed_word >> bit_count) & 1) ? G192_HARD_ONE : G192_HARD_ZERO;
- }
-
- fwrite(out_array, sizeof(int16_t), number_of_bits + 2, fp_bitstream);
-}
-/*- End of function --------------------------------------------------------*/
-
-int itu_codec_bitstream_read(uint8_t in_data[],
- int16_t *frame_error_flag,
- int number_of_bits,
- int mode,
- FILE *fp_bitstream)
-{
- int i;
- int j;
- int bit_pos;
- int nsamp;
- int len;
- int erased_frame;
- int16_t packed_word;
- int16_t bit;
- int16_t in_array[2 + number_of_bits];
-
- *frame_error_flag = 0;
- if (mode == ITU_CODEC_BITSTREAM_PACKED)
- return fread(in_data, 1, number_of_bits/8, fp_bitstream)*8;
-
- nsamp = fread(in_array, sizeof(int16_t), 2, fp_bitstream);
- if (nsamp < 2)
- return -1;
- if (in_array[0] < G192_FRAME_ERASURE || in_array[0] > G192_FRAME_SYNC_15)
- {
- *frame_error_flag = 1;
- return 0;
- }
- erased_frame = (in_array[0] == G192_FRAME_ERASURE);
- len = in_array[1];
- if (len > number_of_bits)
- {
- *frame_error_flag = 1;
- return 0;
- }
- nsamp = fread(in_array, sizeof(int16_t), len, fp_bitstream);
- if (nsamp != len)
- {
- *frame_error_flag = 1;
- return nsamp;
- }
-
- for (i = 0, j = 0; i < nsamp/8; i++)
- {
- packed_word = 0;
- bit_pos = 7;
- while (bit_pos >= 0)
- {
- bit = in_array[j++];
- if (bit >= 0x0000 && bit <= 0x007F)
- {
- /* Its a zero */
- }
- else if (bit >= 0x0081 && bit <= 0x00FF)
- {
- /* Its a one */
- packed_word |= (1 << bit_pos);
- }
- else
- {
- /* Bad bit */
- *frame_error_flag = 1;
- }
- bit_pos--;
- }
- in_data[i] = packed_word;
- }
- if (erased_frame)
- *frame_error_flag = 1;
- return nsamp;
-}
-/*- End of function --------------------------------------------------------*/
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-/*
- * broadvoice - a library for the BroadVoice 16 and 32 codecs
- *
- * g192_bit_stream.h
- *
- * Copyright 2008-2009 Steve Underwood <steveu@coppice.org>
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: g192_bit_stream.h,v 1.1.1.1 2009/11/19 12:10:48 steveu Exp $
- */
-
-/*! \file */
-
-#if !defined(_G192_BIT_STREAM_H_)
-#define _G192_BIT_STREAM_H_
-
-/*! \page g192_bit_stream_page ITU G.192 codec bit stream handling
-\section g192_bit_stream_page_sec_1 What does it do?
-
-\section g192_bit_stream_page_sec_2 How does it work?
-*/
-
-enum
-{
- ITU_CODEC_BITSTREAM_PACKED = 0,
- ITU_CODEC_BITSTREAM_G192 = 1
-};
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/*! \brief Write a frame of data to an output file.
- \param out_data The buffer for the data to be written.
- \param number_of_bits The number of bits to be written.
- \param mode 0 = continuous, 1 = ITU G.192 codec bitstream format.
- \param fp_bitstream The file context to be written to.*/
-void itu_codec_bitstream_write(const uint8_t out_data[],
- int number_of_bits,
- int mode,
- FILE *fp_bitstream);
-
-/*! \brief Read a frame of data from an input file.
- \param in_data The buffer for the data to be read.
- \param p_frame_error_flags ???.
- \param number_of_bits The number of bits to be read.
- \param mode 0 = continuous, 1 = ITU G.192 codec bitstream format.
- \param fp_bitstream The file context to be read from.
- \return The number of words read. */
-int itu_codec_bitstream_read(uint8_t in_data[],
- int16_t *p_frame_error_flag,
- int number_of_bits,
- int mode,
- FILE *fp_bitstream);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-#!/bin/sh
-#
-# broadvoice - a library for the BroadVoice 16 and 32 codecs
-#
-# regression_tests.sh
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2, as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-STDOUT_DEST=xyzzy
-STDERR_DEST=xyzzy2
-VECTOR_CLASS=@BROADVOICE_VECTORS_FOR_TESTS@
-TMP_FILE=tmp
-
-echo Performing basic BroadVoice 16 and 32 regression tests
-echo
-
-./broadvoice_tests E I 32000 ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.raw $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.bv32.ref
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests encode failed!
- exit $RETVAL
-fi
-./broadvoice_tests E I 16000 ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.raw $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.bv16.ref
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests encode failed!
- exit $RETVAL
-fi
-echo broadvoice_tests encode completed OK
-
-./broadvoice_tests D I 32000 ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.bv32.ref $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.bv32.ref.raw
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests decode failed!
- exit $RETVAL
-fi
-./broadvoice_tests D I 16000 ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.bv16.ref $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.bv16.ref.raw
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests decode failed!
- exit $RETVAL
-fi
-
-./broadvoice_tests D I 32000 ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.bfe10.bv32 $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv32/tv.bv32.bfe10.ref.raw
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests decode failed!
- exit $RETVAL
-fi
-./broadvoice_tests D I 16000 ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.bfe10.bv16 $TMP_FILE
-diff $TMP_FILE ../test-data/broadcom/$VECTOR_CLASS/bv16/tv.bv16.bfe10.ref.raw
-RETVAL=$?
-if [ $RETVAL != 0 ]
-then
- echo broadvoice_tests decode failed!
- exit $RETVAL
-fi
-echo broadvoice_tests decode completed OK
-
-echo
-echo All regression tests successfully completed
+++ /dev/null
-/*
- * SpanDSP - a series of DSP components for telephony
- *
- * timing.h - Provide access to the Pentium/Athlon TSC timer register
- *
- * Written by Steve Underwood <steveu@coppice.org>
- *
- * Copyright (C) 2001 Steve Underwood
- *
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#if !defined(_TIMING_H_)
-#define _TIMING_H_
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#if defined(__MSVC__)
-__declspec(naked) unsigned __int64 __cdecl rdtscll(void)
-{
- __asm
- {
- rdtsc
- ret ; return value at EDX:EAX
- }
-}
-/*- End of function --------------------------------------------------------*/
-#elif defined(__GNUC__)
-#if defined(__i386__)
-static __inline__ uint64_t rdtscll(void)
-{
- uint64_t now;
-
- __asm__ __volatile__(" rdtsc\n" : "=A" (now));
- return now;
-}
-/*- End of function --------------------------------------------------------*/
-#elif defined(__x86_64__)
-static __inline__ uint64_t rdtscll(void)
-{
- unsigned int a;
- unsigned int d;
-
- /* For x86_64 we need to merge the result in 2 32 bit registers
- into one clean 64 bit result. */
- __asm__ __volatile__(" rdtsc\n" : "=a" (a), "=d" (d));
- return ((uint64_t) a) | (((uint64_t) d) << 32);
-}
-/*- End of function --------------------------------------------------------*/
-#else
-static __inline__ uint64_t rdtscll(void)
-{
- /* This architecture doesn't have a suitable timer */
- return 0llu;
-}
-/*- End of function --------------------------------------------------------*/
-#endif
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
-/*- End of file ------------------------------------------------------------*/
+++ /dev/null
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version='1.0'>
- <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
- <xsl:param name="html.stylesheet">css.css</xsl:param>
-</xsl:stylesheet>
-
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>Download broadvoice</ProjectName>
+ <RootNamespace>Download broadvoice</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{46502007-0D94-47AC-A640-C2B5EEA98333}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(SolutionDir)\w32\extdll.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\w32\broadvoice.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\w32\broadvoice.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\broadvoice\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\broadvoice\$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <BuildLog>
+ <Path>$(IntDir)BuildLog $(ProjectName).htm</Path>
+ </BuildLog>
+ <PreBuildEvent>
+ <Command>
+ </Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <BuildLog>
+ <Path>$(IntDir)BuildLog $(ProjectName).htm</Path>
+ </BuildLog>
+ <PreBuildEvent>
+ <Command>
+ </Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <CustomBuild Include="cleancount">
+ <FileType>Document</FileType>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Downloading broadvoice.</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">if not exist "$(broadvoiceLibDir)" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/broadvoice-$(broadvoice_Version).tar.gz "$(ProjectDir).."
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(broadvoiceLibDir);%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Downloading broadvoice.</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">if not exist "$(broadvoiceLibDir)" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/broadvoice-$(broadvoice_Version).tar.gz "$(ProjectDir).."
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(broadvoiceLibDir);%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
- <ItemGroup Label="ProjectConfigurations">\r
- <ProjectConfiguration Include="Debug|Win32">\r
- <Configuration>Debug</Configuration>\r
- <Platform>Win32</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Debug|x64">\r
- <Configuration>Debug</Configuration>\r
- <Platform>x64</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Release|Win32">\r
- <Configuration>Release</Configuration>\r
- <Platform>Win32</Platform>\r
- </ProjectConfiguration>\r
- <ProjectConfiguration Include="Release|x64">\r
- <Configuration>Release</Configuration>\r
- <Platform>x64</Platform>\r
- </ProjectConfiguration>\r
- </ItemGroup>\r
- <PropertyGroup Label="Globals">\r
- <ProjectName>libbroadvoice</ProjectName>\r
- <ProjectGuid>{CF70F278-3364-4395-A2E1-23501C9B8AD2}</ProjectGuid>\r
- <RootNamespace>libbroadvoice</RootNamespace>\r
- <Keyword>Win32Proj</Keyword>\r
- </PropertyGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <WholeProgramOptimization>true</WholeProgramOptimization>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <WholeProgramOptimization>true</WholeProgramOptimization>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
- <ConfigurationType>DynamicLibrary</ConfigurationType>\r
- <CharacterSet>Unicode</CharacterSet>\r
- <PlatformToolset>v140</PlatformToolset>\r
- </PropertyGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
- <ImportGroup Label="ExtensionSettings">\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="..\..\..\w32\extdll.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="..\..\..\w32\extdll.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="..\..\..\w32\extdll.props" />\r
- </ImportGroup>\r
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
- <Import Project="..\..\..\w32\extdll.props" />\r
- </ImportGroup>\r
- <PropertyGroup Label="UserMacros" />\r
- <PropertyGroup>\r
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
- </PropertyGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <ClCompile>\r
- <Optimization>Disabled</Optimization>\r
- <AdditionalIncludeDirectories>.; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
- <WarningLevel>Level4</WarningLevel>\r
- <CompileAs>CompileAsC</CompileAs>\r
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- </Link>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
- <ClCompile>\r
- <AdditionalIncludeDirectories>.; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
- <WarningLevel>Level4</WarningLevel>\r
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <TargetMachine>MachineX86</TargetMachine>\r
- </Link>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
- <Midl>\r
- <TargetEnvironment>X64</TargetEnvironment>\r
- </Midl>\r
- <ClCompile>\r
- <Optimization>Disabled</Optimization>\r
- <AdditionalIncludeDirectories>.; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <MinimalRebuild>true</MinimalRebuild>\r
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
- <CompileAs>CompileAsC</CompileAs>\r
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- </Link>\r
- </ItemDefinitionGroup>\r
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
- <Midl>\r
- <TargetEnvironment>X64</TargetEnvironment>\r
- </Midl>\r
- <ClCompile>\r
- <AdditionalIncludeDirectories>.; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
- <WarningLevel>Level4</WarningLevel>\r
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
- </ClCompile>\r
- <Link>\r
- <GenerateDebugInformation>true</GenerateDebugInformation>\r
- <SubSystem>Windows</SubSystem>\r
- <OptimizeReferences>true</OptimizeReferences>\r
- <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
- <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
- <TargetMachine>MachineX64</TargetMachine>\r
- </Link>\r
- </ItemDefinitionGroup>\r
- <ItemGroup>\r
- <ClCompile Include="bitstream.c" />\r
- <ClCompile Include="floating\common\a2lsp.c" />\r
- <ClCompile Include="floating\common\allpole.c" />\r
- <ClCompile Include="floating\common\allzero.c" />\r
- <ClCompile Include="floating\common\autocor.c" />\r
- <ClCompile Include="floating\common\cmtables.c" />\r
- <ClCompile Include="floating\common\levdur.c" />\r
- <ClCompile Include="floating\common\lsp2a.c" />\r
- <ClCompile Include="floating\common\stblchck.c" />\r
- <ClCompile Include="floating\common\stblzlsp.c" />\r
- <ClCompile Include="floating\common\utility.c" />\r
- <ClCompile Include="bitpack16.c" />\r
- <ClCompile Include="floating\bv16\bv16decoder.c" />\r
- <ClCompile Include="floating\bv16\bv16encoder.c" />\r
- <ClCompile Include="floating\bv16\bv16coarse_pitch.c" />\r
- <ClCompile Include="floating\bv16\bv16excdec.c" />\r
- <ClCompile Include="floating\bv16\bv16excquan.c" />\r
- <ClCompile Include="floating\bv16\bv16fine_pitch.c" />\r
- <ClCompile Include="floating\bv16\bv16gaindec.c" />\r
- <ClCompile Include="floating\bv16\bv16gainquan.c" />\r
- <ClCompile Include="floating\bv16\bv16levelest.c" />\r
- <ClCompile Include="floating\bv16\bv16lspdec.c" />\r
- <ClCompile Include="floating\bv16\bv16lspquan.c" />\r
- <ClCompile Include="floating\bv16\bv16plc.c" />\r
- <ClCompile Include="floating\bv16\bv16ptdec.c" />\r
- <ClCompile Include="floating\bv16\bv16postfilter.c" />\r
- <ClCompile Include="floating\bv16\bv16ptquan.c" />\r
- <ClCompile Include="floating\bv16\bv16tables.c" />\r
- <ClCompile Include="bitpack32.c" />\r
- <ClCompile Include="floating\bv32\bv32decoder.c" />\r
- <ClCompile Include="floating\bv32\bv32encoder.c" />\r
- <ClCompile Include="floating\bv32\bv32coarse_pitch.c" />\r
- <ClCompile Include="floating\bv32\bv32excdec.c" />\r
- <ClCompile Include="floating\bv32\bv32excquan.c" />\r
- <ClCompile Include="floating\bv32\bv32fine_pitch.c" />\r
- <ClCompile Include="floating\bv32\bv32gaindec.c" />\r
- <ClCompile Include="floating\bv32\bv32gainquan.c" />\r
- <ClCompile Include="floating\bv32\bv32levelest.c" />\r
- <ClCompile Include="floating\bv32\bv32lspdec.c" />\r
- <ClCompile Include="floating\bv32\bv32lspquan.c" />\r
- <ClCompile Include="floating\bv32\bv32plc.c" />\r
- <ClCompile Include="floating\bv32\bv32ptdec.c" />\r
- <ClCompile Include="floating\bv32\bv32ptquan.c" />\r
- <ClCompile Include="floating\bv32\bv32tables.c" />\r
- <ClCompile Include="msvc\gettimeofday.c" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <ClInclude Include="broadvoice\broadvoice.h" />\r
- <ClInclude Include="broadvoice\version.h" />\r
- <ClInclude Include="broadvoice\private\broadvoice.h" />\r
- </ItemGroup>\r
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
- <ImportGroup Label="ExtensionTargets">\r
- </ImportGroup>\r
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>libbroadvoice</ProjectName>
+ <ProjectGuid>{CF70F278-3364-4395-A2E1-23501C9B8AD2}</ProjectGuid>
+ <RootNamespace>libbroadvoice</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(SolutionDir)w32\broadvoice.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\..\w32\extdll.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\..\w32\extdll.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\..\w32\extdll.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\..\w32\extdll.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level4</WarningLevel>
+ <CompileAs>CompileAsC</CompileAs>
+ <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level4</WarningLevel>
+ <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <CompileAs>CompileAsC</CompileAs>
+ <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level4</WarningLevel>
+ <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="$(broadvoiceLibDir)\bitstream.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\a2lsp.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\allpole.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\allzero.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\autocor.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\cmtables.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\levdur.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\lsp2a.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\stblchck.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\stblzlsp.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\common\utility.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\bitpack16.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16decoder.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16encoder.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16coarse_pitch.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16excdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16excquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16fine_pitch.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16gaindec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16gainquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16levelest.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16lspdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16lspquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16plc.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16ptdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16postfilter.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16ptquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv16\bv16tables.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\bitpack32.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32decoder.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32encoder.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32coarse_pitch.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32excdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32excquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32fine_pitch.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32gaindec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32gainquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32levelest.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32lspdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32lspquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32plc.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32ptdec.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32ptquan.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\floating\bv32\bv32tables.c" />
+ <ClCompile Include="$(broadvoiceLibDir)\msvc\gettimeofday.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(broadvoiceLibDir)\broadvoice\broadvoice.h" />
+ <ClInclude Include="$(broadvoiceLibDir)\broadvoice\version.h" />
+ <ClInclude Include="$(broadvoiceLibDir)\broadvoice\private\broadvoice.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Download broadvoice.2015.vcxproj">
+ <Project>{46502007-0d94-47ac-a640-c2b5eea98333}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
</Project>
\ No newline at end of file
<PlatformToolset>v140</PlatformToolset>\r
</PropertyGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+ <Import Project="$(SolutionDir)w32\broadvoice.props" />\r
<ImportGroup Label="ExtensionSettings">\r
</ImportGroup>\r
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
</PropertyGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
<ClCompile>\r
- <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
</ClCompile>\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
</ClCompile>\r
</ItemDefinitionGroup>\r
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<ClCompile>\r
- <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
</ClCompile>\r
<TargetEnvironment>X64</TargetEnvironment>\r
</Midl>\r
<ClCompile>\r
- <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
<PrecompiledHeader>\r
</PrecompiledHeader>\r
</ClCompile>\r
<ClCompile Include="mod_bv.c" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="..\..\..\..\libs\broadvoice\src\libbroadvoice.2015.vcxproj">\r
+ <ProjectReference Include="$(SolutionDir)\libs\win32\broadvoice\libbroadvoice.2015.vcxproj">\r
<Project>{cf70f278-3364-4395-a2e1-23501c9b8ad2}</Project>\r
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
</ProjectReference>\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ImportGroup Label="PropertySheets" />
+ <PropertyGroup Label="UserMacros">
+ <broadvoice_Version>0.1.0</broadvoice_Version>
+ </PropertyGroup>
+ <PropertyGroup>
+ <broadvoice_VersionImported>true</broadvoice_VersionImported>
+ </PropertyGroup>
+ <PropertyGroup />
+ <ItemDefinitionGroup />
+ <ItemGroup>
+ <BuildMacro Include="broadvoice_Version">
+ <Value>$(broadvoice_Version)</Value>
+ </BuildMacro>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ImportGroup Label="PropertySheets">
+ <Import Project="broadvoice-version.props" Condition=" '$(broadvoice_VersionImported)' == '' "/>
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros">
+ <broadvoiceLibDir>$(SolutionDir)libs\broadvoice-$(broadvoice_Version)\src</broadvoiceLibDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(broadvoiceLibDir);$(broadvoiceLibDir)\floating\common;$(broadvoiceLibDir)\floating\bv16;$(broadvoiceLibDir)\floating\bv32;$(broadvoiceLibDir)\broadvoice;$(broadvoiceLibDir)\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ </ItemDefinitionGroup>
+</Project>
\ No newline at end of file