opus.git
7 years agoFixes a CELT->hybrid switching issue
Jean-Marc Valin [Wed, 19 Sep 2012 07:28:58 +0000 (03:28 -0400)]
Fixes a CELT->hybrid switching issue

Prefilling didn't use the right offset because of the extra_delay
changes introduced in the analysis branch.

7 years agoLink the include dir into out-of-tree build dirs
Ron [Tue, 18 Sep 2012 22:26:17 +0000 (07:56 +0930)]
Link the include dir into out-of-tree build dirs

Mostly this is for people building other things using an uninstalled
opus tree so that the opus-uninstalled.pc will return a working -I
with --cflags when PKG_CONFIG_PATH is set to point to the build dir.

The version of AC_OUTPUT that takes parameters has long been
deprecated now, and replaced by AC_CONFIG_* macros, so pass them
with AC_CONFIG_FILES, since we're now using AC_CONFIG_COMMANDS
to do the above.

7 years agoMove libm in pkgconf to Libs.private to avoid spurious dependencies.
Gregory Maxwell [Mon, 17 Sep 2012 13:57:22 +0000 (09:57 -0400)]
Move libm in pkgconf to Libs.private to avoid spurious dependencies.

7 years agoOpus custom requires libm unconditionally.
Ralph Giles [Mon, 17 Sep 2012 07:05:00 +0000 (00:05 -0700)]
Opus custom requires libm unconditionally.

7 years agoAdd -lm to the pkg-config link line.
Ralph Giles [Mon, 17 Sep 2012 06:09:21 +0000 (23:09 -0700)]
Add -lm to the pkg-config link line.

The floating-point build calls a number of math library
functions, and linking with libm is technically necessary.
It wasn't obvious because most systems support shlib
dependencies and pulled it in that way, or supply the
referenced functions with intrinsics. Discovered the issue
trying to build libopusfile against the uninstalled static
libopus, which unlike opus-tools, doesn't itself need libm.

The -lm argument is only added to Libs for the floating-
point (default) build. It's not necessary for the fixed-
point build.

Also mark which build was used in the .pc file description.

7 years agoRemove FLOATING_POINT from config.h.
Ralph Giles [Mon, 17 Sep 2012 06:15:37 +0000 (23:15 -0700)]
Remove FLOATING_POINT from config.h.

This isn't used anywhere in the code, floating point is just the
default unless FIXED_POINT is defined.

In the speex codebase, arch.h has a check that both FIXED_POINT
and FLOATING_POINT aren't defined simultaneously, in part as a
check that the build system was constructed with thought about
these and other defines. However, we don't have such a check
and to me it seems unnecessary code.

7 years agoRemove 'low-delay' from the pkg-config description.
Ralph Giles [Mon, 17 Sep 2012 06:14:31 +0000 (23:14 -0700)]
Remove 'low-delay' from the pkg-config description.

While a feature of Opus, its applications are not limited
to contexts where low delay is important.

7 years agoCapitalize Opus in the pkg-config file comment header.
Ralph Giles [Mon, 17 Sep 2012 05:40:37 +0000 (22:40 -0700)]
Capitalize Opus in the pkg-config file comment header.

7 years agoAdd a make install instruction to the README.
Gregory Maxwell [Sun, 16 Sep 2012 05:07:09 +0000 (01:07 -0400)]
Add a make install instruction to the README.

7 years agos/SHL/SHL16/
Jean-Marc Valin [Sat, 15 Sep 2012 07:09:35 +0000 (03:09 -0400)]
s/SHL/SHL16/

7 years agoShrinks tansig table, makes data static const
Jean-Marc Valin [Fri, 14 Sep 2012 19:49:18 +0000 (15:49 -0400)]
Shrinks tansig table, makes data static const

7 years agoMakes dynalloc more conservative for CBR and CVBR
Jean-Marc Valin [Fri, 14 Sep 2012 05:25:05 +0000 (01:25 -0400)]
Makes dynalloc more conservative for CBR and CVBR

