6 years agoDynalloc rate calibration
Jean-Marc Valin [Wed, 12 Dec 2012 20:22:39 +0000 (15:22 -0500)]
Dynalloc rate calibration

6 years agoMakes "stereo savings" less aggressive on mono or near-mono.
Jean-Marc Valin [Wed, 12 Dec 2012 20:16:27 +0000 (15:16 -0500)]
Makes "stereo savings" less aggressive on mono or near-mono.

The max reduction now depends on intensity threshold too.

6 years agoMakes tonality boost less aggressive
Jean-Marc Valin [Wed, 12 Dec 2012 19:45:16 +0000 (14:45 -0500)]
Makes tonality boost less aggressive

Some tests like Kamedo's HA test suggested that our tonal boost was a bit
too extreme.

6 years agoDisables the new spread+tapset estimator
Jean-Marc Valin [Wed, 12 Dec 2012 19:41:29 +0000 (14:41 -0500)]
Disables the new spread+tapset estimator

6 years agoDocument that opus_packet_get_nb_frames, etc. can return OPUS_BAD_ARG.
Ralph Giles [Tue, 11 Dec 2012 18:17:11 +0000 (10:17 -0800)]
Document that opus_packet_get_nb_frames, etc. can return OPUS_BAD_ARG.

NB they only check for len < 1, not for null data.

6 years agoNumerous PLC cleanups.
Timothy B. Terriberry [Fri, 7 Dec 2012 22:07:22 +0000 (14:07 -0800)]
Numerous PLC cleanups.

This should reduce computation, reduce stack usage, and be
 substantially easier to read, but should not change behavior.
It's not quite bit-exact because I collapsed the application of the
 decay and the fading into a single pass to save one multiply per
 sample, but the difference signal is silent.

It also changes the comments into complete sentences.

6 years agoRemove the obsolete CELT_BUILD define from win32/config.h.
Ralph Giles [Fri, 7 Dec 2012 17:16:34 +0000 (09:16 -0800)]
Remove the obsolete CELT_BUILD define from win32/config.h.

6 years agoAdd tests for GET_LAST_PACKET_DURATION.
Gregory Maxwell [Thu, 6 Dec 2012 02:43:29 +0000 (21:43 -0500)]

Also remove a useless extern that crept into the tests from some
optimization driven testcase generation.

Jean-Marc Valin [Thu, 6 Dec 2012 02:48:45 +0000 (21:48 -0500)]

Calling PLC/FEC with a different size was not updating it

6 years agoAdd missing packet_get_nb_samples test coverage and fix test output.
Gregory Maxwell [Thu, 6 Dec 2012 00:26:44 +0000 (19:26 -0500)]
Add missing packet_get_nb_samples test coverage and fix test output.

6 years agoBump soname version to match the 1.0.x branch.
Ralph Giles [Wed, 5 Dec 2012 23:57:45 +0000 (15:57 -0800)]
Bump soname version to match the 1.0.x branch.

Library soname versioning is something we normally change
only right before each release. However, with 1.0.2 being
released from the 1.0.x branch with 3.0.3, it makes sense
to make the same update here. That way when we do a new
release from master we can just increment again and have
the version properly reflect ranges relative to the stable

6 years agoLink to the new Microsoft patent license.
Ralph Giles [Wed, 5 Dec 2012 19:57:59 +0000 (11:57 -0800)]
Link to the new Microsoft patent license.

This applies in addition to the earlier grant made by
Skype, which was purchased by Microsoft.

6 years agoAdds assert to catch bug from previous commit
Jean-Marc Valin [Wed, 5 Dec 2012 05:54:21 +0000 (00:54 -0500)]
Adds assert to catch bug from previous commit

6 years agoFixes a multi-frame FEC issue that was caught by valgrind
Jean-Marc Valin [Wed, 5 Dec 2012 05:53:05 +0000 (00:53 -0500)]
Fixes a multi-frame FEC issue that was caught by valgrind

6 years agoAdds explicit valgrind checks when ENABLE_VALGRIND is defined
Jean-Marc Valin [Wed, 5 Dec 2012 05:50:53 +0000 (00:50 -0500)]
Adds explicit valgrind checks when ENABLE_VALGRIND is defined

