opus.git
3 days agoDecouple OpusProjection* API from static matrices. master
Andrew Allen [Tue, 5 Dec 2017 23:34:43 +0000 (15:34 -0800)]
Decouple OpusProjection* API from static matrices.

Change-Id: I3db285875b6b5548decc436be00096b97be1be3c
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 days agoEnsure mapping matrix size is always valid.
Andrew Allen [Tue, 5 Dec 2017 00:05:57 +0000 (16:05 -0800)]
Ensure mapping matrix size is always valid.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 days agoFix memory issues in Projection API.
Andrew Allen [Mon, 4 Dec 2017 23:32:18 +0000 (15:32 -0800)]
Fix memory issues in Projection API.

Modified by Jean-Marc Valin

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 weeks agofix float constants
Jean-Marc Valin [Thu, 16 Nov 2017 22:21:03 +0000 (17:21 -0500)]
fix float constants

3 weeks agoDefine integer types from stdint.h where it's available
Kári Tristan Helgason [Thu, 9 Nov 2017 12:34:55 +0000 (13:34 +0100)]
Define integer types from stdint.h where it's available

This fixes issues when using neon intrinsics on 64-bit
systems.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 weeks agoTuning decision thresholds for low-bitrate music
Jean-Marc Valin [Wed, 15 Nov 2017 17:46:55 +0000 (12:46 -0500)]
Tuning decision thresholds for low-bitrate music

4 weeks agoFix matrix export via CTL func.
Andrew Allen [Tue, 7 Nov 2017 21:26:23 +0000 (13:26 -0800)]
Fix matrix export via CTL func.

Ensure matrix is properly exported from
projection encoder.

Change-Id: I5ede77e4f4d0dc82074e2230780777af542a416e
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 weeks agoRetrained speech/music RNN
Jean-Marc Valin [Thu, 9 Nov 2017 01:35:30 +0000 (20:35 -0500)]
Retrained speech/music RNN

Larger network, using 8-bit weights

4 weeks agoAdd missing include to the list
Jean-Marc Valin [Wed, 8 Nov 2017 01:03:10 +0000 (20:03 -0500)]
Add missing include to the list

4 weeks agoSupport for Channel Mapping 253
Andrew Allen [Tue, 7 Nov 2017 21:26:23 +0000 (13:26 -0800)]
Support for Channel Mapping 253

OpusProjection* classes
MixingMatrix class
Projection tests

Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 weeks agoFix unnecessary assignment.
Roman Kalashnikov [Mon, 30 Oct 2017 15:23:38 +0000 (18:23 +0300)]
Fix unnecessary assignment.

Fixes a warning from PVS-Studio. This was a cut-and-paste error
from the stanza above and had no effect.

Signed-off-by: Ralph Giles <giles@thaumas.net>
6 weeks agoEnable RFC 8251 changes by default
Jean-Marc Valin [Sun, 29 Oct 2017 04:58:23 +0000 (00:58 -0400)]
Enable RFC 8251 changes by default

6 weeks agoFix configure output formatting.
Ralph Giles [Mon, 23 Oct 2017 19:50:14 +0000 (12:50 -0700)]
Fix configure output formatting.

Put the colon ':' before the continuation dots like all the
other entries.

2 months agoFix entropy coder doc
Jean-Marc Valin [Sun, 8 Oct 2017 07:26:30 +0000 (03:26 -0400)]
Fix entropy coder doc

Addresses issue https://github.com/xiph/opus/issues/54

2 months agoSimplifying celt_fir5() since x==y and mem[]={0}
Jean-Marc Valin [Sun, 8 Oct 2017 07:21:38 +0000 (03:21 -0400)]
Simplifying celt_fir5() since x==y and mem[]={0}

Addresses issue https://github.com/xiph/opus/issues/58

2 months agoFix #undef of constant
Jean-Marc Valin [Sun, 8 Oct 2017 07:09:58 +0000 (03:09 -0400)]
Fix #undef of constant

Reported in https://github.com/xiph/opus/issues/55

2 months agoFixes CELT PLC
Jean-Marc Valin [Fri, 6 Oct 2017 22:22:17 +0000 (18:22 -0400)]
Fixes CELT PLC

