The command line has changed, for the better, but we need to
update the way we call it. Also adds an install hint if it's
not found on the path.
NB I tried to detect and fallback to the old syntax for the
version 1 (TCL) implementation but this is hard because it
doesn't support any switches (like --version) and it no
longer parses our remote entities.
This should reduce computation, reduce stack usage, and be
substantially easier to read, but should not change behavior.
It's not quite bit-exact because I collapsed the application of the
decay and the fading into a single pass to save one multiply per
sample, but the difference signal is silent.
It also changes the comments into complete sentences.
Library soname versioning is something we normally change
only right before each release. However, with 1.0.2 being
released from the 1.0.x branch with 3.0.3, it makes sense
to make the same update here. That way when we do a new
release from master we can just increment again and have
the version properly reflect ranges relative to the stable
branch.
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 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.
This is a heavily modified version of the demonstration program
Jüri Aedla posted to the mailing list. Verified to pass with
the current commit, but fail with the tree from two commits ago.
http://lists.xiph.org/pipermail/opus/2012-November/001834.html
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.
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