opus-tools.git
5 years agoDistribute the getopt implementation for the msvc build. v0.1.6
Ralph Giles [Fri, 7 Dec 2012 23:18:46 +0000 (15:18 -0800)]
Distribute the getopt implementation for the msvc build.

5 years agoAdd win32/version.h to the distribution so it does some good.
Ralph Giles [Fri, 7 Dec 2012 22:58:48 +0000 (14:58 -0800)]
Add win32/version.h to the distribution so it does some good.

Thanks to Greg for pointing out I'd missed this.

5 years agoRemove MSVC incremental linking directives.
Ralph Giles [Fri, 7 Dec 2012 20:33:18 +0000 (12:33 -0800)]
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.

5 years agoAdd a static win32/version.h for tarball builds.
Ralph Giles [Fri, 7 Dec 2012 20:08:19 +0000 (12:08 -0800)]
Add a static win32/version.h for tarball builds.

This must be updated in sync with the version numbers in
configure.ac.

The autotools build strips the initial 'v' from release
tags, but genversion.bat does not, so I've left it in
the static version.h to match what would be generated
when building from the git tag.

5 years agoAdd -lm to the opusrtp build line.
Ralph Giles [Fri, 7 Dec 2012 17:19:35 +0000 (09:19 -0800)]
Add -lm to the opusrtp build line.

This is a dependency of libopus.

5 years agoBump version.
Gregory Maxwell [Fri, 7 Dec 2012 11:49:39 +0000 (06:49 -0500)]
Bump version.

5 years agoHide uncoupled in opusenc. It's being confused as something to increase quality.
Gregory Maxwell [Mon, 3 Dec 2012 16:16:33 +0000 (11:16 -0500)]
Hide uncoupled in opusenc. It's being confused as something to increase quality.

The option was added primarily for multistream debugging. I don't believe anyone
 is currently using it, but I'll leave it in for now for compatibility and because
 my own test scripts use it.

Uncouplued is not something people should normally be setting as it results in
 lower quality streams which are gratuitously RTP incompatible.

5 years agoFix opusenc crash on win32 for large files; Length detection on 32bit.
Gregory Maxwell [Tue, 27 Nov 2012 20:03:17 +0000 (15:03 -0500)]
Fix opusenc crash on win32 for large files; Length detection on 32bit.

Opusenc was using ftell() whos return is 32 bits on some systems to get the
 input file size and later code was not dealing well with negative sizes.
This commit changes to use 64-bit returning functions where available and
 sanity checks the detected length then treats any cases where the length
 still ends up negative as streams.

Thanks to win32vb on IRC for the report and reproduction.

5 years agoEnable maintainer mode by default on automake 1.11
Ralph Giles [Wed, 14 Nov 2012 20:51:21 +0000 (12:51 -0800)]
Enable maintainer mode by default on automake 1.11

Passing 'enable' as an argument to AM_MAINTAINER_MODE flips the
default to enabled, rather than disabled until automake 1.11.
This is a safer default for a developer-oriented library.

./configure --disable-maintainer-mode is still available for
packagers who what to preserve the upstream build distribution.

On earlier automake versions, the argument appears to have no
effect, so there is no behaviour change for developers using
older autotools.

Based on a patch for opusfile by ron@debian.org.

5 years agoConditionalize the opusrtp socket code.
Ralph Giles [Mon, 5 Nov 2012 22:12:45 +0000 (14:12 -0800)]
Conditionalize the opusrtp socket code.

This lets it compile (but not be functional) on Windows,
which doesn't support the posix socket api.

5 years agoUpdate Makefile.unix to work with mingw.
Ralph Giles [Mon, 5 Nov 2012 20:47:51 +0000 (12:47 -0800)]
Update Makefile.unix to work with mingw.

If $(CC) contains the substring 'mingw' then add some
options required to target windows. This fixes

  make -f Makefile.unix CC=i686-w64-mingw32-gcc

on my Fedora 17 system.

This uses a few more GNU make features, and makes the
Makefile itself less portable. However, we've had some
gnu-isms like := for a couple of releases so far without
complaint.

5 years agoSimplify native-endian reader.
Ralph Giles [Mon, 5 Nov 2012 06:52:47 +0000 (22:52 -0800)]
Simplify native-endian reader.