7 years agoBit allocation fix for 16-bit platforms
Jean-Marc Valin [Thu, 13 Sep 2012 21:49:42 +0000 (17:49 -0400)]
Bit allocation fix for 16-bit platforms

7 years agoAdds anslysis code for tf_select
Jean-Marc Valin [Thu, 13 Sep 2012 03:33:30 +0000 (23:33 -0400)]
Adds anslysis code for tf_select

For now, we only allow tf_select=1 on transients. This is just to be
on the safe side.

7 years agosilk: move down- and upsamplers constants to the header file.
Diego Elio Pettenò [Mon, 10 Sep 2012 08:48:25 +0000 (01:48 -0700)]
silk: move down- and upsamplers constants to the header file.

These are only being used outside if the translation unit and only in
a few codepaths; by making them static in the header, the compiler can
optimize them quickly.

This avoids GOT-based access to the external symbol on Unix, and can
allow for constant propagation to optimize the code.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
7 years agoMove to comment a table that is never used in the code.
Diego Elio Pettenò [Mon, 10 Sep 2012 08:48:24 +0000 (01:48 -0700)]
Move to comment a table that is never used in the code.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
7 years agoMark tables static when not used outside of their translation unit.
Diego Elio Pettenò [Mon, 10 Sep 2012 08:48:23 +0000 (01:48 -0700)]
Mark tables static when not used outside of their translation unit.

This is similar to the change for functions, but is only used to
perform DCE.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
7 years agoMark functions static if they are only used in their own translation unit.
Diego Elio Pettenò [Mon, 10 Sep 2012 08:48:22 +0000 (01:48 -0700)]
Mark functions static if they are only used in their own translation unit.

This allows the compiler to perform more optimization on them as it
knows how the functions are being called.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
7 years agoopus_demo: mark tables as static constants.
Diego Elio Pettenò [Mon, 10 Sep 2012 08:48:19 +0000 (01:48 -0700)]
opus_demo: mark tables as static constants.

While this is not making a huge difference it still makes the code
more consistent.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
7 years agoFixes multistream doc
Jean-Marc Valin [Tue, 11 Sep 2012 01:47:09 +0000 (21:47 -0400)]
Fixes multistream doc

7 years agoExpand documentation for the multistream API.
Timothy B. Terriberry [Sun, 9 Sep 2012 14:22:11 +0000 (07:22 -0700)]
Expand documentation for the multistream API.

This patch also includes some small edits/additions to the main API
 documentation.

7 years agoFixes to the new repacketizer doc
Jean-Marc Valin [Mon, 10 Sep 2012 20:24:33 +0000 (16:24 -0400)]
Fixes to the new repacketizer doc

7 years agoAdd documentation for the repacketizer API.
Timothy B. Terriberry [Sun, 9 Sep 2012 10:13:26 +0000 (03:13 -0700)]
Add documentation for the repacketizer API.

This patch also includes some small edits for the main API
 documentation.

7 years agoUse dynamic stack allocations in SILK decoder.
Timothy B. Terriberry [Wed, 5 Sep 2012 14:35:49 +0000 (07:35 -0700)]
Use dynamic stack allocations in SILK decoder.

This allows the decoder to be compiled with
 NONTHREADSAFE_PSEUDOSTACK to move the memory for large buffers off
 the stack for devices where it is very limited.
This patch only attempts to do this for the decoder.
The encoder still requires more than 10 kB of stack.

7 years agoBump version to 1.0.1 1.0.1 v1.0.1
Jean-Marc Valin [Sat, 8 Sep 2012 06:29:35 +0000 (02:29 -0400)]
Bump version to 1.0.1

7 years agoRemove large multistream stack buffers.
Timothy B. Terriberry [Fri, 7 Sep 2012 13:01:53 +0000 (06:01 -0700)]
Remove large multistream stack buffers.

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.

