7 years agoGen-art (bit allocation work).
Jean-Marc Valin [Tue, 15 May 2012 20:13:18 +0000 (16:13 -0400)]
Gen-art (bit allocation work).

Also, make the archive work with older versions of tar

7 years agoGen-art part2
Jean-Marc Valin [Tue, 15 May 2012 18:46:21 +0000 (14:46 -0400)]
Gen-art part2

7 years agoGen-art update
Jean-Marc Valin [Tue, 15 May 2012 16:22:12 +0000 (12:22 -0400)]
Gen-art update

7 years agoGen-art part2
Timothy B. Terriberry [Tue, 15 May 2012 14:51:59 +0000 (10:51 -0400)]
Gen-art part2

7 years agodraft: reference for LSP stability
Jean-Marc Valin [Tue, 15 May 2012 14:49:41 +0000 (10:49 -0400)]
draft: reference for LSP stability

7 years agoMake vararray and restrict checks fail GCC 2.95.3's broken implementation.
Gregory Maxwell [Mon, 14 May 2012 05:58:05 +0000 (01:58 -0400)]
Make vararray and restrict checks fail GCC 2.95.3's broken implementation.

7 years agoImprove portability to BeOS via some configure.ac fixes and cleanups.
Gregory Maxwell [Mon, 14 May 2012 04:30:34 +0000 (00:30 -0400)]
Improve portability to BeOS via some configure.ac fixes and cleanups.

7 years agoRemove unused headers/defines in silk/typedef.h, improving portability to AMIX4.0...
Gregory Maxwell [Sun, 13 May 2012 23:17:16 +0000 (19:17 -0400)]
Remove unused headers/defines in silk/typedef.h, improving portability to AMIX4.0/GCC1.4.

Gregory Maxwell [Sun, 13 May 2012 15:40:19 +0000 (11:40 -0400)]

This will help prevent people using non-standard build environments from
footgunning themselves and becoming a support burden.

7 years agoSILK to print error line with FIXED_DEBUG, assert with FIXED_DEBUG_ASSERT.
Gregory Maxwell [Sun, 13 May 2012 15:14:11 +0000 (11:14 -0400)]
SILK to print error line with FIXED_DEBUG, assert with FIXED_DEBUG_ASSERT.

7 years agoWhen FIXED_DEBUG_ASSERT CELT will assert on fixed-debug error.
Gregory Maxwell [Sun, 13 May 2012 15:10:58 +0000 (11:10 -0400)]
When FIXED_DEBUG_ASSERT CELT will assert on fixed-debug error.

7 years agoGen-art sync
Jean-Marc Valin [Mon, 14 May 2012 22:30:48 +0000 (18:30 -0400)]
Gen-art sync

7 years agoMore on Gen-art part2
Jean-Marc Valin [Mon, 14 May 2012 21:56:26 +0000 (17:56 -0400)]
More on Gen-art part2

7 years agoSome Gen-art part2 changes
Jean-Marc Valin [Mon, 14 May 2012 20:28:33 +0000 (16:28 -0400)]
Some Gen-art part2 changes

7 years agoGen-art changes
Timothy B. Terriberry [Mon, 14 May 2012 02:16:44 +0000 (22:16 -0400)]
Gen-art changes

7 years agoMinor genart update
Jean-Marc Valin [Sat, 12 May 2012 04:29:13 +0000 (00:29 -0400)]
Minor genart update

7 years agoMore Gen-art changes
Jean-Marc Valin [Fri, 11 May 2012 20:31:54 +0000 (16:31 -0400)]
More Gen-art changes

7 years agoMore Gen-art changes
Jean-Marc Valin [Fri, 11 May 2012 20:00:45 +0000 (16:00 -0400)]
More Gen-art changes

7 years agoFirst set of changes for Gen-art review
Jean-Marc Valin [Fri, 11 May 2012 17:41:41 +0000 (13:41 -0400)]
First set of changes for Gen-art review

7 years agoFixes a fixed-point overflow by scaling pitch search more conservatively
Jean-Marc Valin [Fri, 11 May 2012 16:09:05 +0000 (12:09 -0400)]
Fixes a fixed-point overflow by scaling pitch search more conservatively