We don't need the union, we can memcpy directly into an int.
NB this assumes at least a 32 bit int, since the actual header
field is 32 bits.

Also minor related comment updates

5 years agoAdd a native-endian int32 reader. Fixes an ARM warning.
Ralph Giles [Mon, 5 Nov 2012 06:03:48 +0000 (22:03 -0800)]
Add a native-endian int32 reader. Fixes an ARM warning.

Arm (and other) architectures have stricter alignment requirements
thank x86, so just casting a char* to an int* and reading from it
could cause an exception, and because of this gcc warns on that
platform.

I'm pretty sure this particular read would always be aligned in
pracice, since it's the first word of the network packet returned
by pcap, but adding a more general helper is reasonable.

We memcpy() the value into a union, which the compiler should
allocate aligned, and then read the data back out as an int.

Thanks to Ron for reporting the issue, and Greg for suggesting
the fix.

5 years agoLower default bitrates for sampling rates <44.1k. Fix status output.
Gregory Maxwell [Sat, 3 Nov 2012 17:28:30 +0000 (13:28 -0400)]
Lower default bitrates for sampling rates <44.1k. Fix status output.

Getting 64kbit/sec output for a mono 8kHz stream is somewhat surprising.
Instead lower the default rate by a factor of (rate+16000)/64000 for rates
under 44.1kHz. This gives mono 8kHz a more respectable 24kbit/sec rate.

In opusenc the "encoding complete" was incompletely overwriting
the last status line. Now it takes care to overwrite it all the way.

5 years agoFix opusrtp option handling.
Ralph Giles [Tue, 30 Oct 2012 22:49:33 +0000 (15:49 -0700)]
Fix opusrtp option handling.

I don't know what I was thinking, but 'i' wasn't the variable
I wanted to be shifting the argument list by.

5 years agoAlso reject streams where a second packet begins but is not completed on the header...
Gregory Maxwell [Sun, 21 Oct 2012 23:42:03 +0000 (19:42 -0400)]
Also reject streams where a second packet begins but is not completed on the header pages.

5 years agoReject inputs where there is more than one packet on the initial two pages.
Gregory Maxwell [Sun, 21 Oct 2012 22:51:37 +0000 (18:51 -0400)]
Reject inputs where there is more than one packet on the initial two pages.

This will help encoder/streamer implementations that have it wrong
detect their mistake a little earlier.

5 years agoUpdate the hard-coded opus payload type.
Ralph Giles [Thu, 18 Oct 2012 22:49:23 +0000 (15:49 -0700)]
Update the hard-coded opus payload type.

This matches the value used by the webrtc.org codebase now that
the basic support patch has been merged.

5 years agoWarning fix: rename 'state' variable to 'headers'.
Ralph Giles [Tue, 16 Oct 2012 20:58:38 +0000 (13:58 -0700)]
Warning fix: rename 'state' variable to 'headers'.

gcc 4.7.2's -Wshadow can't tell types from variable names.

5 years agoPrint the packet duration as well as size when sending.
Ralph Giles [Thu, 4 Oct 2012 16:31:06 +0000 (09:31 -0700)]
Print the packet duration as well as size when sending.

Helps debug duration-related issues.

5 years agoAccept filenames to send over rtp on the command line.
Ralph Giles [Thu, 4 Oct 2012 07:10:30 +0000 (00:10 -0700)]
Accept filenames to send over rtp on the command line.

Also update the usage and manpage for the send functionality.

5 years agoCalculate timestamps from packet durations.
Ralph Giles [Thu, 4 Oct 2012 04:54:43 +0000 (21:54 -0700)]
Calculate timestamps from packet durations.

Previously, everything was hard-coded to 20 ms. Now we increment
rtp timestamps and ogg granulepos based on the packet duration
as described by the ToC header.

This adds a dependency on libopus, but the opus_packet() calls
as small and can stand alone, so they could be extracted and
supplied separately if necessary.

Granulepos values are still ignored when reading from a .opus
file. It would probably be better to either warn, or use those
as much as possible to set the rtp timestamps to better represent
the recorded data.

5 years agoDon't truncate the rtp packets.
Ralph Giles [Wed, 3 Oct 2012 22:36:11 +0000 (15:36 -0700)]
Don't truncate the rtp packets.