The regression was introduced in 783ad76766e1f6b6aaca5d6eb415ac8a8269e1f2
by changes to celt_fir() that make it no longer in-place.

2 months agoFixing (hopefully) bandwidth detection for 24 kHz analysis
Jean-Marc Valin [Fri, 6 Oct 2017 20:45:41 +0000 (16:45 -0400)]
Fixing (hopefully) bandwidth detection for 24 kHz analysis

The masking term was previously completely broken (even in 1.1). The
bandwidth detection relies mostly on the noise floor and can only use
masking to cut one extra band. The 12-24 kHz energy is now normalized properly
but uses a higher noise floor due to the leakage in the resampler. Bandwidth
detection is still mostly useless at identifying SWB speech (it usually says
FB).

2 months agofloat constants
Jean-Marc Valin [Fri, 6 Oct 2017 00:07:29 +0000 (20:07 -0400)]
float constants

2 months agoAdd RNN for VAD and speech/music classification
Jean-Marc Valin [Wed, 12 Jul 2017 20:55:28 +0000 (16:55 -0400)]
Add RNN for VAD and speech/music classification

Based on two dense layers with a GRU layer in the middle

2 months agoBetter rate allocation for stereo SILK in hybrid mode
Jean-Marc Valin [Sun, 16 Jul 2017 07:01:41 +0000 (03:01 -0400)]
Better rate allocation for stereo SILK in hybrid mode

SILK was being allocated too few bits for stereo hybrid, often resulting
in forced narrowing of the width. We now allocate more bits to SILK
and reduce the threshold for narrowing. This improves quality enough that
the bitrate threshold for switching to SILK can be increased to 44 kb/s.

2 months agoupdate draft version -10
Jean-Marc Valin [Fri, 1 Sep 2017 20:24:06 +0000 (16:24 -0400)]
update draft version -10

2 months agoFix typo with NE10 prefix
Alexander Kochetkov [Mon, 11 Sep 2017 10:45:01 +0000 (13:45 +0300)]
Fix typo with NE10 prefix

Prefix passed using '--with-NE10=PFX' not used as NE10 include path.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: Ralph Giles <giles@thaumas.net>
2 months agoRename arm ne10 assembly optimization files.
Ralph Giles [Wed, 14 Jun 2017 21:37:30 +0000 (14:37 -0700)]
Rename arm ne10 assembly optimization files.

Make these consistent with the other optimization file
sets which use a suffix to indicate the extension they
use.

Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
2 months agoRename SSE 4.1 files to match their targets.
Ralph Giles [Tue, 13 Jun 2017 22:50:07 +0000 (15:50 -0700)]
Rename SSE 4.1 files to match their targets.

Distinguish source files for the SSE 4.1 instruction
set extension consistently by their filename. This makes
it easier to check the correct flags are being set at
build time.

Signed-off-by: Jonathan Lennox <jonathan@vidyo.com>
3 months agoFix typo in a comment in opus_decoder.c
Matt Brubeck [Thu, 24 Aug 2017 19:03:11 +0000 (12:03 -0700)]
Fix typo in a comment in opus_decoder.c

Signed-off-by: Ralph Giles <giles@thaumas.net>
3 months agofix alignment exceptions
Ray Essick [Thu, 24 Aug 2017 12:32:42 +0000 (05:32 -0700)]
fix alignment exceptions

some SSE optimizations were using an instruction sequence that required
128-bit alignment, even though this is not always guaranteed. The error
was in handling a 64-bit entity; made the same macro changes that had
been done previously for 32-bit entities.

Signed-off-by: Felicia Lim <flim@google.com>
3 months agoMore fixes for IESG
Jean-Marc Valin [Thu, 17 Aug 2017 23:02:59 +0000 (19:02 -0400)]
More fixes for IESG

3 months agoupdate draft: addressing IETF LC comments
Jean-Marc Valin [Thu, 17 Aug 2017 18:23:51 +0000 (14:23 -0400)]
update draft: addressing IETF LC comments