7 years agoMake it possible for the mono test to fail
Jean-Marc Valin [Fri, 11 May 2012 05:12:23 +0000 (01:12 -0400)]
Make it possible for the mono test to fail

7 years agoAddressing the remaining comments from Robert Sparks
Jean-Marc Valin [Thu, 10 May 2012 20:00:19 +0000 (16:00 -0400)]
Addressing the remaining comments from Robert Sparks

7 years agoIncrease alignment of the internal state structures to sizeof(void *) from 4 bytes.
Gregory Maxwell [Sat, 5 May 2012 00:01:56 +0000 (20:01 -0400)]
Increase alignment of the internal state structures to sizeof(void *) from 4 bytes.

OpusCustomMode begins with a pointer and was getting misaligned on 64 bit arches.

7 years agoMake opus_demo r/w little-endian PCM independent of host byte-order.
Gregory Maxwell [Mon, 30 Apr 2012 14:22:03 +0000 (10:22 -0400)]
Make opus_demo r/w little-endian PCM independent of host byte-order.

7 years agoFixes two fixed-point overflow issues
Jean-Marc Valin [Thu, 10 May 2012 16:36:46 +0000 (12:36 -0400)]
Fixes two fixed-point overflow issues

One in SILK, one in CELT, none of them causing real harm in practice it seems

7 years agoFixes a (harmless) float overflow in the pitch search
Jean-Marc Valin [Tue, 8 May 2012 17:58:57 +0000 (13:58 -0400)]
Fixes a (harmless) float overflow in the pitch search

7 years agoAvoid the unnecessary resynth averaging on intensity switch when encoding.
Gregory Maxwell [Sun, 6 May 2012 03:12:50 +0000 (23:12 -0400)]
Avoid the unnecessary resynth averaging on intensity switch when encoding.

Prevents some arithmetic on uninitialized memory that may contain nans.

7 years agoIncrease alignment of the internal state structures to sizeof(void *) from 4 bytes.
Gregory Maxwell [Sat, 5 May 2012 00:01:56 +0000 (20:01 -0400)]
Increase alignment of the internal state structures to sizeof(void *) from 4 bytes.

OpusCustomMode begins with a pointer and was getting misaligned on 64 bit arches.

7 years agoMake opus_demo r/w little-endian PCM independent of host byte-order.
Gregory Maxwell [Mon, 30 Apr 2012 14:22:03 +0000 (10:22 -0400)]
Make opus_demo r/w little-endian PCM independent of host byte-order.

7 years agoMake it possible for run_vectors.sh to fail on the mono tests.
Gregory Maxwell [Mon, 30 Apr 2012 08:13:20 +0000 (04:13 -0400)]
Make it possible for run_vectors.sh to fail on the mono tests.

7 years agoRemove automake color-tests and parallel-tests because they break solaris and require...
Gregory Maxwell [Mon, 30 Apr 2012 00:24:36 +0000 (20:24 -0400)]
Remove automake color-tests and parallel-tests because they break solaris and require much newer autotools.

This reverts commit a69368e1c0a028b50f1c00864d9c7c2f4527a089.

7 years agoReadme updates.
Gregory Maxwell [Wed, 25 Apr 2012 17:30:21 +0000 (13:30 -0400)]
Readme updates.

7 years agoFixes a (harmless) numerical overflow in noise_shape_analysis_FIX.c
Jean-Marc Valin [Wed, 25 Apr 2012 00:45:04 +0000 (20:45 -0400)]
Fixes a (harmless) numerical overflow in noise_shape_analysis_FIX.c

Actual behaviour was correct on most architectures and breaking that
code would have required a particularly smart compiler.

7 years agoUses opus_int32 for fs_API_Hz parameter in silk_decoder_set_fs
Jean-Marc Valin [Tue, 24 Apr 2012 21:18:58 +0000 (17:18 -0400)]
Uses opus_int32 for fs_API_Hz parameter in silk_decoder_set_fs

7 years agoChanges all uses of SHR()/SHL() macros to SHR32()/SHL32()
Jean-Marc Valin [Tue, 24 Apr 2012 21:12:25 +0000 (17:12 -0400)]
Changes all uses of SHR()/SHL() macros to SHR32()/SHL32()

7 years agoPrevents remove_doubling() from considering negative pitch gains
Jean-Marc Valin [Tue, 24 Apr 2012 21:00:54 +0000 (17:00 -0400)]
Prevents remove_doubling() from considering negative pitch gains

