6 years agooops s/IMAX/IMIN/
Jean-Marc Valin [Thu, 21 Feb 2013 03:31:49 +0000 (22:31 -0500)]
oops s/IMAX/IMIN/

6 years agoAdds support for delayed decision
Jean-Marc Valin [Wed, 20 Feb 2013 09:08:04 +0000 (04:08 -0500)]
Adds support for delayed decision

Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION,
with new API.
Also moves up the analysis to avoid having to do int->float conversion
on large buffers.

6 years agoMaking multistream variable duration work for both the float and int API
Jean-Marc Valin [Thu, 20 Dec 2012 05:23:01 +0000 (00:23 -0500)]
Making multistream variable duration work for both the float and int API

6 years agoNo need for extra_buffer anymore
Jean-Marc Valin [Mon, 17 Dec 2012 23:02:56 +0000 (18:02 -0500)]
No need for extra_buffer anymore

6 years agoBetter handling of the multistream bitrate
Jean-Marc Valin [Mon, 17 Dec 2012 22:54:01 +0000 (17:54 -0500)]
Better handling of the multistream bitrate


6 years agoMultistream support for variable frame duration
Jean-Marc Valin [Mon, 17 Dec 2012 21:23:42 +0000 (16:23 -0500)]
Multistream support for variable frame duration

Also fixes a bug with stereo streams where the initial memory was only
using the left channel.

6 years agoMakes variable framesize less aggressive at lower rates
Jean-Marc Valin [Tue, 27 Nov 2012 04:20:01 +0000 (23:20 -0500)]
Makes variable framesize less aggressive at lower rates

6 years agoRe-enable analysis for 40- and 60-ms frames
Jean-Marc Valin [Mon, 26 Nov 2012 08:08:15 +0000 (03:08 -0500)]
Re-enable analysis for 40- and 60-ms frames

6 years agoFirst attempt at varying the frame size depending on the audio (float only)
Jean-Marc Valin [Thu, 22 Nov 2012 18:11:43 +0000 (13:11 -0500)]
First attempt at varying the frame size depending on the audio (float only)

The search is based on minimizing the bitrate increase due to transients
by considering we can reduce the "transient boost" by reducing the frame
size, at the cost of increasing the normal overhead.

6 years agoMakes opus_demo rubust to the encoder using variable frame duration
Jean-Marc Valin [Tue, 20 Nov 2012 04:21:43 +0000 (23:21 -0500)]
Makes opus_demo rubust to the encoder using variable frame duration

Also, the encode+decode mode now produces an output of the same size
as the original.

6 years agoRunning transient_analysis() even for 2.5 ms frames
Jean-Marc Valin [Tue, 20 Nov 2012 04:17:06 +0000 (23:17 -0500)]
Running transient_analysis() even for 2.5 ms frames

This means 2.5 ms frames can now use a higher bitrate for transients.

6 years agoMakes analysis usable for all frame sizes
Jean-Marc Valin [Wed, 14 Nov 2012 07:39:27 +0000 (02:39 -0500)]
Makes analysis usable for all frame sizes

6 years agoMoves analysis to the beginning of opus_encode()
Jean-Marc Valin [Tue, 13 Nov 2012 07:24:07 +0000 (02:24 -0500)]
Moves analysis to the beginning of opus_encode()

6 years agoFixes a SILK fixed-point encoder issue reported by Cliff Parris <cliff@espico.com>
Jean-Marc Valin [Thu, 7 Feb 2013 20:31:30 +0000 (15:31 -0500)]
Fixes a SILK fixed-point encoder issue reported by Cliff Parris <cliff@espico.com>

6 years agoFixes a minor CELT->SILK switching glitch in the decoder
Jean-Marc Valin [Thu, 7 Feb 2013 04:48:09 +0000 (23:48 -0500)]
Fixes a minor CELT->SILK switching glitch in the decoder

By not reinitializing the stereo state during a switch, the old stereo
memory would create a false impulse (i.e. single sample) in the decoded audio.
This change affects the normative part of the decoder. Fortunately,
the modified decoder is still compliant with the specification because
it still easily passes the testvectors. For example, for the float decoder
at 48 kHz, the opus_compare (arbitrary) "quality score" changes from
from 99.9333% to 99.925%.

