4 years agoIn optimized mode, don't force Clang to use explicit load/store for _mm_cvtepi16_epi3...
Jonathan Lennox [Mon, 3 Aug 2015 21:04:21 +0000 (17:04 -0400)]
In optimized mode, don't force Clang to use explicit load/store for _mm_cvtepi16_epi32, only for _mm_cvtepi8_epi32. Adjust comment accordingly.

4 years agoReorganize configure's detection of intrinsics functions:
Jonathan Lennox [Mon, 3 Aug 2015 21:04:20 +0000 (17:04 -0400)]
Reorganize configure's detection of intrinsics functions:

Actually try to compile intrinsics rather than using the output of --help.
Allow caller of configure script to set custom compiler options to enable intrinsics.
Detect when intrinsics are always available, without needing special compiler options.
Make naming of #defines for detected intrinsics support more systematic.

4 years agoFixes bitrate statistics for decode-only operation and inband FEC
Koen Vos [Thu, 20 Aug 2015 13:38:32 +0000 (09:38 -0400)]
Fixes bitrate statistics for decode-only operation and inband FEC

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoFix for flutter with FEC
Koen Vos [Mon, 10 Aug 2015 16:22:25 +0000 (12:22 -0400)]
Fix for flutter with FEC

The bug was caused by an improper feedback of the per-frame bitrate, causing
the bitrate to jump up and down from frame to frame, within a packet.
The patch avoids this, and also gives a slight improvement in general for
multi-frame packets, even without FEC.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoFix const struct to work with C++ compilation
Mark Harris [Fri, 7 Aug 2015 08:25:35 +0000 (01:25 -0700)]
Fix const struct to work with C++ compilation

This allows the libopus source files to be compiled with a C++ compiler,
by ensuring that the "extern const MLP net" declaration is visible at
the point of the "const MLP net" in src/mlp_data.c.  Otherwise it will
default to static linkage in C++, resulting in an undefined symbol.

Note that if compiled with a C++ compiler the symbols will be mangled,
so don't do that if you want to be able to call it from C code or run
the tests (which still require a C compiler).

4 years agoSilence clang -Wcast-align warnings
Mark Harris [Fri, 7 Aug 2015 08:24:48 +0000 (01:24 -0700)]
Silence clang -Wcast-align warnings

4 years agoEliminate signed division overhead in align()
Mark Harris [Wed, 5 Aug 2015 00:53:07 +0000 (17:53 -0700)]
Eliminate signed division overhead in align()

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoSimplify and generalize implementation of align(). Should be very efficient on sensib...
Jonathan Lennox [Tue, 4 Aug 2015 16:04:20 +0000 (12:04 -0400)]
Simplify and generalize implementation of align(). Should be very efficient on sensible platforms, and correct everywhere.

4 years agoMake align() work even on machines with 32-bit chars
Jean-Marc Valin [Tue, 4 Aug 2015 04:05:16 +0000 (00:05 -0400)]
Make align() work even on machines with 32-bit chars

4 years agoMore conservative alignment
Jean-Marc Valin [Tue, 4 Aug 2015 01:40:46 +0000 (21:40 -0400)]
More conservative alignment

Based on max size of void*, opus_int32 and opus_val32, rounded up to the
nearest power of two

4 years agoUpdate the oggopus draft.
Timothy B. Terriberry [Tue, 7 Jul 2015 18:25:42 +0000 (11:25 -0700)]
Update the oggopus draft.

This version resolves some issues with the packet size limits
 raised by Mark Harris.

4 years agoImprove OPUS_GET_LSB_DEPTH documentation.
Timothy B. Terriberry [Tue, 23 Jun 2015 18:41:11 +0000 (11:41 -0700)]
Improve OPUS_GET_LSB_DEPTH documentation.

We use at most 16 when using fixed-point (for the API or the
 internal implementation), but we didn't tell anyone this.

4 years agoAdd release checksums.
Ralph Giles [Fri, 8 May 2015 21:22:07 +0000 (14:22 -0700)]
Add release checksums.

Keep a copy of the release tarball sha-256 checksums in the
repository for reference. Having a copy with the code in
distributed version control adds a verification path.