3 months agoForce crlf line endings for VS2015 project files.
Pavel P [Thu, 10 Aug 2017 08:22:33 +0000 (01:22 -0700)]
Force crlf line endings for VS2015 project files.

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
4 months agoUpdate draft: addressing AD comments
Jean-Marc Valin [Wed, 26 Jul 2017 03:09:14 +0000 (23:09 -0400)]
Update draft: addressing AD comments

4 months agoFix celt_pitch_xcorr() ARM jump table compiling error
Linfeng Zhang [Thu, 20 Jul 2017 20:00:07 +0000 (13:00 -0700)]
Fix celt_pitch_xcorr() ARM jump table compiling error

This bug is introduced in commit 85fb8a1.

Change-Id: I3822cdfc1308ca62ce03da008260de8f4b04596c

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 months agoUpdate links, fix bits, add security considerations
Jean-Marc Valin [Wed, 12 Jul 2017 20:16:45 +0000 (16:16 -0400)]
Update links, fix bits, add security considerations

4 months agoAdd missing #include for gcc
Felicia Lim [Thu, 13 Jul 2017 17:33:57 +0000 (10:33 -0700)]
Add missing #include for gcc

4 months agoAvoid -Wsometimes-uninitialized error for valid test code
Felicia Lim [Wed, 12 Jul 2017 00:22:32 +0000 (17:22 -0700)]
Avoid -Wsometimes-uninitialized error for valid test code

|frame_size_enum| in tests/test_opus_encode.cl:117 is flagged as potentially
uninitialized but get_frame_size_enum() will fail anyway if a valid value is
not found.

4 months agoUpdate testvector download command.
Ralph Giles [Wed, 12 Jul 2017 15:45:33 +0000 (08:45 -0700)]
Update testvector download command.

Migrating opus-codec.org to a static site generator inserted
a redirect into the download path, which the actual testvectors
at https://opus-codec.org/static/testvectors/opus_testvectors.tar.gz.

Add the -L option to the suggested curl invocation so the redirect
is followed to download the actual resource. Without this one
gets the html redirection fallback page.

5 months agoFix uninitialized variables in decide_dtx_mode()
Andrew Larkin [Thu, 6 Jul 2017 18:00:36 +0000 (11:00 -0700)]
Fix uninitialized variables in decide_dtx_mode()

Signed-off-by: Felicia Lim <flim@google.com>
5 months agoAdd checksum for opus 1.2.1 release
Tristan Matthews [Wed, 28 Jun 2017 20:29:02 +0000 (16:29 -0400)]
Add checksum for opus 1.2.1 release

5 months agobump LT revision v1.2.1
Jean-Marc Valin [Mon, 26 Jun 2017 18:04:09 +0000 (14:04 -0400)]
bump LT revision

5 months agoWorking around misdetected audio bandwidth
Jean-Marc Valin [Mon, 26 Jun 2017 17:02:23 +0000 (13:02 -0400)]
Working around misdetected audio bandwidth

The new detector for SWB vs FB is unreliable due to the hack
that was required to get 24 kHz analysis working. We're now err
on the side of FB just to make sure.

5 months agoPrevent update draft from expiring
Jean-Marc Valin [Tue, 20 Jun 2017 17:07:43 +0000 (13:07 -0400)]
Prevent update draft from expiring

5 months agoAdd checksum for opus 1.2 release.
Ralph Giles [Tue, 20 Jun 2017 20:18:32 +0000 (13:18 -0700)]
Add checksum for opus 1.2 release.

5 months agoAdd "f" suffix to float constants v1.2
Jean-Marc Valin [Mon, 19 Jun 2017 21:55:56 +0000 (17:55 -0400)]
Add "f" suffix to float constants

5 months agobump LT version numbers
Jean-Marc Valin [Mon, 19 Jun 2017 20:30:38 +0000 (16:30 -0400)]
bump LT version numbers

5 months agoUpdate release checklist for website move to git.
Ralph Giles [Fri, 16 Jun 2017 16:17:15 +0000 (09:17 -0700)]
Update release checklist for website move to git.

5 months agoFix spacing in celt_sources.mk.
Ralph Giles [Tue, 13 Jun 2017 21:13:52 +0000 (14:13 -0700)]
Fix spacing in celt_sources.mk.