Previously, the length passed to the sendto() function didn't
include the length of the rtp header, truncating every packet
by 12 bytes.

Also use the calculated rtp header size, rather than hard-coding
the minimum size.

5 years agoThe current rtp version is 2.
Ralph Giles [Wed, 3 Oct 2012 21:49:34 +0000 (14:49 -0700)]
The current rtp version is 2.

Previously we were sending version 0, which the webrtc.org
code rightly rejects.

5 years agoOnly clear ogg_stream_state if it's initialized.
Ralph Giles [Wed, 3 Oct 2012 21:25:29 +0000 (14:25 -0700)]
Only clear ogg_stream_state if it's initialized.

Corrects a crash when rtpdump.opus exists, but isn't valid data.

5 years agoRemove a debug statement.
Ralph Giles [Wed, 3 Oct 2012 21:25:11 +0000 (14:25 -0700)]
Remove a debug statement.

5 years agoGet the link-layer header type from pcap_datalink.
Ralph Giles [Wed, 3 Oct 2012 21:02:29 +0000 (14:02 -0700)]
Get the link-layer header type from pcap_datalink.

Instead of using compile-time switches to choose loopback
or eth header parsing in sniff mode, ask libpcap what it
will be supplying and parse based on that.

Also abort if the link layer type isn't ethernet or loopback,
or if the header doesn't indicate IP/UDP.

5 years agoLoopback packet header is host, not big, endian.
Ralph Giles [Wed, 3 Oct 2012 20:08:19 +0000 (13:08 -0700)]
Loopback packet header is host, not big, endian.

This returns the proper value (2) on darwin, matching socket.h:
  #define AF_INET 2 /* internetwork: UDP, TCP, etc. */

5 years agoAdd 'loopback' header parsing to the sniff mode.
Ralph Giles [Tue, 2 Oct 2012 23:57:30 +0000 (16:57 -0700)]
Add 'loopback' header parsing to the sniff mode.

On darwin, pcap returns packets from the loopback device
with a 4 byte 'family' number, instead of the dummy eth
header we get on linux. Add support for parsing this
instead. The build now needs to define either 'LOOP' or
'ETH' to control which is expected.

I don't know if there's a way to ask pcap about this,
but wireshark manages to handle it correctly.

Also hardcode the sniff device to 'lo0' as required by
darwin instead of linux 'lo'. That's where I'm currently
testing.

5 years agoImprove trace output.
Ralph Giles [Tue, 2 Oct 2012 23:56:51 +0000 (16:56 -0700)]
Improve trace output.

5 years agoMake the payload type a constant.
Ralph Giles [Tue, 2 Oct 2012 23:53:52 +0000 (16:53 -0700)]
Make the payload type a constant.

This lets us use the same value in the sniff and send functions.

5 years agoReturn after executing --sniff.
Ralph Giles [Tue, 2 Oct 2012 22:23:49 +0000 (15:23 -0700)]
Return after executing --sniff.

Otherwise we fall through to the default sending behaviour.

5 years agoRate-limit the RTP packets.
Ralph Giles [Tue, 2 Oct 2012 22:22:22 +0000 (15:22 -0700)]
Rate-limit the RTP packets.

5 years agoThe webrtc.org code is using payload type 113.
Ralph Giles [Tue, 2 Oct 2012 22:21:45 +0000 (15:21 -0700)]
The webrtc.org code is using payload type 113.

5 years agoHack up an rtp sender.
Ralph Giles [Tue, 2 Oct 2012 20:13:18 +0000 (13:13 -0700)]
Hack up an rtp sender.

This sends the file 'rtpdump.opus' over rtp. Host and port are
hard-coded to 127.0.0.1:1234, payload type 109, 20 ms packets.

5 years agoAdd serialize_rtp_header.
Ralph Giles [Mon, 1 Oct 2012 22:39:44 +0000 (15:39 -0700)]
Add serialize_rtp_header.

Start of rtp packet send support.

5 years agoOpusdec don't add wav header on non-.wav output. Offer --force-wav.
Gregory Maxwell [Thu, 27 Sep 2012 12:34:35 +0000 (08:34 -0400)]
Opusdec don't add wav header on non-.wav output. Offer --force-wav.