6 years agoAdds a ramp up in the SILK prefill
Jean-Marc Valin [Wed, 6 Feb 2013 23:10:51 +0000 (18:10 -0500)]
Adds a ramp up in the SILK prefill

This improves quality of CELT->SILK switches by not having the SILK encoder
attempt to encode a discontinuity. Overall, it's a small PQ improvement,
confirmed by some listening.

6 years agoFixes a hybrid stereo encoder issue
Jean-Marc Valin [Tue, 5 Feb 2013 06:32:52 +0000 (01:32 -0500)]
Fixes a hybrid stereo encoder issue

This was causing periodic glitches in the right channel in hybrid mode.

6 years agoSplit mapping families into sections and add dowmix matrices.
Ralph Giles [Thu, 17 Jan 2013 00:30:55 +0000 (16:30 -0800)]
Split mapping families into sections and add dowmix matrices.

The channel mapping family nested lists were hard to read.
Promoting each family description to a subsection makes it
more clear where one is in the document.

Also add suggested downmix matricies. These are what we're
currently using in opus-tools, opusfile, and Firefox.
Ascii-art matrices in 69 columns is hard.

6 years agoImprove Content Type figure placement.
Ralph Giles [Wed, 16 Jan 2013 22:14:32 +0000 (14:14 -0800)]
Improve Content Type figure placement.

With xml2rfc 2.3.9, I was getting the 'audio/ogg; codecs=opus'
figure hoisted out of the the containing paragraph, which was
very confusing.

I've tried to improve this by moving the surrounding paragraph
into the figure using the <preamble> and <postamble> tags, as
in the example in draft-mrose-writting-rfcs.

Unfortunately this still isn't perfect. Since the surrounding
paragraph is part of the figure we can't set align="center" on
the figure itself, and the processor seems to ignore it on the
artwork element. I've compensated by adding some leading

6 years agoMinor clarifications to the channel mapping section.
Ralph Giles [Sat, 12 Jan 2013 01:11:07 +0000 (17:11 -0800)]
Minor clarifications to the channel mapping section.

Mostly just being more verbose.

6 years agoUse 'front center' in the channel mapping table.
Ralph Giles [Sat, 12 Jan 2013 01:01:38 +0000 (17:01 -0800)]
Use 'front center' in the channel mapping table.

This clarifies the meaning in surround configurations and better
distinguishes it from 'rear center'.

6 years agoFix a typo.
Ralph Giles [Fri, 11 Jan 2013 23:51:15 +0000 (15:51 -0800)]
Fix a typo.

6 years agoAdd HTTPS to make gmaxwell happy.
Timothy B. Terriberry [Fri, 11 Jan 2013 03:29:17 +0000 (19:29 -0800)]
Add HTTPS to make gmaxwell happy.

6 years agoFlesh out the Implementation Status section a bit.
Timothy B. Terriberry [Fri, 11 Jan 2013 03:23:58 +0000 (19:23 -0800)]
Flesh out the Implementation Status section a bit.

Add sections on VLC, foobar200, and Rockbox.
Be more complete about listing which features of the format are
 actually supported by each implementation.
Still need to do more testing for Chrome, FFmpeg, and libav.

6 years agoClarify how grouped streams are not "Ogg Opus files".
Ralph Giles [Fri, 11 Jan 2013 01:00:18 +0000 (17:00 -0800)]
Clarify how grouped streams are not "Ogg Opus files".

We mean to make .opus only for degenerate--not concurrently
multiplexed or grouped--but optionally sequentially multiplexed
or chained physical Ogg streams.

However, we don't mean to say you can't use this draft with
such streams.

Also, replace the reference to RFC3534 with RFC5334, which
obsoletes the previous reference by defining video/ogg and

6 years agoAdd an 'Implementation Status' section to the Ogg Opus draft.
Ralph Giles [Fri, 11 Jan 2013 00:38:31 +0000 (16:38 -0800)]
Add an 'Implementation Status' section to the Ogg Opus draft.