7 years agoAdd fwrite() error handling in repacketizer_demo.
Gregory Maxwell [Mon, 23 Apr 2012 17:52:00 +0000 (13:52 -0400)]
Add fwrite() error handling in repacketizer_demo.

7 years agoMinor comment formatting change
Gregory Maxwell [Tue, 24 Apr 2012 05:45:01 +0000 (01:45 -0400)]
Minor comment formatting change

7 years agoMerge commit '390c89225d'
Jean-Marc Valin [Tue, 24 Apr 2012 17:39:22 +0000 (13:39 -0400)]
Merge commit '390c89225d'

7 years agoMinor comment formatting change draft-12 v0.9.10
Gregory Maxwell [Tue, 24 Apr 2012 05:45:01 +0000 (01:45 -0400)]
Minor comment formatting change

7 years agoAdds 3rd clause to CELT license
Jean-Marc Valin [Mon, 23 Apr 2012 18:24:19 +0000 (14:24 -0400)]
Adds 3rd clause to CELT license

7 years agoAdds some references, bumps version number
Jean-Marc Valin [Tue, 24 Apr 2012 04:57:04 +0000 (00:57 -0400)]
Adds some references, bumps version number

7 years agoAddressing AD issues
Timothy B. Terriberry [Tue, 24 Apr 2012 04:37:04 +0000 (00:37 -0400)]
Addressing AD issues

Including a description of the PVQ encoder and decoder

7 years agoAdds note on monic filter
Jean-Marc Valin [Mon, 23 Apr 2012 20:24:45 +0000 (16:24 -0400)]
Adds note on monic filter

7 years agoFix negative write bug in opus_demo and add some fwrite() error handling.
Gregory Maxwell [Mon, 23 Apr 2012 17:51:23 +0000 (13:51 -0400)]
Fix negative write bug in opus_demo and add some fwrite() error handling.

7 years agos/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"
Jean-Marc Valin [Fri, 20 Apr 2012 20:40:24 +0000 (16:40 -0400)]
s/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"

Also added 3rd clause to "master" COPYING file

7 years agoLicense update using the IETF Trust flavour of the BSD on the Silk code
Jean-Marc Valin [Fri, 20 Apr 2012 20:31:04 +0000 (16:31 -0400)]
License update using the IETF Trust flavour of the BSD on the Silk code

7 years agoMore changes addressing Robert Sparks' review
Timothy B. Terriberry [Fri, 20 Apr 2012 19:47:37 +0000 (15:47 -0400)]
More changes addressing Robert Sparks' review

7 years agoMisc changes to address Robert Sparks' comments
Jean-Marc Valin [Fri, 20 Apr 2012 14:26:08 +0000 (10:26 -0400)]
Misc changes to address Robert Sparks' comments

See http://www.ietf.org/mail-archive/web/codec/current/msg02833.html
Still more changes to come

7 years agooops, this removes dead code left from previous commit
Jean-Marc Valin [Fri, 13 Apr 2012 16:29:51 +0000 (12:29 -0400)]
oops, this removes dead code left from previous commit

7 years agoMakes silk_ADD_SAT32() conform to the C standard
Jean-Marc Valin [Thu, 12 Apr 2012 20:35:19 +0000 (16:35 -0400)]
Makes silk_ADD_SAT32() conform to the C standard

This changes the saturation test to ensure that it relies on the
unsigned overflow behaviour (which is allowed) rather than the signed
overflow behaviour (which is undefined).

7 years agoFixes several overflows in the CELT fixed-point
Jean-Marc Valin [Thu, 12 Apr 2012 15:07:21 +0000 (11:07 -0400)]
Fixes several overflows in the CELT fixed-point

These were all mostly benign and would at worst result in (rare)
suboptimal encoder decisions rather than signal corruption.

7 years agoFixes a bug introduced by the previous commit
Jean-Marc Valin [Sun, 8 Apr 2012 03:03:24 +0000 (23:03 -0400)]
Fixes a bug introduced by the previous commit

celt_ilog2() could be called with 0 which is undefined.

7 years agoFixes some overflows in the fixed-point pitch code
Jean-Marc Valin [Sat, 7 Apr 2012 03:32:11 +0000 (23:32 -0400)]
Fixes some overflows in the fixed-point pitch code

