Commit graph

104 commits

Author SHA1 Message Date
Jean-Marc Valin
6268300c5e Merge remote-tracking branch 'greg/master'
Conflicts:
	src/opus_encoder.c
2011-09-02 17:23:22 -04:00
Jean-Marc Valin
c681bd0480 Improved mode/channel/bandwidth control mechanism
Now has tuning parameters for mono/stereo and voice/music. Also switches
to stereo during swb and without reducing the bandwidth.
2011-09-02 14:47:26 -04:00
Gregory Maxwell
64a3541aa9 Corrects many places where int was used where opus_int32 was needed. 2011-09-02 12:16:22 -04:00
Jean-Marc Valin
ec2802210c Removes code that became useless with the Opus-level highpass 2011-09-01 21:47:38 -04:00
Jean-Marc Valin
957f7f169b First attempt at global high-pass filter
Doesn't work for fixed-point for some unknown reason
2011-09-01 19:47:35 -04:00
Jean-Marc Valin
2f0ca7618d Simplifying buffering to make an Opus-level highpass possible 2011-09-01 16:56:40 -04:00
Jean-Marc Valin
06237d7b8c Implements the OpusCustom modes (mostly) properly 2011-09-01 13:20:40 -04:00
Jean-Marc Valin
f9e701ad24 Sharing more macros between the Opus code and the CELT low-level code 2011-08-31 17:52:10 -04:00
Jean-Marc Valin
875f8dbd56 Makes the CELT init() functions behave just like the Opus ones. 2011-08-31 16:43:08 -04:00
Jean-Marc Valin
58686e6fe1 Opus now only uses the _with_ec() calls to CELT 2011-08-31 16:25:50 -04:00
Jean-Marc Valin
927488b292 Implements OPUS_RESET_STATE for the encoder (untested as well) 2011-08-30 20:09:22 -04:00
Jean-Marc Valin
be89c39587 Using OPUS_ macros for <string.h> operations
Removes a bunch of system #include <...> in the process
2011-08-30 12:39:51 -04:00
Jean-Marc Valin
44e27dd8c2 Adds missing RESTORE_STACK to Opus encoder 2011-08-29 23:35:17 -04:00
Jean-Marc Valin
69bfc67109 Fixes a bug introduced in 8fe8b8e0b
The SILK bandwidth was incorrectly encoded in the ToC when SILK wasn't
using the "desired bandwidth"
2011-08-29 21:46:17 -04:00
Jean-Marc Valin
9bcfdb0d50 Fixes warnings 2011-08-29 16:25:54 -04:00
Jean-Marc Valin
85b8e62065 Fixes minor issues from the previous allocation wrapper patch 2011-08-29 16:10:08 -04:00
Jean-Marc Valin
07f884042e Wrapping all allocation within opus_alloc() and opus_free() 2011-08-29 15:08:51 -04:00
Jean-Marc Valin
9d8dc3a3cb Better error handling in the Opus API 2011-08-29 09:40:57 -04:00
Jean-Marc Valin
e766d9f63d s/INBAND_FEC_FLAG/INBAND_FEC/ 2011-08-28 20:27:18 -04:00
Gregory Maxwell
6db1d526b4 Disable the LPC mode highpass filter when set to APPLICATION_AUDIO. 2011-08-26 15:01:10 -04:00
Jean-Marc Valin
073c4e1472 More precise CELT/SILK delay compensation to reduce mode switching glitches 2011-08-26 13:01:42 -04:00
Ralph Giles
04cca289dc Expand tabs and regularize some conditionals. 2011-08-24 00:29:29 -04:00
Jean-Marc Valin
6696a1443b Moves align() to a single header 2011-08-22 10:40:38 -04:00
Jean-Marc Valin
2b98bdf532 Better handling of DTX for range coder state checks 2011-08-20 00:21:46 -04:00
Jean-Marc Valin
d48277374a Final range coder state now exposed through the ctl() interface 2011-08-19 17:07:16 -04:00
Jean-Marc Valin
06cee2b1b4 Including redundant frames in the final range coder state 2011-08-19 16:21:42 -04:00
Jean-Marc Valin
d9920f34e9 Removes opus_encoder.h and opus_decoder.h
Moves opaque structs directly to .c files
2011-08-19 13:00:49 -04:00
Jean-Marc Valin
69549ac05b Renaming "mode" option to "application" 2011-08-18 17:28:28 -04:00
Jean-Marc Valin
d7f6700f16 s/OPUS_SET_VBR_FLAG/OPUS_SET_VBR/ 2011-08-18 16:55:24 -04:00
Jean-Marc Valin
421a628f4d Changing the encoder to output the ToC in DTX mode
Also fixes the "output all zeros" case for DTX/PLC at the beginning of
a stream
2011-08-18 14:34:18 -04:00
Jean-Marc Valin
222494f3ea Adds a floating-point API to Opus
The high-level Opus encoder and decoder can now be compiled as
either fixed or float. Also, we now use the stack_alloc.h macros
in the top-level Opus code.
2011-08-17 15:53:37 -04:00
Jean-Marc Valin
66ff26f356 Define CELT bitrate=-1 as "unlimited" (i.e. all bytes given) 2011-08-15 22:37:11 -04:00
Jean-Marc Valin
51ac8e68e6 Fixes a high bit-rate redundant frame bug
We now ensure that the total payload *including* the redundant frame
is no more than 1275 bytes. Also, the redundant frame itself must
be no more than 257 (the max that can be signalled).
2011-08-15 22:06:02 -04:00
Gregory Maxwell
03f7de77a4 Strip off trailing zero bytes when in LPC mode.
Saves about 60 bits/sec for 20ms frames.
2011-08-15 18:22:23 -04:00
Jean-Marc Valin
66c612ef43 Fixes an encoder bugg when requesting a CBR rate over the allowable limit 2011-08-15 14:08:57 -04:00
Jean-Marc Valin
81936d5ffd Properly take into account the frame size to decide the mode 2011-08-13 01:44:39 -04:00
Jean-Marc Valin
6854556556 Fixes a mode transition bug found by fuzzing
During SILK->CELT transitions, we were delaying the mode change by
one frame, but only after having ensured that bandwidth and mode were
consistent. We now do the delaying earlier.
2011-08-12 00:30:47 -04:00
Jean-Marc Valin
f334c82ec3 Adds a fuzzing mode that causes the encoder to make random decisions 2011-08-11 16:48:05 -04:00
Jean-Marc Valin
9d8b519699 Adds OPUS_GET_LOOKAHEAD 2011-08-03 12:44:37 -04:00
Ralph Giles
641eea83b8 Regularize whitespace in the src directory.
Remove trailing whitespace, convert tabs to 4 spaces, re-align
test_opus to use 4-space indents instead of 3, and re-wrap some
long lines.
2011-08-02 10:06:59 -07:00
Jean-Marc Valin
d6a0216cf1 Making use of the opus_int* types in the toplevel Opus code 2011-07-29 20:10:27 -04:00
Jean-Marc Valin
d77d6a58fc Renamed celt_[u]int* to opus_[u]int* 2011-07-29 17:33:06 -04:00
Ralph Giles
3f0962cc1e Always enable OPUS_TEST_RANGE_CODER_STATE.
This removes the configurability of the OPUS_TEST_RANGE_CODER_STATE
consistency check, in favour of always running it. The performance
penalty is low, and it's an important check on correctness for the
reference encoder to provide.
2011-07-29 17:11:59 -04:00
Jean-Marc Valin
cc14cdf875 Ensures that the end band is always set for redundant frames 2011-07-07 22:39:56 -04:00
Jean-Marc Valin
d3358b1d42 Better error checking, getting 60 ms to work again 2011-06-14 14:48:53 -04:00
Jean-Marc Valin
23a900cebf Defensive programming: added some error checking 2011-06-14 14:34:02 -04:00
Jean-Marc Valin
00cb6f7ab4 splitting encoder config in terms of application and signal type 2011-05-26 15:06:30 -04:00
Jean-Marc Valin
541df0a97e Fixes an issue when triggering PLC before receiving any packet
also s/BANDWIDTH/OPUS_BANDWIDTH/
2011-05-26 00:22:58 -04:00
Koen Vos
479e18bcb7 Removes auto mode and fixes a force_mono issue 2011-05-25 23:09:52 -04:00
Jean-Marc Valin
baed21dc9d Fixes a bug in the init() functions where were weren't zeroing the entire state 2011-05-19 17:25:48 -04:00