This is based on the experiment described in

I've listed several major implementations. Their formatting
could probably be better. More obviously, this really demonstrates
the need for a good test suite to evaluate converage and compliance
with all these different implementations.

6 years agoTrim an irrelevant clause.
Ralph Giles [Thu, 10 Jan 2013 22:15:41 +0000 (14:15 -0800)]
Trim an irrelevant clause.

This is true, but not important to understanding the limitation.

6 years agoRTP draft adopted as WG item
Jean-Marc Valin [Thu, 10 Jan 2013 14:44:38 +0000 (09:44 -0500)]
RTP draft adopted as WG item

6 years agoFixes stupid preprocessor-related bug introduced in e368e6209.
Jean-Marc Valin [Wed, 9 Jan 2013 16:13:00 +0000 (11:13 -0500)]
Fixes stupid preprocessor-related bug introduced in e368e6209.

Would cause the preemphasis and deemphasis to fail, but only with
custom modes enabled.

6 years agoFixes a seed issue introduced in 5367dac
Jean-Marc Valin [Fri, 4 Jan 2013 02:15:16 +0000 (21:15 -0500)]
Fixes a seed issue introduced in 5367dac

Was causing the testvector to pass with lower quality, though
practically there was no quality degradation.

6 years agoRemove condition in pre/de-emphasis when not building with custom modes
Jean-Marc Valin [Thu, 3 Jan 2013 19:28:28 +0000 (14:28 -0500)]
Remove condition in pre/de-emphasis when not building with custom modes

Should slightly improve coverage and reduce code size

6 years agoUse AC_CONFIG_HEADERS.
Ralph Giles [Wed, 2 Jan 2013 23:28:26 +0000 (15:28 -0800)]

This avoids a warning about obsolete AM_CONFIG_HEADERS() on more
recent autoconf. The new macro has been around at least since
autoconf 2.60. So this should be safe.

6 years agoseed and remaining_bits moved to band context
Jean-Marc Valin [Sun, 23 Dec 2012 02:56:22 +0000 (21:56 -0500)]
seed and remaining_bits moved to band context

6 years agoUsing a band context to reduce the number of arguments being passed around.
Jean-Marc Valin [Sun, 23 Dec 2012 02:32:28 +0000 (21:32 -0500)]
Using a band context to reduce the number of arguments being passed around.

6 years agomore bands.c cleaning up
Jean-Marc Valin [Wed, 19 Dec 2012 17:39:29 +0000 (12:39 -0500)]
more bands.c cleaning up

6 years agocollapse mask cleanup
Jean-Marc Valin [Wed, 19 Dec 2012 16:37:21 +0000 (11:37 -0500)]
collapse mask cleanup

6 years agoRemoves useless parameters and re-indents the code
Jean-Marc Valin [Wed, 19 Dec 2012 16:25:52 +0000 (11:25 -0500)]
Removes useless parameters and re-indents the code

6 years agoSplitting off the recursion in quant_partition()
Jean-Marc Valin [Wed, 19 Dec 2012 16:04:16 +0000 (11:04 -0500)]
Splitting off the recursion in quant_partition()

quant_band() now only handles the level0 case.

6 years agostereo part of quant_band() moved to quant_band_stereo()
Jean-Marc Valin [Wed, 19 Dec 2012 15:26:16 +0000 (10:26 -0500)]
stereo part of quant_band() moved to quant_band_stereo()

6 years agoMoves the split angle code to compute_theta()
Jean-Marc Valin [Wed, 19 Dec 2012 14:58:27 +0000 (09:58 -0500)]
Moves the split angle code to compute_theta()

6 years agoFirst step in quant_band() cleanup: N=1 case.
Jean-Marc Valin [Wed, 19 Dec 2012 12:19:54 +0000 (07:19 -0500)]
First step in quant_band() cleanup: N=1 case.

6 years agoFixes MSVC warnings for double->float and float->int conversion v1.1-alpha
Jean-Marc Valin [Fri, 21 Dec 2012 21:17:38 +0000 (16:17 -0500)]
Fixes MSVC warnings for double->float and float->int conversion