The overflows reported were:
- Syy in find_best_pitch() in pitch.c
- xy, xx and yy in remove_doubling() in pitch.c

The fixes are:
- Adaptive scaling in pitch_downsample() which also improves quality
- Adding a missing downshift in find_best_pitch()
- More conservative yshift when calling find_best_pitch()

7 years agoRename to header makefile fragements to .mk
Ralph Giles [Thu, 5 Apr 2012 16:23:47 +0000 (09:23 -0700)]
Rename to header makefile fragements to .mk

The opus_headers.txt, etc. files are makefile
fragments defining variables with a list of
required header files for the build. As such
they should use the .mk filename extension,
just like opus_sources.mk, etc.

7 years agoAdd opus_custom.h to celt_headers.txt.
Ralph Giles [Thu, 5 Apr 2012 16:19:25 +0000 (09:19 -0700)]
Add opus_custom.h to celt_headers.txt.

This file is included unconditionally by celt.h.
As such it's a required part of the build and
should be in the header index files.

7 years agoCast a factor to maintain precision on 16 bit systems.
Ralph Giles [Thu, 22 Mar 2012 21:13:33 +0000 (14:13 -0700)]
Cast a factor to maintain precision on 16 bit systems.

The multiply would overflow with 16 bit ints. Thanks
to Riccardo Micci for pointing out the issue. Thanks
to Tim Terriberry for the valid range of the decay

Note that ft is unsigned, but always less than 32736,
so we could use a 16 bit signed type here if it allows
the compiler to produce faster code (with signed 16*16
and 16*32 multiplies). In the absense of actual cycle
counts from a real platform, I've left it as an unsigned
for the sake of readability.

For similar reasons we cast (16384-decay) to a signed
integer even though it is also always positive.

7 years agoImprove decoder_create documentation.
Ralph Giles [Thu, 22 Mar 2012 20:29:04 +0000 (13:29 -0700)]
Improve decoder_create documentation.

The parameter descriptions look like they were copied
from encoder_create. Update them for the decode side
and repeat the clarifications about what sample rates
are allowed and what they mean.

7 years agoRemove trailing whitespace.
Ralph Giles [Tue, 20 Mar 2012 00:10:13 +0000 (17:10 -0700)]
Remove trailing whitespace.

Also fixes a minor typo.

7 years agoFixes a bunch of 16-bit issues that the C5X compiler warns about
Jean-Marc Valin [Thu, 8 Mar 2012 19:09:09 +0000 (14:09 -0500)]
Fixes a bunch of 16-bit issues that the C5X compiler warns about

7 years agoFixes int vs opus_int32 compile errors on C5x
Jean-Marc Valin [Thu, 8 Mar 2012 17:19:07 +0000 (12:19 -0500)]
Fixes int vs opus_int32 compile errors on C5x

7 years agoCLANG IOC no longer likes the 'deterministic random' bitstreams, so move the test_opu...
Gregory Maxwell [Tue, 6 Mar 2012 16:42:40 +0000 (11:42 -0500)]
CLANG IOC no longer likes the 'deterministic random' bitstreams, so move the test_opus_decode bailout up.

7 years agoFix documenation typos.
Ralph Giles [Fri, 2 Dec 2011 21:26:02 +0000 (13:26 -0800)]
Fix documenation typos.

Doxygen is smart enough to insert a period if the paragraph
before the @see directive, which starts a new section, doesn't
have one. Unfortunately it's not smart enough to convert a
comma to a period. So while the "description, @see foo" idiom
used for the CTL documentation scans well in the header file,
the Doxygen output end up with "description,.\n".

Minimal change to remove the offending commas.

7 years agoFix typos in the API documentation.
Ralph Giles [Fri, 2 Dec 2011 21:22:22 +0000 (13:22 -0800)]
Fix typos in the API documentation.

opus_decode() takes a sixth 'enable_fec' option. Naive invocations
shoudl set this to zero.

7 years agoRestore the windows-side #ifdef check in silk/MacroDebug.h.
Ralph Giles [Wed, 30 Nov 2011 22:11:23 +0000 (14:11 -0800)]
Restore the windows-side #ifdef check in silk/MacroDebug.h.

