opus-tools.git
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

5 years agoAdd some more explanatory comments to opusdec.c.
Gregory Maxwell [Sat, 21 Jul 2012 15:50:53 +0000 (11:50 -0400)]
Add some more explanatory comments to opusdec.c.

5 years agoSome inconsequential string changes.
Gregory Maxwell [Sat, 21 Jul 2012 04:09:45 +0000 (00:09 -0400)]
Some inconsequential string changes.

5 years agoAdd a manual gain knob to opusdec.
Gregory Maxwell [Fri, 20 Jul 2012 19:40:13 +0000 (15:40 -0400)]
Add a manual gain knob to opusdec.

5 years agoUpdate .gitignore. Fix 64-bit library paths.
Gian-Carlo Pascutto [Fri, 20 Jul 2012 07:44:03 +0000 (09:44 +0200)]
Update .gitignore. Fix 64-bit library paths.

5 years agoFixes MSVC projects and adds git version generator tool
Chris Moeller [Fri, 20 Jul 2012 05:09:35 +0000 (22:09 -0700)]
Fixes MSVC projects and adds git version generator tool

5 years agoFixes WaveOut playback for 64 bit builds
Chris Moeller [Fri, 20 Jul 2012 03:29:55 +0000 (20:29 -0700)]
Fixes WaveOut playback for 64 bit builds

5 years agoWhen simulating packet loss in opusdec, use the real durations.
Gregory Maxwell [Tue, 17 Jul 2012 20:19:52 +0000 (16:19 -0400)]
When simulating packet loss in opusdec, use the real durations.

In Ogg when you 'lose' packets within a page (something that isn't actually
possible) you can also become unable to determine their durations.
Previously the code would just let the durations be wrong, which would
potentially trigger whining about the granpos not matching the number
of decoded samples. This patch makes it pull the durations from the
original frames. This sould actually make the simulation closer to
the RTP behavior where the packets are all timestamped in any case.

5 years agoca2f5b1c fixed the file vs wav output flag in one case but not the other.
Gregory Maxwell [Tue, 17 Jul 2012 18:10:05 +0000 (14:10 -0400)]
ca2f5b1c fixed the file vs wav output flag in one case but not the other.

This would cause some spurious "Error playing audio." when writing
to a file on win32, and might have caused some corrupted samples
at the end of files on BE systems.

5 years agoChange MSVC project structure to match Opus. Fix SMP build.
Gian-Carlo Pascutto [Mon, 16 Jul 2012 19:35:22 +0000 (21:35 +0200)]
Change MSVC project structure to match Opus. Fix SMP build.

Rework the MSVC project structure and directories to more closely match
that of Opus, also change the include/lib directories to reflect the changes
done in Opus. Make the different projects output to different intermediate dirs
so they can be compiled in parallel.

5 years agoPreface error messages with error, make set_lsb failures non-fatal.
Gregory Maxwell [Sat, 14 Jul 2012 15:05:52 +0000 (11:05 -0400)]
Preface error messages with error, make set_lsb failures non-fatal.

5 years agoClamp LSB depth to avoid failures on weird files.
Gregory Maxwell [Fri, 13 Jul 2012 19:08:17 +0000 (15:08 -0400)]
Clamp LSB depth to avoid failures on weird files.

5 years agoAdd support for OPUS_SET_LSB_DEPTH.
Gregory Maxwell [Fri, 13 Jul 2012 19:02:02 +0000 (15:02 -0400)]
Add support for OPUS_SET_LSB_DEPTH.

5 years agoAdd MSVC project files for opusdec and opusinfo.
Gian-Carlo Pascutto [Fri, 13 Jul 2012 09:18:49 +0000 (11:18 +0200)]
Add MSVC project files for opusdec and opusinfo.

5 years agoAdd missing MSVC project files for opusenc.
Gian-Carlo Pascutto [Fri, 13 Jul 2012 08:43:10 +0000 (10:43 +0200)]
Add missing MSVC project files for opusenc.

5 years agoThis uses the native sndio interface instead of the OSS compatibility
Christian Weisgerber [Thu, 12 Jul 2012 20:12:42 +0000 (16:12 -0400)]
This uses the native sndio interface instead of the OSS compatibility
library.