This should match http://downloads.xiph.org/releases/opus/SHA256SUMS.txt

4 years agooggopus: Bump draft date and version for 07 publication.
Timothy B. Terriberry [Tue, 28 Apr 2015 17:40:46 +0000 (10:40 -0700)]
oggopus: Bump draft date and version for 07 publication.

4 years agortp draft -11
Jean-Marc Valin [Wed, 22 Apr 2015 00:33:42 +0000 (20:33 -0400)]
rtp draft -11

4 years agortp draft -10 (deleting text)
Jean-Marc Valin [Wed, 15 Apr 2015 00:50:28 +0000 (20:50 -0400)]
rtp draft -10 (deleting text)

4 years agoIESG RTP draft update
Jean-Marc Valin [Fri, 10 Apr 2015 21:50:26 +0000 (17:50 -0400)]
IESG RTP draft update

4 years agoOgg Opus draft: Address chair review comments.
Timothy B. Terriberry [Fri, 13 Mar 2015 23:32:23 +0000 (16:32 -0700)]
Ogg Opus draft: Address chair review comments.

1. Removed an inappropriate normative MAY.
2. Gave an explicit range of sample rates deemed to be "non-crazy".
3. Give explicit guidance on packet sizes that SHOULD and MAY be rejected.

4 years agoAvoiding the term "mode" in opus_demo
Jean-Marc Valin [Fri, 27 Feb 2015 20:01:28 +0000 (15:01 -0500)]
Avoiding the term "mode" in opus_demo

4 years agoWrap _mm_cvtepi...() intrinsics in macros on clang.
Timothy B. Terriberry [Fri, 27 Feb 2015 19:11:57 +0000 (11:11 -0800)]
Wrap _mm_cvtepi...() intrinsics in macros on clang.

We already needed these macros for gcc with optimizations disabled,
 but it appears clang needs them all the time.

Thanks to Jonathan Lennox for the report.

4 years agoopus_demo: remove unused but set values
Tristan Matthews [Mon, 23 Feb 2015 23:22:09 +0000 (18:22 -0500)]
opus_demo: remove unused but set values

4 years agoDocument how to tell if your build is fixed-point.
Timothy B. Terriberry [Fri, 20 Feb 2015 20:44:10 +0000 (12:44 -0800)]
Document how to tell if your build is fixed-point.

This way we won't break this by accident.

4 years agoAdds MIPS files to the make dist tarball
Jean-Marc Valin [Wed, 11 Feb 2015 19:10:03 +0000 (14:10 -0500)]
Adds MIPS files to the make dist tarball

4 years agoAddressing Gen-ART comments on the RTP draft
Jean-Marc Valin [Fri, 6 Feb 2015 18:34:32 +0000 (13:34 -0500)]
Addressing Gen-ART comments on the RTP draft

4 years agoRTP draft: chair review
Jean-Marc Valin [Tue, 13 Jan 2015 14:19:24 +0000 (09:19 -0500)]
RTP draft: chair review

4 years agoUpdate ISO Base Media Format draft to version 0.6.6.
Ralph Giles [Sat, 10 Jan 2015 21:57:24 +0000 (13:57 -0800)]
Update ISO Base Media Format draft to version 0.6.6.

4 years agoUpdate ISO Base Media Format draft to version 0.6.2.
Ralph Giles [Fri, 9 Jan 2015 16:55:21 +0000 (08:55 -0800)]
Update ISO Base Media Format draft to version 0.6.2.

4 years agoRTP: the return of maxaveragebitrate
Jean-Marc Valin [Tue, 6 Jan 2015 07:35:31 +0000 (02:35 -0500)]
RTP: the return of maxaveragebitrate

4 years agoFix silk_VQ_WMat_EC_sse4_1().
Timothy B. Terriberry [Fri, 2 Jan 2015 23:48:54 +0000 (15:48 -0800)]
Fix silk_VQ_WMat_EC_sse4_1().

During review of c95c9a048f32, I replaced a call to
 _mm_cvtepi8_epi32() with the OP_CVTEPI16_EPI32_M64() macro (note
 the 16 instead of 8).
Make a separate OP_CVTEPI8_EPI32_M32() macro and use that instead.

Thaks to Wei Zhou for the report.

