opus.git
3 years agoBump soname v1.1
Jean-Marc Valin [Wed, 4 Dec 2013 23:25:34 +0000 (18:25 -0500)]
Bump soname

3 years agoMention updating the website examples.
Ralph Giles [Wed, 4 Dec 2013 23:18:41 +0000 (15:18 -0800)]
Mention updating the website examples.

3 years agoStart a release checklist.
Ralph Giles [Wed, 4 Dec 2013 23:16:12 +0000 (15:16 -0800)]
Start a release checklist.

3 years agoRevert "Disables assembly optimizations by default because of several problems reported" v1.1-rc3
Jean-Marc Valin [Tue, 3 Dec 2013 18:31:24 +0000 (13:31 -0500)]
Revert "Disables assembly optimizations by default because of several problems reported"

This reverts commit 2446445b15e0a1961e1566006b34c586fd3162c4.

3 years agoDisables assembly optimizations by default because of several problems reported
Jean-Marc Valin [Tue, 3 Dec 2013 03:17:58 +0000 (22:17 -0500)]
Disables assembly optimizations by default because of several problems reported

3 years agoFixes Opus-custom preemphasis
Jean-Marc Valin [Tue, 3 Dec 2013 01:02:37 +0000 (20:02 -0500)]
Fixes Opus-custom preemphasis

Also adds denorm avoidance for non-48 kHz rates

3 years agoWhoa! This fixes a pretty bad fixed-point stereo regression
Jean-Marc Valin [Fri, 29 Nov 2013 21:47:52 +0000 (16:47 -0500)]
Whoa! This fixes a pretty bad fixed-point stereo regression

3 years agoFixes OPUS_SET_GAIN (was a bug in MULT16_32_P16())
Jean-Marc Valin [Fri, 29 Nov 2013 17:21:34 +0000 (12:21 -0500)]
Fixes OPUS_SET_GAIN (was a bug in MULT16_32_P16())

3 years agoMinor speedups to celt_pitch_xcorr_edsp(). v1.1-rc2
Timothy B. Terriberry [Wed, 27 Nov 2013 19:06:59 +0000 (11:06 -0800)]
Minor speedups to celt_pitch_xcorr_edsp().

This moves some stuff out of the main loop for the unaligned case.

3 years agoDrop the use of --always to git-describe
Ron [Wed, 27 Nov 2013 17:48:45 +0000 (04:18 +1030)]
Drop the use of --always to git-describe

This is a partial revert of c435f06b308e52d7a5d2aad9eec98a1541832b47,
since it didn't actually fix the original problem with shallow clones.
It returns just a hash, not something we (currently) can extract as a
version string in the form things are expecting.

3 years agoRemove the celt_pitch_xcorr() test code.
Timothy B. Terriberry [Wed, 27 Nov 2013 05:56:50 +0000 (21:56 -0800)]
Remove the celt_pitch_xcorr() test code.

Revision control will remember it for us forever.

3 years agoActually use my NEON code.
Timothy B. Terriberry [Wed, 27 Nov 2013 05:55:29 +0000 (21:55 -0800)]
Actually use my NEON code.

I'd commented out mine and stuck azanelli's code in for testing,
 and then accidentally committed it like that.

3 years agoMake celt_pitch_xcorr_edsp() work on ARMv5TE.
Timothy B. Terriberry [Wed, 27 Nov 2013 05:51:39 +0000 (21:51 -0800)]
Make celt_pitch_xcorr_edsp() work on ARMv5TE.

We were assuming that LDR, LDRD, and STRD could be used on
 unaligned addresses, but this turns out not to be true on really
 old hardware.

3 years agoClean up celt_pitch_xcorr() test code.
Timothy B. Terriberry [Wed, 27 Nov 2013 01:10:37 +0000 (17:10 -0800)]
Clean up celt_pitch_xcorr() test code.

This will be removed shortly, but at least it should be correct
 before it goes.