Uniform layout is easier for external tools to parse,
especially maintaining one source file per line.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 months agotests/run_vectors.sh: Fix argument quoting
Mark Harris [Wed, 14 Jun 2017 04:35:28 +0000 (21:35 -0700)]
tests/run_vectors.sh: Fix argument quoting

Allows spaces in path arguments

5 months agoFree all allocated memory in unit tests
Mark Harris [Wed, 14 Jun 2017 04:22:51 +0000 (21:22 -0700)]
Free all allocated memory in unit tests

5 months agoFix a duplicate symbol name.
Ralph Giles [Tue, 13 Jun 2017 17:23:06 +0000 (10:23 -0700)]
Fix a duplicate symbol name.

Both versions of silk/tables_NLSF_CB had symbols
named silk_NLSF_CB1_Wght_Q9 which causes problems
if both files are build as part of the same
compilation unit. Rename the wideband version
to include a 'WB' string to avoid the conflict.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoImproving tonality estimation with delayed decision
Jean-Marc Valin [Sat, 10 Jun 2017 02:16:53 +0000 (22:16 -0400)]
Improving tonality estimation with delayed decision

6 months agoUpdate releases.sha2
Jean-Marc Valin [Fri, 9 Jun 2017 17:42:55 +0000 (13:42 -0400)]
Update releases.sha2

6 months agoClean celt_pitch_xcorr_float_neon() v1.2-rc1
Linfeng Zhang [Thu, 8 Sep 2016 00:14:05 +0000 (17:14 -0700)]
Clean celt_pitch_xcorr_float_neon()

Call celt_inner_prod_neon() and remove redundant code.

Change-Id: I980e94330ae75c10297b9035fac221515aee144f

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoOptimize floating-point celt_inner_prod() and dual_inner_prod() for ARM NEON
Linfeng Zhang [Wed, 25 Jan 2017 17:45:48 +0000 (09:45 -0800)]
Optimize floating-point celt_inner_prod() and dual_inner_prod() for ARM NEON

The floating-point optimizations are not bit exact with C functions,
because of the different orders of floating-point operations.
But they are bit exact with the simulation C functions which simulate
the floating operations in the optimizations.

Change-Id: I149fda5b602fd5712b16fc8983df3c6c0c9e76ad

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoOptimize fixed-point celt_inner_prod() and dual_inner_prod() for ARM NEON
Linfeng Zhang [Wed, 7 Sep 2016 23:43:54 +0000 (16:43 -0700)]
Optimize fixed-point celt_inner_prod() and dual_inner_prod() for ARM NEON

This optimization is bit exact with C functions.

Change-Id: Ia9ce6dd3c20d2f56dbd43ddc02d1a6fd6554608d

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoReplace call of celt_inner_prod_c() (step 2)
Linfeng Zhang [Wed, 7 Sep 2016 22:44:23 +0000 (15:44 -0700)]
Replace call of celt_inner_prod_c() (step 2)

Should call celt_inner_prod().
This requires the API change of celt_pitch_xcorr() by passing in
"arch".

We tested on x86 and arm, and got bit exact results as original.

Change-Id: I606915da6a196f327ce81f4a5ae32811f4c1fabb

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoReplace call of celt_inner_prod_c() (step 1)
Linfeng Zhang [Wed, 7 Sep 2016 22:29:03 +0000 (15:29 -0700)]
Replace call of celt_inner_prod_c() (step 1)

Should call celt_inner_prod().

This change is bit exact as original, except for x86 floating-point.
In x86 floating-point, it calls celt_inner_prod_sse() which may have
different output with the change of floating-point operations' orders.

Change-Id: Ia2381e2e198a84296ac28305183f15be842b3454

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoInitialize speech/music prob based on application
Jean-Marc Valin [Sun, 4 Jun 2017 21:45:06 +0000 (17:45 -0400)]
Initialize speech/music prob based on application

6 months agoProperly compute redundancy_bytes
Jean-Marc Valin [Sat, 3 Jun 2017 03:01:20 +0000 (23:01 -0400)]
Properly compute redundancy_bytes

