6 years agoRevisit surround rate allocation surround
Jean-Marc Valin [Mon, 6 May 2013 20:03:39 +0000 (16:03 -0400)]
Revisit surround rate allocation

Stereo now gets twice the "marginal allocation" compared to mono, but has
a 20 kb/s offset. This should be more realistic across a wide range of

6 years agoAdds spreading to the surround masking computation
Jean-Marc Valin [Mon, 6 May 2013 20:02:31 +0000 (16:02 -0400)]
Adds spreading to the surround masking computation

This avoids a single low-energy band from changing the masking results.

6 years agoImplements basic surround masking
Jean-Marc Valin [Sun, 5 May 2013 03:54:20 +0000 (23:54 -0400)]
Implements basic surround masking

The idea is that the rate of each stream is adjusted based on its
contribution to the total energy of a stereo downmix.

6 years agoAdds support for all Vorbis mappings
Jean-Marc Valin [Mon, 29 Apr 2013 22:32:27 +0000 (18:32 -0400)]
Adds support for all Vorbis mappings

6 years agoMore forced decisions in CELT LFE encoding
Jean-Marc Valin [Sat, 27 Apr 2013 06:29:52 +0000 (02:29 -0400)]
More forced decisions in CELT LFE encoding

6 years agoSurround: Better LFE handling
Jean-Marc Valin [Fri, 26 Apr 2013 20:32:10 +0000 (16:32 -0400)]
Surround: Better LFE handling

Forces CELT-only mode for LFE (despite the rate) and "locks" most of the
CELT analysis:
- No transient or TF
- Band boost on first band
- Only first two bands get PVQ bits
- Forced energy decay after the first two bands

6 years agoInitial surround code with new API
Jean-Marc Valin [Fri, 26 Apr 2013 01:34:04 +0000 (21:34 -0400)]
Initial surround code with new API


6 years agoFixes missing initialization in OpusMSEncoder
Jean-Marc Valin [Sun, 5 May 2013 06:22:06 +0000 (02:22 -0400)]
Fixes missing initialization in OpusMSEncoder

Problem found using valgrind.

6 years agoFixes FEC issues introduced in 7fcd66c
Jean-Marc Valin [Tue, 23 Apr 2013 06:41:28 +0000 (02:41 -0400)]
Fixes FEC issues introduced in 7fcd66c