6 years agoImplements opus_packet_get_nb_samples()
Jean-Marc Valin [Tue, 4 Dec 2012 20:45:31 +0000 (15:45 -0500)]
Implements opus_packet_get_nb_samples()

6 years agoImplements OPUS_GET_LAST_FRAME_DURATION decoder ctl()
Jean-Marc Valin [Tue, 4 Dec 2012 19:13:46 +0000 (14:13 -0500)]
Implements OPUS_GET_LAST_FRAME_DURATION decoder ctl()

6 years agoDon't update the internal decoder state until we know the packet is valid
Jean-Marc Valin [Tue, 4 Dec 2012 19:13:00 +0000 (14:13 -0500)]
Don't update the internal decoder state until we know the packet is valid

6 years agoChanges the PLC behaviour and fixes the FEC behaviour on concatenated packets
Jean-Marc Valin [Tue, 4 Dec 2012 20:07:45 +0000 (15:07 -0500)]
Changes the PLC behaviour and fixes the FEC behaviour on concatenated packets

PLC and FEC now return exactly the number of samples specified for the
buffer rather than (usually) returning the size of the last packet.
Doc and tests are updated accordingly.

6 years agoRemove MSVC incremental linking directives.
Ralph Giles [Mon, 3 Dec 2012 21:46:29 +0000 (13:46 -0800)]
Remove MSVC incremental linking directives.

This avoids linker errors with VS2010 of the form
    failure during conversion to COFF: invalid file or corrupt

The problem does not occur if the project files are updated
to build under VS2012.

6 years agoDo imdct post-rotate and deshuffle in-place.
Nils Wallménius [Sun, 2 Dec 2012 15:06:27 +0000 (16:06 +0100)]
Do imdct post-rotate and deshuffle in-place.

Gets rid of one stack buffer.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoFixes forward MDCT for overlaps that aren't a multiple of 4
Jean-Marc Valin [Mon, 3 Dec 2012 20:40:01 +0000 (15:40 -0500)]
Fixes forward MDCT for overlaps that aren't a multiple of 4

Adds more sizes to test_unit_mdct.c

6 years agoFix packet length handling for 16-bit machines (makes no difference on 32-bit)
Jean-Marc Valin [Mon, 3 Dec 2012 18:05:24 +0000 (13:05 -0500)]
Fix packet length handling for 16-bit machines (makes no difference on 32-bit)

6 years agoUpdates MDCT unit test
Jean-Marc Valin [Sun, 2 Dec 2012 03:11:47 +0000 (22:11 -0500)]
Updates MDCT unit test

6 years agoMore comments in the PLC
Jean-Marc Valin [Sun, 2 Dec 2012 03:00:53 +0000 (22:00 -0500)]
More comments in the PLC

6 years agoPlace output of imdct post-rotate and deshuffle in out buffer to avoid copying and...
Nils Wallménius [Sat, 1 Dec 2012 20:28:59 +0000 (21:28 +0100)]
Place output of imdct post-rotate and deshuffle in out buffer to avoid copying and simplify the code.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoWindow both sides of overlap when adding them.
Nils Wallménius [Sat, 1 Dec 2012 20:11:50 +0000 (21:11 +0100)]
Window both sides of overlap when adding them.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoAdd a regression test for the padding issue.
Ralph Giles [Sat, 1 Dec 2012 02:00:38 +0000 (18:00 -0800)]
Add a regression test for the padding issue.

This is a heavily modified version of the demonstration program
Jüri Aedla posted to the mailing list. Verified to pass with
the current commit, but fail with the tree from two commits ago.


6 years agoFixes an out-of-bounds read issue with the padding handling code
Jean-Marc Valin [Fri, 30 Nov 2012 22:36:36 +0000 (17:36 -0500)]
Fixes an out-of-bounds read issue with the padding handling code

This was reported by Juri Aedla and is limited to reading memory up
to about 60 kB beyond the compressed buffer. This can only be triggered
by a compressed packet more than about 16 MB long, so it's not a problem
for RTP. In theory, it *could* crash an Ogg decoder if the memory just after
the incoming packet is out-of-range.

6 years agobump rtp draft version
Jean-Marc Valin [Fri, 30 Nov 2012 19:41:32 +0000 (14:41 -0500)]
bump rtp draft version

