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.
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>
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.
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.
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
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.
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.
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).
- 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
- 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
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