Commit graph

107 commits

Author SHA1 Message Date
Jean-Marc Valin
16f15924f8 Fixes a corruption when decoding FEC frames 2011-10-10 21:29:20 -04:00
Koen Vos
3195f6cdb9 Misc SILK fixes:
- compile warning in opus_decoder.c
- decoder state reduced by ~3 kB (by merging buffers, as Tim suggested)
- some minor decoder optimizations (only the PLC is non-bit exact, so should be ok)
2011-10-10 20:46:32 -04:00
Jean-Marc Valin
591b74945d Redundancy fixes
No longer encoding the redundancy flag for SILK since we can infer
redundancy from the length of the frame. Also, we skip encoding the
flag for hybrid mode when we know the decoder will not read it.
2011-10-08 10:22:10 -04:00
Gregory Maxwell
e98f1f5003 Fix C89 incompatible mixed declarations and code introduced by 220a7d4b. 2011-10-05 01:59:28 -04:00
Jean-Marc Valin
bc2eebdf46 Fixes glithes when switching between SILK-only and hybrid
We now reset the CELT state when swithing to hybrid and we "drain"
the CELT MDCT overlap when switching away from hybrid.
2011-10-04 11:59:32 -04:00
Jean-Marc Valin
0c5085ad2f Prevents the SILK PLC from being called with an invalid frame size or sampling rate 2011-10-04 01:10:32 -04:00
Gregory Maxwell
8a7543c49e Remove warning added by 4cc9a459. 2011-10-03 13:33:04 -04:00
Gregory Maxwell
4cc9a459e8 Eliminate redundant redundancy code.
The redundancy_bytes<0 test always fails because of the ec_tell(&dec)+29 test above.
2011-10-03 13:12:54 -04:00
Gregory Maxwell
32af90ae65 Improve opus_decode() error code consistency. 2011-10-02 14:27:51 -04:00
Gregory Maxwell
220a7d4ba8 Fix bug in the OPUS_GET_APPLICATION_REQUEST ctl and also add a bunch of set ctl range checking and improve encoder/decoder error code consistency. 2011-10-01 20:35:19 -04:00
Jean-Marc Valin
1c2f5633d1 Removed all the silk_ prefixes in source file names (not symbols) 2011-09-16 01:16:53 -07:00
Jean-Marc Valin
fb3a437c9d Renaming the SKP_ prefix to silk_ 2011-09-16 00:58:26 -07:00
Jean-Marc Valin
25f7f35555 Implements OPUS_GET_PITCH that queries the decoded pitch 2011-09-14 09:50:06 -07:00
Jean-Marc Valin
823a0541a1 Fixes silly CBR/VBR inversion bug from 7954065c77 2011-09-08 16:26:54 -04:00
Gregory Maxwell
f451b33b16 Sanitize input to opus_en/decoder_get_size. 2011-09-06 16:38:25 -04:00
Jean-Marc Valin
50ef21c0a9 Making redundancy length decoding errors non-fatal 2011-09-06 15:19:04 -04:00
Jean-Marc Valin
331e9fe0fd s/OPUS_CORRUPTED_DATA/OPUS_INVALID_PACKET/ 2011-09-06 14:30:19 -04:00
Jean-Marc Valin
e5736ae26a Making sure redundant frames can never bust the buget
This is now part of the bit-stream
2011-09-05 10:28:27 -04:00
Gregory Maxwell
2e7feb5124 Make opus_decode() reject crazy decode_fec values. 2011-09-04 09:14:55 -04:00
Gregory Maxwell
d32f94876e Prevents OPUS_RESET_STATE from causing segfault. 2011-09-04 07:51:31 -04:00
Gregory Maxwell
e03af4423d Prevent double free on encoder/decoder init failure. 2011-09-04 04:43:11 -04:00
Gregory Maxwell
a40721a92e Make opus_decoder_create set its error code. 2011-09-04 04:25:12 -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
e335065a1b passing self_delimited flag to opus_packet_parse_impl() in decoder 2011-09-01 20:55:07 -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
0446563010 Implements OPUS_RESET_STATE for the decoder (untested) 2011-08-30 18:01:06 -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
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
d4e9340591 Adds support for multi-stream encoding/decoding
Only tested for the single-stream case!
2011-08-27 01:15:43 -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
Timothy B. Terriberry
7954065c77 Adds code for parsing self-delimited packets 2011-08-18 23:29:52 -04:00
Jean-Marc Valin
69549ac05b Renaming "mode" option to "application" 2011-08-18 17:28:28 -04:00
Jean-Marc Valin
6bb1c1838d opus_packet_parse() now returns the payload offset rather than the pointer 2011-08-18 15:54:00 -04:00
Jean-Marc Valin
8fe8b8e0b6 Making sure the decoder always outputs at least 2.5 ms 2011-08-18 15:00:59 -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
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
4154dad41e Refactoring the decoder to create opus_packet_parse() 2011-08-08 11:57:13 -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
ff5f7228fd Renamed celt_word* to opus_val* 2011-07-29 18:59:12 -04:00