Makes the code get used unconditionally (when uncommented), and
 actually frees the buffer it allocates (now using the libopus
 allocation functions).

3 years agoSilences a warning in fixed-point v1.1-rc
Jean-Marc Valin [Tue, 26 Nov 2013 03:33:43 +0000 (22:33 -0500)]
Silences a warning in fixed-point

3 years agoMerges surround and stereo intensity stereo thresholds again.
Jean-Marc Valin [Tue, 26 Nov 2013 02:24:30 +0000 (21:24 -0500)]
Merges surround and stereo intensity stereo thresholds again.

The different results for surround were mostly due to a bug in squishyball.

3 years agoMakes SILK surround masking a bit more aggressive in both directions
Jean-Marc Valin [Mon, 25 Nov 2013 06:52:08 +0000 (01:52 -0500)]
Makes SILK surround masking a bit more aggressive in both directions

This also splits the rate adjustment between SILK and CELT (previous
code only changed SILK)

3 years agoIntensity stereo update, partially based on Monty's listening
Jean-Marc Valin [Mon, 25 Nov 2013 04:59:09 +0000 (23:59 -0500)]
Intensity stereo update, partially based on Monty's listening

Intensity stereo is now based on equiv_rate and should no longer oscillate
in hybrid mode. Also, there is now a separate set of thresholds for
surround tuned by Monty. The non-surround thresholds were also updated at
low bitrate to be closer to what Monty found for surround.

3 years agoPut custom_encoder_init decl behind CUSTOM_MODES. More softclip tests.
Gregory Maxwell [Sun, 24 Nov 2013 14:49:01 +0000 (06:49 -0800)]
Put custom_encoder_init decl behind CUSTOM_MODES. More softclip tests.

This removes an unused definition warning when compiling without
 custom modes.

3 years agoUsing a more reasonably SILK surround calibration value
Jean-Marc Valin [Sun, 24 Nov 2013 07:01:55 +0000 (02:01 -0500)]
Using a more reasonably SILK surround calibration value

Still needs more tuning

3 years agoReducing the thresholds for enabling stereo and higher audio bandwidths
Jean-Marc Valin [Sun, 24 Nov 2013 06:59:43 +0000 (01:59 -0500)]
Reducing the thresholds for enabling stereo and higher audio bandwidths

3 years agoSurround low-passing thresholds set to much lower bitrates
Jean-Marc Valin [Sun, 24 Nov 2013 06:57:52 +0000 (01:57 -0500)]
Surround low-passing thresholds set to much lower bitrates

3 years agoMinor opus_pcm_soft_clip API hardening and tests.
Gregory Maxwell [Fri, 22 Nov 2013 19:32:32 +0000 (11:32 -0800)]
Minor opus_pcm_soft_clip API hardening and tests.

3 years agoAdd some multistream resets to the tests.
Gregory Maxwell [Fri, 22 Nov 2013 18:30:30 +0000 (10:30 -0800)]
Add some multistream resets to the tests.

3 years agoMerge branch 'silk_pitch_fix'
Jean-Marc Valin [Thu, 21 Nov 2013 19:43:53 +0000 (14:43 -0500)]
Merge branch 'silk_pitch_fix'

3 years agoApplies padding to all CBR packets, including PLC and CELT silence
Jean-Marc Valin [Thu, 21 Nov 2013 19:42:00 +0000 (14:42 -0500)]
Applies padding to all CBR packets, including PLC and CELT silence

3 years agoAdds trivial_example.c to make dist
Jean-Marc Valin [Thu, 21 Nov 2013 19:36:41 +0000 (14:36 -0500)]
Adds trivial_example.c to make dist

3 years agoAdds a simple example of Opus encoding+decoding
Jean-Marc Valin [Thu, 21 Nov 2013 19:33:42 +0000 (14:33 -0500)]
Adds a simple example of Opus encoding+decoding

