Commit graph

69 commits

Author SHA1 Message Date
Jean-Marc Valin
1975eeadd2 Big squashed commit of Garf's MSVC reorg:
commit 77880655f652c54415e4b5f03b5984b951f5267b
Author: Timothy B. Terriberry <tterribe@xiph.org>
Date:   Wed Jun 26 12:23:53 2013 +0200

    Fix version.mk parsing in genversion.bat.

    This was broken by the changes in 0482c82f to make it work with spaces.

    CMD interprets the quotes to mean the argument to FOR is a string,
    not a file name. Instead, we expand the path to a short file name.

    Signed-off-by: Gian-Carlo Pascutto <gcp@sjeng.org>

commit 8e97847ecac3a04956747b117fefef14939cbcbe
Merge: 0482c82 3c0aa8f
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Wed Jun 26 12:19:41 2013 +0200

    Merge branch 'master' into msvc_reorg

commit 0482c82fea6dd397a7d2ab50dc6cda4965278fc2
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Tue May 21 17:59:30 2013 +0200

    Make genversion.bat work in paths with spaces.

commit 3648ec55b7511119735280fc49bc57c7a3b55d6a
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Tue May 21 17:42:14 2013 +0200

    Rework output & intermediate dirs for parallel build support.

commit c367a0fcfcbf5551fb65d61365d9b832d7af2b38
Merge: bafb1dd b518b56
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Tue May 21 14:17:11 2013 +0200

    Merge branch 'master' into msvc_reorg

    Conflicts:
    	win32/VS2010/celt.vcxproj
    	win32/VS2010/opus.vcxproj
    	win32/VS2010/silk_common.vcxproj
    	win32/VS2010/silk_float.vcxproj

commit bafb1dda3fcf6785decdfb42a1f934c7fab0c567
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Mon Mar 11 21:25:28 2013 +0100

    Fix two more files to not have the Platform Toolset explicitly set.

commit c69c870201fec7461862fe79731a37866a1810f1
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Mon Mar 11 21:08:00 2013 +0100

    Add missing SILK MSVC project files.

commit a0d41fb7f97558c8f812d500b9027c77907c37c0
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Fri Mar 8 15:00:51 2013 +0100

    Use the default toolset in the MSVC project files.

commit 34aac5b2637ed38c5620f0d876e08db232849933
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date:   Fri Mar 8 14:54:41 2013 +0100

    Move the MSVC project files outside the source tree.

    Bring the project structure more in line with the one in libogg.
2013-06-27 03:12:38 -04:00
Timothy B. Terriberry
80ad38370c Convert quotes in license headers to ASCII.
Since the last patch originally had them mangled (presumably by
 mailer, http server, or something else), let's just get rid of
 them.
