Commit graph

3269 commits

Author SHA1 Message Date
Gregory Maxwell
d8302fc093 Validate channel count in opus_demo. 2013-11-19 08:29:06 -08:00
Gregory Maxwell
733b47f31c Add opus_packet_(un)pad tests. 2013-11-18 23:25:20 -08:00
Ron
135d1c9848 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.
2013-11-19 17:34:12 +10:30
Ralph Giles
d5cb06305b 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.
2013-11-19 18:12:55 +13:00
Jean-Marc Valin
ca5bf5b049 Don't attenuate hybrid high-band for surround 2013-11-18 23:00:36 -05:00
Jean-Marc Valin
43a287fd75 Fixes unpad for multi-stream 2013-11-18 21:23:21 -05:00
Timothy B. Terriberry
2ce30358ec Unpad asserts
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 20:02:08 -05:00
Mark Harris
3d09c5cb35 Fixes previous commit
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 16:52:46 -05:00
Jean-Marc Valin
f183566752 Adds functions for multistream padding/unpadding and single-stream unpadding
These are all completely untested.
2013-11-18 16:46:38 -05:00
Timothy B. Terriberry
7a0b68233f ASM build fix
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 14:10:57 -05:00
Jean-Marc Valin
f50df82246 Fixes permissions on arm2gnu.pl 2013-11-18 13:49:34 -05:00
Timothy B. Terriberry
39386e0b85 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>
2013-11-18 13:41:17 -05:00
Jean-Marc Valin
530198f955 Adds SATURATE16() to the fixed-point debug build too 2013-11-17 22:44:53 -05:00
Jean-Marc Valin
6bc3e3cff7 Fixes SILK surround calibration while fixing other MSVC warnings 2013-11-17 22:35:15 -05:00
Gregory Maxwell
2632ef0396 Add some basic testing for OPUS_{GET|SET}_PREDICTION_DISABLED. 2013-11-17 08:52:00 -08:00
Jean-Marc Valin
0c7c425431 oops, fix previous commit 2013-11-16 13:33:38 -05:00
Jean-Marc Valin
2c37846249 Make CELT_PVQ_U_ROW static 2013-11-16 03:54:58 -05:00
Jean-Marc Valin
cbe93e23be 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.
2013-11-15 13:50:38 -05:00
Jean-Marc Valin
aad4117d78 Adds a simple padding test to opus_demo (disabled by default) 2013-11-15 13:35:04 -05:00
Jean-Marc Valin
1b28e0cae5 Oops, missing semicolon on RESTORE_STACK in previous commit 2013-11-15 01:57:25 -05:00
Jean-Marc Valin
e83d2aa3f7 Adds missing RESTORE_STACKs in celt_encode_with_ec() 2013-11-15 01:52:28 -05:00
Jean-Marc Valin
d7aadd808f 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.
2013-11-15 01:41:12 -05:00
Jean-Marc Valin
c5635d284b Adds packet padding that works for all codes and fixes 40/60 ms CBR.
Padding is now handled by the repacketizer.
2013-11-13 23:22:37 -05:00
Jean-Marc Valin
8bbdf5fa0a Fixes max_redundancy so that hybrid CBR can fill all bytes 2013-11-13 23:18:42 -05:00
Mark Harris
3a4659a622 opus_multistream_packet_validate() now called with the total number of streams
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-13 23:18:34 -05:00
Jean-Marc Valin
2dc27dfa13 Rename preemphasis() to celt_preemphasis() to avoid amrnb symbol clash
http://lists.xiph.org/pipermail/opus/2013-November/002372.html
2013-11-13 23:18:26 -05:00
Jean-Marc Valin
ab86a9cca7 Fixes more warnings 2013-11-13 23:06:25 -05:00
Jean-Marc Valin
87ca6c08ea Increase surround allocation offset for smaller frame sizes 2013-11-13 22:58:10 -05:00
Jean-Marc Valin
0d584b905a Prevents LFE from busting at really low bitrate 2013-11-13 22:42:04 -05:00
Jean-Marc Valin
a71c9adf52 Fixes MSVC conversion warnings 2013-11-13 12:07:01 -05:00
Jean-Marc Valin
8848171b2f 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.
2013-11-13 11:57:31 -05:00
Jean-Marc Valin
8ea01eed10 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.
2013-11-13 09:40:00 -05:00
Jean-Marc Valin
db5b19455f Fixes an initialization issue in SILK prefill found by Coverity 2013-11-12 14:20:00 -05:00
Jean-Marc Valin
1d72d383ac oops, don't need RESTORE_STACK when there's no stack 2013-11-11 18:24:56 -05:00
Jean-Marc Valin
77a5963658 gcc -pedantic had "comparison of unsigned expression < 0 is always false" 2013-11-11 17:39:02 -05:00
Jean-Marc Valin
f6066df2b9 More size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0 2013-11-11 13:06:54 -05:00
Jean-Marc Valin
ca6fac041b Fixes some minor issues found by scan build 2013-11-09 18:28:40 -05:00
Jean-Marc Valin
a599ccd217 stupid uninitialized variable in the mlp training caught by cppcheck 2013-11-08 21:47:44 -05:00
Jean-Marc Valin
5174817d36 Hides OPUS_FRAMESIZE_VARIABLE from the API until it actually works 2013-11-08 19:54:03 -05:00
Jean-Marc Valin
420231ab19 Makes surround bandwidth decision based on the number of channels (duh!) 2013-11-08 19:53:27 -05:00
Jean-Marc Valin
c1959e7dc3 Taking into account the frame size in more encoder decisions
Stereo mode, stereo width, min bandwidth, VBR damping
2013-11-08 19:24:10 -05:00
Jean-Marc Valin
9ffce06c77 This should be less confusing for static analyzers
Code behaviour is unchanged
2013-11-04 21:16:00 -05:00
Jean-Marc Valin
d814c5d283 Exposes --disable-float-api in autoconf 2013-11-04 12:26:50 -05:00
Jean-Marc Valin
8f466274d3 Removes a float var that shouldn't have been there
Defining FIXED_POINT and DISABLE_FLOAT_API now leaves no float instruction
2013-10-28 21:50:10 -04:00
Jean-Marc Valin
c2b3441211 Fixes DISABLE_FLOAT_API build 2013-10-28 21:48:50 -04:00
Jean-Marc Valin
0fb0fd715c Moves opus_packet_parse_impl() from opus_decoder.c to opus.c
Because it's indirectly used in the encoder (through the repackerizer).
2013-10-28 16:41:26 -04:00
Jean-Marc Valin
811db62ead Implements OPUS_RESET_STATE for multi-stream encoder 2013-10-28 16:12:24 -04:00
Gregory Maxwell
60429d366f Avoid a bogus uninitialized warning and simplify some code. 2013-10-28 12:55:41 -07:00
Gregory Maxwell
1750f568d8 Remove now-unused check_decoder_option. 2013-10-28 11:40:00 -07:00
Jean-Marc Valin
9c23f5cdca 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.
2013-10-28 14:15:18 -04:00