6 months agoProperly init speech/music confidence values
Jean-Marc Valin [Sun, 4 Jun 2017 06:59:33 +0000 (02:59 -0400)]
Properly init speech/music confidence values

This was sometimes causing the music probability to be stuck at
zero at the beginning of files

6 months agoDon't use MAY_HAVE_NEON in arm_silk_map.c.
Jonathan Lennox [Fri, 2 Jun 2017 19:53:11 +0000 (15:53 -0400)]
Don't use MAY_HAVE_NEON in arm_silk_map.c.

It's unnecessary, and isn't defined correctly on floating-point.

This makes us correctly use Neon functions (in floating-point mode) on
platforms where Neon is detected by RTCD.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
6 months agoRecalibrate VBR to hit target bitrate on average
Jean-Marc Valin [Fri, 2 Jun 2017 19:16:24 +0000 (15:16 -0400)]
Recalibrate VBR to hit target bitrate on average

6 months agoUpdate dynalloc VBR calibration
Jean-Marc Valin [Fri, 2 Jun 2017 18:01:36 +0000 (14:01 -0400)]
Update dynalloc VBR calibration

6 months agofix comments
Jean-Marc Valin [Thu, 1 Jun 2017 21:56:31 +0000 (17:56 -0400)]
fix comments

6 months agoAvoid using log2() since it's not in C90
Jean-Marc Valin [Thu, 1 Jun 2017 17:21:59 +0000 (13:21 -0400)]
Avoid using log2() since it's not in C90

6 months agoAdding leakage modelling to boost bands exp_leakage7
Jean-Marc Valin [Thu, 1 Jun 2017 07:14:13 +0000 (03:14 -0400)]
Adding leakage modelling to boost bands

We boost bands that either cause leakage or are filled with leakage

6 months agoAnalysis refactoring for fixed-point scaling
Jean-Marc Valin [Thu, 1 Jun 2017 07:13:01 +0000 (03:13 -0400)]
Analysis refactoring for fixed-point scaling

Now scaling the energy to the same value is would be in floating-point

6 months agoLet CBR use more bits for dynalloc
Jean-Marc Valin [Thu, 1 Jun 2017 07:08:58 +0000 (03:08 -0400)]
Let CBR use more bits for dynalloc

It seems like letting CBR use up to 2/3 of the bit is still a win

6 months agosilk_LIMIT_32() should return an opus_int32 (not opus_int)
Jean-Marc Valin [Tue, 30 May 2017 18:26:38 +0000 (14:26 -0400)]
silk_LIMIT_32() should return an opus_int32 (not opus_int)

Thanks to petrufm for pointing that out:
https://github.com/xiph/opus/issues/35

6 months agoFix memory leaks in opus_compare.c
Jean-Marc Valin [Fri, 26 May 2017 20:51:48 +0000 (16:51 -0400)]
Fix memory leaks in opus_compare.c

This makes it possible to run the testvectors with asan enabled.

6 months agoFixes unit tests that need arch-specific code
Jean-Marc Valin [Thu, 25 May 2017 20:28:53 +0000 (16:28 -0400)]
Fixes unit tests that need arch-specific code

We now include the object files for those rather than attempt to
problems.

6 months agoappveyor: fix typoed appveyor command
Ricardo Constantino [Thu, 25 May 2017 13:09:30 +0000 (14:09 +0100)]
appveyor: fix typoed appveyor command

And run the build request only at the last configuration.
Also add a check if api_key is unset to not try to request a new build.

Signed-off-by: Ralph Giles <giles@thaumas.net>
6 months agoappveyor: Add the api key for the linked ci builds.
Ralph Giles [Wed, 24 May 2017 21:15:42 +0000 (14:15 -0700)]
appveyor:  Add the api key for the linked ci builds.

The appveyor script needs an encrypted api key to trigger
downstream builds, and there doesn't seem to be an easy
way to make the builds we run for the main repo something
other contributors can control.

Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
6 months agoappveyor: request rebuild of opus-tools on successful build
Ricardo Constantino [Wed, 22 Feb 2017 23:39:48 +0000 (23:39 +0000)]
appveyor: request rebuild of opus-tools on successful build

Using my API key for now, but needs rillian's to work.

