Commit graph

2351 commits

Author SHA1 Message Date
Ralph Giles
b88a7baf34 Use #pragma GCC diagnostic push/pop only on gcc 4.6 and later.
These pragmas were adding in 4.6, and earlier versions warn
about them being undefined.
2011-10-28 10:20:16 -07:00
Ralph Giles
c19bc34638 Check for __malloc_hook and define MALLOC_FAIL appropriately.
The glibc 2.14 NEWS file says __malloc_hook will be removed
in the next release, so future-proof our use by checking
for this symbol at configure time and only compiling the
malloc failure tests if it is present.
2011-10-28 10:20:16 -07:00
Ralph Giles
ed90cdc369 Disable the deprecated function warning on __malloc_hook.
This just works around the deprecation in glibc 2.14. I
do worry what will happen if they follow through and
remove it in 2.15.
2011-10-28 10:20:16 -07:00
Gregory Maxwell
657dea717e Moving the dash header inline to appease the apple gcc. 2011-10-28 12:10:14 -04:00
Jean-Marc Valin
ad20dd2f43 Preparing for test vectors 2011-10-28 12:09:00 -04:00
Gregory Maxwell
d84fa9fd6e Fixes a bug in ec_enc_done when no range coded data was coded and adds test cases to test_unit_entropy. 2011-10-28 11:08:52 -04:00
Jean-Marc Valin
aecf2d3eff opus_demo now returns 1 on mismatch 2011-10-28 11:02:40 -04:00
Gregory Maxwell
6f1ece5798 Extend test_unit_entropy to test some patch_initial_bits corner cases. 2011-10-28 10:12:39 -04:00
Timothy B. Terriberry
16abc6fe6e Fix for ec_enc_patch_initial_bits().
The test to make sure that _nbits had been encoded was checking for
 8-_nbits instead of _nbits.
This only affected cases when less than 8 bits had ever been
 encoded by the time the initial bits were patched.
2011-10-28 09:51:38 -04:00
Jean-Marc Valin
c8649d0e0b Gives the Opus code direct access to (non-opaque) OpusRepacketizer
This avoids potential alignment issues with allocating a char
array on the stack.
2011-10-27 22:25:33 -04:00
Jean-Marc Valin
f340bba0f2 Checking error codes internally and return OPUS_INTERNAL_ERROR on failure 2011-10-27 20:33:48 -04:00
Gregory Maxwell
71c04dc00c Improve test_opus_encode's coverage of some high rate cases. 2011-10-27 18:07:40 -04:00
Jean-Marc Valin
d17bc2e8cb Make CBR code a bit less aggressive about low rate 2011-10-27 17:56:36 -04:00
Jean-Marc Valin
cb9471c07c Fixes a hybrid bug when operating with a max bit-rate 2011-10-27 17:56:14 -04:00
Jean-Marc Valin
84846910c5 draft: CELT encoder description for tf_analysis() and spreading_decision() 2011-10-27 15:34:21 -04:00
Jean-Marc Valin
4a7027b27e Allow wrap-around in silk_LPC_analysis_filter() 2011-10-27 13:51:21 -04:00
Jean-Marc Valin
e6a0be8ee6 Makes OPUS_SET_VOICE_RATIO private
Let's put it back in if/when we have a clearer view of voice/music detection
2011-10-27 13:43:43 -04:00
Jean-Marc Valin
6ef378725f Making sure DTX for voice still works at high bit-rate 2011-10-27 13:39:12 -04:00
Gregory Maxwell
6b9c29aee4 Add a test for MAX_BANDWIDTH to test_opus_api. 2011-10-27 09:36:50 -04:00
Gregory Maxwell
9652f81eb9 Test cleanups and renaming.
Build tests in the tests/ directory instead of top, cleanup, rename,
and eliminate recursive make for the celt/ unit tests.
2011-10-27 06:27:13 -04:00
Ralph Giles
da025d5632 Convert tabs to spaces in the opus and celt code.
Also reformat some, but by no means all, of the opus
code for line length and three-character indents.
2011-10-26 20:24:49 -07:00
Jean-Marc Valin
4923f3f80e Moves the main headers from src/ to include/ 2011-10-26 21:36:57 -04:00
Jean-Marc Valin
82c985932f Removes tests/.dirstamp 2011-10-26 21:01:54 -04:00
Gregory Maxwell
38805f35d5 Rename test_repacketizer to repacketizer_demo. 2011-10-26 20:05:56 -04:00
Gregory Maxwell
a5ff49ecdc Renames test_opus to opus_demo and adds the test_opus_api, test_opus_encode, test_opus_decode test programs. 2011-10-26 19:59:49 -04:00
Jean-Marc Valin
d481798ad1 draft: Update to normative/non-normative switching
Making SILK bandwidth changes non-normative when there's no redundancy
2011-10-26 15:47:53 -04:00
Jean-Marc Valin
602fd8a6f8 draft: Moves the high-pass to the Opus encoder to reflect the source code 2011-10-26 11:55:07 -04:00
Koen Vos
7f3caf941e Fixes another minor bug introduced in 43a0de4af1 2011-10-26 08:03:31 -04:00
Jean-Marc Valin
56a3b95343 Adds draft section on "Control Parameters" 2011-10-26 01:23:36 -04:00
Jean-Marc Valin
bfad28185c Adjusts the bandwidth thresholds depending on complexity and CBR 2011-10-25 13:46:35 -04:00
Jean-Marc Valin
97cefddc27 Oops, forgot the #defines for OPUS_{SET|GET}_MAX_BANDWIDTH() 2011-10-25 12:10:45 -04:00
Koen Vos
d39bccb0e1 Fixes a minor bug introduced in 43a0de4af1 2011-10-25 01:19:29 -04:00
Jean-Marc Valin
9ba1743594 Implements OPUS_SET_MAX_BANDWIDTH() 2011-10-24 22:41:18 -04:00
Jean-Marc Valin
9dc0e40475 Disable CELT when FEC is on and we're losing too many packets 2011-10-24 20:26:29 -04:00
Jean-Marc Valin
ec1ebf8ad7 Fixes a bug on FEC+stereo
When FEC is enabled in the decoder but not included in the bit-stream
we could end up applying the PLC on a non-existant side.
2011-10-24 20:07:00 -04:00
Timothy B. Terriberry
a7585a0dd1 More draft edits and additions.
Some clean-up from JM's prior edits, as well as
* Additional clarificatino of TOC sequence restrictions (e.g., if
   you need to decode a length, there must be enough bytes in the
   packet for it, etc.).