3 years agoopus_custom_encoder_init() now only needed for custom modes.
Jean-Marc Valin [Thu, 21 Nov 2013 00:34:14 +0000 (19:34 -0500)]
opus_custom_encoder_init() now only needed for custom modes.

3 years agoAdd copyright header to test_opus_padding.c.
Ralph Giles [Wed, 20 Nov 2013 22:31:09 +0000 (11:31 +1300)]
Add copyright header to test_opus_padding.c.

3 years agoMakes pitch gain control less aggressive silk_pitch_fix
Jean-Marc Valin [Wed, 20 Nov 2013 22:11:15 +0000 (17:11 -0500)]
Makes pitch gain control less aggressive

3 years agoUsing the maximum frequency response of pitch taps instead of maxabs
Jean-Marc Valin [Wed, 20 Nov 2013 18:39:23 +0000 (13:39 -0500)]
Using the maximum frequency response of pitch taps instead of maxabs

3 years agoConstrains accumulated pitch gain to avoid potential instability.
Koen Vos [Wed, 20 Nov 2013 13:32:32 +0000 (08:32 -0500)]
Constrains accumulated pitch gain to avoid potential instability.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoAdditional opus_multistream_packet_(un)pad tests.
Gregory Maxwell [Tue, 19 Nov 2013 16:52:49 +0000 (08:52 -0800)]
Additional opus_multistream_packet_(un)pad tests.

3 years agoValidate merge argument in repacketizer_demo.
Gregory Maxwell [Tue, 19 Nov 2013 16:35:26 +0000 (08:35 -0800)]
Validate merge argument in repacketizer_demo.

3 years agoValidate channel count in opus_demo.
Gregory Maxwell [Tue, 19 Nov 2013 16:29:06 +0000 (08:29 -0800)]
Validate channel count in opus_demo.

3 years agoAdd opus_packet_(un)pad tests.
Gregory Maxwell [Tue, 19 Nov 2013 07:25:20 +0000 (23:25 -0800)]
Add opus_packet_(un)pad tests.

3 years agoMore make dist fixes
Ron [Tue, 19 Nov 2013 07:04:12 +0000 (17:34 +1030)]
More make dist fixes

Don't include the generated celt/arm/celt_pitch_xcorr_arm-gnu.S in the
dist tarball, but do include its celt_pitch_xcorr_arm.s source file.

3 years agoFix 'make distclean'.
Ralph Giles [Tue, 19 Nov 2013 04:50:05 +0000 (17:50 +1300)]
Fix 'make distclean'.

Automake's dependency tracking seems to be confused by our asm
generation double-indirection. It's sufficient to have just
CLEANFILES = $(CELT_AM_SOURCES_ARM_ASM:.s.in=-gnu.S)
to fix the error about 'armopts-gnu.S' not being cleaned, but
celt_pitch_xcorr_arm-gnu.S is also not cleaned without raising
a warning. Therefore we explicitly clean both sets of ARM_ASM.

3 years agoDon't attenuate hybrid high-band for surround
Jean-Marc Valin [Tue, 19 Nov 2013 04:00:36 +0000 (23:00 -0500)]
Don't attenuate hybrid high-band for surround

3 years agoFixes unpad for multi-stream
Jean-Marc Valin [Tue, 19 Nov 2013 02:22:30 +0000 (21:22 -0500)]
Fixes unpad for multi-stream

3 years agoUnpad asserts
Timothy B. Terriberry [Tue, 19 Nov 2013 01:02:08 +0000 (20:02 -0500)]
Unpad asserts

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFixes previous commit
Mark Harris [Mon, 18 Nov 2013 21:52:22 +0000 (16:52 -0500)]
Fixes previous commit

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoAdds functions for multistream padding/unpadding and single-stream unpadding
Jean-Marc Valin [Mon, 18 Nov 2013 21:46:38 +0000 (16:46 -0500)]
Adds functions for multistream padding/unpadding and single-stream unpadding

These are all completely untested.