5 years agoFixed potential over-allocation / (fatal) under-allocation on platforms where sizeof...
Sherief N. Farouk [Tue, 3 Nov 2009 22:30:23 +0000 (17:30 -0500)]
Fixed potential over-allocation / (fatal) under-allocation on platforms where sizeof(int) != 4.

5 years agoAdd some notes on the meaning of the complexity knob.
Gregory Maxwell [Wed, 19 Sep 2012 20:43:24 +0000 (16:43 -0400)]
Add some notes on the meaning of the complexity knob.

5 years agoFix compilation on non-Windows x86-32 w/ -msse.
Andreas Schlick [Thu, 13 Sep 2012 17:44:50 +0000 (19:44 +0200)]
Fix compilation on non-Windows x86-32 w/ -msse.

cpusupport.h used __cpuid() from the Windows specific header file intrin.h
which is not available under gcc. But we can use __get_cpuid() from cpuid.h
instead.

5 years agoAdd a comment describing what read_padder is doing.
Ralph Giles [Fri, 14 Sep 2012 19:35:53 +0000 (12:35 -0700)]
Add a comment describing what read_padder is doing.

5 years agoThat didn't work either. Just remove the libtool section.
Ralph Giles [Wed, 12 Sep 2012 06:20:05 +0000 (23:20 -0700)]
That didn't work either. Just remove the libtool section.

Zero is the third polarity?

If we ever do want libtool, it's easy enough to copy this
back from the opus/autogen.sh.

5 years agoActually disable libtool.
Ralph Giles [Wed, 12 Sep 2012 06:00:23 +0000 (23:00 -0700)]
Actually disable libtool.

Reversing the polarity. I was trying to disable the libtoolize
invocation and failed.

5 years agoFix a typo in the previous commit.
Ralph Giles [Wed, 5 Sep 2012 21:23:56 +0000 (14:23 -0700)]
Fix a typo in the previous commit.

Accidentally deleted the trailing quote on the version string.

5 years agoUpdate manual version strings after the 0.1.5 release.
Ralph Giles [Wed, 5 Sep 2012 21:15:39 +0000 (14:15 -0700)]
Update manual version strings after the 0.1.5 release.

5 years agoReject playback of multichannel files through sys/soundcard.h.
Ralph Giles [Tue, 4 Sep 2012 21:41:01 +0000 (14:41 -0700)]
Reject playback of multichannel files through sys/soundcard.h.

Previously we wrote out the n channel data to an fd configured
for mono output, which doesn't sound very good. Better to reject
it.

There is a SNDCTL_DSP_CHANNELS we can use to request multichannel
output, but there doesn't seem to be a way to set the channel
mapping, so it's not much better.

5 years agoAdd basic content to the empty README.
Ralph Giles [Tue, 4 Sep 2012 17:36:35 +0000 (10:36 -0700)]
Add basic content to the empty README.

5 years agoBump version. v0.1.5
Gregory Maxwell [Tue, 4 Sep 2012 17:31:37 +0000 (13:31 -0400)]
Bump version.

5 years agoAdd opusrtp.1 to the distribution.
Ralph Giles [Tue, 4 Sep 2012 17:15:13 +0000 (10:15 -0700)]
Add opusrtp.1 to the distribution.

I couldn't find a noinst_ version of the manpage targets,
and we don't want to install this manpage until opusrtp
itself is stable enough to install, so we just use EXTRA_DIST.

5 years agoRemove opusrtp as part of the 'clean' target.
Ralph Giles [Tue, 4 Sep 2012 17:06:37 +0000 (10:06 -0700)]
Remove opusrtp as part of the 'clean' target.

5 years agoDefine a PROGS variable in Makefile.unix.
Ralph Giles [Tue, 4 Sep 2012 17:04:50 +0000 (10:04 -0700)]
Define a PROGS variable in Makefile.unix.

This avoids duplicating the program listing in both
the all and clean targets.

5 years agoAdd an optional target for opusrtp to Makefile.unix.
Ralph Giles [Tue, 4 Sep 2012 17:04:13 +0000 (10:04 -0700)]
Add an optional target for opusrtp to Makefile.unix.

5 years agoDefine fallback PACKAGE and VERSION.
Ralph Giles [Sat, 1 Sep 2012 07:03:53 +0000 (00:03 -0700)]
Define fallback PACKAGE and VERSION.