7 years agoBalance parentheses in opus_multistream.c.
Timothy B. Terriberry [Thu, 6 Sep 2012 16:30:06 +0000 (09:30 -0700)]
Balance parentheses in opus_multistream.c.

This makes simple syntax highlighters (e.g., vim) stop complaining
 because they don't parse the #ifdef's.

7 years agosome doc for --enable-fixed-point and --enable-floating-point v1.0.1-rc3
Jean-Marc Valin [Sat, 1 Sep 2012 03:35:12 +0000 (23:35 -0400)]
some doc for --enable-fixed-point and --enable-floating-point

7 years agobump version, include Makefile.unix
Jean-Marc Valin [Sat, 1 Sep 2012 03:10:12 +0000 (23:10 -0400)]
bump version, include Makefile.unix

7 years agoAdd an m4 macro set for pkgconfig less usage with autotools.
Gregory Maxwell [Thu, 30 Aug 2012 16:26:34 +0000 (12:26 -0400)]
Add an m4 macro set for pkgconfig less usage with autotools.

7 years agoAdd opus_multistream.h to MSVC project files.
Gregory Maxwell [Wed, 29 Aug 2012 15:41:30 +0000 (11:41 -0400)]
Add opus_multistream.h to MSVC project files.

7 years agoAvoid using make -C, a gnuism, in Makefile.am.
Gregory Maxwell [Wed, 29 Aug 2012 14:31:16 +0000 (10:31 -0400)]
Avoid using make -C, a gnuism, in Makefile.am.

Instead use cd inside the makefiles.
This fixes 'make check', etc. with some non-gnu makes. (HPUX, for example)

7 years agoCompletely remove the built-in autotools -fstatck-protector detection.
Gregory Maxwell [Wed, 29 Aug 2012 14:29:24 +0000 (10:29 -0400)]
Completely remove the built-in autotools -fstatck-protector detection.

 On some systems (HPPA+HPUX+GCC) -fstatck-protector was causing failures not
at build or link time but at actual runtime. This is much less reasonable to
detect from autotools. It looks this this really can only safely be a white-
list, and the systems which would be whitelisted often already pick up the
setting from the OS build environment in any case.  It isn't important for
OPUS, we were just using it as belt-and-suspenders security and because it
makes some failure types easier to troubleshoot.

7 years agoMakes two static tables const
Jean-Marc Valin [Wed, 29 Aug 2012 13:43:23 +0000 (09:43 -0400)]
Makes two static tables const

7 years agoFixes an overflow in silk_log2lin() that was triggered only in debug mode
Jean-Marc Valin [Mon, 27 Aug 2012 04:16:38 +0000 (00:16 -0400)]
Fixes an overflow in silk_log2lin() that was triggered only in debug mode

7 years agoFix typo.
Timothy B. Terriberry [Fri, 24 Aug 2012 18:54:38 +0000 (11:54 -0700)]
Fix typo.

Thanks to Andrew D'Addesio for the report.

7 years agoMore email address updates for AUTHORS.
Gregory Maxwell [Thu, 23 Aug 2012 14:14:49 +0000 (10:14 -0400)]
More email address updates for AUTHORS.

7 years agoUpdate testvector path and filename.
Gregory Maxwell [Tue, 21 Aug 2012 21:56:51 +0000 (17:56 -0400)]
Update testvector path and filename.

7 years agoAdditional multistream tests and reject channels<1 in MS API.
Gregory Maxwell [Tue, 21 Aug 2012 20:08:35 +0000 (16:08 -0400)]
Additional multistream tests and reject channels<1 in MS API.

7 years agoRevise README, update AUTHORS emails.
Gregory Maxwell [Tue, 21 Aug 2012 18:24:38 +0000 (14:24 -0400)]
Revise README, update AUTHORS emails.

7 years agoClarify a comment.
Ralph Giles [Tue, 21 Aug 2012 18:22:08 +0000 (11:22 -0700)]
Clarify a comment.