3 years agoASM build fix
Timothy B. Terriberry [Mon, 18 Nov 2013 19:10:57 +0000 (14:10 -0500)]
ASM build fix

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFixes permissions on arm2gnu.pl
Jean-Marc Valin [Mon, 18 Nov 2013 18:49:34 +0000 (13:49 -0500)]
Fixes permissions on arm2gnu.pl

3 years agoAdds Neon assembly for correlation/convolution
Timothy B. Terriberry [Mon, 18 Nov 2013 18:30:13 +0000 (13:30 -0500)]
Adds Neon assembly for correlation/convolution

Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoAdds SATURATE16() to the fixed-point debug build too
Jean-Marc Valin [Mon, 18 Nov 2013 03:42:42 +0000 (22:42 -0500)]
Adds SATURATE16() to the fixed-point debug build too

3 years agoFixes SILK surround calibration while fixing other MSVC warnings
Jean-Marc Valin [Mon, 18 Nov 2013 03:35:15 +0000 (22:35 -0500)]
Fixes SILK surround calibration while fixing other MSVC warnings

3 years agoAdd some basic testing for OPUS_{GET|SET}_PREDICTION_DISABLED.
Gregory Maxwell [Sun, 17 Nov 2013 16:52:00 +0000 (08:52 -0800)]
Add some basic testing for OPUS_{GET|SET}_PREDICTION_DISABLED.

3 years agooops, fix previous commit
Jean-Marc Valin [Sat, 16 Nov 2013 18:33:38 +0000 (13:33 -0500)]
oops, fix previous commit

3 years agoMake CELT_PVQ_U_ROW static
Jean-Marc Valin [Sat, 16 Nov 2013 08:54:58 +0000 (03:54 -0500)]
Make CELT_PVQ_U_ROW static

3 years agoAdds OPUS_SET_PREDICTION_DISABLED() ctl to force "independent" frames
Jean-Marc Valin [Fri, 15 Nov 2013 18:50:38 +0000 (13:50 -0500)]
Adds OPUS_SET_PREDICTION_DISABLED() ctl to force "independent" frames

Works by turning off pitch and energy prediction in CELT, while
setting first_frame_after_reset in SILK to disable pitch and LSF interpolation
and reduce LPC gain.

3 years agoAdds a simple padding test to opus_demo (disabled by default)
Jean-Marc Valin [Fri, 15 Nov 2013 18:35:04 +0000 (13:35 -0500)]
Adds a simple padding test to opus_demo (disabled by default)

3 years agoOops, missing semicolon on RESTORE_STACK in previous commit
Jean-Marc Valin [Fri, 15 Nov 2013 06:57:25 +0000 (01:57 -0500)]
Oops, missing semicolon on RESTORE_STACK in previous commit

3 years agoAdds missing RESTORE_STACKs in celt_encode_with_ec()
Jean-Marc Valin [Fri, 15 Nov 2013 06:52:28 +0000 (01:52 -0500)]
Adds missing RESTORE_STACKs in celt_encode_with_ec()

3 years agoFixes a bug where the encoder was trying to use redundancy in CELT mode
Jean-Marc Valin [Fri, 15 Nov 2013 06:41:12 +0000 (01:41 -0500)]
Fixes a bug where the encoder was trying to use redundancy in CELT mode

The problem was that forcing CELT-mode for low bitrate CBR was done too late,
after the encoder had decided to use SILK. This was causing redundancy
to be allocated because the encoder didn't realize it was going to keep
using CELT.

3 years agoAdds packet padding that works for all codes and fixes 40/60 ms CBR.
Jean-Marc Valin [Wed, 13 Nov 2013 19:08:22 +0000 (14:08 -0500)]
Adds packet padding that works for all codes and fixes 40/60 ms CBR.

Padding is now handled by the repacketizer.

3 years agoFixes max_redundancy so that hybrid CBR can fill all bytes
Jean-Marc Valin [Wed, 13 Nov 2013 22:50:39 +0000 (17:50 -0500)]
Fixes max_redundancy so that hybrid CBR can fill all bytes

