Commit graph

2792 commits

Author SHA1 Message Date
Jean-Marc Valin
3593bbf481 missing comment in win32/config.h 2012-12-21 14:11:10 -05:00
Jean-Marc Valin
23fcd706fb Only use automatic bandwidth detection when the user doesn't force bandwidth
Also fixes an issue with 40- and 60-ms frames using the repacketizer.
2012-12-21 13:09:43 -05:00
Jean-Marc Valin
2dd3fb9d59 Fixes bandwidth detection by not relying on uninitialized data 2012-12-21 12:28:25 -05:00
Jean-Marc Valin
5fb50adb7a skip bands with no energy 2012-12-21 11:52:03 -05:00
Jean-Marc Valin
b3eba24bab Capping lsb_depth to 16 unless using the float API of a float build 2012-12-21 11:51:59 -05:00
Jean-Marc Valin
7509fdb813 New bandwidth detection code
Can now work up to full-band and uses lsb_depth to fix the noise issue.
2012-12-21 11:51:45 -05:00
Jean-Marc Valin
56921ff73f Bump version number 2012-12-20 13:00:52 -05:00
Ralph Giles
05bf400a7a Update ogg draft based on comments from Tina le Grand.
http://www.ietf.org/mail-archive/web/codec/current/msg02951.html
2012-12-19 12:21:06 -08:00
Ralph Giles
c763a35e9c Update the oggopus script to use xml2rfc v2.
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.
2012-12-18 16:37:04 -08:00
Jean-Marc Valin
90bac9d148 Minor tuining of complexity thresholds 2012-12-14 14:01:06 -05:00
Jean-Marc Valin
28ef277db4 VBR code simplification 2012-12-14 13:21:09 -05:00
Jean-Marc Valin
dae16fb94b Cleanup: tf_estimate now ranges from 0 to 1 2012-12-13 21:40:58 -05:00
Jean-Marc Valin
f8809dda4b Dynalloc rate calibration 2012-12-12 15:30:26 -05:00
Jean-Marc Valin
1122d299ab Makes "stereo savings" less aggressive on mono or near-mono.
The max reduction now depends on intensity threshold too.
2012-12-12 15:30:23 -05:00
Jean-Marc Valin
b33db8f318 Makes tonality boost less aggressive
Some tests like Kamedo's HA test suggested that our tonal boost was a bit
too extreme.
2012-12-12 15:30:14 -05:00
Jean-Marc Valin
41fd7a12b5 Disables the new spread+tapset estimator 2012-12-12 14:41:29 -05:00
Ralph Giles
256c9595d8 Document that opus_packet_get_nb_frames, etc. can return OPUS_BAD_ARG.
NB they only check for len < 1, not for null data.
2012-12-11 10:17:11 -08:00
Timothy B. Terriberry
8eb9bb7939 Numerous PLC cleanups.
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.
2012-12-07 14:07:22 -08:00
Ralph Giles
22d8dcf398 Remove the obsolete CELT_BUILD define from win32/config.h. 2012-12-07 09:16:34 -08:00
Gregory Maxwell
19239ea3a2 Add tests for GET_LAST_PACKET_DURATION.
Also remove a useless extern that crept into the tests from some
optimization driven testcase generation.
2012-12-05 21:50:08 -05:00
Jean-Marc Valin
a0737d1fcf Fixes OPUS_GET_LAST_PACKET_DURATION
Calling PLC/FEC with a different size was not updating it
2012-12-05 21:48:45 -05:00
Gregory Maxwell
535efb0707 Add missing packet_get_nb_samples test coverage and fix test output. 2012-12-05 19:27:12 -05:00
Ralph Giles
119d53c94d Bump soname version to match the 1.0.x branch.
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.
2012-12-05 15:57:45 -08:00
Ralph Giles
d215a11324 Link to the new Microsoft patent license.
This applies in addition to the earlier grant made by
Skype, which was purchased by Microsoft.
2012-12-05 13:15:25 -08:00
Jean-Marc Valin
2c1a11ff8a Adds assert to catch bug from previous commit 2012-12-05 00:54:21 -05:00
Jean-Marc Valin
8c9c9b280d Fixes a multi-frame FEC issue that was caught by valgrind 2012-12-05 00:53:05 -05:00
Jean-Marc Valin
9283114fa1 Adds explicit valgrind checks when ENABLE_VALGRIND is defined 2012-12-05 00:50:53 -05:00
Jean-Marc Valin
d0fd9d4baa Implements opus_packet_get_nb_samples() 2012-12-04 15:45:31 -05:00
Jean-Marc Valin
512d849c24 Implements OPUS_GET_LAST_FRAME_DURATION decoder ctl() 2012-12-04 15:17:43 -05:00
Jean-Marc Valin
a5bd440931 Don't update the internal decoder state until we know the packet is valid 2012-12-04 15:16:54 -05:00
Jean-Marc Valin
7fcd66c40d Changes the PLC behaviour and fixes the FEC behaviour on concatenated packets
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-12-04 15:07:45 -05:00
Ralph Giles
124f69b00c Remove MSVC incremental linking directives.
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.
2012-12-03 13:46:29 -08:00
Nils Wallménius
c093829c17 Do imdct post-rotate and deshuffle in-place.
Gets rid of one stack buffer.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2012-12-03 16:13:51 -05:00
Jean-Marc Valin
aa3a599caa Fixes forward MDCT for overlaps that aren't a multiple of 4
Adds more sizes to test_unit_mdct.c
2012-12-03 15:40:01 -05:00
Jean-Marc Valin
259e166648 Fix packet length handling for 16-bit machines (makes no difference on 32-bit) 2012-12-03 13:05:24 -05:00
Jean-Marc Valin
54f7cb4629 Updates MDCT unit test 2012-12-01 22:11:47 -05:00
Jean-Marc Valin
027a202151 More comments in the PLC 2012-12-01 22:01:09 -05:00
Nils Wallménius
cacb5661b3 Place output of imdct post-rotate and deshuffle in out buffer to avoid copying and simplify the code.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2012-12-01 15:54:04 -05:00
Nils Wallménius
e0884feb36 Window both sides of overlap when adding them.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2012-12-01 15:54:04 -05:00
Ralph Giles
e7ec933cb8 Add a regression test for the padding issue.
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
2012-11-30 18:00:38 -08:00
Jean-Marc Valin
9345aaa5ca Fixes an out-of-bounds read issue with the padding handling code
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.
2012-11-30 17:36:36 -05:00
Jean-Marc Valin
b05aa1dd76 bump rtp draft version 2012-11-30 14:41:32 -05:00
Julian Spittka
03d5fec203 RTP draft updates addressing the rest of Tina's comments 2012-11-30 03:12:59 -05:00
Jean-Marc Valin
0094c88105 Better comments in the PLC 2012-11-29 18:00:02 -05:00
Ralph Giles
def001bd12 Remove obsolete check for endianness.
We don't ever use the WORDS_BIGENDIAN cpp symbol in our code.
2012-11-29 14:59:23 -08:00
Jean-Marc Valin
c3273ed7e7 Fixes an overflow in the fixed-point celt_sqrt() for large values.
Was causing problems with the PLC
2012-11-29 16:51:50 -05:00
Jean-Marc Valin
e0491e7d18 Fixes many many issues in the CELT PLC
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
2012-11-29 16:51:49 -05:00
Jean-Marc Valin
15f0f1f351 Addressing some of Tina's comments on the RTP draft 2012-11-29 16:51:49 -05:00
Ralph Giles
799b1700a5 Improve the !OPUS_BUILD #error.
The README doesn't say anything about this particular define.
Refer people to config.h and the other build files for examples.
2012-11-29 11:46:14 -08:00
Ralph Giles
265b6b11a3 Allow the build files to override OPUS_EXPORT.
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-29 11:26:38 -08:00