Mark Harris [Tue, 18 Sep 2018 04:54:22 +0000 (21:54 -0700)]
configure: require libopusenc >= 0.2
Mark Harris [Tue, 18 Sep 2018 04:51:10 +0000 (21:51 -0700)]
opusrtp: Update help and manual page
Andrew Allen [Tue, 10 Apr 2018 17:48:29 +0000 (10:48 -0700)]
opusinfo: support for ambisonics
[mark.hsj: Update family numbers and fix buffer overflow]
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
moisesmcardona [Sat, 15 Sep 2018 19:59:22 +0000 (15:59 -0400)]
opusenc: Add --tracknumber option
Closes https://github.com/xiph/opus-tools/pull/37
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Mark Harris [Sat, 15 Sep 2018 03:43:34 +0000 (20:43 -0700)]
opusdec, opusenc: Fix float WAV on big endian host
WAV uses little endian for floats so they must be byte-swapped.
Mark Harris [Sat, 15 Sep 2018 03:23:59 +0000 (20:23 -0700)]
opusrtp: Fix compatibility with old systems
Tristan Matthews [Fri, 14 Sep 2018 23:15:33 +0000 (19:15 -0400)]
resample: fix UINT32_MAX fallback
Reported by Mark Harris
(cherry picked from speexdsp commit
7181b9e84fbf6887c74807af5ad0030a5181640a)
Mark Harris [Sat, 21 Jul 2018 19:24:49 +0000 (12:24 -0700)]
resample: clean up for upstream
Mark Harris [Mon, 16 Jul 2018 06:55:09 +0000 (23:55 -0700)]
Remove unused macros
Mark Harris [Sun, 15 Jul 2018 05:17:01 +0000 (22:17 -0700)]
Include alloca.h when needed, remove unused cruft
Fixes illumos compiler warning.
Mark Harris [Mon, 9 Jul 2018 04:55:01 +0000 (21:55 -0700)]
opusrtp: Fix opusrtp dependency checks
Mark Harris [Sat, 7 Jul 2018 16:28:33 +0000 (09:28 -0700)]
opusrtp: DLT_LINUX_SLL support (interface "any")
Mark Harris [Sat, 7 Jul 2018 16:02:29 +0000 (09:02 -0700)]
opusrtp: add --sniff device name argument
Mark Harris [Wed, 4 Jul 2018 16:34:56 +0000 (09:34 -0700)]
opusrtp: Allow port with --sniff/--extract
If unspecified, lock onto the first plausible port and payload type;
do not mix content for different ports in the same output file.
Mark Harris [Sun, 29 Apr 2018 06:41:05 +0000 (23:41 -0700)]
opusrtp: IPv6 support
Mark Harris [Fri, 4 May 2018 06:51:35 +0000 (23:51 -0700)]
opusdec: Use literal format strings
Allows for automatic checking of arguments.
Mark Harris [Mon, 30 Apr 2018 06:16:50 +0000 (23:16 -0700)]
gitlab-ci: Add libpcap-dev for opusrtp
Mark Harris [Mon, 30 Apr 2018 06:08:47 +0000 (23:08 -0700)]
opusdec: Fix some compiler warnings
Mark Harris [Mon, 30 Apr 2018 05:38:05 +0000 (22:38 -0700)]
opusrtp: Fix error if pcap is unavailable
Mark Harris [Sat, 28 Apr 2018 20:32:44 +0000 (13:32 -0700)]
opusrtp: Guess payload type if none specified
Adapted from https://github.com/xiph/opus-tools/pull/31, authored
by Muhammad Zaka.
In opusrtp sniff or extract mode, if an output file is specified but
not a payload type, record the first dynamic payload type seen with a
packet that could be a valid Opus packet.
Closes https://github.com/xiph/opus-tools/pull/31
Mark Harris [Sat, 28 Apr 2018 19:28:04 +0000 (12:28 -0700)]
opusrtp: Avoid global variables for options
Mark Harris [Sun, 22 Apr 2018 04:06:23 +0000 (21:06 -0700)]
opusrtp: Consolidate sniff and extract code
Add -o/--output to specify output file for either sniff or extract
and allow - for stdout. Allow sniff/extract console output with no
output file (do not default to writing a file with a fixed name).
Use -r/--rate instead of -s/--samplerate for consistency with opusdec.
Clearly indicate in --help which options require an argument.
Mark Harris [Sun, 4 Mar 2018 00:05:08 +0000 (16:05 -0800)]
opusrtp: Use opus_packet_get_nb_samples()
Use opus_packet_get_nb_samples() instead of our own function, and
warn about packets with an invalid TOC as the timestamp is likely
to be wrong. Also avoid declarations after statements.
Mark Harris [Sat, 3 Mar 2018 11:01:38 +0000 (03:01 -0800)]
opusrtp: Fix transmit timing
Because it would sleep for the entire packet duration after sending
each packet, the packets would end up too far apart and cause underruns.
Do not depend on usleep() if its POSIX replacements are available.
usleep() was obsoleted in POSIX.1-2001 and removed in POSIX.1-2008.
Mark Harris [Fri, 2 Mar 2018 07:28:47 +0000 (23:28 -0800)]
opusrtp: Fix indentation
Martin Meszaros [Fri, 17 Nov 2017 14:11:35 +0000 (15:11 +0100)]
opusrtp: Allow an output filename for extraction
Closes https://github.com/xiph/opus-tools/pull/18
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Martin Meszaros [Wed, 8 Nov 2017 11:02:14 +0000 (12:02 +0100)]
opusrtp: Make --extract argument mandatory
Make the --extract argument mandatory, as optional arguments don't
work as expected by most people anyway.
Also, now all other parameters are parsed before extraction begins, so
the order of the flags doesn't matter anymore.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Martin Meszaros [Fri, 27 Oct 2017 16:31:43 +0000 (18:31 +0200)]
opusrtp: Add new command line options
Allow the payload type, number of channels, and sample rate to be
specified.
Closes https://github.com/xiph/opus-tools/issues/26
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Martin Meszaros [Fri, 27 Oct 2017 19:52:12 +0000 (21:52 +0200)]
opusrtp: Add support for RTP extension headers
Properly calculate the header size when extension headers are used.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Martin Meszaros [Fri, 27 Oct 2017 16:17:10 +0000 (18:17 +0200)]
opusrtp: Allow usage of winpcap on Windows
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Martin Meszaros [Fri, 10 Nov 2017 21:01:57 +0000 (22:01 +0100)]
gitignore: Ignore *.exe files
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Mark Harris [Sat, 21 Apr 2018 21:52:51 +0000 (14:52 -0700)]
opusenc: --set-ctl-int parameter validation
Ensure that the request is one that takes an int parameter that can be
overridden safely without the need for special handling in opusenc.
Mark Harris [Mon, 16 Apr 2018 04:48:47 +0000 (21:48 -0700)]
opusenc: Add --music, --speech, --no-phase-inv
--music and --speech override automatic detection and affect low
bitrates.
--no-phase-inv disables use of phase inversion for intensity stereo.
Mark Harris [Sat, 17 Mar 2018 18:37:15 +0000 (11:37 -0700)]
configure: Check for opusfile before opusurl
Checking for opusfile first will offer a more helpful message if it is
not installed, since the package that is needed is likely opusfile.
Mark Harris [Sat, 17 Mar 2018 18:29:45 +0000 (11:29 -0700)]
configure: Require Opus 1.1 to match libopusenc
Mark Harris [Sat, 10 Mar 2018 21:01:40 +0000 (13:01 -0800)]
opusenc: Avoid leak on multiple save-range options
Mark Harris [Sat, 3 Mar 2018 10:55:45 +0000 (02:55 -0800)]
opusenc: Use OPE_GET_NB_STREAMS/COUPLED_STREAMS
This is a more straightforward way of getting the number of streams
and coupled streams. Requires a new libopusenc.
Mark Harris [Sun, 4 Mar 2018 02:59:31 +0000 (18:59 -0800)]
configure: Don't enable stack-protector on Windows
It creates a dependency on libssp.dll.
Mark Harris [Sat, 24 Feb 2018 05:53:50 +0000 (21:53 -0800)]
Switch to -fstack-protector-strong from -all
-fstack-protector-all appears to be overkill; -fstack-protector-strong
still adds checks where they make sense.
Mark Harris [Thu, 22 Feb 2018 10:05:52 +0000 (02:05 -0800)]
Add GitLab CI
Mark Harris [Sat, 24 Feb 2018 04:57:54 +0000 (20:57 -0800)]
Attempt to make whitespace a bit more consistent
Mark Harris [Fri, 23 Feb 2018 11:15:50 +0000 (03:15 -0800)]
opusenc: Fix some MSVC compiler warnings
Mark Harris [Thu, 22 Feb 2018 08:38:02 +0000 (00:38 -0800)]
Use consistent formatting of units
Mark Harris [Thu, 22 Feb 2018 08:04:57 +0000 (00:04 -0800)]
opusenc: Fix formatting of time stats
Mark Harris [Thu, 22 Feb 2018 06:28:29 +0000 (22:28 -0800)]
Update copyright year
Mark Harris [Thu, 22 Feb 2018 06:05:59 +0000 (22:05 -0800)]
opusenc: Improve error reporting
Check the return code of every libopusenc function and display an
error when appropriate.
Mark Harris [Thu, 8 Feb 2018 05:16:27 +0000 (21:16 -0800)]
opusdec: Update resampler from speexdsp
Fix use of reserved identifiers, eliminate compiler warnings.
Mark Harris [Thu, 8 Feb 2018 05:12:06 +0000 (21:12 -0800)]
Remove unused Speex header file os_support.h
Mark Harris [Thu, 8 Feb 2018 05:10:11 +0000 (21:10 -0800)]
Eliminate dependency on Speex os_support.h
Mark Harris [Tue, 6 Feb 2018 08:02:58 +0000 (00:02 -0800)]
opusenc: Add FLAC pictures using libopusenc
This eliminates the need to do base64 encoding in opusenc, and
ensures that pictures are valid. Requires a new libopusenc with
ope_comments_add_picture_from_memory().
Mark Harris [Mon, 5 Feb 2018 00:03:52 +0000 (16:03 -0800)]
opusenc: Set header gain when requested
Used by FLAC input. Requires latest libopusenc from git.
Mark Harris [Sun, 4 Feb 2018 04:04:01 +0000 (20:04 -0800)]
Don't use reserved identifiers as macro names
Mark Harris [Sun, 4 Feb 2018 02:05:26 +0000 (18:05 -0800)]
opusenc: Fix stats and percent progress
Values were wrong with multi-frame packets or resampling.
Also don't divide by zero, eliminate unused fields.
Mark Harris [Fri, 2 Feb 2018 06:23:21 +0000 (22:23 -0800)]
Use correct format specifier for 64-bit types
Correct fprintf format string warnings with libopus 1.3-beta on 64-bit
Linux (long long vs. long). Also enable format string warnings for
oi_info(), oi_warn(), and oi_error() and correct those warnings as well.
Mark Harris [Fri, 2 Feb 2018 05:28:58 +0000 (21:28 -0800)]
C preprocessor formatting cleanup
Mark Harris [Sat, 6 Jan 2018 04:46:40 +0000 (20:46 -0800)]
VS2010: Remove old project files
The VS2010 project files have not been updated and no longer work.
Also, opus, ogg, opusfile, and libopusenc support only VS2015.
Ricardo Constantino [Fri, 5 Jan 2018 16:15:29 +0000 (16:15 +0000)]
VS2015: remove source files from libs that don't need them
Closes https://github.com/xiph/opus-tools/pull/24
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Ricardo Constantino [Thu, 4 Jan 2018 00:00:41 +0000 (00:00 +0000)]
VS2015: add flac support
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Ricardo Constantino [Tue, 2 Jan 2018 00:53:06 +0000 (00:53 +0000)]
VS2015: prepare for new opusfile and libopusenc dependencies
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Mark Harris [Fri, 5 Jan 2018 08:11:33 +0000 (00:11 -0800)]
appveyor: Fix libopusenc artifact file name
Ralph Giles [Sat, 24 Jun 2017 01:17:00 +0000 (18:17 -0700)]
appveyor: Install opusfile and libopusenc artifacts.
Make these dependent libraries available for the Visual Studio
integration build.
Mark Harris [Wed, 3 Jan 2018 09:30:55 +0000 (01:30 -0800)]
VS*: Remove deleted files from VS projects
Mark Harris [Wed, 3 Jan 2018 09:21:38 +0000 (01:21 -0800)]
Update Makefile.unix
Mark Harris [Wed, 3 Jan 2018 08:51:25 +0000 (00:51 -0800)]
opusdec: Update help and man page
Mark Harris [Wed, 3 Jan 2018 08:33:20 +0000 (00:33 -0800)]
opusdec: Use HAVE_*SOUNDCARD_H consistently
Check whether the macro is defined rather than sometimes checking
its value.
Mark Harris [Wed, 3 Jan 2018 08:27:34 +0000 (00:27 -0800)]
opusinfo: Fix compiler warning
Mark Harris [Tue, 2 Jan 2018 07:12:22 +0000 (23:12 -0800)]
save_range: Correctly handle multistream padding
opus_packet_parse_impl() is updated based on the current Opus code.
Also fixes compiler warnings, including use of uninitialized data
if the packet is invalid.
Mark Harris [Tue, 2 Jan 2018 07:24:17 +0000 (23:24 -0800)]
Update http URLs to https where appropriate
Mark Harris [Tue, 2 Jan 2018 06:59:19 +0000 (22:59 -0800)]
configure: Fix non-pkg-config opus include path
If pkg-config is not used, look for opus.h in <prefix>/include/opus
or (using --with-opus=<opuspath>) <opuspath>/include/opus, not
<prefix>/include or <opuspath>/include. As before the opus include
directory can still be overridden with --with-opus-includes=<path>,
but this should not be needed if the development package is
installed under <prefix> or the --with-opus directory.
Mark Harris [Sun, 31 Dec 2017 01:45:07 +0000 (17:45 -0800)]
opusenc: Don't save --picture in ENCODER_OPTIONS
Saving --picture leaks local file paths. Also don't save options that
relate only to console output or input file handling like --quiet and
--ignorelength.
Mark Harris [Fri, 29 Dec 2017 02:37:57 +0000 (18:37 -0800)]
opusinfo: Relax JPEG check to allow EXIF metadata
Jean-Marc Valin [Thu, 11 May 2017 02:30:32 +0000 (22:30 -0400)]
opusenc: Convert to use libopusenc
This adds a dependency, but gets rid of a lot of code. The main benefit
is that libopusenc supports delayed decision.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Timothy B. Terriberry [Sat, 18 Nov 2017 09:58:30 +0000 (01:58 -0800)]
opusdec: Convert to use libopusfile
This adds a dependency, but also a number of features, such as the
ability read from http[s] sources or downmix output to stereo.
It also allows opusdec to automatically pick a consistent output
sample rate and channel count for seekable chained files, and
gives nicer output for METADATA_BLOCK_PICTURE tags (we parse the
tags and give a summary, instead of dumping a huge BASE64 string).
Unfortunately, we still have to do our own dithering, as this needs
to be done after resampling, which happens outside of libopusfile,
but at least we can re-use libopus's soft clipping implementation.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Ralph Giles [Sat, 24 Jun 2017 00:38:41 +0000 (17:38 -0700)]
travis: Build libopusenc from source for the linux tests
There's no Ubuntu package for libopusenc, so we need
to provide our own binary.
Ralph Giles [Mon, 19 Jun 2017 21:03:12 +0000 (14:03 -0700)]
travis: Add opusfile and libopusenc dependency
libopusenc isn't packaged for Ubuntu trusty, so we need to build it.
Jean-Marc Valin [Wed, 13 Dec 2017 20:03:33 +0000 (12:03 -0800)]
Use libtool to allow uninstalled dependencies
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Mark Harris [Sun, 31 Dec 2017 02:50:26 +0000 (18:50 -0800)]
opusenc: Avoid uninitialized data on invalid FLAC
An invalid FLAC input file with no STREAMINFO would cause the
uninitialized value of flac->channels to be used, and most likely
an assertion failure.
Mark Harris [Fri, 29 Dec 2017 02:42:39 +0000 (18:42 -0800)]
opusenc: Use fseeko64/ftello64 on MinGW/MinGW-W64
MinGW-W64 _ftelli64() sometimes reports an incorrect position.
Found and tested by Andrew D'Addesio.
Ricardo Constantino [Tue, 21 Feb 2017 22:08:30 +0000 (22:08 +0000)]
appveyor: get opus artifacts from appveyor
Saves a bit of time.
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Tue, 21 Feb 2017 22:10:03 +0000 (22:10 +0000)]
appveyor: run a basic test on the compiled binaries
Pack resulting artifact from opusenc test for debugging.
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Tue, 21 Feb 2017 22:09:49 +0000 (22:09 +0000)]
appveyor: pack manuals from jenkins
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Fri, 10 Feb 2017 02:11:01 +0000 (02:11 +0000)]
appveyor: save artifact to constant name
So it can be used with a permalink to the latest build.
ex: https://ci.appveyor.com/api/projects/rillian/opus-tools/artifacts/opus-tools.zip?job=Configuration%3A%20Release%3B%20Platform%3A%20x64
This is a permalink to the latest successful build of Release x64.
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Tue, 21 Feb 2017 00:22:20 +0000 (00:22 +0000)]
VS2015: remove unneeded and duplicated options
Add additional properties file for opus-tools shared by the three
executables.
Don't compile unneeded files for each project.
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Fri, 17 Feb 2017 15:15:34 +0000 (15:15 +0000)]
VS2015: Add opus common.props
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Tue, 21 Feb 2017 22:25:11 +0000 (22:25 +0000)]
Makefile.am: add VS2015 files
Signed-off-by: Ralph Giles <giles@thaumas.net>
Ricardo Constantino [Fri, 17 Feb 2017 15:06:32 +0000 (15:06 +0000)]
win32/gitignore: Ignore generated version.h
Signed-off-by: Ralph Giles <giles@thaumas.net>
Mark Harris [Wed, 22 Feb 2017 02:02:50 +0000 (18:02 -0800)]
opusenc: Avoid seeking on Windows pipes
On Windows, fseek() on pipes may return zero even though it doesn't seek,
so check the file type before trying to seek. Also, Windows prefers
_fileno() over fileno().
Mark Harris [Sun, 22 Jan 2017 21:02:45 +0000 (13:02 -0800)]
update_version: Drop --always from git describe
The package_version file will be used if there are no tags, which
is better than just the hash that is returned by --always.
Ricardo Constantino [Sun, 22 Jan 2017 20:44:35 +0000 (20:44 +0000)]
appveyor: remove version prefix from artifacts
Also appveyor.yml configuration file is moved to .appveyor.yml.
Closes https://github.com/xiph/opus-tools/pull/14
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Stephen [Sat, 21 Jan 2017 16:28:14 +0000 (08:28 -0800)]
Add more coverage in travis
Closes https://github.com/xiph/opus-tools/pull/12
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Ricardo Constantino [Sun, 22 Jan 2017 13:06:52 +0000 (13:06 +0000)]
win32: use same genversion script as opus
Like with opus, this generates an unknown version for git archives
(like the ones generated by GitHub). If you need a proper version
either use releases, a proper git repo or craft your own
package_version.
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Jean-Marc Valin [Sun, 22 Jan 2017 05:31:12 +0000 (21:31 -0800)]
opusenc: Avoid resampler fractional sample offset
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Mark Harris [Sun, 22 Jan 2017 04:44:26 +0000 (20:44 -0800)]
Remove obsolete ChangeLog
Mark Harris [Sun, 22 Jan 2017 04:40:15 +0000 (20:40 -0800)]
Update copyright year
Mark Harris [Thu, 1 Oct 2015 08:58:42 +0000 (01:58 -0700)]
opusenc: Clean up help
Clearly indicate which options require a parameter and its usual
format. Use imperative verb form consistently. Minor rearrangement
to improve logical ordering. Move diagnostic options to the end.
Move verbose --picture details to --help-picture so that basic usage
information has a chance of fitting on one screen. Change use of
obsolete term "MIME type" to "media type". Update man page to match.
Mark Harris [Thu, 1 Oct 2015 08:57:20 +0000 (01:57 -0700)]
opusenc: Fix typos
Mark Harris [Thu, 1 Oct 2015 08:55:33 +0000 (01:55 -0700)]
opusenc: Don't read excess data after samples
When reading WAV/AIFF data with a known length, don't try to read
(and then discard) data beyond that length, to avoid blocking or
adding unnecessary latency when the data is not from a file.
Mark Harris [Thu, 1 Oct 2015 08:49:28 +0000 (01:49 -0700)]
opusenc: Limit end trimming to one frame
Avoid writing a final packet larger than 20ms that is larger than
necessary, with 20ms or more that is beyond the end of the stream.
Mark Harris [Thu, 1 Oct 2015 08:48:19 +0000 (01:48 -0700)]
opusenc: Change fatal WAV/AIFF warnings to errors
Mark Harris [Thu, 1 Oct 2015 08:51:00 +0000 (01:51 -0700)]
opusenc: Don't warn about mono center channel WAV
Even if it has only one channel, an input WAV file can contain a
channel mask. A warning is issued if it is present but not a
supported value. Don't warn about the previously accepted mask
of 1 (FL), or 4 (FC). Arguably a channel mask of 1 (FL) should
trigger the warning, just as 2 (FR) does, but some tools (including
old opusdec when decoding to floating point WAV) actually write an
incorrect channel mask of 1 for mono WAV files.