I only did this for opusrtp, since Makefile.unix doesn't
build it, and it's tedious to define these every time
when compiling.

Also makes the compilation instructions at the top of the
file valid again.

5 years agoAdd basic option parsing to opusrtp and a manpage.
Ralph Giles [Sat, 1 Sep 2012 06:56:24 +0000 (23:56 -0700)]
Add basic option parsing to opusrtp and a manpage.

So far opusrtp only has the --sniff function, but we
now require --sniff to activate it, and add --help,
--version and a manpage to document what does and
doesn't work.

5 years agoAdd a BSD license header to opusrtp.c.
Ralph Giles [Sat, 1 Sep 2012 06:55:00 +0000 (23:55 -0700)]
Add a BSD license header to opusrtp.c.

Contributing under the dominant license of the project.

5 years agoCast away a const warning.
Ralph Giles [Sat, 1 Sep 2012 06:54:31 +0000 (23:54 -0700)]
Cast away a const warning.

5 years agoList -h before -V in the option summaries.
Ralph Giles [Sat, 1 Sep 2012 06:00:22 +0000 (23:00 -0700)]
List -h before -V in the option summaries.

5 years agoUse -V for --version in all utilities.
Ralph Giles [Sat, 1 Sep 2012 05:55:41 +0000 (22:55 -0700)]
Use -V for --version in all utilities.

Capital -V is a common short option for printing the program
version string as it frees lowercase -v for --verbose. This
makes opusenc and opusdec use -V and match opusinfo and oggenc.

Also updates the manpages, including mentioning -V for opusinfo.

5 years agoRemove --speech and --music from the oggenc manpage.
Ralph Giles [Sat, 1 Sep 2012 06:03:08 +0000 (23:03 -0700)]
Remove --speech and --music from the oggenc manpage.

These options were removed from the program in ceb46c225fd9.

5 years agoDon't install opusrtp for now.
Ralph Giles [Fri, 31 Aug 2012 18:11:39 +0000 (11:11 -0700)]
Don't install opusrtp for now.

It's not generally useful yet.

5 years agoDon't call libtoolize from autogen.sh.
Ralph Giles [Fri, 31 Aug 2012 17:40:16 +0000 (10:40 -0700)]
Don't call libtoolize from autogen.sh.

We aren't using libtool, so don't require it to build.

5 years agoMove opus.m4 to an m4 subdir and add ogg.m4 and pkg.m4.
Ralph Giles [Fri, 31 Aug 2012 17:22:52 +0000 (10:22 -0700)]
Move opus.m4 to an m4 subdir and add ogg.m4 and pkg.m4.

We need to ship copies of all the custom macros we use,
so it's cleaner to use a subdirectory.

5 years agoAdd opus.m4 from the opus repo so XIPH_PATH_OPUS is available.
Ralph Giles [Fri, 31 Aug 2012 17:05:10 +0000 (10:05 -0700)]
Add opus.m4 from the opus repo so XIPH_PATH_OPUS is available.

5 years agoUse opus.m4 for autotools opus config to enable --with-opus=.
Gregory Maxwell [Thu, 30 Aug 2012 21:28:16 +0000 (17:28 -0400)]
Use opus.m4 for autotools opus config to enable --with-opus=.

5 years agoMerge branch 'rtp' from users/giles/opus-tools.git.
Ralph Giles [Mon, 27 Aug 2012 23:48:40 +0000 (16:48 -0700)]
Merge branch 'rtp' from users/giles/opus-tools.git.

5 years agoFix a config.h typo.
Ralph Giles [Mon, 27 Aug 2012 23:48:01 +0000 (16:48 -0700)]
Fix a config.h typo.

5 years agoifdef-protect the pcap code.
Ralph Giles [Mon, 27 Aug 2012 23:40:23 +0000 (16:40 -0700)]
ifdef-protect the pcap code.

We don't want to break the build when libpcap isn't available,
and eventually we want this tool to send/receive rtp streams
as well as sniff them, so move the pcap-related code to a
separate function, which we only call if it's available.

This means that by default the programme does nothing.

5 years agoMove some of the header parsing logic into functions.
Ralph Giles [Mon, 27 Aug 2012 22:44:49 +0000 (15:44 -0700)]
Move some of the header parsing logic into functions.