3 years agoopus_multistream_packet_validate() now called with the total number of streams
Mark Harris [Thu, 14 Nov 2013 00:31:59 +0000 (19:31 -0500)]
opus_multistream_packet_validate() now called with the total number of streams

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoRename preemphasis() to celt_preemphasis() to avoid amrnb symbol clash
Jean-Marc Valin [Thu, 14 Nov 2013 00:35:43 +0000 (19:35 -0500)]
Rename preemphasis() to celt_preemphasis() to avoid amrnb symbol clash

http://lists.xiph.org/pipermail/opus/2013-November/002372.html

3 years agoFixes more warnings
Jean-Marc Valin [Thu, 14 Nov 2013 04:06:25 +0000 (23:06 -0500)]
Fixes more warnings

3 years agoIncrease surround allocation offset for smaller frame sizes
Jean-Marc Valin [Thu, 14 Nov 2013 03:58:10 +0000 (22:58 -0500)]
Increase surround allocation offset for smaller frame sizes

3 years agoPrevents LFE from busting at really low bitrate
Jean-Marc Valin [Thu, 14 Nov 2013 03:42:04 +0000 (22:42 -0500)]
Prevents LFE from busting at really low bitrate

3 years agoFixes MSVC conversion warnings
Jean-Marc Valin [Wed, 13 Nov 2013 17:07:01 +0000 (12:07 -0500)]
Fixes MSVC conversion warnings

3 years agoVariable frame size fixes (still not exposed in the API)
Jean-Marc Valin [Wed, 13 Nov 2013 16:57:31 +0000 (11:57 -0500)]
Variable frame size fixes (still not exposed in the API)

This fixes an actual error in the downmix (using the float version even
for the int API), as well as a bunch of conversion warnings.

3 years agoMaking the CELT fixed-point decoder a bit more robust to extreme signals
Jean-Marc Valin [Wed, 13 Nov 2013 14:39:05 +0000 (09:39 -0500)]
Making the CELT fixed-point decoder a bit more robust to extreme signals

denormalise_bands() can now produce signals close to the max MDCT amplitude.

3 years agoFixes an initialization issue in SILK prefill found by Coverity
Jean-Marc Valin [Tue, 12 Nov 2013 19:20:00 +0000 (14:20 -0500)]
Fixes an initialization issue in SILK prefill found by Coverity

3 years agooops, don't need RESTORE_STACK when there's no stack
Jean-Marc Valin [Mon, 11 Nov 2013 23:24:56 +0000 (18:24 -0500)]
oops, don't need RESTORE_STACK when there's no stack

3 years agogcc -pedantic had "comparison of unsigned expression < 0 is always false"
Jean-Marc Valin [Mon, 11 Nov 2013 22:39:02 +0000 (17:39 -0500)]
gcc -pedantic had "comparison of unsigned expression < 0 is always false"

3 years agoMore size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0
Jean-Marc Valin [Mon, 11 Nov 2013 18:06:54 +0000 (13:06 -0500)]
More size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0

3 years agoFixes some minor issues found by scan build
Jean-Marc Valin [Sat, 9 Nov 2013 23:28:40 +0000 (18:28 -0500)]
Fixes some minor issues found by scan build

3 years agostupid uninitialized variable in the mlp training caught by cppcheck
Jean-Marc Valin [Sat, 9 Nov 2013 02:47:44 +0000 (21:47 -0500)]
stupid uninitialized variable in the mlp training caught by cppcheck

3 years agoHides OPUS_FRAMESIZE_VARIABLE from the API until it actually works
Jean-Marc Valin [Sat, 9 Nov 2013 00:54:03 +0000 (19:54 -0500)]
Hides OPUS_FRAMESIZE_VARIABLE from the API until it actually works

