3 years agoDon't ignore win32.
Ralph Giles [Wed, 11 May 2016 22:50:25 +0000 (15:50 -0700)]
Don't ignore win32.

This was adding in the MSVC project updates, but isn't correct.

3 years agofix build settings for DLL project, runtime library must be linked to DLL too to...
uraymeiviar [Fri, 6 Nov 2015 15:25:25 +0000 (22:25 +0700)]
fix build settings for DLL project, runtime library must be linked to DLL too to prevent heap deallocation error

3 years agoAdded Visual Studio 2015 solution and added ReleaseDLL and DebugDLL Project settings...
uraymeiviar [Fri, 6 Nov 2015 14:58:25 +0000 (21:58 +0700)]
Added Visual Studio 2015 solution and added ReleaseDLL and DebugDLL Project settings to produce .dll file instead of .lib

3 years agoFixes floating-point bug introduced in be9e747bcc542c277d30f6c78a57b0940e0c5b5e
Jean-Marc Valin [Fri, 22 Apr 2016 19:10:13 +0000 (15:10 -0400)]
Fixes floating-point bug introduced in be9e747bcc542c277d30f6c78a57b0940e0c5b5e

The effect was to always set HB_gain to 1.

3 years agowin32: only use dllexport when building DLL
Daniel Verkamp [Thu, 22 Oct 2015 00:24:41 +0000 (17:24 -0700)]
win32: only use dllexport when building DLL

If building a static library, marking symbols as dllexport causes them
to be exported from the final executable. For example, run
objdump -x opus_demo.exe on a --disabled-shared build and look for the
export table; there should not be one in a normal Win32 .exe file, but
when linking static libopus, the exe exports all of the opus_* public

Use the libtool-defined DLL_EXPORT flag to determine whether we are
building a DLL and only specify __declspec(dllexport) in that case.

3 years agoTurn on CELT's PLC only if there are >=2 packets received consecutively.
Felicia Lim [Wed, 6 Apr 2016 09:23:21 +0000 (11:23 +0200)]
Turn on CELT's PLC only if there are >=2 packets received consecutively.

Avoids generating comfort noise with unwanted tones in DTX mode.

3 years agocng exitation signal can saturate. Use same scaling as PLC and normal decoding
Soren Skak Jensen [Tue, 15 Mar 2016 13:51:28 +0000 (14:51 +0100)]
cng exitation signal can saturate. Use same scaling as PLC and normal decoding

3 years agoFix valgrind unaddressable mem read error
Felicia Lim [Wed, 30 Mar 2016 13:11:06 +0000 (15:11 +0200)]
Fix valgrind unaddressable mem read error

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFixes overflows on CPUs with 16-bit ints
Jean-Marc Valin [Mon, 21 Mar 2016 17:11:48 +0000 (13:11 -0400)]
Fixes overflows on CPUs with 16-bit ints

As reported by Giovanni Rovatti, this should fix some TI C55 issues.

3 years agofix for divide by zero
Felicia Lim [Fri, 18 Mar 2016 00:52:05 +0000 (08:52 +0800)]
fix for divide by zero

3 years agooggopus: Update version and date for -14
Timothy B. Terriberry [Tue, 23 Feb 2016 01:51:03 +0000 (17:51 -0800)]
oggopus: Update version and date for -14

3 years agooggopus: Address Barry Leiba's IESG comments.
Timothy B. Terriberry [Thu, 18 Feb 2016 02:24:35 +0000 (18:24 -0800)]
oggopus: Address Barry Leiba's IESG comments.

Thanks to Barry for proposing specific text for the changes.

3 years agooggopus: Fix page numbers in example diagram.
Timothy B. Terriberry [Thu, 18 Feb 2016 01:31:49 +0000 (17:31 -0800)]
oggopus: Fix page numbers in example diagram.

Ralph Giles correctly points out that the sequence number field in
 Ogg pages starts couting at 0, so counting from 1 in the diagram
 might be confusing.

3 years agooggopus: Update Wikipedia URLs.
Timothy B. Terriberry [Thu, 18 Feb 2016 01:30:15 +0000 (17:30 -0800)]
oggopus: Update Wikipedia URLs.

For RFC 6716, the RFC Editor converted our Wikipedia URLs into
 stable ones that would always point at the same version of the