The code is a little cleaner now.

Also fixes a new warning created by the previous warning fix.

5 years agoCheck the return value of fwrite.
Ralph Giles [Fri, 24 Aug 2012 23:17:16 +0000 (16:17 -0700)]
Check the return value of fwrite.

Fixes a gcc warning.

5 years agoDon't set eos on data packets.
Ralph Giles [Thu, 23 Aug 2012 22:54:14 +0000 (15:54 -0700)]
Don't set eos on data packets.

Without this silly error, opusdec can play our output.

5 years agoPrint each header on one line.
Ralph Giles [Thu, 23 Aug 2012 00:21:57 +0000 (17:21 -0700)]
Print each header on one line.

This makes the capture output a little less verbose
so it's easier to read. Also corrects the rtp payload
length (the udp header's size includes the udp header
bytes) and removes a redundant check for payload type
109.

5 years agoFix prototype warnings.
Ralph Giles [Thu, 23 Aug 2012 00:21:03 +0000 (17:21 -0700)]
Fix prototype warnings.

Need to declare no arguments as func(void), not func().

5 years agoAdd build support for opusrtp.c.
Ralph Giles [Wed, 22 Aug 2012 22:55:23 +0000 (15:55 -0700)]
Add build support for opusrtp.c.

Detect libpcap and add it to the link line.

We should disable the pcap support if libpcap isn't available,
but the source doesn't do this. Instead it will fail to compile.

5 years agoRemove --speech and --music arguments from opusenc.
Gregory Maxwell [Sun, 19 Aug 2012 20:13:51 +0000 (16:13 -0400)]
Remove --speech and --music arguments from opusenc.

All these options do is bias the automatic mode selection in libopus,
but it seems that many people believe they select between LP and
MDCT modes, and it's very hard to convince them otherwise. As is they
aren't very useful, and they're creating a lot of confusion which
is distracting people from actually useful testing.

5 years agoReport only the RTP header fields.
Ralph Giles [Fri, 17 Aug 2012 00:34:09 +0000 (17:34 -0700)]
Report only the RTP header fields.

5 years agoAbstract some of the header parsing on the captured packets.
Ralph Giles [Fri, 17 Aug 2012 00:31:02 +0000 (17:31 -0700)]
Abstract some of the header parsing on the captured packets.

5 years agoHacky tool to sniff rtp traffic and write it to a file.
Ralph Giles [Sat, 11 Aug 2012 00:16:07 +0000 (17:16 -0700)]
Hacky tool to sniff rtp traffic and write it to a file.

I wrote this for debugging, but hopefully it can grow into
a general opus rtp example, without pcap.

5 years agoAvoid shadowing global symbol 'signal' on OSX.
Gregory Maxwell [Thu, 9 Aug 2012 14:53:00 +0000 (10:53 -0400)]
Avoid shadowing global symbol 'signal' on OSX.

On MacOS, stdlib.h ends up including sys/signal.h, generating
warnings about the local variables called 'signal' shadowing
the global symbol signal(3). So we avoid using that variable
name.

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

5 years agoAdd more comments to opusdec.
Gregory Maxwell [Sun, 5 Aug 2012 16:50:46 +0000 (12:50 -0400)]
Add more comments to opusdec.

5 years agoBump version
Gregory Maxwell [Sat, 4 Aug 2012 16:20:51 +0000 (12:20 -0400)]
Bump version

5 years agoopus-tools typo
Christian Weisgerber [Sat, 4 Aug 2012 15:18:00 +0000 (17:18 +0200)]
opus-tools typo

5 years agoAdvance version to 0.1.4. v0.1.4
Gregory Maxwell [Wed, 1 Aug 2012 19:35:55 +0000 (15:35 -0400)]
Advance version to 0.1.4.

5 years agoMore correct handling of the resampler buffer and flushing delay.
Gregory Maxwell [Wed, 1 Aug 2012 17:21:40 +0000 (13:21 -0400)]
More correct handling of the resampler buffer and flushing delay.

5 years agoProperly save in_len for multiple channels in the resampler.
Jean-Marc Valin [Wed, 1 Aug 2012 17:19:38 +0000 (13:19 -0400)]
Properly save in_len for multiple channels in the resampler.

