Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
|
|
noticing.
|
|
|
|
|
|
I stumbled upon the typo in README.draft, so took the opportunity to
grep for common misspellings using List_of_common_misspellings.txt for
hunspell.
|
|
|
|
This could be confusing/misleading.
|
|
|
|
This patch also includes some small edits/additions to the main API
documentation.
|
|
|
|
This patch also includes some small edits for the main API
documentation.
|
|
This avoids allocating any buffers on the stack that depend on the
total channel count.
Such buffers could easily exceed the size of the
NONTHREADSAFE_PSEUDOSTACK.
It also checks the frame_size argument in both the encoder and
decoder to avoid allocating large stack buffers for opus_encode()
calls that would fail anyway or opus_decode() calls that would
never use all that space anyway.
|
|
In particular we no longer document the default complexity because
we're not guaranteeing to keep the default value constant. In the
future the default may be lowered in order to keep the default
speed constant.
|
|
In addition to general reformatting and cleanup, this fixes a
couple of important mistakes:
- The arguments to OPUS_SET_FORCE_CHANNELS are now 1 and 2, not 0
and 1 (as they were when this was called OPUS_SET_FORCE_MONO).
- The default encoder mode is now constrained VBR, not unconstrained
VBR.
It also documents defaults for all the other parameters.
|
|
This implements an API used in future encoders to avoid dynalloc doing silly things
on periodic LSB patterns and to reduce the bitrate on near-silence.
|
|
|
|
|
|
|
|
The usage of restrict in include/opus_custom.h was missed
by the prior commit replacing this keyword with a macro.
Also fixes some prototype/function agreement with respect to
restrict.
|
|
The usage of restrict in include/opus_custom.h was missed
by the prior commit replacing this keyword with a macro.
|
|
We had previously advised people to -Drestrict on
non-C99 compilers, but this creates problems for
some of the MSVC headers. Instead this just
uses a macro and defines it sanely.
|
|
|
|
This is the less-surprising behavior and will hopefully
result in fewer corner case bugs (e.g. losing gain
after seeking). This commit also updates the documentation.
|
|
This CTL was requested by Nicolas George for FFmpeg.
|
|
|