Age | Commit message (Collapse) | Author |
|
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
|
|
_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
|
|
Signed-off-by: Ralph Giles <giles@thaumas.net>
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
It is the size array that must be non-null.
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Change-Id: I3db285875b6b5548decc436be00096b97be1be3c
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
This fixes issues when using neon intrinsics on 64-bit
systems.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
OpusProjection* classes
MixingMatrix class
Projection tests
Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
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>
|
|
|
|
That experiment never actually worked
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Also clarify in doc that conformance issue relates to decoder only.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
We use at most 16 when using fixed-point (for the API or the
internal implementation), but we didn't tell anyone this.
|
|
This way we won't break this by accident.
|
|
See the mailing list discussion at
http://lists.xiph.org/pipermail/opus/2014-December/002802.html
|
|
Limit now at 2*streams-1 and anything below that returns OPUS_BUFFER_TOO_SMALL
rather than OPUS_BAD_ARG
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
This removes an unused definition warning when compiling without
custom modes.
|
|
These are all completely untested.
|
|
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.
|
|
Padding is now handled by the repacketizer.
|
|
|
|
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.
|
|
Also makes the CTL bad argument handling more consistent to avoid mistakes
like that in the future. Also updates the variable duration docs.
|
|
Signed-off-by: Gregory Maxwell <greg@xiph.org>
|
|
|
|
The idea is that the rate of each stream is adjusted based on its
contribution to the total energy of a stereo downmix.
|
|
Conflicts:
src/opus_multistream_encoder.c
|
|
|
|
Conflicts:
celt/celt_encoder.c
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
NB they only check for len < 1, not for null data.
|
|
|
|
|
|
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.
|
|
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
|
|
|
|
|