3 years agoMakes surround bandwidth decision based on the number of channels (duh!)
Jean-Marc Valin [Sat, 9 Nov 2013 00:53:27 +0000 (19:53 -0500)]
Makes surround bandwidth decision based on the number of channels (duh!)

3 years agoTaking into account the frame size in more encoder decisions
Jean-Marc Valin [Sat, 9 Nov 2013 00:24:10 +0000 (19:24 -0500)]
Taking into account the frame size in more encoder decisions

Stereo mode, stereo width, min bandwidth, VBR damping

3 years agoThis should be less confusing for static analyzers
Jean-Marc Valin [Tue, 5 Nov 2013 02:16:00 +0000 (21:16 -0500)]
This should be less confusing for static analyzers

Code behaviour is unchanged

3 years agoExposes --disable-float-api in autoconf
Jean-Marc Valin [Mon, 4 Nov 2013 17:26:50 +0000 (12:26 -0500)]
Exposes --disable-float-api in autoconf

3 years agoRemoves a float var that shouldn't have been there
Jean-Marc Valin [Tue, 29 Oct 2013 01:50:10 +0000 (21:50 -0400)]
Removes a float var that shouldn't have been there

Defining FIXED_POINT and DISABLE_FLOAT_API now leaves no float instruction

3 years agoFixes DISABLE_FLOAT_API build
Jean-Marc Valin [Tue, 29 Oct 2013 01:48:50 +0000 (21:48 -0400)]
Fixes DISABLE_FLOAT_API build

3 years agoMoves opus_packet_parse_impl() from opus_decoder.c to opus.c
Jean-Marc Valin [Mon, 28 Oct 2013 20:41:26 +0000 (16:41 -0400)]
Moves opus_packet_parse_impl() from opus_decoder.c to opus.c

Because it's indirectly used in the encoder (through the repackerizer).

3 years agoImplements OPUS_RESET_STATE for multi-stream encoder
Jean-Marc Valin [Mon, 28 Oct 2013 20:11:53 +0000 (16:11 -0400)]
Implements OPUS_RESET_STATE for multi-stream encoder

3 years agoAvoid a bogus uninitialized warning and simplify some code.
Gregory Maxwell [Mon, 28 Oct 2013 19:55:41 +0000 (12:55 -0700)]
Avoid a bogus uninitialized warning and simplify some code.

3 years agoRemove now-unused check_decoder_option.
Gregory Maxwell [Mon, 28 Oct 2013 18:40:00 +0000 (11:40 -0700)]
Remove now-unused check_decoder_option.

3 years agoMakes stereo savings still less aggressive
Jean-Marc Valin [Mon, 28 Oct 2013 18:15:18 +0000 (14:15 -0400)]
Makes stereo savings still less aggressive

Caps the savings at 1 bit per (coded) sample. This doesn't really increase
the bitrate and fixes some issues, e.g. with IgorC's "twilight" sample.

3 years agoAdd a little missive when compiling without optimization.
Gregory Maxwell [Mon, 28 Oct 2013 18:04:57 +0000 (11:04 -0700)]
Add a little missive when compiling without optimization.

The library really depends on all the little fixed point math functions
 being inlined in order to get acceptable performance. It turns out that
 it's very easy for someone to compile with optimization disable when
 twiddling cflags or cooking up their own build system.

3 years agoReplace "inline" with OPUS_INLINE.
Gregory Maxwell [Thu, 17 Oct 2013 22:56:52 +0000 (15:56 -0700)]
Replace "inline" with OPUS_INLINE.

Newer versions of MSVC are unhappy with the strategy of the build
 environment redefining "inline" (even though they don't support the
 actual keyword). Instead we define OPUS_INLINE to the right thing
 in opus_defines.h.

This is the same approach we use for restrict.

3 years agoRemove dead code
Stefan Beller [Tue, 8 Oct 2013 22:01:36 +0000 (00:01 +0200)]
Remove dead code