Signed-off-by: Ralph Giles <giles@thaumas.net>
6 months agoappveyor: simplify and preserve paths
Ricardo Constantino [Fri, 10 Feb 2017 00:58:55 +0000 (00:58 +0000)]
appveyor: simplify and preserve paths

Artifact with preserved paths is more useful for CI.

Signed-off-by: Ralph Giles <giles@thaumas.net>
6 months agoappveyor: move to dotfile like travis
Ricardo Constantino [Fri, 10 Feb 2017 00:53:03 +0000 (00:53 +0000)]
appveyor: move to dotfile like travis

Less clutter on systems that hide dotfiles.

Signed-off-by: Ralph Giles <giles@thaumas.net>
6 months agoUpdated SHA256 of releases
Jean-Marc Valin [Wed, 24 May 2017 19:28:50 +0000 (15:28 -0400)]
Updated SHA256 of releases

6 months agoFixes a double->float conversion warning
Jean-Marc Valin [Wed, 24 May 2017 18:21:08 +0000 (14:21 -0400)]
Fixes a double->float conversion warning

6 months agoFixes some fixed-point 16-bit int overflows v1.2-beta
Jean-Marc Valin [Wed, 24 May 2017 05:21:51 +0000 (01:21 -0400)]
Fixes some fixed-point 16-bit int overflows

The code would have run fine on 32-bit archs, but would have overflowed
on a 16-bit arch

6 months agoReducing trim at low bitrate
Jean-Marc Valin [Wed, 24 May 2017 05:07:20 +0000 (01:07 -0400)]
Reducing trim at low bitrate

Some informal tests seem to confirm that reducing the trim at 32-64 kbps
improves quality (better HF). It's not clear whether it's also the case
at 96 kb/s and above, so we're leaving it as is for those rates.

This corresponds to buildC in this thread:
https://hydrogenaud.io/index.php/topic,113985.0.html

Also see:
https://hydrogenaud.io/index.php/topic,111798.0.html

6 months agocosmetics,silk: correct input/output arg comments
Linfeng Zhang [Sat, 21 Jan 2017 21:35:03 +0000 (13:35 -0800)]
cosmetics,silk: correct input/output arg comments

Change-Id: I607a8b75b0711a485384d6f854cf6e2ec18b38b7

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoFixes a surround bug on loud signal
Jean-Marc Valin [Tue, 23 May 2017 07:32:18 +0000 (03:32 -0400)]
Fixes a surround bug on loud signal

The constant was copied from the analysis code which uses +/-1 as float
scaling, but surround_analysis() uses +/-32767.

6 months agoOptimize silk_biquad_alt_stride2() for ARM NEON
Linfeng Zhang [Thu, 1 Sep 2016 21:20:57 +0000 (14:20 -0700)]
Optimize silk_biquad_alt_stride2() for ARM NEON

The optimization is bit exact with C function.

Change-Id: Ifb8f04b19f2d576e79ce5dcfa7e0fc374d71d6c8

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 months agoUpdate silk_biquad_alt()
Linfeng Zhang [Thu, 1 Sep 2016 20:44:11 +0000 (13:44 -0700)]
Update silk_biquad_alt()

Split to silk_biquad_alt_stride1() and silk_biquad_alt_stride2(),
so that it can be optimized more efficiently when stride is 2.

This change in C code is bit exact with the origin.

Change-Id: Idaefe670397016ace2a489e3435ac61b7dbe79d5

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
7 months agoIndent commands in the README.
Ralph Giles [Wed, 10 May 2017 17:46:22 +0000 (10:46 -0700)]
Indent commands in the README.

Makes things a little easier to read.

Signed-off-by: Gian-Carlo Pascutto <gcp@sjeng.org>
7 months agoSuggest basic build dependencies in the README.
Ralph Giles [Wed, 10 May 2017 17:37:46 +0000 (10:37 -0700)]
Suggest basic build dependencies in the README.

Make it easier for users unfamiliar with C applications
to installed the necessary build dependencies.

Signed-off-by: Gian-Carlo Pascutto <gcp@sjeng.org>
7 months agoAvoid warning when __STDC_VERSION__ is not defined
Carlos Alberto Lopez Perez [Mon, 10 Apr 2017 23:07:35 +0000 (01:07 +0200)]
Avoid warning when __STDC_VERSION__ is not defined