6 years agoRTP draft updates addressing the rest of Tina's comments
Julian Spittka [Fri, 30 Nov 2012 08:12:59 +0000 (03:12 -0500)]
RTP draft updates addressing the rest of Tina's comments

6 years agoBetter comments in the PLC
Jean-Marc Valin [Thu, 29 Nov 2012 22:59:50 +0000 (17:59 -0500)]
Better comments in the PLC

6 years agoRemove obsolete check for endianness.
Ralph Giles [Thu, 29 Nov 2012 22:58:39 +0000 (14:58 -0800)]
Remove obsolete check for endianness.

We don't ever use the WORDS_BIGENDIAN cpp symbol in our code.

6 years agoFixes an overflow in the fixed-point celt_sqrt() for large values.
Jean-Marc Valin [Thu, 29 Nov 2012 21:51:06 +0000 (16:51 -0500)]
Fixes an overflow in the fixed-point celt_sqrt() for large values.

Was causing problems with the PLC

6 years agoFixes many many issues in the CELT PLC
Jean-Marc Valin [Thu, 29 Nov 2012 21:49:46 +0000 (16:49 -0500)]
Fixes many many issues in the CELT PLC

Previous code was so broken that it's`not worth listing the changes.
Aside from quality, one obvious improvement is a 3.75k reduction in stack size

6 years agoAddressing some of Tina's comments on the RTP draft
Jean-Marc Valin [Thu, 29 Nov 2012 14:24:54 +0000 (09:24 -0500)]
Addressing some of Tina's comments on the RTP draft

6 years agoImprove the !OPUS_BUILD #error.
Ralph Giles [Thu, 29 Nov 2012 19:40:04 +0000 (11:40 -0800)]
Improve the !OPUS_BUILD #error.

The README doesn't say anything about this particular define.
Refer people to config.h and the other build files for examples.

6 years agoAllow the build files to override OPUS_EXPORT.
Ralph Giles [Thu, 29 Nov 2012 19:01:27 +0000 (11:01 -0800)]
Allow the build files to override OPUS_EXPORT.

OPUS_EXPORT was conditionalized on OPUS_BUILD, so that symbols
are export based on public header declarations when building
opus as a library, but not when those headers are included in
other programmes. This doesn't address the case when the opus
source and its caller are both included in the same monolithic

In that case we want to define OPUS_BUILD, to indicate that we
are compiling the codec source, but not export the symbols. To
support this, only define OPUS_EXPORT if it is not already defined.
This allows build scripts to -DOPUS_EXPORT and override the
platform-specific attribute decortation in opus_defines.h.

Based on a patch by Sergey Ulanov.

6 years agoRemove obsolete #ifdef OPUS_BUILD.
Ralph Giles [Thu, 29 Nov 2012 18:36:12 +0000 (10:36 -0800)]
Remove obsolete #ifdef OPUS_BUILD.

We always define OPUS_BUILD, so this code has no effect.
Likewise there is no reason for it to be conditional.
According to Jean-Marc it's left over from when we had
an alternate CELT_BUILD define.

6 years agoGuard _BitScanReverse on MSVC so that MSVC 6 doesn't break.
Gregory Maxwell [Tue, 27 Nov 2012 17:51:20 +0000 (12:51 -0500)]
Guard _BitScanReverse on MSVC so that MSVC 6 doesn't break.

This also adds some extra casts to shut up compiler warnings
 reported on MSVC 6 where there is implicit truncation for the
 arguments of bitexact_cos().
Lacking access to CLZ/BSR will make the code a fair bit slower but
 that is better than failing to compile.

6 years agoMore minor updates to RTP draft
Jean-Marc Valin [Thu, 22 Nov 2012 22:25:22 +0000 (17:25 -0500)]
More minor updates to RTP draft

6 years agoMisc updates to the RTP draft
Jean-Marc Valin [Thu, 22 Nov 2012 22:10:50 +0000 (17:10 -0500)]
Misc updates to the RTP draft

Made RFC6716 a normative reference, removed non-sensical constraints,
updated contact info, ...

6 years agoReword 239e9a33 for better clarity.
Timothy B. Terriberry [Thu, 22 Nov 2012 12:38:35 +0000 (04:38 -0800)]
Reword 239e9a33 for better clarity.

Thanks to Randell Jesup for the feedback.