6 years agoAdd float literal suffixes to mlp_data.c.
Ralph Giles [Fri, 21 Dec 2012 20:06:24 +0000 (12:06 -0800)]
Add float literal suffixes to mlp_data.c.

Fixes an MSVC double truncation warning.

6 years agoAdd float suffix to tansig_table literals.
Ralph Giles [Fri, 21 Dec 2012 19:56:18 +0000 (11:56 -0800)]
Add float suffix to tansig_table literals.

This fixes a truncation warning in MSVC:

warning C4305: 'initializing' : truncation from 'double' to
'const opus_val16'.

opus_val16 is a float in the floating point build and an
int16 in the fixed-point build. The table isn't used in
the fixed-point build, but the compiler would presumedly
warn in that case as well.

6 years agoAdd tansig_table.h to the MSVC project files.
Ralph Giles [Fri, 21 Dec 2012 19:49:46 +0000 (11:49 -0800)]
Add tansig_table.h to the MSVC project files.

6 years agomissing comment in win32/config.h
Jean-Marc Valin [Fri, 21 Dec 2012 19:11:10 +0000 (14:11 -0500)]
missing comment in win32/config.h

6 years agoOnly use automatic bandwidth detection when the user doesn't force bandwidth
Jean-Marc Valin [Fri, 21 Dec 2012 18:09:43 +0000 (13:09 -0500)]
Only use automatic bandwidth detection when the user doesn't force bandwidth

Also fixes an issue with 40- and 60-ms frames using the repacketizer.

6 years agoFixes bandwidth detection by not relying on uninitialized data
Jean-Marc Valin [Fri, 21 Dec 2012 17:28:25 +0000 (12:28 -0500)]
Fixes bandwidth detection by not relying on uninitialized data

6 years agoskip bands with no energy
Jean-Marc Valin [Fri, 21 Dec 2012 06:23:26 +0000 (01:23 -0500)]
skip bands with no energy

6 years agoCapping lsb_depth to 16 unless using the float API of a float build
Jean-Marc Valin [Fri, 21 Dec 2012 04:11:53 +0000 (23:11 -0500)]
Capping lsb_depth to 16 unless using the float API of a float build

6 years agoNew bandwidth detection code
Jean-Marc Valin [Fri, 21 Dec 2012 03:48:35 +0000 (22:48 -0500)]
New bandwidth detection code

Can now work up to full-band and uses lsb_depth to fix the noise issue.

6 years agoBump version number
Jean-Marc Valin [Thu, 20 Dec 2012 18:00:52 +0000 (13:00 -0500)]
Bump version number

6 years agoUpdate ogg draft based on comments from Tina le Grand.
Ralph Giles [Wed, 19 Dec 2012 20:21:06 +0000 (12:21 -0800)]
Update ogg draft based on comments from Tina le Grand.


6 years agoUpdate the oggopus script to use xml2rfc v2.
Ralph Giles [Wed, 19 Dec 2012 00:37:04 +0000 (16:37 -0800)]
Update the oggopus script to use xml2rfc v2.

The command line has changed, for the better, but we need to
update the way we call it. Also adds an install hint if it's
not found on the path.

NB I tried to detect and fallback to the old syntax for the
version 1 (TCL) implementation but this is hard because it
doesn't support any switches (like --version) and it no
longer parses our remote entities.

6 years agoMinor tuining of complexity thresholds
Jean-Marc Valin [Fri, 14 Dec 2012 19:01:06 +0000 (14:01 -0500)]
Minor tuining of complexity thresholds

6 years agoVBR code simplification
Jean-Marc Valin [Fri, 14 Dec 2012 18:21:09 +0000 (13:21 -0500)]
VBR code simplification

6 years agoCleanup: tf_estimate now ranges from 0 to 1
Jean-Marc Valin [Fri, 14 Dec 2012 02:40:58 +0000 (21:40 -0500)]
Cleanup: tf_estimate now ranges from 0 to 1

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.