4 years agoFix warnings in pedantic build.
Timothy B. Terriberry [Fri, 26 Dec 2014 16:31:39 +0000 (08:31 -0800)]
Fix warnings in pedantic build.

This should suppress our current issues with unused parameters,
 unused variables, and set-but-not-used variables.

4 years agoarmv7: celt_pitch_xcorr: Introduce ARM NEON intrinsics
Viswanath Puttagunta [Fri, 19 Dec 2014 23:25:55 +0000 (17:25 -0600)]
armv7: celt_pitch_xcorr: Introduce ARM NEON intrinsics

Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.

To enable this optimization, use --enable-intrinsics
configure option.

Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the compiler supports
NEON intrinsics.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoDocument the motivation for the 120 ms repacketizer limit.
Ralph Giles [Sat, 20 Dec 2014 20:37:48 +0000 (12:37 -0800)]
Document the motivation for the 120 ms repacketizer limit.

See the mailing list discussion at

4 years agoFix the quoting of AC_LANG_PROGRAM
Ron [Sat, 20 Dec 2014 09:16:20 +0000 (19:46 +1030)]
Fix the quoting of AC_LANG_PROGRAM

It was under-quoted in c95c9a048f3283afb2e412b10085d4f7c19e1412, which
leads to a flood of warnings when it gets incorrectly expanded, like:

configure.ac:354: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body

4 years agoRTP draft: addressing comments from Martin Thompson
Jean-Marc Valin [Mon, 8 Dec 2014 21:25:57 +0000 (16:25 -0500)]
RTP draft: addressing comments from Martin Thompson

4 years agoFix celt_pitch_xcorr_c signature.
Timothy B. Terriberry [Mon, 1 Dec 2014 18:47:25 +0000 (10:47 -0800)]
Fix celt_pitch_xcorr_c signature.

This should not take an arch parameter, so it can properly be used
 as a fallback for accelerated versions which do not.
This patch instead provides a separate version which can call
 accelerated helpers for platforms that have taken that approach.

4 years agomultistream: improve arg check
Mark Harris [Thu, 27 Nov 2014 16:48:09 +0000 (08:48 -0800)]
multistream: improve arg check

Avoid undefined behavior (signed arithmetic overflow) or
implementation-defined behavior (malloc(0)) on out-of-range arguments,
e.g. opus_multistream_encoder_create(48000, 2, 2147483647, 1, ...)
or opus_multistream_surround_encoder_create(48000, 3, 0, ...).

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoRTP draft in last call
Jean-Marc Valin [Wed, 19 Nov 2014 16:07:50 +0000 (11:07 -0500)]
RTP draft in last call

4 years agofloat_cast: Fix MSVC ARM build
Cameron Gutman [Wed, 19 Nov 2014 08:02:11 +0000 (03:02 -0500)]
float_cast: Fix MSVC ARM build

Signed-off-by: Tristan Matthews <tmatth@videolan.org>
4 years agooggopus: bump draft date and version for 06 publication. draft-ietf-codec-oggopus-06
Ralph Giles [Sat, 18 Oct 2014 00:04:45 +0000 (17:04 -0700)]
oggopus: bump draft date and version for 06 publication.

4 years agooggopus: Mention 'malformed' at the first instance of invalid TOC.
Ralph Giles [Sat, 18 Oct 2014 00:02:02 +0000 (17:02 -0700)]
oggopus: Mention 'malformed' at the first instance of invalid TOC.

This is just a should, so we want to leave the RFC 6716 reference
to the second occurance, but using the same language ties them
together and to the later occurances.

4 years agooggopus: Refer to RFC 6716 on how to handle malformed packets.
Ralph Giles [Fri, 17 Oct 2014 23:51:57 +0000 (16:51 -0700)]
oggopus: Refer to RFC 6716 on how to handle malformed packets.

The Opus RFC doesn't really say what to do beyond rejecting
a particular packet, but having the reference reinforces that
we're trying to leverage the same constraints in the specific
context of ogg encapsulation, and this isn't a new rule.

4 years agooggopus: use 'invalid' to match other occurances and RFC 6716.
Ralph Giles [Fri, 17 Oct 2014 23:35:50 +0000 (16:35 -0700)]
oggopus: use 'invalid' to match other occurances and RFC 6716.