6 years agoAdd support for RFC5576 source-level attributes.
Timothy B. Terriberry [Thu, 22 Nov 2012 02:48:09 +0000 (18:48 -0800)]
Add support for RFC5576 source-level attributes.

This allows the sender parameters sprop-maxcapturerate and
 sprop-stereo to be specified on a per-SSRC basis, instead of just
 per m-line.

6 years agoUpdate Ogg draft to make it a WG item.
Timothy B. Terriberry [Mon, 19 Nov 2012 23:01:01 +0000 (15:01 -0800)]
Update Ogg draft to make it a WG item.

For complete details on what was changed, see

6 years agoTweaks to the new transient detector
Jean-Marc Valin [Mon, 19 Nov 2012 21:36:22 +0000 (16:36 -0500)]
Tweaks to the new transient detector

Instead of using the average energy over the frame, we use a half-way
point between the average energy and the max energy.

6 years agoEnable maintainer mode by default on automake 1.11
Ralph Giles [Wed, 14 Nov 2012 20:42:19 +0000 (12:42 -0800)]
Enable maintainer mode by default on automake 1.11

Passing 'enable' as an argument to AM_MAINTAINER_MODE flips the
default to enabled, rather than disabled until automake 1.11.
This is a safer default for a developer-oriented library.

./configure --disable-maintainer-mode is still available for
packagers who what to preserve the upstream build distribution.

On earlier automake versions, the argument appears to have no
effect, so there is no behaviour change for developers using
older autotools.

Based on a patch for opusfile by ron@debian.org.

6 years agoFollow up to commit 8b906c102b37ce74571898c8879c01b2a9088fb3
Nils Wallménius [Mon, 12 Nov 2012 22:05:28 +0000 (23:05 +0100)]
Follow up to commit 8b906c102b37ce74571898c8879c01b2a9088fb3

Remove two now redundant zeroing loops

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoFix the draft build.
Timothy B. Terriberry [Mon, 12 Nov 2012 21:09:30 +0000 (13:09 -0800)]
Fix the draft build.

Makefile.draft got renamed to Makefile.unix in e91dfa0f, but
 build_draft.sh was not updated.

6 years agoShould make celt_maxabs*() slightly faster
Jean-Marc Valin [Tue, 6 Nov 2012 05:24:46 +0000 (00:24 -0500)]
Should make celt_maxabs*() slightly faster

shorter dependencies

6 years agoRTP draft: Using sampling rates instead of bandwidths
Jean-Marc Valin [Mon, 12 Nov 2012 20:44:52 +0000 (15:44 -0500)]
RTP draft: Using sampling rates instead of bandwidths

6 years agoOops, fixes transient_analysis() for the right channel
Jean-Marc Valin [Sat, 10 Nov 2012 15:13:03 +0000 (10:13 -0500)]
Oops, fixes transient_analysis() for the right channel

6 years agoFixes a VBR bug caused by maxDepth not to be computed without dynalloc
Jean-Marc Valin [Sat, 10 Nov 2012 05:44:03 +0000 (00:44 -0500)]
Fixes a VBR bug caused by maxDepth not to be computed without dynalloc

Also, moves the dynalloc code to a separate function

6 years agoFix line endings on MSVC project files.
Ralph Giles [Fri, 9 Nov 2012 19:21:33 +0000 (11:21 -0800)]
Fix line endings on MSVC project files.

These files has unix line endings, while the other
project files have dos line endings.

I hoped this would fix the link error about corrupt
or invalid files with these projects, but it doesn't.
Running 'Update project files...' in the VS2012 IDE
is a work around, but it just adds a <PlatformToolset>
element to each <PropertyGroup> and a line ending at
the end of the file.

6 years agoAdd the new source files to the MSVC projects.
Ralph Giles [Fri, 9 Nov 2012 17:42:59 +0000 (09:42 -0800)]
Add the new source files to the MSVC projects.

Commits ae0e2ca8 and 6906210c split encode and decode
support into separate files to help reduce the footprint
of decode-only builds.

This commit adds the new source files to the MSVC
project files, fixing that build.

6 years agoBetter description of the the stereo signalling behaviour
Jean-Marc Valin [Fri, 9 Nov 2012 19:30:25 +0000 (14:30 -0500)]
Better description of the the stereo signalling behaviour