The compiler warned:
silk/float/pitch_analysis_core_FLP.c: In function 'silk_P_Ana_calc_corr_st3':
silk/float/pitch_analysis_core_FLP.c:499:36: warning: variable 'basis_ptr' set but not used [-Wunused-but-set-variable]
     const silk_float *target_ptr, *basis_ptr;

This means we can safely remove it.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFixes a potential crash when encoding NaNs
Jean-Marc Valin [Mon, 21 Oct 2013 21:53:48 +0000 (17:53 -0400)]
Fixes a potential crash when encoding NaNs

This fixes tansig_approx() to avoid crashing when the input is NaN.
The problem could only be triggered when calling the float API with
a float build at a complexity of 7 or more (i.e. analysis called).
Since the crash was due to an out-of-bound read (typically the index
is INT_MIN), it's unlikely to be exploitable in any other way than
causing a crash.

3 years agoRemove restrict definition from the unix Makefile.
Ralph Giles [Thu, 17 Oct 2013 21:52:56 +0000 (14:52 -0700)]
Remove restrict definition from the unix Makefile.

This define was replaces by OPUS_RESTRICT in opus_defines.h
in de0b5324b687 and subsequent commits. It is no longer necessary
to include it.

3 years agoFixes multistream CBR encoding and multistream surround for >20 ms
Jean-Marc Valin [Mon, 14 Oct 2013 21:47:18 +0000 (17:47 -0400)]
Fixes multistream CBR encoding and multistream surround for >20 ms

3 years agoFixes weird LFE bug
Jean-Marc Valin [Mon, 14 Oct 2013 21:33:53 +0000 (17:33 -0400)]
Fixes weird LFE bug

The LFE encoder would first decide to switch to SILK, and allocated
redundancy bytes. Then, it would force CELT because of LFE, but keep
the redundancy allocation, and end up with too few bytes, that would
end up being padded to the desired size for CBR.

3 years agoSurround encoder can now produce hard CBR streams again.
Jean-Marc Valin [Mon, 14 Oct 2013 19:01:36 +0000 (15:01 -0400)]
Surround encoder can now produce hard CBR streams again.

Even when using SILK/hybrid.

3 years agoOops, thanks to Mark Harris for spotting this!
Jean-Marc Valin [Mon, 14 Oct 2013 17:58:51 +0000 (13:58 -0400)]
Oops, thanks to Mark Harris for spotting this!

3 years agoopus_packet_parse_impl() now computes the packet size with padding
Jean-Marc Valin [Mon, 14 Oct 2013 17:45:58 +0000 (13:45 -0400)]
opus_packet_parse_impl() now computes the packet size with padding

This should fix decoding of padded multistream packets and (hopefully)
multistream fec.

3 years agoRejects bad multistream frame length
Mark Harris [Sun, 13 Oct 2013 05:23:58 +0000 (01:23 -0400)]
Rejects bad multistream frame length

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFixes PLC for sizes that don't match basic Opus frame sizes.
Mark Harris [Sun, 13 Oct 2013 05:12:35 +0000 (01:12 -0400)]
Fixes PLC for sizes that don't match basic Opus frame sizes.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoMake -loss valid for opus_demo -e
Mark Harris [Tue, 8 Oct 2013 05:25:06 +0000 (22:25 -0700)]
Make -loss valid for opus_demo -e

In addition to its decoding use, it is the value used for
OPUS_SET_PACKET_LOSS_PERC.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoFix 40/60ms zero-length frame decode failure
Mark Harris [Tue, 8 Oct 2013 01:50:59 +0000 (18:50 -0700)]
Fix 40/60ms zero-length frame decode failure

Decoding failed with OPUS_BAD_ARG on a packet containing a 40ms or
60ms zero-length frame when it followed a hybrid or MDCT frame.
It now invokes the PLC for the duration of the packet as expected.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
3 years agoCleaning up multistream packet validation
Jean-Marc Valin [Sat, 12 Oct 2013 00:41:30 +0000 (20:41 -0400)]
Cleaning up multistream packet validation