Suggestion from mark4o.

4 years agooggopus: Improve wording.
Ralph Giles [Fri, 17 Oct 2014 22:32:10 +0000 (15:32 -0700)]
oggopus: Improve wording.

4 years agooggopus: Refer to 'TOC sequence' instead of byte.
Ralph Giles [Fri, 17 Oct 2014 22:08:11 +0000 (15:08 -0700)]
oggopus: Refer to 'TOC sequence' instead of byte.

This avoids confusion with the number of frames being defined
by more than the first byte with code 3 packets.

Patch from mark4o.

5 years agooggopus: Fix opus_encode_ctl invocations.
Ralph Giles [Wed, 15 Oct 2014 01:23:32 +0000 (18:23 -0700)]
oggopus: Fix opus_encode_ctl invocations.

The macros take arguments, they aren't just constants. Thanks to
mark4o for the report.

5 years agooggopus: Improve wording. draft-ietf-codec-oggopus-05
Ralph Giles [Wed, 15 Oct 2014 00:47:10 +0000 (17:47 -0700)]
oggopus: Improve wording.

5 years agooggopus: bump draft date and version for 05 publication.
Ralph Giles [Tue, 14 Oct 2014 21:54:31 +0000 (14:54 -0700)]
oggopus: bump draft date and version for 05 publication.

5 years agooggopus: Clarify leading zeros are ok for R128 tags.
Ralph Giles [Tue, 14 Oct 2014 21:52:31 +0000 (14:52 -0700)]
oggopus: Clarify leading zeros are ok for R128 tags.

Add a limit of no more than 6 characters for these tags' values.

5 years agotests: fix linking for --enable-fixed-point on ARM v1.1.1-beta
Tristan Matthews [Sun, 12 Oct 2014 19:12:52 +0000 (15:12 -0400)]
tests: fix linking for --enable-fixed-point on ARM

5 years agoUpdate mp4 encapsulation spec to v0.5.3.
Ralph Giles [Tue, 7 Oct 2014 23:05:07 +0000 (16:05 -0700)]
Update mp4 encapsulation spec to v0.5.3.

Based on http://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html

5 years agoThere are no tabs in source code.
Timothy B. Terriberry [Sat, 4 Oct 2014 04:49:57 +0000 (21:49 -0700)]
There are no tabs in source code.

There is also no trailing whitespace.

5 years agoFix build bustage from c95c9a048.
Timothy B. Terriberry [Sat, 4 Oct 2014 04:11:51 +0000 (21:11 -0700)]
Fix build bustage from c95c9a048.

5 years agoCisco optimization for x86 & fixed point
xiangmingzhu [Wed, 30 Apr 2014 07:48:07 +0000 (15:48 +0800)]
Cisco optimization for x86 & fixed point

1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
   intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
   optimization, default is disabled.
3. Official test cases are verified and passed.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
5 years ago-DOPUS_WILL_BE_SLOW to disable the no-optimization warning
Jean-Marc Valin [Tue, 30 Sep 2014 18:40:13 +0000 (14:40 -0400)]
-DOPUS_WILL_BE_SLOW to disable the no-optimization warning

5 years agoAdd build script for mp4 spec.
Ralph Giles [Mon, 29 Sep 2014 17:53:17 +0000 (10:53 -0700)]
Add build script for mp4 spec.

This is a quick script to download, rename and sanitize
Yusuke Nakamura's draft for opus in the ISO Base Media File Format.

5 years agoUpdate mp4 encapsulation spec to v0.4.8.
Ralph Giles [Mon, 29 Sep 2014 17:51:51 +0000 (10:51 -0700)]
Update mp4 encapsulation spec to v0.4.8.

Based on http://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html

5 years agoClarify that leading '+' is allowed in R128 tags.
Ralph Giles [Fri, 26 Sep 2014 23:56:27 +0000 (16:56 -0700)]
Clarify that leading '+' is allowed in R128 tags.

5 years agoRemove weasel word.
Ralph Giles [Fri, 26 Sep 2014 23:34:05 +0000 (16:34 -0700)]
Remove weasel word.