5 years agoRemoving whitespace, fix inclusion of time.h.
Gregory Maxwell [Thu, 12 Jul 2012 19:17:55 +0000 (15:17 -0400)]
Removing whitespace, fix inclusion of time.h.

5 years agoAdd MSVC project file, fixup Win32 portability.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 18:29:09 +0000 (20:29 +0200)]
Add MSVC project file, fixup Win32 portability.

5 years agoUse _alloca if we don't have alloca for WIN32.
Gregory Maxwell [Thu, 12 Jul 2012 16:51:50 +0000 (12:51 -0400)]
Use _alloca if we don't have alloca for WIN32.

5 years agoRemove requirements for lrintf/fminf/fmaxf, avoid alloca.h usage on win32.
Gregory Maxwell [Thu, 12 Jul 2012 16:43:53 +0000 (12:43 -0400)]
Remove requirements for lrintf/fminf/fmaxf, avoid alloca.h usage on win32.

5 years agoClean up some but not all C99isms.
Gregory Maxwell [Thu, 12 Jul 2012 16:26:54 +0000 (12:26 -0400)]
Clean up some but not all C99isms.

5 years agoAdd support for the OPUS_SET_GAIN CTL if available.
Gregory Maxwell [Wed, 11 Jul 2012 04:08:39 +0000 (00:08 -0400)]
Add support for the OPUS_SET_GAIN CTL if available.

This moves the opus gain rescaling into the codec itself.

5 years agoAutoconf arguments to manually disable stackprotector/pie.
Gregory Maxwell [Tue, 10 Jul 2012 18:57:05 +0000 (14:57 -0400)]
Autoconf arguments to manually disable stackprotector/pie.

5 years agoAdvance version to 0.1.3. v0.1.3
Gregory Maxwell [Tue, 10 Jul 2012 15:19:57 +0000 (11:19 -0400)]
Advance version to 0.1.3.

5 years agoRemove non-working --stereo and --mono arguments to opusdec.
Gregory Maxwell [Tue, 10 Jul 2012 15:09:09 +0000 (11:09 -0400)]
Remove non-working --stereo and --mono arguments to opusdec.

To be reintroduced later in working form.

5 years agoInitial version of proper multichannel WAV output.
Timothy B. Terriberry [Sun, 8 Jul 2012 05:48:41 +0000 (22:48 -0700)]
Initial version of proper multichannel WAV output.

5 years agoMake stack-protector check use AC_LINK_IFELSE.
Gregory Maxwell [Sat, 7 Jul 2012 06:31:55 +0000 (02:31 -0400)]
Make stack-protector check use AC_LINK_IFELSE.

5 years agoAdd lpc.c to static makefile.
Gregory Maxwell [Thu, 5 Jul 2012 04:08:46 +0000 (00:08 -0400)]
Add lpc.c to static makefile.

5 years agoImplemented LPC in audio input padder.
Chris Moeller [Thu, 5 Jul 2012 02:06:31 +0000 (19:06 -0700)]
Implemented LPC in audio input padder.

5 years agoWarning cleanups; On osx opusinfo was complaining that "sync" shadows a global.
Gregory Maxwell [Sat, 16 Jun 2012 05:13:35 +0000 (01:13 -0400)]
Warning cleanups; On osx opusinfo was complaining that "sync" shadows a global.

5 years agos/based on/using/ in opusdec version msg for consistency.
Gregory Maxwell [Thu, 14 Jun 2012 16:19:50 +0000 (12:19 -0400)]
s/based on/using/ in opusdec version msg for consistency.

5 years agoAdd a note on multichannel output that the channel ordering is wrong.
Gregory Maxwell [Wed, 13 Jun 2012 18:41:30 +0000 (14:41 -0400)]
Add a note on multichannel output that the channel ordering is wrong.

5 years agoAvoid another inconsequential memory leak in opusenc.
Gregory Maxwell [Wed, 13 Jun 2012 17:48:13 +0000 (13:48 -0400)]
Avoid another inconsequential memory leak in opusenc.