We're close enough to the end that we can go ahead and do that in
 advance (and also update the dates to reflect the most recent

3 years agooggopus: Fix typo.
Ralph Giles [Wed, 17 Feb 2016 10:13:23 +0000 (02:13 -0800)]
oggopus: Fix typo.

3 years agooggopus: Address Stephen Farrell's IESG comments.
Timothy B. Terriberry [Wed, 17 Feb 2016 02:05:10 +0000 (18:05 -0800)]
oggopus: Address Stephen Farrell's IESG comments.

- Clarify that 125,829,120 is just 120 MB.
- Add a figure to Section 3 of an example logical stream.
- Add a reference for Q notation.
- Refer to the downmixing figures in the text.
- Clarify that user comments are UTF-8.
- Clarify that the -573 and 111 gain values are examples.
- Add specific advice to implementors on areas that have security

3 years agooggopus: Update version and date for -13
Timothy B. Terriberry [Fri, 12 Feb 2016 21:02:02 +0000 (13:02 -0800)]
oggopus: Update version and date for -13

Apparently the IETF does not like having the BSD copyright in the
 .xml source (despite the CODEC WG's IPR advisor saying this was
 okay), so we need a new version.

3 years agoRemove unused patch file.
Ralph Giles [Tue, 9 Feb 2016 17:49:16 +0000 (09:49 -0800)]
Remove unused patch file.

It looks like this was included accidentally.

Thanks to mark4o for pointing out I'd missed this in the previous

3 years agoExpand SILK macro to avoid "Wexpansion-to-defined" violation
flim [Tue, 9 Feb 2016 14:59:57 +0000 (15:59 +0100)]
Expand SILK macro to avoid "Wexpansion-to-defined" violation

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoRemove unused patch file.
Ralph Giles [Wed, 3 Feb 2016 20:36:17 +0000 (12:36 -0800)]
Remove unused patch file.

It looks like this was included accidentally.

3 years agoRemove generation date from docs.
Ralph Giles [Wed, 3 Feb 2016 20:32:00 +0000 (12:32 -0800)]
Remove generation date from docs.

The improves the reproducibilit of the build. The date
was nice to have, but there's a version string at the
top which should identify the release correctly.

The copyright date could actually be incorrect, since
it is based on the build date and not the last-changed

3 years agoClean up footer.html.
Ralph Giles [Wed, 3 Feb 2016 20:28:22 +0000 (12:28 -0800)]
Clean up footer.html.

Use https urls.
Indent nesting levels and add missing </td>.

3 years agooggopus: Additional minor rewording.
Timothy B. Terriberry [Wed, 3 Feb 2016 13:42:22 +0000 (05:42 -0800)]
oggopus: Additional minor rewording.

Hopefully this is even clearer.
Thanks again to Mark Harris for the suggestion.

3 years agooggopus: Update version and date for -12
Timothy B. Terriberry [Wed, 3 Feb 2016 06:18:11 +0000 (22:18 -0800)]
oggopus: Update version and date for -12

3 years agooggopus: Minor rewording.
Timothy B. Terriberry [Wed, 3 Feb 2016 06:11:35 +0000 (22:11 -0800)]
oggopus: Minor rewording.

This avoids the claim that all possible Opus implementations would
 run at rates that divide 48 kHz.
Thanks to Mark Harris for raising the issue.

3 years agooggopus: Update the acknowledgements.
Timothy B. Terriberry [Wed, 3 Feb 2016 06:05:02 +0000 (22:05 -0800)]
oggopus: Update the acknowledgements.

3 years agooggopus: Add a BSD license header.
Timothy B. Terriberry [Wed, 3 Feb 2016 06:00:49 +0000 (22:00 -0800)]
oggopus: Add a BSD license header.

This also removes the request for an additional grant from the IETF
 Trust on the final RFC.
I believe this is sufficient to exercise our ability to allow
 downstream modifications as proposed in RFC 5377 Section 4.4.
See the discussion at
 for details.

3 years agooggopus: Revert reference to RFC 4732 back to informative.
Timothy B. Terriberry [Thu, 28 Jan 2016 21:37:44 +0000 (13:37 -0800)]
oggopus: Revert reference to RFC 4732 back to informative.

Thanks to Ron Lee for the suggestion.

3 years agooggopus: Update version and date for -11
Timothy B. Terriberry [Thu, 28 Jan 2016 18:34:49 +0000 (10:34 -0800)]
oggopus: Update version and date for -11

3 years agooggopus: Specify that the new IANA registry is top-level.
Timothy B. Terriberry [Thu, 28 Jan 2016 18:30:20 +0000 (10:30 -0800)]
oggopus: Specify that the new IANA registry is top-level.

Thanks to Sabrina Tanamal for pointing out the ambiguity.

3 years agoRemove default settings from Doxygen config.
Ralph Giles [Fri, 15 Jan 2016 23:59:30 +0000 (15:59 -0800)]
Remove default settings from Doxygen config.

The set of supported Doxygenfile keys changes from release
to release, often resulting in warnings about needing to
upgrade the configuration file. However, this isn't
practical given the various versions different developers
have installed.

However, for the vast majority of keys we just want the
default values, so instead only include the keys we've
specifically set and let doxygen fall back to defaults
for all the rest.

3 years agoDocuemnt the source of the 2.5 ms and 48 kHz restrictions.
Timothy B. Terriberry [Fri, 15 Jan 2016 23:57:49 +0000 (15:57 -0800)]
Docuemnt the source of the 2.5 ms and 48 kHz restrictions.

Thanks to Joel Halpern for the suggestion.

3 years agooggopus: Fix continued packet lacing reference.
Ralph Giles [Fri, 15 Jan 2016 23:30:46 +0000 (15:30 -0800)]
oggopus: Fix continued packet lacing reference.

Thanks to Joel Halpern for pointing out the discrepancy.

3 years agoAdd /topic update to release checklist
Mark Harris [Thu, 14 Jan 2016 05:09:35 +0000 (21:09 -0800)]
Add /topic update to release checklist

3 years agooggdraft: Update version and date for -10
Timothy B. Terriberry [Tue, 12 Jan 2016 21:36:58 +0000 (13:36 -0800)]
oggdraft: Update version and date for -10

3 years agooggdraft: Fix typo.
Timothy B. Terriberry [Tue, 12 Jan 2016 21:36:01 +0000 (13:36 -0800)]
oggdraft: Fix typo.

Thanks to Ben Campbell for the report.

3 years agooggopus: Remove normative language from IANA registry.
Timothy B. Terriberry [Tue, 12 Jan 2016 21:12:22 +0000 (13:12 -0800)]
oggopus: Remove normative language from IANA registry.

From AD review.

3 years agooggopus: Replace 'reject' with 'treat as invalid'.
Timothy B. Terriberry [Tue, 12 Jan 2016 21:08:27 +0000 (13:08 -0800)]
oggopus: Replace 'reject' with 'treat as invalid'.

From AD review.

3 years agoupdate releases.sha2
Jean-Marc Valin [Tue, 12 Jan 2016 19:00:02 +0000 (14:00 -0500)]
update releases.sha2

3 years agobump libtool revision for 1.1.2
Jean-Marc Valin [Tue, 12 Jan 2016 18:13:13 +0000 (13:13 -0500)]
bump libtool revision for 1.1.2

3 years agoSuggest OPUS_LSB_DEPTH(14) for G.711. r=td-linux,mark4o
Ralph Giles [Thu, 7 Jan 2016 19:43:47 +0000 (11:43 -0800)]
Suggest OPUS_LSB_DEPTH(14) for G.711. r=td-linux,mark4o

This is a reasonable choice for the (non-linear) dynamic
range of mu-law. A-law is technically 13 bit, maybe 12;
experimentation is needed.

Per irc discussion with Jean-Marc, Ron, and Mark Harris.

3 years agoAdd checksums for opusfile 0.7.
Ralph Giles [Wed, 6 Jan 2016 01:54:35 +0000 (17:54 -0800)]
Add checksums for opusfile 0.7.

Also alphabetize the rest of the file.

3 years agoAdd a check target to the static makefiles. r=ron
Ralph Giles [Tue, 29 Dec 2015 07:37:49 +0000 (23:37 -0800)]
Add a check target to the static makefiles. r=ron

3 years agoAdd 'force' to the phony target list. r=ron
Ralph Giles [Tue, 29 Dec 2015 07:30:29 +0000 (23:30 -0800)]
Add 'force' to the phony target list. r=ron

Jean-Marc Valin [Thu, 31 Dec 2015 19:43:49 +0000 (14:43 -0500)]

Avoids accidental name collisions

3 years agoActually fix pedantic build bustage.
Timothy B. Terriberry [Thu, 31 Dec 2015 13:56:45 +0000 (05:56 -0800)]
Actually fix pedantic build bustage.

3 years agoFix pedantic build bustage.
Timothy B. Terriberry [Thu, 31 Dec 2015 13:00:31 +0000 (05:00 -0800)]
Fix pedantic build bustage.

ISO C90 forbids mixed declarations and code, r=bustage

3 years agoAdd tonality_analysis_reset().
Ralph Giles [Wed, 30 Dec 2015 23:27:02 +0000 (15:27 -0800)]
Add tonality_analysis_reset().

Add a reset function for the TonalityAnalysisState struct
and call it on encoder reset.

Move the state struct above the clear line in OpusEncoder
so reset doesn't clobber reusable fields. Currently this
is only the arch field, which is moved to to top of the
struct so we can use the same memset-to-the-end pattern
as OpusEncoder.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoAdd an initializer for TonalityAnalysisState.
Ralph Giles [Wed, 30 Dec 2015 18:00:17 +0000 (10:00 -0800)]
Add an initializer for TonalityAnalysisState.

This interns the asm flags parameter in the state struct
so we don't need to pass it with every call. It can be
expensive, so we don't want to query every run_analysis()
call, but since this (private) api is used by webrtc code
we need to provide a supportable interface for filling in
the correct value.

Note the initialization code is partially duplicated between
opus_encoder_init and the OPUS_RESET_STATE switch case, so we
must re-initialize it there.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoRemove unused encoder field analysis_offset
Mark Harris [Wed, 30 Dec 2015 19:37:20 +0000 (11:37 -0800)]
Remove unused encoder field analysis_offset

3 years agoAvoids having the Opus-level "arch" be set to 0 on encoder/decoder reset
Jean-Marc Valin [Wed, 30 Dec 2015 19:21:34 +0000 (14:21 -0500)]
Avoids having the Opus-level "arch" be set to 0 on encoder/decoder reset

3 years agooggopus: More updates for AD review comments.
Timothy B. Terriberry [Mon, 28 Dec 2015 12:54:55 +0000 (04:54 -0800)]
oggopus: More updates for AD review comments.

Removed 2119 language for general Ogg requirements.
Added IANA registry for channel mapping families.
Adjusted additional copyright grant to match RFC 6716.
Additional comments addressed (see the CODEC mailing list).

3 years agoFixes patch_transient_decision() for hybrid mode
Jean-Marc Valin [Fri, 4 Dec 2015 21:42:19 +0000 (16:42 -0500)]
Fixes patch_transient_decision() for hybrid mode

...and also make it not ignore the right channel

3 years agoOops, fixes max_decay for LFE in fixed-point
Jean-Marc Valin [Sat, 28 Nov 2015 07:35:21 +0000 (02:35 -0500)]
Oops, fixes max_decay for LFE in fixed-point

3 years agooggopus: Revert SHOULD->MUST for reserved mappings.
Timothy B. Terriberry [Fri, 11 Dec 2015 22:11:00 +0000 (14:11 -0800)]
oggopus: Revert SHOULD->MUST for reserved mappings.

Mark Harris convinced me that the significant delay between "WG
 consensus" and "RFC" means we shouldn't rely on RFC updates to
 give people permission to start deploying new things.

3 years agooggopus: Fix typo.
Timothy B. Terriberry [Fri, 11 Dec 2015 19:41:36 +0000 (11:41 -0800)]
oggopus: Fix typo.

Thanks to Mark Harris for the report.

3 years agooggopus: First pass updates for AD review comments.
Timothy B. Terriberry [Fri, 11 Dec 2015 19:30:06 +0000 (11:30 -0800)]
oggopus: First pass updates for AD review comments.

3 years agoMake the CELT background noise estimator adapt more quickly on DTX update
Jean-Marc Valin [Fri, 4 Dec 2015 21:11:39 +0000 (16:11 -0500)]
Make the CELT background noise estimator adapt more quickly on DTX update

3 years agoopus_demo: fixes potential division by zero on files with no active frame
Jean-Marc Valin [Fri, 4 Dec 2015 19:40:50 +0000 (14:40 -0500)]
opus_demo: fixes potential division by zero on files with no active frame

3 years agoFixes memory leak in some CELT unit tests
Jean-Marc Valin [Fri, 4 Dec 2015 19:35:18 +0000 (14:35 -0500)]
Fixes memory leak in some CELT unit tests

Reported in https://trac.xiph.org/ticket/2241

3 years agoAlways use the max of the decaying PLC energy and the background noise
Jean-Marc Valin [Thu, 3 Dec 2015 18:32:10 +0000 (13:32 -0500)]
Always use the max of the decaying PLC energy and the background noise

Should no longer cause discontinuities in the noise after 5 packets

3 years agoFixes the transient detector on silence
Jean-Marc Valin [Thu, 3 Dec 2015 19:12:01 +0000 (14:12 -0500)]
Fixes the transient detector on silence

Previously silence would cause the divide approximation on 0/0 to return a
very large value, which would be interpreted as a transient

3 years agoupdate sha256 in repo
Jean-Marc Valin [Wed, 25 Nov 2015 21:13:18 +0000 (16:13 -0500)]
update sha256 in repo

3 years agobump libtool revision
Jean-Marc Valin [Wed, 25 Nov 2015 02:20:32 +0000 (21:20 -0500)]
bump libtool revision

3 years agooggopus: Fix spelling
Mark Harris [Tue, 24 Nov 2015 19:10:20 +0000 (11:10 -0800)]
oggopus: Fix spelling

3 years agoBump draft version and date for submission.
Timothy B. Terriberry [Tue, 24 Nov 2015 04:56:09 +0000 (20:56 -0800)]
Bump draft version and date for submission.

3 years agoAdditional edits from Mark Harris.
Timothy B. Terriberry [Tue, 24 Nov 2015 04:54:56 +0000 (20:54 -0800)]
Additional edits from Mark Harris.

3 years agoAddress remaining document shepherd review comments.
Timothy B. Terriberry [Tue, 24 Nov 2015 01:32:28 +0000 (17:32 -0800)]
Address remaining document shepherd review comments.

Also remove most <preamble>/<postamble> usage for expository text,
 as most places center the result, which looks ugly (only local
 xml2rfc HTML output does not center: tools.ietf.org HTML output
 still does, as does the .txt version).

3 years agoRemove normative references to encoder or decoder.
Timothy B. Terriberry [Mon, 23 Nov 2015 22:27:54 +0000 (14:27 -0800)]
Remove normative references to encoder or decoder.

To avoid confusion with an RFC 6716 encoder/decoder.
No part of this document is intended to update RFC 6716.

3 years agoFix x86 build if we presume SSE4.1 (and earlier), but not AVX.
Jonathan Lennox [Fri, 20 Nov 2015 16:51:45 +0000 (11:51 -0500)]
Fix x86 build if we presume SSE4.1 (and earlier), but not AVX.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agooggopus: further cleanup in response to review.
Ralph Giles [Tue, 17 Nov 2015 23:39:47 +0000 (15:39 -0800)]
oggopus: further cleanup in response to review.

3 years agooggopus: Add IANA considerations.
Ralph Giles [Tue, 17 Nov 2015 23:39:05 +0000 (15:39 -0800)]
oggopus: Add IANA considerations.

I *think* all we need to do is document this and the RFC editors
will take care of it.

3 years agooggopus: Add Opus RTP as an informative reference.
Ralph Giles [Tue, 17 Nov 2015 23:37:20 +0000 (15:37 -0800)]
oggopus: Add Opus RTP as an informative reference.

We mention this in the description of Channel Mapping Family 0.
Might as well link to RFC 7587.

Review comment from Mo Zanaty.

3 years agooggopus: remove <spanx style="strong"> markup.
Ralph Giles [Tue, 17 Nov 2015 16:57:03 +0000 (08:57 -0800)]
oggopus: remove <spanx style="strong"> markup.

This improves readability in the xml2rfc html output, but
generates Markdown-style *bold* in the txt output, and
more importantly in the nroff-like html output of the
tools.ietf.org toolchain, which Mo Zanaty and some in
IRC objected to.

3 years agooggopus: Consolidate granulepos description.
Ralph Giles [Mon, 16 Nov 2015 21:31:09 +0000 (13:31 -0800)]
oggopus: Consolidate granulepos description.

Based on Mo Zanaty's review comments.

3 years agooggopus: Convert mentions of 'encoder' to 'muxer'.
Ralph Giles [Mon, 16 Nov 2015 20:54:46 +0000 (12:54 -0800)]
oggopus: Convert mentions of 'encoder' to 'muxer'.

Response to comments from Mo Zanaty. Using "muxer/demuxer"
really isn't less ambiguous than "encoder/decoder" but does
help distinguish between this draft and a 'codec encoder/decoder'
described by the Opus RFC.

3 years agoAdding AVX config switches
Radu Velea [Tue, 27 Oct 2015 10:21:36 +0000 (12:21 +0200)]
Adding AVX config switches

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 years agoNaming convention for AVX
Radu Velea [Tue, 27 Oct 2015 11:52:11 +0000 (13:52 +0200)]
Naming convention for AVX

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 years agoSuppress generation of comb_filter_const_c when not used; avoid warning.
Jonathan Lennox [Tue, 3 Nov 2015 05:47:43 +0000 (14:47 +0900)]
Suppress generation of comb_filter_const_c when not used; avoid warning.

3 years agoFix unit tests on ARM without RTCD (e.g. aarch64 or iOS).
Jonathan Lennox [Mon, 2 Nov 2015 12:56:23 +0000 (21:56 +0900)]
Fix unit tests on ARM without RTCD (e.g. aarch64 or iOS).

3 years agoDeclare silk_warped_LPC_analysis_filter_FIX_c in silk/fixed/main_FIX.h.
Jonathan Lennox [Mon, 2 Nov 2015 12:56:22 +0000 (21:56 +0900)]
Declare silk_warped_LPC_analysis_filter_FIX_c in silk/fixed/main_FIX.h.

Fixes build failure on platforms with MAY_HAVE_SSE4_1 (but not PRESUME_SSE4_1) with --enable-intrinsics.

3 years agoUpdating links for both https and new versions v1.1.1-rc
Mark Harris [Fri, 23 Oct 2015 17:19:48 +0000 (13:19 -0400)]
Updating links for both https and new versions

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoCorrections to doc
Mark Harris [Fri, 23 Oct 2015 17:18:08 +0000 (13:18 -0400)]
Corrections to doc

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoconfigure: Remove empty else clauses from AS_IF
Timothy B. Terriberry [Fri, 16 Oct 2015 20:02:24 +0000 (13:02 -0700)]
configure: Remove empty else clauses from AS_IF

These were causing "syntax error near unexpected token `fi'" in the
 generated configure on some systems, because they produced an



 with no commands between the two.

4 years agoAdds "arch" argument to MIPS MDCT
Rhishikesh Agashe [Thu, 8 Oct 2015 10:12:43 +0000 (06:12 -0400)]
Adds "arch" argument to MIPS MDCT

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoFix dump_modes output for fixed-point NE10.
Timothy B. Terriberry [Wed, 7 Oct 2015 23:45:44 +0000 (19:45 -0400)]
Fix dump_modes output for fixed-point NE10.

Some of the fields present in NE10's float state struct are not
 present in the fixed-point version, but we were generating
 initializers for them anyway.
Also, the float modes were not up-to-date with the output of

4 years agoarmv7: Enable NE10's fixed-point FFT for the MDCT
Viswanath Puttagunta [Fri, 15 May 2015 17:42:26 +0000 (12:42 -0500)]
armv7: Enable NE10's fixed-point FFT for the MDCT

Extends usage of NEON optimized fixed-point FFT optimizations
in libNE10 to clt_mdct_forward and clt_mdct_backward.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoarmv7: Optimize fixed point FFT using NE10 library
Viswanath Puttagunta [Fri, 15 May 2015 17:42:25 +0000 (12:42 -0500)]
armv7: Optimize fixed point FFT using NE10 library

Uses NEON optimized fixed point FFT routines in NE10 library.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agotest_unit_dft: Add nfft = 60, 240, 480 tests
Viswanath Puttagunta [Fri, 15 May 2015 17:42:24 +0000 (12:42 -0500)]
test_unit_dft: Add nfft = 60, 240, 480 tests

Signed-off-by: Viswanath Puttagunta <viswanath.puttagunta@linaro.org>
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoarmv7(float): Optimize decode usecase using NE10 library
Viswanath Puttagunta [Fri, 15 May 2015 17:42:20 +0000 (12:42 -0500)]
armv7(float): Optimize decode usecase using NE10 library

Optimize opus decode (float only) use case using ARM NE10.
Mainly effects opus_ifft and ctl_mdct_backward and related

Work based on previous Encode optimization using ARM NE10
library. See previous commit for details on how to enable

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoarmv7(float): Optimize encode usecase using NE10 library
Viswanath Puttagunta [Fri, 15 May 2015 17:42:19 +0000 (12:42 -0500)]
armv7(float): Optimize encode usecase using NE10 library

Optimize opus encode (float only) usecase using ARM NE10
library. Mainly effects opus_fft and ctl_mdct_forward
and related functions.

This optimization can be used for ARM CPUs that have NEON
VFP unit. This patch only enables optimizations for ARMv7.

Official ARM NE10 library page available at

To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
--enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir>

Compile time checks made during configure process to make sure
optimization option available only when compiler supports NEON

Runtime checks made to make sure optimized functions only called
on appropriate hardware.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
4 years agoMove the external ARM asm to a separate library.
Timothy B. Terriberry [Tue, 6 Oct 2015 17:16:24 +0000 (13:16 -0400)]
Move the external ARM asm to a separate library.

This library is linked statically with libopus.so, so nothing
 changes on an installed system.
This merely simplifies linking in the unit tests.
Based in part on a patch originally by Viswanath Puttagunta

4 years agoAdd entcode.c to the dump_modes binary.
Timothy B. Terriberry [Wed, 7 Oct 2015 19:29:41 +0000 (15:29 -0400)]
Add entcode.c to the dump_modes binary.

This is needed for the SMALL_DIV_TABLE constants added in commit

4 years agoFixes compile problems for MIPS
Rhishikesh Agashe [Wed, 7 Oct 2015 17:55:12 +0000 (13:55 -0400)]
Fixes compile problems for MIPS

Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agotrivial_example: Fix error message
Mark Harris [Wed, 7 Oct 2015 13:22:57 +0000 (09:22 -0400)]
trivial_example: Fix error message

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoExtra safety against NaNs in surround_analysis()
Mark Harris [Wed, 7 Oct 2015 13:21:23 +0000 (09:21 -0400)]
Extra safety against NaNs in surround_analysis()

Fix out-of-bounds memory read in multichannel surround analysis
with float input that contains NaNs.  Found by afl-fuzz.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
4 years agoPreventing NaNs from crashing surround_analysis()
Jean-Marc Valin [Wed, 7 Oct 2015 13:17:50 +0000 (09:17 -0400)]
Preventing NaNs from crashing surround_analysis()

4 years agoRemove spurious ACLOCAL_FLAGS variable from autogen.sh.
Ralph Giles [Sat, 26 Sep 2015 01:13:47 +0000 (18:13 -0700)]
Remove spurious ACLOCAL_FLAGS variable from autogen.sh.

autoreconf looks for ACLOCAL_*FLAGS in Makefile.am and will
pass that on when it invokes aclocal. Furthermore, setting
a local like this doesn't make it available to subcommands,
so the line has no effect.

4 years agoMake it possible to pass in paths to opus_demo and opus_compare. jon_patches
Jonathan Lennox [Tue, 4 Aug 2015 19:24:21 +0000 (15:24 -0400)]
Make it possible to pass in paths to opus_demo and opus_compare.

This patch lets you pass paths for opus_demo and opus_compare to the
run_vectors.sh script.

The motivation for this was for my aarch64 patches (forthcoming),
which I've been testing under qemu.  I want to run an emulated
opus_demo, but a native opus_compare, so the script completes in a
reasonable amount of time.

4 years agoCreate OPUS_FAST_INT64 macro, to abstract conditions where opus_int64 should be used.
Jonathan Lennox [Tue, 4 Aug 2015 19:47:55 +0000 (15:47 -0400)]
Create OPUS_FAST_INT64 macro, to abstract conditions where opus_int64 should be used.

This patch adds a macro abstracting the condition under which the silk
math macros use opus_int64-based calculations rather than opus_int32.
No substantive change, but will make it easier to adjust if additional
such platforms are found in the future.