SHOULD or SHOULD NOT. There is no attempt.

5 years agoAdd wording about additional binary data in comment headers.
Ralph Giles [Fri, 26 Sep 2014 22:55:44 +0000 (15:55 -0700)]
Add wording about additional binary data in comment headers.

From the codec wg mailing list thread

5 years agoAdd stylesheet for opus_in_isobmff draft.
Ralph Giles [Fri, 26 Sep 2014 17:13:05 +0000 (10:13 -0700)]
Add stylesheet for opus_in_isobmff draft.

Based on http://vfrmaniac.fushizen.eu/style.css

5 years agoUpdate mp4 encapsulation spec to v0.1.7.
Ralph Giles [Fri, 26 Sep 2014 17:08:54 +0000 (10:08 -0700)]
Update mp4 encapsulation spec to v0.1.7.

From http://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html

5 years agoImport mp4 encapsulation spec v0.1.4.
Ralph Giles [Thu, 25 Sep 2014 21:21:08 +0000 (14:21 -0700)]
Import mp4 encapsulation spec v0.1.4.

Based on http://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html

5 years agoFixes comments
Jean-Marc Valin [Thu, 4 Sep 2014 06:48:21 +0000 (02:48 -0400)]
Fixes comments

5 years agoTakes into account a corner case with the multistream encoder
Jean-Marc Valin [Thu, 4 Sep 2014 06:44:09 +0000 (02:44 -0400)]
Takes into account a corner case with the multistream encoder

Considers the case where one stream would eat up all the remaining bytes,
including a 2-byte size that would then not leave enough for the even a PLC
packet in the next streams.

5 years agoLowered the smallest packet that the multi-stream encoder can encode
Jean-Marc Valin [Thu, 4 Sep 2014 05:48:46 +0000 (01:48 -0400)]
Lowered the smallest packet that the multi-stream encoder can encode

Limit now at 2*streams-1 and anything below that returns OPUS_BUFFER_TOO_SMALL
rather than OPUS_BAD_ARG

5 years agoupdating the update draft
Jean-Marc Valin [Thu, 4 Sep 2014 01:52:37 +0000 (21:52 -0400)]
updating the update draft

5 years agominor language tweak to RTP draft
Jean-Marc Valin [Wed, 30 Jul 2014 18:54:59 +0000 (14:54 -0400)]
minor language tweak to RTP draft

5 years agoApply further fixes from Ron.
Ralph Giles [Sun, 31 Aug 2014 20:02:35 +0000 (13:02 -0700)]
Apply further fixes from Ron.

5 years agoFix mixed-case RFC 2119 keywords
Ron [Sun, 31 Aug 2014 19:39:59 +0000 (05:09 +0930)]
Fix mixed-case RFC 2119 keywords

5 years agoFix ambiguous RFC 2119 keywords.
Ralph Giles [Sun, 31 Aug 2014 19:20:39 +0000 (12:20 -0700)]
Fix ambiguous RFC 2119 keywords.

These are normative whether capitalized or not. Capitalize the ones
which make sense as normative requirements, and reword the rest.

5 years agoClarify ambiguity between 'streams' and 'files'.
Ralph Giles [Sun, 31 Aug 2014 18:37:34 +0000 (11:37 -0700)]
Clarify ambiguity between 'streams' and 'files'.

We want to general guidelines for stream-level encapsulation to
apply to multiplexed as well as degenerate streams. 'Files' can
therefore specific to the mine-type discussion for unmultiplexed
Ogg physical streams.

5 years agoOgg Opus updates from Ian Nartowicz.
Timothy B. Terriberry [Thu, 14 Aug 2014 17:21:41 +0000 (10:21 -0700)]
Ogg Opus updates from Ian Nartowicz.

These are the changes proposed in
 with some minor additions (see follow-up on the list).

5 years agoos_support: fix misleading comments
Tristan Matthews [Sun, 10 Aug 2014 17:56:31 +0000 (13:56 -0400)]
os_support: fix misleading comments

cherry-picked from speexdsp 86779a06f6500d041573d6252d4971d3bfcb4b18