6 years agoBump version.mk.
Ralph Giles [Fri, 9 Nov 2012 18:17:50 +0000 (10:17 -0800)]
Bump version.mk.

Naive builders, particular on Windows without git installed,
would get builds calling themselves 1.0.1 even though master
has diverged significantly from the 1.0.x series at this point.

We should update this file both before and after release.

6 years agoRemove long-outdated comment
Jean-Marc Valin [Fri, 9 Nov 2012 04:59:20 +0000 (23:59 -0500)]
Remove long-outdated comment

6 years agoFixes a quant_coarse_energy() hybrid mode bug
Jean-Marc Valin [Fri, 9 Nov 2012 02:50:05 +0000 (21:50 -0500)]
Fixes a quant_coarse_energy() hybrid mode bug

max_decay was being computed based on the small number of bits allocated
to CELT. It's now set to the max value (16) when in hybrid mode.

6 years agoFixes a bug where transient frames would use previous spreading
Jean-Marc Valin [Thu, 8 Nov 2012 22:22:07 +0000 (17:22 -0500)]
Fixes a bug where transient frames would use previous spreading

Also forces SPREAD_NORMAL in hybrid mode

6 years agoDisables tf_analysis() for hybrid mode
Jean-Marc Valin [Thu, 8 Nov 2012 18:26:49 +0000 (13:26 -0500)]
Disables tf_analysis() for hybrid mode

This prevents issues on speech where tf would undo what transient_analysis()

6 years agoFixes issues with multiple files defining CELT_C
Jean-Marc Valin [Thu, 8 Nov 2012 16:25:20 +0000 (11:25 -0500)]
Fixes issues with multiple files defining CELT_C

6 years agoSplits out the CELT encoder and decoder
Jean-Marc Valin [Thu, 8 Nov 2012 14:42:27 +0000 (09:42 -0500)]
Splits out the CELT encoder and decoder

6 years agoSplits out the Opus multi-stream encoder and decoder
Jean-Marc Valin [Thu, 8 Nov 2012 00:57:33 +0000 (19:57 -0500)]
Splits out the Opus multi-stream encoder and decoder

6 years agoChanged denormalize_bands() to only work between "start" and "end"
Jean-Marc Valin [Wed, 7 Nov 2012 19:09:04 +0000 (14:09 -0500)]
Changed denormalize_bands() to only work between "start" and "end"

6 years agoReduces stack in quant_all_bands() for hybrid mode
Jean-Marc Valin [Wed, 7 Nov 2012 15:19:46 +0000 (10:19 -0500)]
Reduces stack in quant_all_bands() for hybrid mode

No need to allocate for the low-band

6 years agoMore stack usage reduction in quant_all_bands()
Jean-Marc Valin [Wed, 7 Nov 2012 06:27:24 +0000 (01:27 -0500)]
More stack usage reduction in quant_all_bands()

Reduce size of "norm" because we never need it for the last band

6 years agoRemoves the need for lowband_scratch in quant_all_bands()
Jean-Marc Valin [Wed, 7 Nov 2012 06:14:29 +0000 (01:14 -0500)]
Removes the need for lowband_scratch in quant_all_bands()

6 years agoMoved up the second encoder mdct to reduce stack usage
Jean-Marc Valin [Tue, 6 Nov 2012 21:29:11 +0000 (16:29 -0500)]
Moved up the second encoder mdct to reduce stack usage

6 years agoReduces decoder stack usage
Jean-Marc Valin [Mon, 5 Nov 2012 15:25:20 +0000 (10:25 -0500)]
Reduces decoder stack usage

Delays stack allocations as much as possible, and makes some of these
allocations conditional.

6 years agoFurther cleanup of the MDCT code, fixes PLC bug
Jean-Marc Valin [Mon, 5 Nov 2012 04:21:52 +0000 (23:21 -0500)]
Further cleanup of the MDCT code, fixes PLC bug

Doing the overlap coying in the same OPUS_MOVE() as the rest of the synthesis
memory. Also, there was a missing OPUS_MOVE() in the PLC for the hybrid/CNG

6 years agoAvoid copying imdct output
Nils Wallménius [Thu, 1 Nov 2012 21:03:11 +0000 (22:03 +0100)]
Avoid copying imdct output