This fixes an issue with gcc 4.9 on Debian 8, at least,
which defines __STDC__ but not __STDC_VERSION__, unlike
more recent gcc.

Signed-off-by: Ralph Giles <giles@thaumas.net>
7 months agooops, fix build broken by previous patch
Jean-Marc Valin [Fri, 28 Apr 2017 21:41:54 +0000 (17:41 -0400)]
oops, fix build broken by previous patch

7 months agoNon-diegetic support for Ambisonics Mapping 254.
Drew Allen [Fri, 28 Apr 2017 16:58:04 +0000 (09:58 -0700)]
Non-diegetic support for Ambisonics Mapping 254.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
7 months agoOptimize silk_warped_autocorrelation_FIX() for ARM NEON
Linfeng Zhang [Wed, 13 Jul 2016 23:40:48 +0000 (16:40 -0700)]
Optimize silk_warped_autocorrelation_FIX() for ARM NEON

The optimization is bit exact with C function.

This optimization speeds up fixed-point SILK encoder on NEON about
5% to 8%. (Tested on Acer Chromebook, ARMv7 Processor rev 3 (v7l).)

Change-Id: I582f6f3585b7946149e16a2ad3084ebc0ae79a4f

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
8 months agoFix OPUS_ARG_NONNULL indices in opus_multistream.h
Felicia Lim [Mon, 27 Mar 2017 17:36:46 +0000 (10:36 -0700)]
Fix OPUS_ARG_NONNULL indices in opus_multistream.h

9 months agoVS2015: remove previously ignored C4146 in kiss_fft.c
Ricardo Constantino [Thu, 2 Mar 2017 14:48:11 +0000 (14:48 +0000)]
VS2015: remove previously ignored C4146 in kiss_fft.c

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>
9 months agoVS2015: Ignore LNK4221 and properly force SSE off for Win32
Ricardo Constantino [Mon, 27 Feb 2017 19:04:06 +0000 (19:04 +0000)]
VS2015: Ignore LNK4221 and properly force SSE off for Win32

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

9 months agoVS2015: ignore C4244 warning in opus_compare.c
Ricardo Constantino [Mon, 27 Feb 2017 14:56:06 +0000 (14:56 +0000)]
VS2015: ignore C4244 warning in opus_compare.c

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

9 months agoFix compiler warnings
Mark Harris [Tue, 21 Feb 2017 03:51:40 +0000 (19:51 -0800)]
Fix compiler warnings

- 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

9 months agoAdd common.props to Makefile.am
Ricardo Constantino [Tue, 21 Feb 2017 02:24:27 +0000 (02:24 +0000)]
Add common.props to Makefile.am

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
9 months agoVS2015: only compile fixed silk for appropriate configs
Ricardo Constantino [Mon, 20 Feb 2017 22:53:31 +0000 (22:53 +0000)]
VS2015: only compile fixed silk for appropriate configs

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Closes https://github.com/xiph/opus/pull/26

9 months agoVS2015: Move back PreprocessorDefinitions to opus
Ricardo Constantino [Mon, 20 Feb 2017 22:52:06 +0000 (22:52 +0000)]
VS2015: Move back PreprocessorDefinitions to opus

They're only needed in that project, no need to be in common.props.

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
9 months agoVS2015: join common options in a properties file
Ricardo Constantino [Tue, 10 Jan 2017 00:48:49 +0000 (00:48 +0000)]
VS2015: join common options in a properties file

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>
9 months agoVS2015: remove dead options for linker in static configurations
Ricardo Constantino [Tue, 10 Jan 2017 00:45:10 +0000 (00:45 +0000)]
VS2015: remove dead options for linker in static configurations

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
9 months agotest_opus_decode: Fix build on GCC 3.4 to 4.5.x
Mark Harris [Sun, 19 Feb 2017 04:54:19 +0000 (20:54 -0800)]
test_opus_decode: Fix build on GCC 3.4 to 4.5.x

Broken by b0949f11, reported by ko-zu on GitHub.