aboutsummaryrefslogtreecommitdiff
path: root/src/opus_private.h
AgeCommit message (Collapse)Author
2019-02-13Fixes analysis buffering for silence and complexity changesJean-Marc Valin
The previous code would go out of sync in those cases.
2018-07-26Remove ambisonics experimental flagJean-Marc Valin
2017-12-07Fix memory issues in Projection API.Andrew Allen
Modified by Jean-Marc Valin Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-07Support for Channel Mapping 253Andrew Allen
OpusProjection* classes MixingMatrix class Projection tests Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9 Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2016-11-04Removes OPUS_FRAMESIZE_VARIABLEJean-Marc Valin
That experiment never actually worked
2015-08-04Eliminate signed division overhead in align()Mark Harris
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2015-08-04Simplify and generalize implementation of align(). Should be very efficient ↵Jonathan Lennox
on sensible platforms, and correct everywhere.
2015-08-04Make align() work even on machines with 32-bit charsJean-Marc Valin
2015-08-03More conservative alignmentJean-Marc Valin
Based on max size of void*, opus_int32 and opus_val32, rounded up to the nearest power of two
2013-12-10Fixes code that was doing arithmetic on a void pointer.Jean-Marc Valin
Thanks to Kevin O'Connor for reporting this.
2013-12-09Optimizes encoder NaN detection and clipping by only running them when neededJean-Marc Valin
NaN detection should now be able to catch values that would create NaNs further down.
2013-11-13Adds packet padding that works for all codes and fixes 40/60 ms CBR.Jean-Marc Valin
Padding is now handled by the repacketizer.
2013-11-13Variable frame size fixes (still not exposed in the API)Jean-Marc Valin
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-10-28Fixes DISABLE_FLOAT_API buildJean-Marc Valin
2013-10-28Replace "inline" with OPUS_INLINE.Gregory Maxwell
Newer versions of MSVC are unhappy with the strategy of the build environment redefining "inline" (even though they don't support the actual keyword). Instead we define OPUS_INLINE to the right thing in opus_defines.h. This is the same approach we use for restrict.
2013-10-14Surround encoder can now produce hard CBR streams again.Jean-Marc Valin
Even when using SILK/hybrid.
2013-10-14Oops, thanks to Mark Harris for spotting this!Jean-Marc Valin
2013-10-14opus_packet_parse_impl() now computes the packet size with paddingJean-Marc Valin
This should fix decoding of padded multistream packets and (hopefully) multistream fec.
2013-10-11Do up-front validation of multistream packetsJean-Marc Valin
Prevents the decoder from being out-of-sync on an invalid packet. Also returns OPUS_INVALID_PACKET on a corrupted FEC packet.
2013-09-16Moves frame size selection back out of opus_encode_native()Jean-Marc Valin
Should fix delayed decision on surround, but not well tested.
2013-09-06First pass at making the analysis code run with FIXED_POINTJean-Marc Valin
Code is still float, but at least tonality esitmation seems to work. Speech/music analysis is still disabled.
2013-09-05Moves the analysis back to opus_encode_native() to it runs for all streams.Jean-Marc Valin
I checked that it's not *completely* busted, but it probably needs more testing.
2013-05-18Change few remaining instances of short to opus_int16Jean-Marc Valin
2013-03-08Merge branch 'exp_analysis'Jean-Marc Valin
Conflicts: celt/celt_encoder.c
2013-03-01Applies soft-clipping to the int decoder API.Jean-Marc Valin
opus_decode() and opus_multistream_decode() now apply soft clipping before converting to 16-bit int. This should produce better a higher quality result than hard clipping like we were doing before. The _float() API isn't affected, but the clipping function is exported so users can manually apply the soft clipping.
2013-02-20Adds support for delayed decisionJean-Marc Valin
Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION, with new API. Also moves up the analysis to avoid having to do int->float conversion on large buffers.
2013-02-10Making multistream variable duration work for both the float and int APIJean-Marc Valin
2013-02-10Multistream support for variable frame durationJean-Marc Valin
Also fixes a bug with stereo streams where the initial memory was only using the left channel.
2012-12-21Capping lsb_depth to 16 unless using the float API of a float buildJean-Marc Valin
2012-11-07Splits out the Opus multi-stream encoder and decoderJean-Marc Valin
2012-10-10Attenuates the HF in hybrid mode to match what SILK does below the cutoffKoen Vos
Conflicts: src/opus_multistream.c src/opus_private.h
2012-08-17Fix an MSVC warning.Ralph Giles
Microsoft Visual Studio 2010 warns about 'C4146: unary minus operator applied to unsigned type, result still unsigned' because of the '&-sizeof(void*)' in align(). This commit works around the warning by casting the size_t to int before negation. Patch by Hauke, who reported the issue on the opus mailing list. Reviewed by derf.
2012-05-04Increase alignment of the internal state structures to sizeof(void *) from 4 ↵Gregory Maxwell
bytes. OpusCustomMode begins with a pointer and was getting misaligned on 64 bit arches.
2012-04-24Merge commit '390c89225d'Jean-Marc Valin
2012-04-20s/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"Jean-Marc Valin
Also added 3rd clause to "master" COPYING file
2012-03-08Fixes int vs opus_int32 compile errors on C5xJean-Marc Valin
2012-03-05More consistent types for 16-bit architecturesJean-Marc Valin
2011-12-02Rename '_FOO' to avoid potentional collisions with reserved identifiers.Ralph Giles
C reserves identifiers of the from _[A-Z]+ and we have a number of those in the code. This patch renames the various function arguments, MACROS and preprocessor symbols to avoid the reserved form. It also removes the CHANNELS() macro altogether. This was a minor optimization for TI DSP to force a mono-only build, as were the associated local 'const' versions. Since stereo support is manditory, it wasn't worth keeping. Thanks to John Ridges for raising the issue, and Jean-Marc Valin and Greg Maxwell for reviewing the changes.
2011-10-27Gives the Opus code direct access to (non-opaque) OpusRepacketizerJean-Marc Valin
This avoids potential alignment issues with allocating a char array on the stack.
2011-10-27Makes OPUS_SET_VOICE_RATIO privateJean-Marc Valin
Let's put it back in if/when we have a clearer view of voice/music detection
2011-09-09Makes multi-stream encoding code use the repacketizerJean-Marc Valin
2011-09-08Adds ctl() requests for forcing any operating mode in the encoderJean-Marc Valin
Also merges all the OPUS_*_AUTO into a single OPUS_AUTO parameter
2011-08-28Making sure that everything in opus.h has a opus prefixJean-Marc Valin
2011-08-27Adds support for multi-stream encoding/decodingJean-Marc Valin
Only tested for the single-stream case!
2011-08-23encode_size() moved out of opus_encoder.cJean-Marc Valin
2011-08-22Moves align() to a single headerJean-Marc Valin