2013-05-19 19:16:11 -07:00
Ralph Giles
b7d5531ffe Change Visual Studio files to use PACKAGE_VERSION.
This replaces the OPUS_VERSION removed by ron's auto-updater.
2013-05-10 11:27:13 -07:00
Jean-Marc Valin
e9b36c1e38 Fixes comment-in-comment warning 2012-10-10 13:53:59 -04:00
Koen Vos
9cbbcb53ae Improvements to the pitch search
Normalizes the cost function by (x+y) instead of sqrt(x*y)
2012-10-10 09:37:10 -04:00
Philip Jägenstedt
ba28403a04 Typo: FIND_PITCH_BANDWI(D)TH_EXPANSION 2012-09-27 09:16:31 -04:00
Philip Jägenstedt
6d9c16d142 Fix common misspellings
I stumbled upon the typo in README.draft, so took the opportunity to
grep for common misspellings using List_of_common_misspellings.txt for
hunspell.
2012-09-27 09:16:30 -04:00
Diego Elio Pettenò
d006b781ca Mark functions static if they are only used in their own translation unit.
This allows the compiler to perform more optimization on them as it
knows how the functions are being called.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
2012-09-12 15:54:17 -04:00
Gian-Carlo Pascutto
0ec93137dc Small cleanups to MSVC build setup.
Add more MSVC files to .gitignore.
Make all configurations use default floating point model.
2012-07-20 08:49:01 -04:00
Chris Moeller
b768c9b0fd Fixes MSVC projects and adds git version generator tool 2012-07-20 08:48:50 -04:00
Gian-Carlo Pascutto
642084c47c Output/intermediate dir cleanup and fixes in 64-bit mode.
Also make the 64-bit builds use the default output directories.
Fix the type of the default Opus output to be a library.
2012-07-16 16:45:04 -04:00
Gian-Carlo Pascutto
eeb7bd3d9d Make MSVC build work in parallel.
The (non-default) temporary & output dirs configured in the projects could
cause issues when doing compilation on a multiprocessor machine. Cleaned
this up a little to use the defaults, which makes that work again and
doesn't make the output structure any worse. Also removed debug output for
release binaries & a tiny whitespace fix.
2012-07-16 16:45:04 -04:00
Gian-Carlo Pascutto
f57be69f07 Remove non-existent ReadMe.txt references. 2012-07-12 18:00:29 -04:00
Gian-Carlo Pascutto
d2fa2edfd8 Make compiler settings consistent. Actually produce the libary, remove the opus_demo for now. 2012-07-12 17:59:26 -04:00
root
bcbf40b601 modified the Visual Studio 2010 projects and solution file to include a x64 configuration. modified the output folders such that the architecture is included in the path (so you get Release64, Debug32, etc.) so you can have all build types in one tree. 2012-06-01 14:26:01 -04:00
Gregory Maxwell
f7ceaa609a Minor comment formatting change 2012-04-24 13:39:46 -04:00
Jean-Marc Valin
ab5a049705 Merge commit '390c89225d' 2012-04-24 13:39:22 -04:00
Jean-Marc Valin
eb8b3c2b07 Adds note on monic filter 2012-04-23 16:24:45 -04:00
Jean-Marc Valin
ae00e60d35 License update using the IETF Trust flavour of the BSD on the Silk code 2012-04-20 16:31:04 -04:00
Ralph Giles
5f6e472c91 Remove trailing whitespace.
Also fixes a minor typo.
2012-04-02 11:21:36 -04:00
Gregory Maxwell
3e4afc6fd2 Removes a number of macro definitions which are used nowhere in the codebase. 2012-03-05 18:00:01 -05:00
Koen Vos
75f04e5eb1 Fixes MSVC warnings 2012-01-31 14:49:40 -05:00
Jean-Marc Valin
66820f350d Tweaks the CELT fractional resampling delay to get perfect alignment
Also using the same int->float conversion functions for SILK as for CELT
and changed encoder implementation default to constrained VBR just to
be safe when VBR gets more aggressive.
2012-01-31 02:18:05 -05:00
Koen Vos
a51ebd6831 Accuracy improvements to help float implementations
Also clamps the gain to avoid forcing a float decoder to emulate the
state rescaling.
2011-12-14 11:41:18 -05:00
Koen Vos
bbfc9c9ee5 Improves the accuracy such that it matches a float decoder much better 2011-12-13 14:50:12 -05:00
Koen Vos
bf75c8ec4d SILK fixes following last codec WG meeting
decoder:
- fixed incorrect scaling of filter states for the smallest quantization
  step sizes
- NLSF2A now limits the prediction gain of LPC filters

encoder:
- increased damping of LTP coefficients in LTP analysis
- increased white noise fraction in noise shaping LPC analysis
- introduced maximum total prediction gain.  Used by Burg's method to
  exit early if prediction gain is exceeded.  This improves packet
  loss robustness and numerical robustness in Burg's method
- Prefiltered signal is now in int32 Q10 domain, from int16 Q0
- Increased max number of iterations in CBR gain control loop from 5 to 6
- Removed useless code from LTP scaling control
- Optimization: smarter LPC loop unrolling
- Switched default win32 compile mode to be floating-point

resampler:
- made resampler have constant delay of 0.75 ms; removed delay
  compensation from silk code.
- removed obsolete table entries (~850 Bytes)
- increased downsampling filter order from 16 to 18/24/36 (depending on
  frequency ratio)
- reoptimized filter coefficients
2011-12-13 14:47:31 -05:00
Ralph Giles
120800f8fa Rename '_FOO' to avoid potentional collisions with reserved identifiers.
C reserves identifiers of the from _[A-Z]+ and we have a number of
those in the code. This patch renames the various function arguments,
MACROS and preprocessor symbols to avoid the reserved form.

It also removes the CHANNELS() macro altogether. This was a
minor optimization for TI DSP to force a mono-only build,
as were the associated local 'const' versions. Since stereo
support is manditory, it wasn't worth keeping.