We still override the '#if 0' with FIXED_DEBUG, but this
leaves whatever Koen intended here more intact. Suggestion
from Greg Maxwell.

7 years agoCheck for underflow in the debug USUB32.
Ralph Giles [Wed, 30 Nov 2011 19:54:20 +0000 (11:54 -0800)]
Check for underflow in the debug USUB32.

7 years agoEnable the silk debug macros with FIXED_DEBUG.
Ralph Giles [Wed, 30 Nov 2011 19:41:47 +0000 (11:41 -0800)]
Enable the silk debug macros with FIXED_DEBUG.

This isn't entirely accurate, since it's also used on integer
math. However, the idea is similar: to add bounds checking.

This code asserts rather than warning, so one must pass
--enable-assertions to configure as well to get any output,
and in that case the first instance is fatal.

Quick testing shows both test_opus_decode and test_opus_encode
trigger the assertions, but running the draft-10 test vectors
does not.

7 years agoFix a signed-compare warning.
Ralph Giles [Wed, 30 Nov 2011 18:48:32 +0000 (10:48 -0800)]
Fix a signed-compare warning.

The silk math debug macros include a bounds check on silk_abs.
Because INT_MIN = (-INT_MAX - 1), abs(INT_MIN) can't be
represented as an int. The macro was checking for this value
as 0x8000... without a cast to signed, warning on gcc.

silk/typedef.h already defines minimum values for the int
types, so we correct the warning by using those.

7 years agoPrint the actual arguments to the debug UADD/SUB32 routines.
Ralph Giles [Wed, 30 Nov 2011 18:38:40 +0000 (10:38 -0800)]
Print the actual arguments to the debug UADD/SUB32 routines.

The versions of UADD32 and USUB32 in fixed_debug.h take
unsigned long long (ideally 64 bit) inputs, and range
check the arguments. However, the printed warnings cast
them to (unsigned), which is confusing. Instead, print
the full value passed in.

NB this will make negative values print has huge,
rather than negative, values.

7 years agoUncomment the reporting for UADD32 and USUB32 in fixed_debug.h.
Ralph Giles [Wed, 30 Nov 2011 18:28:35 +0000 (10:28 -0800)]
Uncomment the reporting for UADD32 and USUB32 in fixed_debug.h.

7 years agoUsed unsigned intermediates with unsigned arguments in fixed_debug.h.
Ralph Giles [Wed, 30 Nov 2011 17:55:08 +0000 (09:55 -0800)]
Used unsigned intermediates with unsigned arguments in fixed_debug.h.

Corrects a signed-compare warning.

7 years agoUse automake's support for parallel test execution.
Ralph Giles [Tue, 29 Nov 2011 21:24:56 +0000 (13:24 -0800)]
Use automake's support for parallel test execution.

On my system this speeds up 'make -j8 check' by about
50%. The drawback is that we don't get to see Greg's
nice output from the test programmes. It's hidden in
a log file, even on failure or 'make V=1'. Probably
this is better for most people; developers can run
the tests manually.

7 years agoFix --enable-fixed-point-debug.
Ralph Giles [Tue, 29 Nov 2011 19:29:39 +0000 (11:29 -0800)]
Fix --enable-fixed-point-debug.

Use the celt_mips defined in fixed_debug.h from the unit tests
by defining CELT_C earlier. We must export celt_mips so it can
be used by clients calling the library, like opus_custom_demo.

7 years agoGuard against pathologically small buffer
Vincent Penquerc'h [Tue, 22 Nov 2011 15:12:44 +0000 (15:12 +0000)]
Guard against pathologically small buffer

7 years agoMake input mapping parameter const in multistream API
Vincent Penquerc'h [Wed, 23 Nov 2011 15:17:30 +0000 (15:17 +0000)]
Make input mapping parameter const in multistream API

7 years agoAdds missing RESTORE_STACK statements on error paths
Jean-Marc Valin [Tue, 6 Mar 2012 00:56:13 +0000 (19:56 -0500)]
Adds missing RESTORE_STACK statements on error paths

Thanks to Vincent Penquerc'h

7 years agoMore consistent types for 16-bit architectures
Jean-Marc Valin [Tue, 6 Mar 2012 00:19:59 +0000 (19:19 -0500)]
More consistent types for 16-bit architectures