5 years agoOgg Opus Draft: bump release date, version, and more cleanup. draft-ietf-codec-oggopus-04
Ralph Giles [Sat, 9 Aug 2014 06:07:36 +0000 (23:07 -0700)]
Ogg Opus Draft: bump release date, version, and more cleanup.

5 years agoOgg Opus Draft: Clean up R128 tag descriptions.
Ralph Giles [Fri, 8 Aug 2014 21:16:50 +0000 (14:16 -0700)]
Ogg Opus Draft: Clean up R128 tag descriptions.

Promote the new tag definitions to a separate subsection,
balance tags, improve wording, and document our motivation
for the R128 tags.

5 years agoOgg Opus Draft: Fix a typo.
Ralph Giles [Fri, 8 Aug 2014 20:46:41 +0000 (13:46 -0700)]
Ogg Opus Draft: Fix a typo.

Thanks to Calvin Walton for pointing this out.

5 years agoOgg Opus Draft: Add R128_ALBUM_GAIN.
Ralph Giles [Fri, 8 Aug 2014 20:41:25 +0000 (13:41 -0700)]
Ogg Opus Draft: Add R128_ALBUM_GAIN.

Patch from Greg Maxwell in response to implementor feedback.

5 years agoOgg Opus Draft: apply some clarifications from derf.
Ralph Giles [Fri, 8 Aug 2014 20:22:18 +0000 (13:22 -0700)]
Ogg Opus Draft: apply some clarifications from derf.

5 years agoMerge remote-tracking branch 'origin/master' into derf_rtp_edits
Jean-Marc Valin [Wed, 30 Jul 2014 17:41:28 +0000 (13:41 -0400)]
Merge remote-tracking branch 'origin/master' into derf_rtp_edits


5 years agoRTP draft edits (normative changes).
Timothy B. Terriberry [Sat, 26 Jul 2014 05:33:55 +0000 (22:33 -0700)]
RTP draft edits (normative changes).

Here are my proposals to resolve a few issues with the current
See the corresponding message to the list for details.

5 years agoRTP draft edits (no normative changes).
Timothy B. Terriberry [Sat, 26 Jul 2014 04:45:46 +0000 (21:45 -0700)]
RTP draft edits (no normative changes).

This is the result of an editing pass for clarity and consistency.

5 years agoAdd ~ to the arguments of genversion.bat
Joshua Milas [Mon, 23 Jun 2014 02:24:48 +0000 (20:24 -0600)]
Add ~ to the arguments of genversion.bat

genversion.bat would fail if an argument was passed with quotations.
This is because the quotations were not being stripped before using
them as variables, causing the _temp files not being created.

Adding ~ to the arguments causes windows to strip the quotations,
enabling it to be used with path names containing spaces and the
MSVS pre-build event.

Signed-off-by: Ralph Giles <giles@mozilla.com>
5 years agoUsing 64-bit acculumation for C0 in silk_burg_modified()
Marcello Caramma (mcaramma) [Tue, 1 Jul 2014 14:41:14 +0000 (10:41 -0400)]
Using 64-bit acculumation for C0 in silk_burg_modified()

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoRTP draft: avoiding confusion with 2119 language
Jean-Marc Valin [Mon, 30 Jun 2014 21:13:16 +0000 (17:13 -0400)]
RTP draft: avoiding confusion with 2119 language

5 years agoUpdate Opus RTP payload
Jean-Marc Valin [Mon, 30 Jun 2014 18:13:46 +0000 (14:13 -0400)]
Update Opus RTP payload

Addresses comments from several months ago

5 years agomulti-stream fix when setting bitrate to AUTO, MAX, or small values
Jean-Marc Valin [Sat, 21 Jun 2014 05:16:46 +0000 (01:16 -0400)]
multi-stream fix when setting bitrate to AUTO, MAX, or small values

OPUS_AUTO should now work fine, while using OPUS_BITRATE_MAX would still
be a bad idea for controlling CBR rate for multistream. The encoder should
now throw an error early on if max_data_bytes is just too small to do anything.

5 years agoMerge branch 'exp_mips_opt'
Jean-Marc Valin [Fri, 20 Jun 2014 22:14:08 +0000 (18:14 -0400)]
Merge branch 'exp_mips_opt'

