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