C4146: unary minus operator applied to unsigned type, result still unsigned
Fixed in a previous commit.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
This warning complains of files that don't define any new symbols
not being included in linking.
GCC doesn't seem to complain about those, so neither should VS.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Closes https://github.com/xiph/opus/pull/34
opus_compare.c defines the bitstream so we avoid changing it by
ignoring the non-breaking warning instead of changing the file.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Resolves https://github.com/xiph/opus/issues/21
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to
'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align]
- 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized]
- Unused variable/parameter
- Value stored is never read
- MSVC warnings about "possible loss of data" due to type conversions
- MSVC warning C4146: unary minus operator applied to unsigned type
- silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above
array bounds [-Warray-bounds] (gcc -O3 false positive)
- src/mlp_train.h:39:20: warning: function declaration isn't a prototype
[-Wstrict-prototypes]
- Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching
the C implementation.
The clang -Wcast-align warnings with SSE intrinsics are a known
clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
Should make the projects a bit easier to digest and the differences
between the different configurations and platforms be more obvious.
A (happy?) side effect of this is the static libraries are now about
the same size as the ones produced by GCC and seem to build fine with
opus-tools.
Needs testing with other third party applications to make sure nothing
is missing that shouldn't.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Cannot prove it's the correct value, but it's better than the previous
values, which sometimes segfaults. The increase was made necessary due
to 120 ms frame size support.
libopus only uses the DSP module of Ne10, and never uses the init functions.
Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
The optimization is bit exact with C function.
Change-Id: Ib3bdc26a5a4ebe02e7f24be85104e8e9a2a9a738
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
It checks that no clearly unstable filter passes the LPC_inv_pred_gain()
test. Also, this will make it possible to check assembly for correctness.
Modified from an original patch from Linfeng Zhang <linfengz@google.com>.
Broken by 76e831d. Without the .type directive, SIGILL may be produced
if the C code is compiled in Thumb mode, because the compiler may assume
that the asm symbol is also Thumb and call it using a BL instruction.
The optimization is bit exact with C function.
This optimization speeds up SILK encoder on NEON as following.
Fixed-point:
Complexity 0-5: 0%
Complexity 6-7: 6%
Complexity 8-9: 10%
Complexity 10: 8%
Got similar results on floating-point.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
The "mem" in celt_fir_c() either is contained in the head of input "x"
in reverse order already, or can be easily attached to the head of "x"
before calling the function. Removing argument "mem" can eliminate the
redundant buffer copies inside.
Update celt_fir_sse4_1() accordingly.
This could happen when we had more than 32 bits on the first hybrid band with
a transient just in the middle of the frame. The band would be split and the
first half of the frame could end up with non-zero energy, but not enough
bits for a pulse. Because it's the first band, no folding would be possible.
This would cause noise to be injected for the entire duration of the first
half and that noise should then get folded to higher bands.
The change also makes the analysis run for sampling rates of 16 kHz and 24 kHz
since the features are only computed on the 0-8 kHz band. The longer time
window (20 ms instead of 10 ms) makes the tonality estimator more reliable
for low-pitch harmonics.
Remove version.mk and references to it in the repo.
genversion.bat will now generate the same version strings as
update_version script, i.e. without 'v' prefix and without a
fallback if git archive is used.
If run from a release tarball it'll use package_version,
like configure. If run from a git repo, it will use the same
'git describe' with '-dirty' as update_version.
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ensure that the SILK encoder's log gain is 63, not 64, when encoding
a maximum-value delta gain index of 40. This matches the decoder
and RFC 6716 4.2.7.4, and prevents an assertion failure in the rare
case that the gain is later independently coded.
Also remove the SILK_DEBUG_STORE_CLOSE_FILES flush call from
opus_demo.
This is debugging code which is no longer used, but defining
the symbols for SILK_DEBUG_STORE_CLOSE_FILES and calling it
from opus_demo causes linking problems on Microsoft Visual Studio
where we have strict controls on public symbols and want to
test the compiled DLL.
Since the code isn't in active use, it's better to remove it
to avoid clutter and address the linking issue.
frame_size_select() ensures that frame_size is a valid size or -1,
!st->variable_duration is always false, and delay_compensation is
no longer needed to choose the frame size.