opus.git
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
   implications.

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

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

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
 <https://www.ietf.org/mail-archive/web/codec/current/msg03169.html>
 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

3 years agoRenamed MAX_PULSES to SILK_MAX_PULSES and CELT_MAX_PULSES
Jean-Marc Valin [Thu, 31 Dec 2015 19:43:49 +0000 (14:43 -0500)]
Renamed MAX_PULSES to SILK_MAX_PULSES and CELT_MAX_PULSES

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

  else

  fi

 with no commands between the two.

3 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>
3 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
 dump_modes.

3 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>
3 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>
3 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>
3 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
functions.

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

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 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
http://projectne10.github.io/Ne10/

To enable this optimization, use
--enable-intrinsics --with-NE10=<install_prefix>
or
--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
instrinsics.

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

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
3 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
 <viswanath.puttagunta@linaro.org>.

3 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
 ec5d01cbe486.

3 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>
3 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>
3 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>
3 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()

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

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

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

3 years agoUse ProjectReference rather than AdditionalDependencies for test programs, so build...
Jonathan Lennox [Mon, 3 Aug 2015 21:04:29 +0000 (17:04 -0400)]
Use ProjectReference rather than AdditionalDependencies for test programs, so build dependencies are right.

Actually add source code to opus_demo project, and fix its include paths.

3 years agoAdd intrinsics support to Visual Studio build.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:28 +0000 (17:04 -0400)]
Add intrinsics support to Visual Studio build.

3 years agoReorganize x86 SSE intrinsics code.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:27 +0000 (17:04 -0400)]
Reorganize x86 SSE intrinsics code.

Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.

3 years agoMove SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled with...
Jonathan Lennox [Mon, 3 Aug 2015 21:04:26 +0000 (17:04 -0400)]
Move SSE2 and SSE4.1 intrinsics functions to separate files, to be compiled with appropriate compiler flags. Otherwise, compilers are allowed to take advantage of (e.g.) -msse4.1 to generate code that uses SSE4.1 instructions, even when no SSE4.1 intrinsics are explicitly used in the source.

3 years agoRemove some unnecessary #includes from x86cpu.c.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:25 +0000 (17:04 -0400)]
Remove some unnecessary #includes from x86cpu.c.

3 years agoFix struct initialization of CPU_Feature structure.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:24 +0000 (17:04 -0400)]
Fix struct initialization of CPU_Feature structure.

3 years agoFix cpuid asm on 32-bit PIC.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:23 +0000 (17:04 -0400)]
Fix cpuid asm on 32-bit PIC.

3 years agoFix instruction used for cpuid test.
Jonathan Lennox [Mon, 3 Aug 2015 21:04:22 +0000 (17:04 -0400)]
Fix instruction used for cpuid test.

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

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

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

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