5 years agoAvoid an inconsequential memory leak in opusenc reported by scan-build.
Gregory Maxwell [Wed, 13 Jun 2012 17:40:16 +0000 (13:40 -0400)]
Avoid an inconsequential memory leak in opusenc reported by scan-build.

5 years agoBump to v0.1.2. v0.1.2
Gregory Maxwell [Tue, 12 Jun 2012 21:07:55 +0000 (17:07 -0400)]
Bump to v0.1.2.

5 years agoUse dist_man_MANS for the manpages instead of EXTRA_DIST.
Gregory Maxwell [Tue, 12 Jun 2012 21:01:05 +0000 (17:01 -0400)]
Use dist_man_MANS for the manpages instead of EXTRA_DIST.

5 years agoAdvance version to 0.1.1, fix packaging of manfiles. v0.1.1
Gregory Maxwell [Tue, 12 Jun 2012 20:46:57 +0000 (16:46 -0400)]
Advance version to 0.1.1, fix packaging of manfiles.

5 years agoOn WIN32 fseek() returns 0 on pipes, use GetFileType() to detect them.
Gregory Maxwell [Tue, 12 Jun 2012 14:50:03 +0000 (10:50 -0400)]
On WIN32 fseek() returns 0 on pipes, use GetFileType() to detect them.

5 years agoWhen ignoring length don't try to get the length with ftell either.
Gregory Maxwell [Tue, 12 Jun 2012 04:23:23 +0000 (00:23 -0400)]
When ignoring length don't try to get the length with ftell either.

5 years agoAdd an --ignorelength option to opusenc.
Gregory Maxwell [Mon, 11 Jun 2012 21:55:24 +0000 (17:55 -0400)]
Add an --ignorelength option to opusenc.

5 years agoImprovements to opusinfo error messages.
Gregory Maxwell [Mon, 11 Jun 2012 21:43:38 +0000 (17:43 -0400)]
Improvements to opusinfo error messages.

5 years agoGet rid of cruddy bitrate spinner in the decoder.
Gregory Maxwell [Mon, 11 Jun 2012 21:25:48 +0000 (17:25 -0400)]
Get rid of cruddy bitrate spinner in the decoder.

5 years agoAdd a hidden --no-downmix knob to override the automatic downmix.
Gregory Maxwell [Mon, 11 Jun 2012 13:39:59 +0000 (09:39 -0400)]
Add a hidden --no-downmix knob to override the automatic downmix.

5 years agoFix for windows playback non-functionality introduced by 18996cf9.
Gregory Maxwell [Sun, 3 Jun 2012 13:13:25 +0000 (09:13 -0400)]
Fix for windows playback non-functionality introduced by 18996cf9.

5 years agoFix for Opusdec output at 44.1kHz adding a pop at ~1 second.
Gregory Maxwell [Sun, 3 Jun 2012 02:55:41 +0000 (22:55 -0400)]
Fix for Opusdec output at 44.1kHz adding a pop at ~1 second.

Gainless, 2012, and Ivqcl on Hydrogenaudio reported and helped
identify an issue where opusdec was adding a click in 44.1kHz
output. This was becaue the loop needed to feed the resampler
for >1024 sample input wasn't accounting for the preskip and
was putting too many samples into the resampler on the first
packet. Eventually the output got ahead of the container
granpos and the decoder dropped some samples to catch up.

For 1 second pages, the opusenc default, dropped samples
happened just about at the 1 second mark.

5 years agoPartial revert of d8e1592d— was erroneously rejecting files with
Gregory Maxwell [Sat, 2 Jun 2012 16:46:32 +0000 (12:46 -0400)]
Partial revert of d8e1592d— was erroneously rejecting files with
more than one page of pre-skip.

5 years agoStronger detection of output opening errors.
Gregory Maxwell [Sat, 2 Jun 2012 16:40:54 +0000 (12:40 -0400)]
Stronger detection of output opening errors.

5 years agoTry linking opus when testing -fPIE.
Ralph Giles [Wed, 30 May 2012 17:47:56 +0000 (10:47 -0700)]
Try linking opus when testing -fPIE.

When build against a static libopus (built without -fPIC)
the final link with -fPIE will fail. It's convenient to
be able to do this for building against an uninstalled libopus.