Further cleanup of the confusion with the version string settings.

7 years agoPropagate OPUS_VERSION to config.h.
Ralph Giles [Tue, 21 Aug 2012 17:49:43 +0000 (10:49 -0700)]
Propagate OPUS_VERSION to config.h.

I'm not sure how this worked before, the the previous version
string fiddling commit ended up not defining OPUS_VERSION in
the autoconf build, so opus_get_version_string() returned
'unknown'.

7 years agoReplace long long in celt/ with opus_int64.
Gregory Maxwell [Mon, 20 Aug 2012 14:45:53 +0000 (10:45 -0400)]
Replace long long in celt/ with opus_int64.

7 years agoRemove C99ism in celt/tests/test_unit_mathops.c w/ fixed point build.
Gregory Maxwell [Sun, 19 Aug 2012 23:42:49 +0000 (19:42 -0400)]
Remove C99ism in celt/tests/test_unit_mathops.c w/ fixed point build.

7 years agoInclude tests/run_vectors.sh in EXTRA_DIST.
Gregory Maxwell [Sun, 19 Aug 2012 20:45:20 +0000 (16:45 -0400)]
Include tests/run_vectors.sh in EXTRA_DIST.

7 years agoUse 64-bits in fixed point debug for _P16, fixes spurious failures.
Gregory Maxwell [Sun, 19 Aug 2012 07:55:23 +0000 (03:55 -0400)]
Use 64-bits in fixed point debug for _P16, fixes spurious failures.

7 years agoFix an MSVC warning.
Ralph Giles [Fri, 17 Aug 2012 17:16:24 +0000 (10:16 -0700)]
Fix an MSVC warning.

Microsoft Visual Studio 2010 warns about 'C4146: unary minus
operator applied to unsigned type, result still unsigned'
because of the '&-sizeof(void*)' in align().

This commit works around the warning by casting the size_t
to int before negation.

Patch by Hauke, who reported the issue on the opus mailing
list. Reviewed by derf.

7 years agogenversion now adds the header comment to version.mk
Chris Moeller [Thu, 16 Aug 2012 23:13:51 +0000 (16:13 -0700)]
genversion now adds the header comment to version.mk

7 years agoAdd 'compile' to the git ignore list.
Ralph Giles [Thu, 16 Aug 2012 20:38:24 +0000 (13:38 -0700)]
Add 'compile' to the git ignore list.

This is another script generated by the autotools build.

7 years agoUse the string from version.mk in Makefile.draft.
Ralph Giles [Thu, 16 Aug 2012 20:35:11 +0000 (13:35 -0700)]
Use the string from version.mk in Makefile.draft.

This reduces the number of places the version string
needs to be updated at release.

7 years agoMove the release version string to version.mk.
Ralph Giles [Thu, 16 Aug 2012 18:39:56 +0000 (11:39 -0700)]
Move the release version string to version.mk.

Previously we defined the release version string in configure.ac,
and overrode that with 'git describe --tags' if possible. This
made it difficult for non-autoconf builds to set their version
string correctly.

Instead we create, and check into version control, a file called
version.mk which defines OPUS_VERSION. The configure script reads
that file and uses it as a fallback if the git revision isn't available.

The expectation is that version.mk will be manually updated for
releases, just as the previous configure.ac version was. However,
since this is a simpler format, it is easier for alternate build
systems to use, reducing the number of places which must be updated.

Also removes the OPUS_MINOR_VERSION, etc. defines from config.h.

7 years agoUpdated Win32 genversion.bat to generate version.mk if Git is found, use it if it...
Chris Moeller [Thu, 16 Aug 2012 16:16:18 +0000 (09:16 -0700)]
Updated Win32 genversion.bat to generate version.mk if Git is found, use it if it isn't, and produce unknown version and leave it untouched if it isn't already found