Use the output buffer directly for imdct output, avoiding use of an
intermediary buffer and copying from it. This works because the output
buffer is offset to always be continous with the overlap buffer in the
decoder. Adjust encoder resynth code to have the same buffer layout.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoVarious fixes to draft-terriberry-oggopus.xml
Timothy B. Terriberry [Sat, 3 Nov 2012 20:01:25 +0000 (13:01 -0700)]
Various fixes to draft-terriberry-oggopus.xml

It should now validate with the Python version of the xml2rfc tool.

6 years agocomb_filter() bypass for the case where the gain is zero.
Jean-Marc Valin [Sat, 3 Nov 2012 15:36:39 +0000 (11:36 -0400)]
comb_filter() bypass for the case where the gain is zero.

6 years agoOops, put back the "static" for transient_analysis()
Jean-Marc Valin [Sat, 3 Nov 2012 14:43:06 +0000 (10:43 -0400)]
Oops, put back the "static" for transient_analysis()

6 years agoFixes a fixed-point overflow in the new transient detector
Jean-Marc Valin [Sat, 3 Nov 2012 04:13:06 +0000 (00:13 -0400)]
Fixes a fixed-point overflow in the new transient detector

6 years agoFixes a fixed-point divide-by-zero issue
Jean-Marc Valin [Fri, 2 Nov 2012 22:47:47 +0000 (18:47 -0400)]
Fixes a fixed-point divide-by-zero issue

6 years agoNew transient detection algorithm
Jean-Marc Valin [Fri, 2 Nov 2012 20:32:37 +0000 (16:32 -0400)]
New transient detection algorithm

This one is explicitly based on a simple temporal masking model

6 years agoMove LSB CTLs to the encoder specific section, thanks to Ilari on IRC for noticing.
Gregory Maxwell [Wed, 31 Oct 2012 22:42:27 +0000 (18:42 -0400)]
Move LSB CTLs to the encoder specific section, thanks to Ilari on IRC for noticing.

6 years agoAdds missing license headers on some scripts and test files
Jean-Marc Valin [Tue, 30 Oct 2012 05:26:36 +0000 (01:26 -0400)]
Adds missing license headers on some scripts and test files

6 years agoKeeping the deemphasis coefficients in local variable to avoid aliasing issues
Jean-Marc Valin [Thu, 25 Oct 2012 18:44:37 +0000 (14:44 -0400)]
Keeping the deemphasis coefficients in local variable to avoid aliasing issues

6 years agoMoves the pitch prefiltering code to a separate function
Jean-Marc Valin [Thu, 25 Oct 2012 03:55:23 +0000 (23:55 -0400)]
Moves the pitch prefiltering code to a separate function

6 years agoFix several issues with multistream argument validation.
Gregory Maxwell [Sat, 27 Oct 2012 17:42:48 +0000 (13:42 -0400)]
Fix several issues with multistream argument validation.

As reported by Mark Warner opus_multistream_*_create were depending on
 the behavior of malloc(0) in order to correctly report some kinds of
 argument errors. Bad arguments could be incorrectly reported as
 allocation failures. This changes multistream to explicitly check the
 arguments like the single stream _create functions. The unit tests were
 enough to catch this on systems where malloc(0) returns NULL but didn't
 catch it on other systems because the later _init call would catch the
 bad arguments and trigger the correct error if and only if the malloc
 didn't return a null pointer.

In multistream_encoder_init failures of the internal non-multistream
 init calls were not being caught and propagated. Decode didn't have
 this problem. This propagates the errors and adds additional tests
 (the multistream encoder api is sill under tested) that would have
 detected this error.

Plus add some stronger tests for things like error==NULL for the _create
 functions that take a pointer for error output.

6 years agooops... fixes a C89 issue
Jean-Marc Valin [Wed, 24 Oct 2012 18:20:43 +0000 (14:20 -0400)]
oops... fixes a C89 issue

6 years agoMoved pre-emphasis to a separate function and cleaned it up
Jean-Marc Valin [Wed, 24 Oct 2012 18:07:46 +0000 (14:07 -0400)]
Moved pre-emphasis to a separate function and cleaned it up

Removed a bunch of if()s from the loops and made the compiler life's
easier by moving some pointer accesses outside the loops.