* Added a summary of TOC sequence restrictions.
* Added a stereo unmixing section.
* Reworked Delay Compensation section into a general Resampling
   section.
* Further cleanups of switching/transitions, including new diagrams
   for all of the normative and recommended non-normative
   transitions.
2011-10-24 18:38:34 -04:00
Jean-Marc Valin
33bd6aa313 Some SILK CBR tuning 2011-10-24 11:53:01 -04:00
Koen Vos
43a0de4af1 Optimization of the CBR loop
Also some comment/warning fixes
2011-10-24 09:10:58 -04:00
Jean-Marc Valin
3b2aee062d Implements glitchless switching between SILK bandwidths
Only encoder changes were necessary because this uses the same
"redundant frames" mechanism as SILK<->CELT switching.
This also fixes a regression introduced in 78291b27 that was
causing the encoder to go back and forth between bandwidths when
SILK wasn't ready to change.
2011-10-21 23:21:34 -04:00
Gregory Maxwell
e53ebd696a Don't use -fstack-protector-all when its not supported, add an autoconf test. 2011-10-21 14:21:53 -04:00
Gregory Maxwell
3d28ee8020 Fix stack corruption with high rate SILK encoding added by the recent CBR changes and enable -fstack-protector-all on gcc autotools builds. 2011-10-21 13:00:21 -04:00
Jean-Marc Valin
4871fb9281 Silences some warnings in fixed-point 2011-10-21 11:17:18 -04:00
Jean-Marc Valin
bfc67b95e2 Same as 44a030deed but for fixed-point 2011-10-21 11:10:43 -04:00
Jean-Marc Valin
44a030deed Limits how fast the CBR gain multiplier can increase
This fixes an overflow that was caused by having a huge gain
2011-10-21 11:05:50 -04:00
Jean-Marc Valin
1fad3048af Make the encoder output a "PLC packet" when SILK can't reach the target 2011-10-20 21:10:25 -04:00
Jean-Marc Valin
99ca4b3cff Overrides the SILK delayed bandwidth changes when CBR might bust 2011-10-20 14:30:30 -04:00
Jean-Marc Valin
294bfec27b Implements hard CBR for SILK
This is achieved by running the encoding process in a loop and
padding when we don't reach the exact rate. It also implements
VBR-with-cap, which means we no longer need to artificially decrease
the SILK bandwidth when it's close to the cap.
2011-10-20 00:39:41 -04:00
Jean-Marc Valin
dbf2ea841e draft: Describing SILK delay compensation 2011-10-19 13:56:34 -04:00
Jean-Marc Valin
cb897c56f2 draft: mode switching details (reset and redundancy cross-fade) 2011-10-19 12:38:53 -04:00
Jean-Marc Valin
d062c4a50e Only free state once in kiss-fft failed init path 2011-10-19 07:41:27 -04:00