7 years agoBump version number v1.0.1-rc2
Jean-Marc Valin [Wed, 15 Aug 2012 21:39:57 +0000 (17:39 -0400)]
Bump version number

7 years agoFixes a silly bug where only the left channel was used for depth estimation
Jean-Marc Valin [Tue, 14 Aug 2012 04:37:47 +0000 (00:37 -0400)]
Fixes a silly bug where only the left channel was used for depth estimation

Result was that stereo files with silence on the left would result in an
extremely low bitrate

7 years agoMore doc fixes.
Gregory Maxwell [Sun, 12 Aug 2012 18:50:29 +0000 (14:50 -0400)]
More doc fixes.

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.

7 years agoOnly install opus_*.3 manpages. Fixes 'make distcheck'.
Ralph Giles [Fri, 10 Aug 2012 21:42:00 +0000 (14:42 -0700)]
Only install opus_*.3 manpages. Fixes 'make distcheck'.

We were installing every readable file in man/man3, but
only unstalling files matching opus_*.3. Some doxygen
versions construct manpage versions of the marked up
header files and directory index, which got left on the
system after 'make uninstall'.

I don't think the 'uninstall' target is widely used, it's
often broken and can easily break other software. However,
we rely on 'make distcheck' which does verify this issue.

Instead, only install the opus_*.3 manpages, which are the
core api documentation.

7 years agoUse configure.ac provided soname versioning.
Gregory Maxwell [Fri, 10 Aug 2012 21:21:28 +0000 (17:21 -0400)]
Use configure.ac provided soname versioning.

7 years agoDocumentation updates for the CTLs.
Timothy B. Terriberry [Wed, 8 Aug 2012 22:13:17 +0000 (15:13 -0700)]
Documentation updates for the CTLs.

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.

7 years agoDisable stack-protector for mingw32 and remove win32 restrict define.
Gregory Maxwell [Thu, 9 Aug 2012 12:39:15 +0000 (08:39 -0400)]
Disable stack-protector for mingw32 and remove win32 restrict define.

7 years agoAdd MSVC makefiles to the dist tarball.
Gregory Maxwell [Thu, 9 Aug 2012 11:29:58 +0000 (07:29 -0400)]
Add MSVC makefiles to the dist tarball.

7 years agoAvoid an inconsequential memory leak in tests/test_opus_decode.c.
Gregory Maxwell [Thu, 9 Aug 2012 11:22:44 +0000 (07:22 -0400)]
Avoid an inconsequential memory leak in tests/test_opus_decode.c.

Match up the exit behavior when the no-fuzz enviroment variable
is set.

7 years agoBump version number to 1.0.1 and set libtool version v1.0.1-rc
Jean-Marc Valin [Wed, 8 Aug 2012 18:50:27 +0000 (14:50 -0400)]
Bump version number to 1.0.1 and set libtool version

7 years agoAdd basic {GET,SET}_LSB_DEPTH API tests.
Gregory Maxwell [Wed, 8 Aug 2012 04:52:36 +0000 (00:52 -0400)]
Add basic {GET,SET}_LSB_DEPTH API tests.

7 years agoOPUS_{GET,SET}_LSB_DEPTH for multichannel.
Gregory Maxwell [Sat, 14 Jul 2012 00:55:23 +0000 (20:55 -0400)]
OPUS_{GET,SET}_LSB_DEPTH for multichannel.

7 years agoImplements OPUS_{GET,SET}_LSB_DEPTH
Jean-Marc Valin [Wed, 11 Jul 2012 06:54:47 +0000 (02:54 -0400)]
Implements OPUS_{GET,SET}_LSB_DEPTH

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.

7 years agoFix fixed-point testilog2.
Timothy B. Terriberry [Mon, 6 Aug 2012 17:01:27 +0000 (10:01 -0700)]
Fix fixed-point testilog2.

Use exact integer operations to confirm the value returned is the
 correct one.