5 years agoFixes CNG overflows from the previous commit
Koen Vos [Fri, 20 Jun 2014 05:42:49 +0000 (01:42 -0400)]
Fixes CNG overflows from the previous commit

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoFixes CNG to address the DTX issue reported by Gonzalo Mariano
Koen Vos [Fri, 20 Jun 2014 00:07:55 +0000 (20:07 -0400)]
Fixes CNG to address the DTX issue reported by Gonzalo Mariano

- Bug fix: the CNG synthesis filter output consisted of only the prediction
  values, now added the input to that.
- CNG excitation level now takes into account the level from the PLC (since
  both PLC and CNG can be active at the same time).
- CNG is now called before PLC_glue() to smoothen the transition out of CNG.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoWhitespace fixes exp_mips_opt
Jean-Marc Valin [Thu, 19 Jun 2014 20:16:07 +0000 (16:16 -0400)]
Whitespace fixes

5 years agoUsing Makefile.mips to buidl the MIPS code
Jean-Marc Valin [Thu, 19 Jun 2014 08:11:20 +0000 (04:11 -0400)]
Using Makefile.mips to buidl the MIPS code

5 years agoMIPS optimizations
Rhishikesh Agashe [Thu, 19 Jun 2014 07:40:09 +0000 (03:40 -0400)]
MIPS optimizations

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoFixes a bug in silk_sum_sqr_shift() that was causing issues with Burg.
Jean-Marc Valin [Wed, 18 Jun 2014 21:06:32 +0000 (17:06 -0400)]
Fixes a bug in silk_sum_sqr_shift() that was causing issues with Burg.

When an overflow happened in silk_sum_sqr_shift(), the sample pair causing
the overflow would be counted twice. This would lead to the C0 in
silk_burg_modified() being too large and cause problems on loud, tonal
signals. Thanks to Marcello Caramma for tracking down the problem.

5 years agoAdds SIG2WORD16() to fixed_debug.h
Jean-Marc Valin [Wed, 18 Jun 2014 04:52:16 +0000 (00:52 -0400)]
Adds SIG2WORD16() to fixed_debug.h

5 years agoFix type conversion warning.
Ralph Giles [Wed, 14 May 2014 16:46:22 +0000 (09:46 -0700)]
Fix type conversion warning.

Use abs(sweep_bps) instead of fabs(). "sweep_bps" is an integer,
and on some compilers this line generates a warning.

Patch from Tina le Grand.
Reviewed by Jean-Marc Valin

5 years agoSuppress some coverity false positives.
Gregory Maxwell [Thu, 17 Apr 2014 01:29:26 +0000 (18:29 -0700)]
Suppress some coverity false positives.

5 years agoFix iOS builds with assembly.
Timothy B. Terriberry [Wed, 26 Mar 2014 19:58:04 +0000 (12:58 -0700)]
Fix iOS builds with assembly.

The patch in 76e831d917ff got us most of the way there, but
 out-of-tree builds required a second Makefile.am rule, which was
 missing @ARM2GNU_PARAMS@.
Also, the arm2gnu.pl was terminating argument processing on any
 argument beginning with --, rather than an argument that was just
 -- by itself (as is the normal convention in GNU programs).
That meant it never saw the --apple flag even when it was passed.

Thanks to Jonathan Lennox for the report and for testing.

5 years agoMake the arm2gnu.pl converter handle apple specific details
Martin Storsjo [Wed, 19 Mar 2014 19:36:39 +0000 (21:36 +0200)]
Make the arm2gnu.pl converter handle apple specific details

This allows building the arm assembly for iOS.

This checks for the __APPLE__ preprocessor built-in define to
determine whether this extra handling should be enabled.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
5 years agoAdd separate labels for the start of public functions
Martin Storsjo [Wed, 19 Mar 2014 19:36:38 +0000 (21:36 +0200)]
Add separate labels for the start of public functions

This avoids having to use the public symbol name when jumping here,
on platforms where the public symbols have an underscore prefix.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
5 years agoFixes encoder/decoder classification of ctl() requests.
Bruno Randolf [Mon, 24 Feb 2014 21:08:08 +0000 (16:08 -0500)]
Fixes encoder/decoder classification of ctl() requests.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>