Unfortunately this involves moving the -fPIE check until
after the library checks, so we can add it to the link
line before testing. We also have to reference a libopus
symbol to keep the linker from skipping the dependency.

5 years agoFix for the infinite loop on preskip>samples found by Tim.
Gregory Maxwell [Tue, 29 May 2012 18:58:30 +0000 (14:58 -0400)]
Fix for the infinite loop on preskip>samples found by Tim.

This creates a hard failure in cases that would have been
a silent failure before which might have been hiding other
bugs, so it needs testing.

Also adds so paranoia to avoid infinite loops, even if the
caller of audio_write is stupid.

5 years agoMore faithfully reflect the vorbis-tools licensing, as intended.
Gregory Maxwell [Tue, 29 May 2012 08:39:41 +0000 (04:39 -0400)]
More faithfully reflect the vorbis-tools licensing, as intended.

5 years agoThe input file was missing in the opusdec.1 synopsis.
Gregory Maxwell [Tue, 29 May 2012 08:21:21 +0000 (04:21 -0400)]
The input file was missing in the opusdec.1 synopsis.

5 years agoopusinfo, correct conversion of headergain into dB.
Gregory Maxwell [Tue, 29 May 2012 06:11:04 +0000 (02:11 -0400)]
opusinfo, correct conversion of headergain into dB.

5 years agoAdvance versions.
Gregory Maxwell [Mon, 28 May 2012 19:54:11 +0000 (15:54 -0400)]
Advance versions.

5 years agoDrop soundcard support from Makefile.unix and include it in dist. v0.1.0
Gregory Maxwell [Mon, 28 May 2012 19:38:03 +0000 (15:38 -0400)]
Drop soundcard support from Makefile.unix and include it in dist.

5 years agoAutomake fixes for make dist; add .xz build output.
Gregory Maxwell [Mon, 28 May 2012 19:34:43 +0000 (15:34 -0400)]
Automake fixes for make dist; add .xz build output.

5 years agoShorten container delay option.
Gregory Maxwell [Mon, 28 May 2012 09:55:27 +0000 (05:55 -0400)]
Shorten container delay option.

5 years agoRevert "Add AC_PROG_LIBTOOL to make it easier to build static win32 bins."
Gregory Maxwell [Mon, 28 May 2012 09:13:03 +0000 (05:13 -0400)]
Revert "Add AC_PROG_LIBTOOL to make it easier to build static win32 bins."

This reverts commit fd3abf6b4435ab236f2bd0e2cadd5c90161e19ad.

'cause it didn't actually work.

5 years agoChange see-also formatting in manpages to make it machine parseable.
Gregory Maxwell [Mon, 28 May 2012 08:55:11 +0000 (04:55 -0400)]
Change see-also formatting in manpages to make it machine parseable.

5 years agoproofreading
Kat Walsh [Mon, 28 May 2012 08:14:00 +0000 (04:14 -0400)]
proofreading

5 years agoAdd some missing copyright notices.
Gregory Maxwell [Mon, 28 May 2012 06:29:00 +0000 (02:29 -0400)]
Add some missing copyright notices.

5 years agoStarter manpages for opusenc/opusdec/opusinfo.
Gregory Maxwell [Mon, 28 May 2012 06:09:23 +0000 (02:09 -0400)]
Starter manpages for opusenc/opusdec/opusinfo.

Also make the opusdec help show --quiet.

5 years agoupdate gitignore.
Gregory Maxwell [Mon, 28 May 2012 03:43:20 +0000 (23:43 -0400)]
update gitignore.

5 years agoAdd AC_PROG_LIBTOOL to make it easier to build static win32 bins.
Gregory Maxwell [Mon, 28 May 2012 03:30:10 +0000 (23:30 -0400)]
Add AC_PROG_LIBTOOL to make it easier to build static win32 bins.

5 years ago'ENCODER=' tag for opus-tools version instead of the vendor field.
Gregory Maxwell [Mon, 28 May 2012 01:32:56 +0000 (21:32 -0400)]
'ENCODER=' tag for opus-tools version instead of the vendor field.