7 years agoDisable silk_get_TOC in the code, as it's not used or exposed.
Gregory Maxwell [Mon, 6 Aug 2012 14:52:27 +0000 (10:52 -0400)]
Disable silk_get_TOC in the code, as it's not used or exposed.

7 years agoFixed sizeof param in silk_get_TOC. Size for memset was calculated wrong.
Cyril Lashkevich [Mon, 6 Aug 2012 13:38:18 +0000 (16:38 +0300)]
Fixed sizeof param in silk_get_TOC. Size for memset was calculated wrong.

Signed-off-by: Gregory Maxwell <greg@xiph.org>
silk_get_TOC is unused, unreachable, and not useful without some
packet pre-processing, but until we remove it it should be correct.
This was also reported by Mozilla.

7 years agoFix opus_encode allowed frame sizes docs, reported by Stefan Hacker.
Gregory Maxwell [Mon, 6 Aug 2012 13:24:03 +0000 (09:24 -0400)]
Fix opus_encode allowed frame sizes docs, reported by Stefan Hacker.

7 years agoAdded MSVC output directories to gitignore.
Chris Moeller [Mon, 30 Jul 2012 06:29:01 +0000 (23:29 -0700)]
Added MSVC output directories to gitignore.

7 years agoEnables the second dynalloc MDCT only at complexity 8
Jean-Marc Valin [Fri, 27 Jul 2012 18:42:54 +0000 (14:42 -0400)]
Enables the second dynalloc MDCT only at complexity 8

Also applies the compensation for tonality boost only when
the analysis is enabled.

7 years agoMakes VBR rate variations less aggressive at low bit-rates and for CVBR
Jean-Marc Valin [Fri, 27 Jul 2012 18:28:21 +0000 (14:28 -0400)]
Makes VBR rate variations less aggressive at low bit-rates and for CVBR

7 years agoFix bkp/s -> kb/s in opus_demo.
Gregory Maxwell [Fri, 27 Jul 2012 04:37:19 +0000 (00:37 -0400)]
Fix bkp/s -> kb/s in opus_demo.

7 years agoGuard _MSC_VER tests, remove FLOAT2INT16 when DISABLE_FLOAT_API.
Rafaël Carré [Thu, 26 Jul 2012 18:24:25 +0000 (14:24 -0400)]
Guard _MSC_VER tests, remove FLOAT2INT16 when DISABLE_FLOAT_API.

7 years agoSmoother intensity stereo decision thresholds
Jean-Marc Valin [Thu, 26 Jul 2012 01:15:19 +0000 (21:15 -0400)]
Smoother intensity stereo decision thresholds

We now have rates for each possible threshold. This also adds some
histeresis but it's not that useful for now because the effective rate
doesn't changes from frame to frame (unless one changes the target rate).
This change also has the side effect of lowering the intensity stereo
point for 64 kb/s to band 15 (instead of 16).

7 years agoAdds some histeresis to the stereo saving
Jean-Marc Valin [Wed, 25 Jul 2012 05:35:17 +0000 (01:35 -0400)]
Adds some histeresis to the stereo saving

This prevents rate reduction due to channel correlation from increasing
by more than 0.25 bit/sample between two frames. This issue was observed
on r.flac where the frame following a transient would lose nearly
1 bit/sample

7 years agoVBR tuning: increases transient and dynalloc boost
Jean-Marc Valin [Wed, 25 Jul 2012 05:32:29 +0000 (01:32 -0400)]
VBR tuning: increases transient and dynalloc boost

This only increases the average rate by about 1.5 kb/s, but it
restores the high quality of transients from 1.0. Also it
ensures that dynalloc can never starve other bands when used
aggressively.

7 years agolog2_frac optimization from Simon Hosie back in Aug 2011.
Gregory Maxwell [Tue, 24 Jul 2012 21:51:25 +0000 (17:51 -0400)]
log2_frac optimization from Simon Hosie back in Aug 2011.

