Age | Commit message (Collapse) | Author |
|
|
|
The 1.0.x branch doesn't have all the LFE optimizations that master has.
|
|
|
|
Signed-off-by: Gregory Maxwell <greg@xiph.org>
|
|
|
|
|
|
factor, resulting in extreme attenuation of the PLC excitation.
|
|
This is a follow-up on ac76b15. When Schur blows up, we set the last RC to
+/- 0.99 instead of eliminating it.
|
|
We stop the schur recursion before any reflection coefficient
goes outside of ]-1,1[ and we force reporting a residual energy
of at least 1.
Assertion was:
Fatal (internal) error in ../silk/fixed/noise_shape_analysis_FIX.c, line 290: assertion failed: nrg >= 0
triggered by:
opus_demo voip 16000 1 12500 -bandwidth WB -complexity 10 pl04f087.stp-crash out.pcm
|
|
We shouldn't ever have any trailing newlines that need trimming here,
and the _s version wasn't added to m4sugar.m4 until autoconf 2.63b,
so this will let it work with 2.13 again.
(cherry picked from commit 918acd1564a38c61f3cb2392d3b38f1539f14eda)
|
|
(cherry picked from commit 3e6691a703c5139d3052b99c1d9e6331c84e1b7e)
|
|
It breaks the autoconf builds amusingly when that is left behind.
(cherry picked from commit 8f486e730cdbcdaab08e5d4352a0a1d35a7f7aba)
|
|
|
|
There's currently at least one way that people can legitimately get a
tarball that doesn't include it, via the gitweb snapshots, so create
it rather than considering that an error to be manually fixed.
(cherry picked from commit 8d925ec2543a57ea48dad576b00bd14dbc4c817e)
|
|
Drop some unneeded CINCLUDES.
Drop the VPATH stuff altogether. It's entirely unused here, and some of
the paths in it don't even exist and apparently never have in this tree.
Drop the 'default' rule, without it there, 'all' already is the default.
Drop $(TARGET) from all, it already includes 'lib' which is $(TARGET).
Declare phony targets PHONY.
(cherry picked from commit 8ee899b62a4a11a49060a810e39dd75a874ccaaf)
|
|
This one meets or exceeds the following requirements:
- Version is checked/updated for every build action when in the git repo.
Does not require the user to re- ./configure to get the correct version.
- Version is not updated automatically when using exported tarball source.
Avoids accidentally getting a wrong version from some other git repo in
a parent directory of the source, and allows setting the correct version
for distro package exports.
- Automatic updating can be manually suppressed.
For developers doing lots of change/rebuild cycles they don't plan to
release, when they don't want a full rebuild triggered for every commit,
and again for every change made immediately after a commit.
The version will still always be updated if they do a `make dist`.
- Does not require any manual updating of versions in the mainline git
repo for each release aside from normal tagging. The version is
recorded in one file only, that is automatically generated and will
never need to be committed.
- Does not require gnu-make features for the autoconf builds.
It does not currently:
- Keep a checksum of every source file in tarball releases to mangle the
version if people modify the tarball source. Responsible people can
manually update the version easily though in such cases.
The version.mk file is now only used by the VC project files. Once they
are updated to use the package_version file too, then it can be deleted
from the repository.
Backported from 2f2f9d63b84d0eacdf66c03b683b932b367b017e.
|
|
1) The memcpy's were using sizeof(opus_int32), but the type of the
local buffer was opus_int16.
2) Because the size was wrong, this potentially allowed the source
and destination regions of the memcpy overlap.
I _believe_ that nSamplesIn is at least fs_in_khZ, which is at
least 8.
Since RESAMPLER_ORDER_FIR_12 is only 8, I don't think that's a
problem once you fix the type size.
3) The size of the buffer used RESAMPLER_MAX_BATCH_SIZE_IN, but the
data stored in it was actually _twice_ the input batch size
(nSamplesIn<<1).
Because this never blew up in testing, I suspect that in practice
the batch sizes are reasonable enough that none of these things
was ever a problem, but proving that seems non-obvious.
This patch just converts the whole thing to use CELT's vararrays.
This fixes the buffer size problems (since we allocate a buffer
with the actual size we use) and gets these large buffers off the
stack on devices using the pseudo-stack.
It also fixes the memcpy problems by changing the sizeof to
opus_int16.
It turns out sFIR, which saved state between calls, was being used
elsewhere as opus_int32, so this converts it to a union to make
this sharing explicit.
|
|
|
|
In cases where the SILK desired bandwidth went down, then quickly up, we
count get stuck in a mode with the LP variation going the wrong way.
packport of the relevant part of 3ecd9c20cbc77e8
|
|
This left FEC disabled on the decoder side for all cases except concatenated
packets. Also fixes a FEC bug in opus_demo (wrong output buffer size
calculation).
Conflicts:
src/opus_decoder.c
|
|
We weren't doing the prefilling for SILK->SILK transitions.
|
|
<cliff@espico.com>
|
|
By not reinitializing the stereo state during a switch, the old stereo
memory would create a false impulse (i.e. single sample) in the decoded audio.
This change affects the normative part of the decoder. Fortunately,
the modified decoder is still compliant with the specification because
it still easily passes the testvectors. For example, for the float decoder
at 48 kHz, the opus_compare (arbitrary) "quality score" changes from
from 99.9333% to 99.925%.
|
|
This avoids a warning about obsolete AM_CONFIG_HEADERS() on more
recent autoconf. The new macro has been around at least since
autoconf 2.60. So this should be safe.
|
|
NB they only check for len < 1, not for null data.
|
|
|
|
Also remove a useless extern that crept into the tests from some
optimization driven testcase generation.
|
|
Calling PLC/FEC with a different size was not updating it
Fixed a case of confusing indenting in the process of backporting.
Conflicts:
src/opus_decoder.c
|
|
|
|
In this case I just replaced the Skype link.
|
|
This applies in addition to the earlier grant made by
Skype, which was purchased by Microsoft.
|
|
|
|
|
|
Backport of commit 512d849
Conflicts:
src/opus_multistream_decoder.c
|
|
|
|
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.
This is a backport of commit 7fcd66c (plus fix in 8c9c9b2)
Conflicts:
src/opus_decoder.c
|
|
Fixes an MSVC warning.
|
|
This avoids linker errors with VS2010 of the form
failure during conversion to COFF: invalid file or corrupt
[c:\users\giles\opus\source\opus_demo.vcxproj]
The problem does not occur if the project files are updated
to build under VS2012.
|
|
Backport of e0491e7d18038b4bcd21c290dae51dfe019977ef
Previous code was so broken that it's`not worth listing the changes.
Aside from quality, one obvious improvement is a 3.75k reduction in stack size
Also brings in some indirection removals and another PLC fix from
4ea3ae9af77d23c71a84ae50e0a411afa66a0463
|
|
|
|
This was reported by Juri Aedla and is limited to reading memory up
to about 60 kB beyond the compressed buffer. This can only be triggered
by a compressed packet more than about 16 MB long, so it's not a problem
for RTP. In theory, it *could* crash an Ogg decoder if the memory just after
the incoming packet is out-of-range.
|
|
We don't ever use the WORDS_BIGENDIAN cpp symbol in our code.
|
|
The README doesn't say anything about this particular define.
Refer people to config.h and the other build files for examples.
|
|
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
|
|
We always define OPUS_BUILD, so this code has no effect.
Likewise there is no reason for it to be conditional.
According to Jean-Marc it's left over from when we had
an alternate CELT_BUILD define.
Backport of 83f8012ca572 on master.
|
|
This also adds some extra casts to shut up compiler warnings
reported on MSVC 6 where there is implicit truncation for the
arguments of bitexact_cos().
Lacking access to CLZ/BSR will make the code a fair bit slower but
that is better than failing to compile.
|
|
max_decay was being computed based on the small number of bits allocated
to CELT. It's now set to the max value (16) when in hybrid mode.
|
|
Also forces SPREAD_NORMAL in hybrid mode
Backported from master commit 1fd1d7dd49c34c7d64bf26f60782afc17dab6842
|
|
This prevents issues on speech where tf would undo what transient_analysis()
found
Backported/adapted from master commit a6d663c6ae089b0a9682c848f3ff7701b316526f
|
|
This fixes a SWB hybrid issue where band 18 isn't folded and cannot even
be folded because it's wider than band 17. This was causing noise to
be injected instead.
|