Thanks to John Ridges for raising the issue, and Jean-Marc Valin
and Greg Maxwell for reviewing the changes.
2011-12-02 12:31:36 -05:00
Jean-Marc Valin
e1be1920ba Some minor (non-bitstream-affecting) changes to help us have better test vectors
These fix corner cases discovered during the latest fuzzing tests.
2011-11-28 22:48:01 -05:00
Jean-Marc Valin
09a84c8e4b Fixes a minor issue on CELT->SILK switching 2011-10-31 19:51:47 -04:00
Jean-Marc Valin
7664d811a8 Removes unused order 14 in silk_LPC_analysis_filter_FLP() 2011-10-29 02:15:38 -04:00
Koen Vos
a3798d9b13 comment 2011-10-28 21:07:17 -04:00
Koen Vos
acc7a6c78b Reformatting changes with an update to the MSVC project files 2011-10-28 19:44:26 -04:00
Koen Vos
7f3caf941e Fixes another minor bug introduced in 43a0de4af1 2011-10-26 08:03:31 -04:00
Koen Vos
d39bccb0e1 Fixes a minor bug introduced in 43a0de4af1 2011-10-25 01:19:29 -04:00
Koen Vos
43a0de4af1 Optimization of the CBR loop
Also some comment/warning fixes
2011-10-24 09:10:58 -04:00
Gregory Maxwell
3d28ee8020 Fix stack corruption with high rate SILK encoding added by the recent CBR changes and enable -fstack-protector-all on gcc autotools builds. 2011-10-21 13:00:21 -04:00
Jean-Marc Valin
44a030deed Limits how fast the CBR gain multiplier can increase
This fixes an overflow that was caused by having a huge gain
2011-10-21 11:05:50 -04:00
Jean-Marc Valin
294bfec27b Implements hard CBR for SILK
This is achieved by running the encoding process in a loop and
padding when we don't reach the exact rate. It also implements
VBR-with-cap, which means we no longer need to artificially decrease
the SILK bandwidth when it's close to the cap.
2011-10-20 00:39:41 -04:00
Timothy B. Terriberry
6559d36a46 Remove redundant mid-only flag when side VAD flag is set.
If there is activity in a regular, side SILK frame, then it must
 be coded, so we don't need to send a mid-only flag.
2011-10-17 23:31:20 -04:00
Timothy B. Terriberry
53cc1a033a Fix the side frame conditional coding rules.
b24e5746 introduced changes to LastGainIndex which broke
 conditional coding for side frames after a mid-only frame (i.e.,
 in a 60 ms frame where the side is coded, not coded, then coded
 again).
These rules were a mess in general, however, because the side
 channel state kept a different nFramesDecoded count from the mid
 channel state, and had no way to tell if the prior side frame was
 coded.

This patch attempts to rationalize them by moving the conditional
 coding decision up to the top level, where all this information is
 available.
The first coded side frame after an uncoded side frame now always
 uses independent coding.
If such a frame is also not the first side frame in an Opus frame,
 then it doesn't include an LTP scaling parameter (because the LTP
 state is well-defined).
2011-10-17 16:03:41 -04:00
Jean-Marc Valin
d5158a42d1 Fixes a numerical accuracy issue in the pitch search
The energy "sliding window" was using double accumulation with
float multiplications. This forces the multiplications to be
double as well.
2011-10-12 12:58:52 -04:00
Jean-Marc Valin
b24e574627 Misc bug fixes
- There was a bug where the decoder resampler was not properly initialized
when fs_kHz == API_fs_kHz. In that case the resampler would continue to
upsample, and the output was corrupt.

- The delay value in the decoder was taken from the state before it was
potentially updated. This caused the decoder to apply the new dalay value one
frame late

- The encoder and decoder states are now updated more consistently, when
the sampling rate changes (pesq liked these changes)

- Properly resetting the side channel encoder and decoder for the first
frame with side coding active again

- Faster updating the "ratio" value in the LR_to_MS() code for large
prediction values means that for certain extreme/artificial input
signals the output looks better
2011-10-11 21:09:14 -04:00
Koen Vos
42f1e3d6a7 Two minor SILK fixes
- increases the max pitch lag by 1 (the thing Tim pointed out).  this brings the decoder in sync with the old one
- avoids that the first stereo frame is collapsed to mono
2011-10-09 12:53:59 -04:00
Koen Vos
8887566918 SILK update
Simplifies mono/stereo switching in SILK
Fixes a quantization mismatch between encoder and decoder
Constrains the pitch lags in the same way in the encoder and decoder
2011-10-06 13:38:26 -04:00
Gregory Maxwell
b9f443d521 More assert updates, make the initialization in silk_warped_autocorrelation_FLP more explicit to make tools happy, and allow resetting to auto with OPUS_SET_FORCE_CHANNELS. 2011-10-04 13:33:53 -04:00
Gregory Maxwell
5d5875a93a Add the noreturn attribute on the assert functions to aid static analysis, improve test_repacketizer error handling, and silence 19 clang static analysis errors with additional assertions. 2011-10-03 21:38:21 -04:00
Gregory Maxwell
e3f6ad0b0c Remove an unreachable block in silk/float/pitch_analysis_core_FLP.c
(Fs_kHz is always 8/12/16 in Opus and also enforced by the assert on line 112)
2011-09-29 16:57:56 -04:00
Gregory Maxwell
59647fdb65 Misc. silk/ cleanups: static inline things which are only used in one file. 2011-09-28 16:28:18 -04:00
Jean-Marc Valin
e4de8a9c76 Fixes a bug that was falsely triggering DTX for 60 ms stereo
There's still a range coder mismatch on the first frame when using FEC.
2011-09-28 14:23:01 -04:00
Gregory Maxwell
7152a9aa9a Fix some GCC warings in the silk/ directory. 2011-09-27 21:33:14 -04:00