7 years agoFixes issues with stereo saving and dynalloc
Jean-Marc Valin [Mon, 23 Jul 2012 19:24:40 +0000 (15:24 -0400)]
Fixes issues with stereo saving and dynalloc

1) Stereo saving was being too aggressive because it only considered the LF
   and because the savings were multiplied by coded_bins rather than by
   just the number of "side bins" below the intensity threshold
2) In the case of bandlimited signals, dynalloc would allocate way too many
   bits to the last non-zero band. We now explicitly check for the last
   band with a meaningful signal.

These issues were really obvious when encoding the decoded test01.mp3
because of the strong inter-channel correlation and (especially) the 16 kHz
lowpass used by the mp3 encoder.

7 years agoAdd some more api docs.
Gregory Maxwell [Sat, 21 Jul 2012 20:35:19 +0000 (16:35 -0400)]
Add some more api docs.

7 years agoReplace the remaining instances of restrict with OPUS_RESTRICT.
Gregory Maxwell [Fri, 20 Jul 2012 16:08:29 +0000 (12:08 -0400)]
Replace the remaining instances of restrict with OPUS_RESTRICT.

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.

7 years agoReplace a remaining instance of restrict with OPUS_RESTRICT.
Gregory Maxwell [Fri, 20 Jul 2012 16:08:29 +0000 (12:08 -0400)]
Replace a remaining instance of restrict with OPUS_RESTRICT.

The usage of restrict in include/opus_custom.h was missed
by the prior commit replacing this keyword with a macro.

7 years agoSmall cleanups to MSVC build setup.
Gian-Carlo Pascutto [Fri, 20 Jul 2012 07:31:31 +0000 (09:31 +0200)]
Small cleanups to MSVC build setup.

Add more MSVC files to .gitignore.
Make all configurations use default floating point model.

7 years agoFixes MSVC projects and adds git version generator tool
Chris Moeller [Fri, 20 Jul 2012 04:59:13 +0000 (21:59 -0700)]
Fixes MSVC projects and adds git version generator tool

7 years agoReplace C99 restrict keyword with OPUS_RESTRICT.
Gregory Maxwell [Wed, 18 Jul 2012 16:12:35 +0000 (12:12 -0400)]
Replace C99 restrict keyword with OPUS_RESTRICT.

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.

7 years agoDon't try to create fullband silk frames when forced to low rate.
Gregory Maxwell [Wed, 18 Jul 2012 14:06:01 +0000 (10:06 -0400)]
Don't try to create fullband silk frames when forced to low rate.

When libopus is forced to sufficiently low rates it will start
outputting 'PLC' (one byte) frames. The code that did this
did not sanitize the mode well enough and would create corrupted
TOC values in some cases.

7 years agoConvert some double constants to float.
Gregory Maxwell [Tue, 17 Jul 2012 21:40:55 +0000 (17:40 -0400)]
Convert some double constants to float.

7 years agoFix a typo.
Ralph Giles [Tue, 17 Jul 2012 21:35:12 +0000 (17:35 -0400)]
Fix a typo.

Thanks to Fatbag for pointing out the issue.

7 years agoRemove rillian from the Acknowledgments.
Timothy B. Terriberry [Tue, 17 Jul 2012 19:07:36 +0000 (12:07 -0700)]
Remove rillian from the Acknowledgments.

He's an author now.

7 years agoClarify difference between user bandwidth settings.
Timothy B. Terriberry [Tue, 17 Jul 2012 18:49:45 +0000 (11:49 -0700)]
Clarify difference between user bandwidth settings.

7 years agoWrap a long line.
Ralph Giles [Mon, 16 Jul 2012 21:37:54 +0000 (17:37 -0400)]
Wrap a long line.

7 years agoFix the agreement issue the other way.
Ralph Giles [Mon, 16 Jul 2012 21:36:52 +0000 (17:36 -0400)]
Fix the agreement issue the other way.