7 years agoRemoves a number of macro definitions which are used nowhere in the codebase.
Gregory Maxwell [Wed, 14 Dec 2011 20:54:07 +0000 (15:54 -0500)]
Removes a number of macro definitions which are used nowhere in the codebase.

7 years agoVarious multistream fixes.
Gregory Maxwell [Wed, 14 Dec 2011 05:52:24 +0000 (00:52 -0500)]
Various multistream fixes.

Fixes the encoder bitrate CTLs to correctly apply to all streams,
prevents the MS encoder from starving the latter streams by not
reserving a reasonable minimum amount of space for them.

7 years ago40/60ms MDCT/Hybrid were not able to reach maximum bitrate. Now they can.
Gregory Maxwell [Sun, 20 Nov 2011 04:58:09 +0000 (23:58 -0500)]
40/60ms MDCT/Hybrid were not able to reach maximum bitrate. Now they can.

Also change the packet length in the API from int to opus_int32
because repacketized frames are able to go beyond 32767 bytes
in size.

7 years agoAdd config.h (and copyright notice) to repacketizer_demo.c.
Gregory Maxwell [Wed, 14 Dec 2011 22:55:12 +0000 (17:55 -0500)]
Add config.h (and copyright notice) to repacketizer_demo.c.

This fixes some problems with cross-compiles.

7 years agoEliminates an unused parameter warning in anti_collapse()
Jean-Marc Valin [Mon, 5 Mar 2012 22:13:59 +0000 (17:13 -0500)]
Eliminates an unused parameter warning in anti_collapse()

7 years agoLast updates for draft -11 v0.9.9
Jean-Marc Valin [Fri, 17 Feb 2012 21:09:21 +0000 (16:09 -0500)]
Last updates for draft -11

- Draft updates
- Updated code to produce and check test vectors
- Making sure that the test vectors pass at all rates as well as for mono and stereo

7 years agoModifies the comparison tool to make it much more permissive.
Jean-Marc Valin [Wed, 8 Feb 2012 14:41:50 +0000 (09:41 -0500)]
Modifies the comparison tool to make it much more permissive.

7 years agoFixes MSVC warnings
Koen Vos [Tue, 31 Jan 2012 19:49:40 +0000 (14:49 -0500)]
Fixes MSVC warnings

7 years agoTweaks the CELT fractional resampling delay to get perfect alignment
Jean-Marc Valin [Tue, 31 Jan 2012 07:03:39 +0000 (02:03 -0500)]
Tweaks the CELT fractional resampling delay to get perfect alignment

Also using the same int->float conversion functions for SILK as for CELT
and changed encoder implementation default to constrained VBR just to
be safe when VBR gets more aggressive.

7 years agoLast part of the LPC work stabilization work discussed at the last meeting
Koen Vos [Tue, 31 Jan 2012 06:51:22 +0000 (01:51 -0500)]
Last part of the LPC work stabilization work discussed at the last meeting

Also adds the encoder part of commit ee8adbe701 as well as a few
minor cleanups.

7 years agoImprovements to the tests, add a TEST_OPUS_NOFUZZ to disable testing corrupted input.
Gregory Maxwell [Wed, 14 Dec 2011 07:03:50 +0000 (02:03 -0500)]
Improvements to the tests, add a TEST_OPUS_NOFUZZ to disable testing corrupted input.

No changes to the codec itself.

7 years agoMaking the PLC robust to overflows caused by extreme bit-streams
Jean-Marc Valin [Tue, 24 Jan 2012 22:32:09 +0000 (11:32 +1300)]
Making the PLC robust to overflows caused by extreme bit-streams

This is not strictly necessary because the only streams that cause these
already sound horrible, but it helps the testing process.

7 years agoFixes a non-bitstream-related PLC integer overflow.
Jean-Marc Valin [Tue, 24 Jan 2012 08:08:15 +0000 (21:08 +1300)]
Fixes a non-bitstream-related PLC integer overflow.

7 years agoFixes a few minor issues (no bit-stream change)
Jean-Marc Valin [Tue, 24 Jan 2012 01:45:08 +0000 (14:45 +1300)]
Fixes a few minor issues (no bit-stream change)

- Safer gain clamping for PLC
- Makes opus_decoder_get_nb_samples() report an error on invalid ToC
- Giving a free license to the text ofthe draft (not just the code)