5 years agoEnd padding buffer is per channel.
Gregory Maxwell [Sun, 27 May 2012 21:49:30 +0000 (17:49 -0400)]
End padding buffer is per channel.

5 years agoAdditional header checks.
Gregory Maxwell [Sun, 27 May 2012 08:16:20 +0000 (04:16 -0400)]
Additional header checks.

5 years agoFix package naming in help output.
Gregory Maxwell [Sun, 27 May 2012 07:28:44 +0000 (03:28 -0400)]
Fix package naming in help output.

5 years agoWin32 portability fixes.
Gregory Maxwell [Sun, 27 May 2012 06:54:50 +0000 (02:54 -0400)]
Win32 portability fixes.

5 years agoOgginfo test additions from Tim's review.
Gregory Maxwell [Sun, 27 May 2012 04:50:37 +0000 (00:50 -0400)]
Ogginfo test additions from Tim's review.

5 years agoAdd 'opusinfo' tool and misc cleanups.
Gregory Maxwell [Sat, 26 May 2012 22:49:35 +0000 (18:49 -0400)]
Add 'opusinfo' tool and misc cleanups.

opus_header.[ch] were changed to using the ogg types rather than
the opus ones in order to facilitate copying them into other
packages.

5 years agoUse RESTRICTED_LOWDELAY when the user requests frames 5ms and under.
Gregory Maxwell [Fri, 25 May 2012 22:25:50 +0000 (18:25 -0400)]
Use RESTRICTED_LOWDELAY when the user requests frames 5ms and under.

5 years agoFix overhead calculation, move start time measurement later.
Gregory Maxwell [Fri, 25 May 2012 18:08:59 +0000 (14:08 -0400)]
Fix overhead calculation, move start time measurement later.

5 years agoAlso reject v1 headers which are too long.
Gregory Maxwell [Thu, 24 May 2012 20:42:36 +0000 (16:42 -0400)]
Also reject v1 headers which are too long.

5 years agoBasil Gohar pointed out that it was missing a gitignore.
Gregory Maxwell [Thu, 24 May 2012 01:00:13 +0000 (21:00 -0400)]
Basil Gohar pointed out that it was missing a gitignore.

5 years agoMinor fix for chained files with resampling.
Gregory Maxwell [Wed, 23 May 2012 23:02:59 +0000 (19:02 -0400)]
Minor fix for chained files with resampling.

5 years agoopusdec: Correct lengths for resampled outputs; chaining.
Gregory Maxwell [Wed, 23 May 2012 22:49:51 +0000 (18:49 -0400)]
opusdec: Correct lengths for resampled outputs; chaining.

5 years agoFix opusdec wav output on big-endian systems.
Gregory Maxwell [Wed, 23 May 2012 06:38:18 +0000 (02:38 -0400)]
Fix opusdec wav output on big-endian systems.

5 years agoFix minor memory leak with resampled output.
Gregory Maxwell [Wed, 23 May 2012 03:19:26 +0000 (23:19 -0400)]
Fix minor memory leak with resampled output.

5 years agoRevise header version according to the current OggOpus spec.
Gregory Maxwell [Tue, 22 May 2012 19:12:54 +0000 (15:12 -0400)]
Revise header version according to the current OggOpus spec.

5 years agoRestore handling of data being a non-final hunk in wavs, removed in ca4927a9.
Gregory Maxwell [Mon, 21 May 2012 19:09:48 +0000 (15:09 -0400)]
Restore handling of data being a non-final hunk in wavs, removed in ca4927a9.

5 years agoAvoid confusion between int truncate and truncate();
Gregory Maxwell [Mon, 21 May 2012 17:03:08 +0000 (13:03 -0400)]
Avoid confusion between int truncate and truncate();

5 years agoNow all wav files >2GiB encode completely.
Gregory Maxwell [Sun, 20 May 2012 03:52:34 +0000 (23:52 -0400)]
Now all wav files >2GiB encode completely.

5 years agoSupport for PIE/RELRO, avoid stackprotector on platforms where it may be broken.
Gregory Maxwell [Wed, 16 May 2012 23:50:56 +0000 (19:50 -0400)]
Support for PIE/RELRO, avoid stackprotector on platforms where it may be broken.