Plural works better with the previous sentence. The agreement problem
was there in my original commit. I was just confused by the half
that Tim promoted.

7 years agoFix an agreement typo in the previous commit.
Ralph Giles [Mon, 16 Jul 2012 21:30:46 +0000 (17:30 -0400)]
Fix an agreement typo in the previous commit.

7 years agoOutput/intermediate dir cleanup and fixes in 64-bit mode.
Gian-Carlo Pascutto [Mon, 16 Jul 2012 18:52:38 +0000 (20:52 +0200)]
Output/intermediate dir cleanup and fixes in 64-bit mode.

Also make the 64-bit builds use the default output directories.
Fix the type of the default Opus output to be a library.

7 years agoMake MSVC build work in parallel.
Gian-Carlo Pascutto [Mon, 16 Jul 2012 18:40:16 +0000 (20:40 +0200)]
Make MSVC build work in parallel.

The (non-default) temporary & output dirs configured in the projects could
cause issues when doing compilation on a multiprocessor machine. Cleaned
this up a little to use the defaults, which makes that work again and
doesn't make the output structure any worse. Also removed debug output for
release binaries & a tiny whitespace fix.

7 years agoRearrange Ogg Opus references.
Timothy B. Terriberry [Mon, 16 Jul 2012 20:43:10 +0000 (13:43 -0700)]
Rearrange Ogg Opus references.

Sort alphabetically, and move vorbis-trim to "Informative".
Also fix a misuse of "streams" instead of "channels" in the packet
 size limits exposition.

7 years agoUpdates from mailing list and other small fixes.
Timothy B. Terriberry [Mon, 16 Jul 2012 20:17:27 +0000 (13:17 -0700)]
Updates from mailing list and other small fixes.

* Bump the document date.
* Mandate that the ID header must complete on the first page (to
   remove any ambiguities about this requirement in RFC 3533).
* Remove reundant wording that rillian forgot to remove in 360a4117.
* Split the "Granule Position" section into subsections.
* Move the first paragraph of the "Other Implementation Notes"
   section into the "Granule Position" section, add general seeking
   implementation guidance, and be specific about the interaction
   between pre-roll and pre-skip.
* Retitle the remaining contents of the "Other Implementation Notes"
   section to "Packet Size Limits"
* Specify that all the header fields are REQUIRED (and add a
   description of the Channel Mapping Table as a whole, so we can
   say when it is REQUIRED).
* Specify that implementations MUST NOT reject headers with extra
   data if they have an unknown minor version number.
* Add a reference to RFC 3629 (UTF-8).
* Minor formatting adjustments to vorbis-trim and vorbis-mapping
   cites.
* Eliminate semicolons and terrible "Else, if" constructs.

7 years agoOops, the tag is ENCODER not ENCODED-BY.
Ralph Giles [Mon, 16 Jul 2012 18:14:45 +0000 (14:14 -0400)]
Oops, the tag is ENCODER not ENCODED-BY.

7 years agoVarious small improvements.
Ralph Giles [Mon, 16 Jul 2012 17:53:29 +0000 (13:53 -0400)]
Various small improvements.

Remove a redundant phrase from the previous commit.
Thanks to Tim for pointing this out.

Clarify what 'skipped' means.

Give a reference for the vorbis granulepos-trimming.

Commas and semicolons in the resampling decision list.

Capital SHOULD on treating unknown channel mapping families
as discrete.

Clarify why goes in the vendor string. Maybe needs an example?
'gstoggmux 1.0.12; libopus 1.2.3'

Remove a redundant word. 'could' already covers 'potential' and
the line is stronger without it.

7 years agoDefine TOC sequence briefly.
Ralph Giles [Mon, 16 Jul 2012 16:34:46 +0000 (12:34 -0400)]
Define TOC sequence briefly.

Hopefully it's clear from this that the demuxer can parse the
TOC sequence to verify the equal-duration constraint.