7 years agoAccuracy improvements to help float implementations
Koen Vos [Wed, 14 Dec 2011 16:39:29 +0000 (11:39 -0500)]
Accuracy improvements to help float implementations

Also clamps the gain to avoid forcing a float decoder to emulate the
state rescaling.

7 years agoFixes two minor issues found in random testing at ridiculously low rate.
Jean-Marc Valin [Tue, 13 Dec 2011 19:52:43 +0000 (14:52 -0500)]
Fixes two minor issues found in random testing at ridiculously low rate.

- When it cannot produce the rate it's being asked, the encoder now
  returns a "PLC packet"
- Makes it possible to use the CELT PLC for more than 20 ms

7 years agoImproves the accuracy such that it matches a float decoder much better
Koen Vos [Tue, 13 Dec 2011 19:50:12 +0000 (14:50 -0500)]
Improves the accuracy such that it matches a float decoder much better

7 years agoSILK fixes following last codec WG meeting
Koen Vos [Tue, 13 Dec 2011 19:47:31 +0000 (14:47 -0500)]
SILK fixes following last codec WG meeting

- fixed incorrect scaling of filter states for the smallest quantization
  step sizes
- NLSF2A now limits the prediction gain of LPC filters

- increased damping of LTP coefficients in LTP analysis
- increased white noise fraction in noise shaping LPC analysis
- introduced maximum total prediction gain.  Used by Burg's method to
  exit early if prediction gain is exceeded.  This improves packet
  loss robustness and numerical robustness in Burg's method
- Prefiltered signal is now in int32 Q10 domain, from int16 Q0
- Increased max number of iterations in CBR gain control loop from 5 to 6
- Removed useless code from LTP scaling control
- Optimization: smarter LPC loop unrolling
- Switched default win32 compile mode to be floating-point

- made resampler have constant delay of 0.75 ms; removed delay
  compensation from silk code.
- removed obsolete table entries (~850 Bytes)
- increased downsampling filter order from 16 to 18/24/36 (depending on
  frequency ratio)
- reoptimized filter coefficients

7 years agoMove nbits_total initialize before renormalization.
Timothy B. Terriberry [Tue, 29 Nov 2011 16:03:03 +0000 (08:03 -0800)]
Move nbits_total initialize before renormalization.

The range decoder used to initialize nbits_total after the
 renormalization loop, even though the renormalization loop
 modifies it.
This was presumably safe, because nothing actually used the value
 before it was initialized, but I'm tired of it triggering the
 integer overflow checking.

7 years agoFixes the code for optional self-delimited packing to make it fit the draft
Gregory Maxwell [Tue, 29 Nov 2011 04:19:08 +0000 (23:19 -0500)]
Fixes the code for optional self-delimited packing to make it fit the draft

This has no impact on opus_demo, test vectors, or "normal" codec operation

7 years agoAll variables named "bank" renamed to "bandE" to avoid problems on SHARC
Jean-Marc Valin [Fri, 2 Dec 2011 17:38:32 +0000 (12:38 -0500)]
All variables named "bank" renamed to "bandE" to avoid problems on SHARC

SHARK compiler treaks "bank" as a reserved keyword -- go figure.

7 years agoRename '_FOO' to avoid potentional collisions with reserved identifiers.
Ralph Giles [Fri, 25 Nov 2011 21:02:00 +0000 (13:02 -0800)]
Rename '_FOO' to avoid potentional collisions with reserved identifiers.

C reserves identifiers of the from _[A-Z]+ and we have a number of
those in the code. This patch renames the various function arguments,
MACROS and preprocessor symbols to avoid the reserved form.

It also removes the CHANNELS() macro altogether. This was a
minor optimization for TI DSP to force a mono-only build,
as were the associated local 'const' versions. Since stereo
support is manditory, it wasn't worth keeping.

Thanks to John Ridges for raising the issue, and Jean-Marc Valin
and Greg Maxwell for reviewing the changes.

7 years agoSome minor (non-bitstream-affecting) changes to help us have better test vectors
Jean-Marc Valin [Tue, 29 Nov 2011 03:48:01 +0000 (22:48 -0500)]
Some minor (non-bitstream-affecting) changes to help us have better test vectors

These fix corner cases discovered during the latest fuzzing tests.