This left FEC disabled on the decoder side for all cases except concatenated
packets. Also fixes a FEC bug in opus_demo (wrong output buffer size

6 years agoVBR bitrate calibration for variable duration.
Jean-Marc Valin [Sat, 20 Apr 2013 02:44:03 +0000 (22:44 -0400)]
VBR bitrate calibration for variable duration.

Also fixes uninitialized value in previous commit.

6 years agoVariable framesize improvements
Jean-Marc Valin [Fri, 19 Apr 2013 07:14:28 +0000 (03:14 -0400)]
Variable framesize improvements

- Properly apply the transient boost by counting all the bits in the cost
- Disable the post-filter for non-20-ms frames that follow a transient (applies
  only to variable framesize)

6 years agoConverts the analysis to ALLOC()
Jean-Marc Valin [Mon, 15 Apr 2013 19:49:40 +0000 (15:49 -0400)]
Converts the analysis to ALLOC()

6 years agoFixes a minor bug found by valgrind in the bandwidth detector
Jean-Marc Valin [Mon, 15 Apr 2013 06:45:02 +0000 (02:45 -0400)]
Fixes a minor bug found by valgrind in the bandwidth detector

The energy calculation from the packed FFTs ended up reading out-of-bound
memory for frequency zero. The bug was exposed by c5e04e4.

6 years agoRandom complexity in the encoder tests.
Gregory Maxwell [Sat, 6 Apr 2013 02:16:58 +0000 (19:16 -0700)]
Random complexity in the encoder tests.

6 years agoFix some 16-bit int issues in the multistream API.
Timothy B. Terriberry [Mon, 18 Mar 2013 21:42:44 +0000 (14:42 -0700)]
Fix some 16-bit int issues in the multistream API.

With 120 ms frames and 6 or more channels, the total number of
 samples in the buffer could overflow.

6 years agoMinor soft clipping doc fix
Jean-Marc Valin [Mon, 18 Mar 2013 21:05:43 +0000 (17:05 -0400)]
Minor soft clipping doc fix

6 years agoRemove -Wdeclaration-after-statement.
Ralph Giles [Wed, 13 Mar 2013 05:57:00 +0000 (22:57 -0700)]
Remove -Wdeclaration-after-statement.

This causes warnings with the ALLOC() macro.

6 years agoMakes bandwidth detection less aggressive.
Jean-Marc Valin [Tue, 12 Mar 2013 15:24:53 +0000 (11:24 -0400)]
Makes bandwidth detection less aggressive.

The original code was causing parts of a sine sweep to be completely dropped
due to the 300 Hz margin and the hysteresis. Also, fixes scaling for the
analysis downmix when the input is 16-bit PCM.

6 years agoFixes a minor glitch on SILK bandwidth changes
Jean-Marc Valin [Mon, 11 Mar 2013 20:25:44 +0000 (16:25 -0400)]
Fixes a minor glitch on SILK bandwidth changes

We weren't doing the prefilling for SILK->SILK transitions.

6 years agoAdd -Wdeclaration-after-statement.
Ralph Giles [Mon, 11 Mar 2013 17:59:13 +0000 (10:59 -0700)]
Add -Wdeclaration-after-statement.

We keep accidentally adding these which break the -pedantic build,
so complain about it in the normal build.

Also de-duplicate the warning list.

6 years agoHigh-band attenuation tuning for hybrid mode
Koen Vos [Mon, 11 Mar 2013 17:30:47 +0000 (13:30 -0400)]
High-band attenuation tuning for hybrid mode

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoFixes pseudo-stack
Jean-Marc Valin [Mon, 11 Mar 2013 17:41:11 +0000 (13:41 -0400)]
Fixes pseudo-stack

6 years agoFixes OPUS_SET_EXPERT_FRAME_DURATION_REQUEST for multi-stream
Taihei Momma [Mon, 11 Mar 2013 17:07:34 +0000 (13:07 -0400)]

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoFixes C90 issues for obsolete compilers
Robert Meakins [Mon, 11 Mar 2013 16:59:15 +0000 (12:59 -0400)]
Fixes C90 issues for obsolete compilers

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
6 years agoAdds stereo width computation
Jean-Marc Valin [Mon, 11 Mar 2013 15:35:10 +0000 (11:35 -0400)]
Adds stereo width computation

Using this to change the encoder based on mono/stereo rather than looking
at the number of input channels.

6 years agoMerge branch 'exp_analysis'
Jean-Marc Valin [Fri, 8 Mar 2013 17:29:53 +0000 (12:29 -0500)]
Merge branch 'exp_analysis'


6 years agoMaking CELT stereo<->mono transitions gradual
Jean-Marc Valin [Fri, 8 Mar 2013 16:35:15 +0000 (11:35 -0500)]
Making CELT stereo<->mono transitions gradual

This not only avoids sudden changes in audio quality, but also increases
quality when we don't have enough bits to code a wide stereo image.

6 years agoDocumentation fixes
Jean-Marc Valin [Thu, 7 Mar 2013 23:13:19 +0000 (18:13 -0500)]
Documentation fixes

Improved version of:

6 years agotest_opus_decode: force integer constants unsigned
James Zern [Wed, 27 Feb 2013 21:16:03 +0000 (13:16 -0800)]
test_opus_decode: force integer constants unsigned

warning: this decimal constant is unsigned only in ISO C90

when building with e.g., gcc -m32 -std=gnu90

6 years agoOops, fixed API name from previous commit
Jean-Marc Valin [Fri, 1 Mar 2013 21:07:02 +0000 (16:07 -0500)]
Oops, fixed API name from previous commit

6 years agoApplies soft-clipping to the int decoder API.
Jean-Marc Valin [Fri, 1 Mar 2013 20:18:23 +0000 (15:18 -0500)]
Applies soft-clipping to the int decoder API.

opus_decode() and opus_multistream_decode() now apply soft clipping
before converting to 16-bit int. This should produce better a higher
quality result than hard clipping like we were doing before. The _float()
API isn't affected, but the clipping function is exported so users can
manually apply the soft clipping.

6 years agoMakes the speech/music probability estimation mode conservative exp_analysis
Jean-Marc Valin [Thu, 28 Feb 2013 20:30:51 +0000 (15:30 -0500)]
Makes the speech/music probability estimation mode conservative

This is done using an adaptive beta and an estimate of the speech
and music detection confidence

6 years agoAdds silence probability to speech/music detector
Jean-Marc Valin [Fri, 22 Feb 2013 21:44:56 +0000 (16:44 -0500)]
Adds silence probability to speech/music detector

Avoids biasing the decision when it's all silence/noise.

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 agoFixes a bug introduced in 851f803
Jean-Marc Valin [Tue, 19 Feb 2013 08:42:18 +0000 (03:42 -0500)]
Fixes a bug introduced in 851f803

6 years agoFixes two bandwidth decision issues
Jean-Marc Valin [Tue, 19 Feb 2013 05:42:15 +0000 (00:42 -0500)]
Fixes two bandwidth decision issues

1) In cases where the SILK desired bandwidth went down, then quickly up, we
count get stuck in a mode with the LP variation going the wrong way.
2) Bandwidth detection can no longer force SILK to go below wideband to
avoid switches that require redundancy.

6 years agoMoves mono downmixing and upsampling to the compute_mdcts()
Jean-Marc Valin [Mon, 18 Feb 2013 06:43:43 +0000 (01:43 -0500)]
Moves mono downmixing and upsampling to the compute_mdcts()

6 years agoAdds code to revise the transient decision using the band energy
Jean-Marc Valin [Mon, 18 Feb 2013 02:21:30 +0000 (21:21 -0500)]
Adds code to revise the transient decision using the band energy

Detects a transient when the average band energy jumps by more than 6 dB
between two consecutive frames. This fixes some undetected transients on
Gainless' Muse_Breaks_Rmx sample.

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.

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

7 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

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

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

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

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

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

7 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

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

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

7 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

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

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

7 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

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

7 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

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

7 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

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

7 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

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

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

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

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

7 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

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

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

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

7 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

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

7 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

7 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

7 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

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

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

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


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

7 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

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

7 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

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

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

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

7 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

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

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