aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2020-10-28Add support for Meson build systemTim-Philipp Müller
Tested on: - Linux/x86* with gcc - Android armv7 arm64 x86 x86_64 with clang - Windows x86 x86_64 with Visual Studio 2017 - Windows x86 x86_64 with MinGW - macOS x86_64 with clang - iOS arm64 x86_64 with clang Co-authored by: Nirbheek Chauhan <nirbheek@centricular.com> https://gitlab.xiph.org/xiph/opus/-/merge_requests/13
2020-08-21Replace WIN32 with _WIN32 everywhereNirbheek Chauhan
_WIN32 is defined on all Windows platforms by every compiler that targets Windows. We do not need WIN32 at all. Signed-off-by: Mark Harris <mark.hsj@gmail.com> Resolves https://github.com/xiph/opus/pull/104
2020-04-26Fix a typo in in opus_custom.h.Hua, Chunbo
Signed-off-by: Ralph Giles <giles@thaumas.net>
2019-04-10API for checking whether the encoder is in DTXGustaf Ullberg
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-05-03Fix opus_packet_parse() non-null arg attributeMark Harris
It is the size array that must be non-null.
2018-03-21Support for Ambisonics.Andrew Allen
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-12-07Decouple OpusProjection* API from static matrices.Andrew Allen
Change-Id: I3db285875b6b5548decc436be00096b97be1be3c Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-16Define integer types from stdint.h where it's availableKári Tristan Helgason
This fixes issues when using neon intrinsics on 64-bit systems. 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>
2017-05-01Avoid warning when __STDC_VERSION__ is not definedCarlos Alberto Lopez Perez
This fixes an issue with gcc 4.9 on Debian 8, at least, which defines __STDC__ but not __STDC_VERSION__, unlike more recent gcc. Signed-off-by: Ralph Giles <giles@thaumas.net>
2017-03-27Fix OPUS_ARG_NONNULL indices in opus_multistream.hFelicia Lim
2016-11-04Removes OPUS_FRAMESIZE_VARIABLEJean-Marc Valin
That experiment never actually worked
2016-10-27Support encoding 80/100/120 ms frame lengthsFelicia Lim
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2016-09-03Allow disabling phase inversion for multistreamMark Harris
Also clarify in doc that conformance issue relates to decoder only.
2016-09-01Make it possible to ignore inverted phase stereo for downmix purposesJean-Marc Valin
2016-07-08Packets indicating DTX may be up to 2 bytesMark Harris
2016-07-06Update URLsMark Harris
2016-04-20win32: only use dllexport when building DLLDaniel Verkamp
If building a static library, marking symbols as dllexport causes them to be exported from the final executable. For example, run objdump -x opus_demo.exe on a --disabled-shared build and look for the export table; there should not be one in a normal Win32 .exe file, but when linking static libopus, the exe exports all of the opus_* public functions. Use the libtool-defined DLL_EXPORT flag to determine whether we are building a DLL and only specify __declspec(dllexport) in that case.
2016-01-07Suggest OPUS_LSB_DEPTH(14) for G.711. r=td-linux,mark4oRalph Giles
This is a reasonable choice for the (non-linear) dynamic range of mu-law. A-law is technically 13 bit, maybe 12; experimentation is needed. Per irc discussion with Jean-Marc, Ron, and Mark Harris.
2015-10-23Updating links for both https and new versionsMark Harris
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-23Corrections to docMark Harris
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-06-23Improve OPUS_GET_LSB_DEPTH documentation.Timothy B. Terriberry
We use at most 16 when using fixed-point (for the API or the internal implementation), but we didn't tell anyone this.
2015-02-20Document how to tell if your build is fixed-point.Timothy B. Terriberry
This way we won't break this by accident.
2014-12-20Document the motivation for the 120 ms repacketizer limit.Ralph Giles
See the mailing list discussion at http://lists.xiph.org/pipermail/opus/2014-December/002802.html
2014-09-04Lowered the smallest packet that the multi-stream encoder can encodeJean-Marc Valin
Limit now at 2*streams-1 and anything below that returns OPUS_BUFFER_TOO_SMALL rather than OPUS_BAD_ARG
2014-02-24Fixes encoder/decoder classification of ctl() requests.Bruno Randolf
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-24Put custom_encoder_init decl behind CUSTOM_MODES. More softclip tests.Gregory Maxwell
This removes an unused definition warning when compiling without custom modes.
2013-11-18Adds functions for multistream padding/unpadding and single-stream unpaddingJean-Marc Valin
These are all completely untested.
2013-11-15Adds OPUS_SET_PREDICTION_DISABLED() ctl to force "independent" framesJean-Marc Valin
Works by turning off pitch and energy prediction in CELT, while setting first_frame_after_reset in SILK to disable pitch and LSF interpolation and reduce LPC gain.
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-08Hides OPUS_FRAMESIZE_VARIABLE from the API until it actually worksJean-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-06-29Fixes some return without va_end in the api, adds tests.Gregory Maxwell
Also makes the CTL bad argument handling more consistent to avoid mistakes like that in the future. Also updates the variable duration docs.
2013-06-17Use __declspec(dllexport) on mingw build.Jacek Caban
Signed-off-by: Gregory Maxwell <greg@xiph.org>
2013-05-18Change few remaining instances of short to opus_int16Jean-Marc Valin
2013-05-05Implements basic surround maskingJean-Marc Valin
The idea is that the rate of each stream is adjusted based on its contribution to the total energy of a stereo downmix.
2013-05-05Initial surround code with new APIJean-Marc Valin
Conflicts: src/opus_multistream_encoder.c
2013-03-18Minor soft clipping doc fixJean-Marc Valin
2013-03-08Merge branch 'exp_analysis'Jean-Marc Valin
Conflicts: celt/celt_encoder.c
2013-03-01Oops, fixed API name from previous commitJean-Marc Valin
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-10First attempt at varying the frame size depending on the audio (float only)Jean-Marc Valin
The search is based on minimizing the bitrate increase due to transients by considering we can reduce the "transient boost" by reducing the frame size, at the cost of increasing the normal overhead.
2012-12-11Document that opus_packet_get_nb_frames, etc. can return OPUS_BAD_ARG.Ralph Giles
NB they only check for len < 1, not for null data.
2012-12-04Implements opus_packet_get_nb_samples()Jean-Marc Valin
2012-12-04Implements OPUS_GET_LAST_FRAME_DURATION decoder ctl()Jean-Marc Valin
2012-12-04Changes the PLC behaviour and fixes the FEC behaviour on concatenated packetsJean-Marc Valin
PLC and FEC now return exactly the number of samples specified for the buffer rather than (usually) returning the size of the last packet. Doc and tests are updated accordingly.
2012-11-29Allow the build files to override OPUS_EXPORT.Ralph Giles
OPUS_EXPORT was conditionalized on OPUS_BUILD, so that symbols are export based on public header declarations when building opus as a library, but not when those headers are included in other programmes. This doesn't address the case when the opus source and its caller are both included in the same monolithic build. In that case we want to define OPUS_BUILD, to indicate that we are compiling the codec source, but not export the symbols. To support this, only define OPUS_EXPORT if it is not already defined. This allows build scripts to -DOPUS_EXPORT and override the platform-specific attribute decortation in opus_defines.h. Based on a patch by Sergey Ulanov. http://git.chromium.org/gitweb/?p=chromium/deps/opus.git;a=commitdiff;h=6304b9628cb7244e3cc78f740aeb6659562f1857
2012-11-08Fixes issues with multiple files defining CELT_CJean-Marc Valin
2012-11-08Splits out the CELT encoder and decoderJean-Marc Valin