6 years agoOptimizations to comb_filter()
Jean-Marc Valin [Wed, 24 Oct 2012 05:49:50 +0000 (01:49 -0400)]
Optimizations to comb_filter()

6 years agoRemoves more indirections in celt.c
Jean-Marc Valin [Wed, 24 Oct 2012 00:25:06 +0000 (20:25 -0400)]
Removes more indirections in celt.c


6 years agoRemoves a bunch of indirections from the CELT encoder and decoder
Jean-Marc Valin [Tue, 23 Oct 2012 22:29:40 +0000 (18:29 -0400)]
Removes a bunch of indirections from the CELT encoder and decoder


6 years agoThis should speed up deemphasis() quite a bit.
Jean-Marc Valin [Tue, 23 Oct 2012 20:51:37 +0000 (16:51 -0400)]
This should speed up deemphasis() quite a bit.

Removes the resampling branches from the main loop and no longer computes
the multiplications for coefs equal to one or zero.

6 years agoTake the PLC out of the stack size critical path
Jean-Marc Valin [Tue, 23 Oct 2012 20:14:49 +0000 (16:14 -0400)]
Take the PLC out of the stack size critical path

6 years agoFix MSVC linker warnings
Joshua Bowman [Tue, 23 Oct 2012 20:12:25 +0000 (13:12 -0700)]
Fix MSVC linker warnings

Specify the correct debug runtime libraries for the test
and demo executables to prevent mismatch warnings with
the default runtime.

Signed-off-by: Ralph Giles <giles@mozilla.com>
6 years agoInclude process.h for _getpid on windows.
Ralph Giles [Tue, 23 Oct 2012 20:04:36 +0000 (13:04 -0700)]
Include process.h for _getpid on windows.

Previously the test programmes happened to link because _getpid
returns an int, which is the default prototype. Instead, include
the appropriate header to supply a real declaration, fixing the
associated warning.

I moved the getpid->_getpid define to the site of the header
inclusion to make clear what's going on, rather than have it
floating in win32/config.h.

6 years agoFix the MSVC build.
Joshua Bowman [Tue, 23 Oct 2012 19:18:38 +0000 (12:18 -0700)]
Fix the MSVC build.

Updates the project files to include the new encoder source files.
Use OPUS_RESTRICT and include config.h to set the proper defines
for build under MSVC.

6 years agoFix MSVC format conversion warnings.
Ralph Giles [Tue, 23 Oct 2012 17:49:18 +0000 (10:49 -0700)]
Fix MSVC format conversion warnings.

The Microsoft compiler warns about precision reduction from
default double literals to the floats we generally use outside
the fixed-point build. Avoid these by qualifying the literals
as floats.

Thanks to derf for review.

7 years agoMerge inverse mdct post-rotate and de-shuffle loops
Nils Wallménius [Sun, 21 Oct 2012 12:06:18 +0000 (14:06 +0200)]
Merge inverse mdct post-rotate and de-shuffle loops

Saves some memory access and gives a tiny speedup

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
7 years agoAttempt to have at least two bands that are coded
Jean-Marc Valin [Fri, 19 Oct 2012 23:57:19 +0000 (19:57 -0400)]
Attempt to have at least two bands that are coded

This fixes a SWB hybrid issue where band 18 isn't folded and cannot even
be folded because it's wider than band 17. This was causing noise to
be injected instead.

7 years agocd doc && make is not the same as make -C doc
Ron [Thu, 18 Oct 2012 03:35:55 +0000 (14:05 +1030)]
cd doc && make is not the same as make -C doc

Fixes a regression in the recursive builds introduced in 5467ce7b3f8
that causes `make check-opus` to fail horribly.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
7 years agoFix an indentation issue.
Ralph Giles [Wed, 17 Oct 2012 18:12:41 +0000 (11:12 -0700)]
Fix an indentation issue.

7 years agoFixes two bugs in the high-band attenuation code (gain_fade())
Jean-Marc Valin [Tue, 16 Oct 2012 04:26:32 +0000 (00:26 -0400)]
Fixes two bugs in the high-band attenuation code (gain_fade())

7 years agoFix minor issues reported by scan-build
Philip Jägenstedt [Thu, 11 Oct 2012 09:27:12 +0000 (11:27 +0200)]
Fix minor issues reported by scan-build