This fixes issues with clicking in one channel and/or truncation
with some unusual sample rates.

5 years agoMore MSVC project fixes
Chris Moeller [Tue, 24 Jul 2012 03:09:53 +0000 (20:09 -0700)]
More MSVC project fixes

5 years agoMinor cosmetic fix
Chris Moeller [Thu, 26 Jul 2012 03:27:35 +0000 (20:27 -0700)]
Minor cosmetic fix

5 years agoChange the runtime CPU type detection into a cpu mismatch warning.
Gregory Maxwell [Wed, 25 Jul 2012 21:32:05 +0000 (17:32 -0400)]
Change the runtime CPU type detection into a cpu mismatch warning.

Getting C support for building with SSE support but without
the compiler peppering the code with SSE is a huge burden.
So, instead— just use the detection to (hopefully) give
a helpful warning.

5 years agoAdd a notice when complexity<10 is requested with resampling.
Gregory Maxwell [Wed, 25 Jul 2012 16:28:51 +0000 (12:28 -0400)]
Add a notice when complexity<10 is requested with resampling.

5 years agoAvoid forcing SSE on x86, provide a configure option for now.
Gregory Maxwell [Wed, 25 Jul 2012 14:56:35 +0000 (10:56 -0400)]
Avoid forcing SSE on x86, provide a configure option for now.

x86_64 will still get SSE regardless of how the knob is set.

5 years agoSwitch 48->44.1k to the direct resampler. 2x speedup for opusdec.
Gregory Maxwell [Wed, 25 Jul 2012 03:56:14 +0000 (23:56 -0400)]
Switch 48->44.1k to the direct resampler. 2x speedup for opusdec.

Also fixes a bug where the filter could be size which was
not a multiple of 8 (as required by the SSE code).

5 years agoAvoid \n at the end of the encoder tag, as reported by lvqcl on HA.
Gregory Maxwell [Tue, 24 Jul 2012 19:29:20 +0000 (15:29 -0400)]
Avoid \n at the end of the encoder tag, as reported by lvqcl on HA.

5 years agoAutoconf -msse for mingw/32bit builds, kill some warnings.
Gregory Maxwell [Mon, 23 Jul 2012 15:48:17 +0000 (11:48 -0400)]
Autoconf -msse for mingw/32bit builds, kill some warnings.

Also default to -O3/-ffast-math which is a ~3% speed
gain for opusdec while resampling on x86_64.

5 years agoDefault rate on playback to 48000, case insensitive .wav compare.
Gregory Maxwell [Mon, 23 Jul 2012 14:05:35 +0000 (10:05 -0400)]
Default rate on playback to 48000, case insensitive .wav compare.

When playing to the soundcard the right thing to do is to output
48kHz, the resampler in opusdec should really be used for file output.

5 years agoAnother MSVC project cleanup
Chris Moeller [Sun, 22 Jul 2012 21:55:43 +0000 (14:55 -0700)]
Another MSVC project cleanup

5 years agoCleanups, finish merging win32 unicode display.
Gregory Maxwell [Sun, 22 Jul 2012 21:19:18 +0000 (17:19 -0400)]
Cleanups, finish merging win32 unicode display.

5 years agoMore Win32 unicode support and display fixes.
lordmulder [Sun, 22 Jul 2012 20:23:59 +0000 (16:23 -0400)]
More Win32 unicode support and display fixes.

5 years agoCleanups; make win32 unicode support only get used on win32.
Gregory Maxwell [Sun, 22 Jul 2012 07:48:06 +0000 (03:48 -0400)]
Cleanups; make win32 unicode support only get used on win32.

Unbreak project files (hopefully).
Also, smarter SSE detection; to avoid breaking on x86 compilers
without SSE support.

5 years agoAdd Win32 Unicode support and real-time progress updates (flush).
lordmulder [Sat, 21 Jul 2012 22:09:28 +0000 (00:09 +0200)]
Add Win32 Unicode support and real-time progress updates (flush).

5 years agoAdded SSE optimized resampling functions which result in a 15 to 30 percent increase...
Chris Moeller [Sun, 22 Jul 2012 02:26:35 +0000 (19:26 -0700)]
Added SSE optimized resampling functions which result in a 15 to 30 percent increase in encoding speed