- Nov 14, 2012
-
-
Ralph Giles authored
These are useful alternatives to the autoconf build, since we're maintaining them we should include them in release packages.
-
- Nov 13, 2012
-
-
Ralph Giles authored
This was needed in the opus Makefile.am to pass the results to submakefiles. Since we build everything from the top-level Makefile, we don't need this for opusfile.
-
Timothy B. Terriberry authored
I don't think it actually breaks anything if we don't (seeking will fail, but it will fail cleanly). However, it _is_ an indication that the file data changed out from under us (or of another library bug), so we should fail fast.
-
Timothy B. Terriberry authored
Using op_get_prev_page_serial() meant if there were valid pages from another stream, we would re-scan them all repeatedly until we managed to back up, a page at a time, to a chunk with a page from the preferred stream with a valid granule position. Breaking this case into its own function means we can guarantee we only scan each page once, and that we can stop as soon as we hit a page from a different link (in the unlikely event that the stream has no pages with valid timestamps).
-
Timothy B. Terriberry authored
Be more specific about which RFC we're quoting in the SSL hostname verification.
-
- Nov 12, 2012
-
-
Ron authored
Adding AM_MAINTAINER_MODE([enable]) preserves the current behaviour of rebuilding the autotools support by default if anything changed to make it out of date -- which is desirable for people building from git to avoid "Why is the build broken? Oh I forgot to rerun autogen.sh", which is an all too frequent FAQ. But it also allows it to be disabled, which is mostly useful for things like distro package builds where the files should be preserved in their original form, and configure shouldn't be run twice on the first build if the timestamps were not strictly preserved for these files. Signed-off-by:
Ralph Giles <giles@mozilla.com>
-
Ron authored
The opusfile and install-opusfile targets let us build and install just the library (without the docs, even if doxygen is present and enabled). The docs and install-docs targets let us build and install just the docs without the library. The default for make and make install remains to build both if doxgen is present and enabled. Signed-off-by:
Ralph Giles <giles@mozilla.com>
-
Ron authored
We'll want that stuff in the release tarballs, even if the person running make dist doesn't have doxygen installed (or --enabled) themselves. Signed-off-by:
Ralph Giles <giles@mozilla.com>
-
Ron authored
Mostly so that people looking at or cloning it later don't get confused into thinking that they are. Signed-off-by:
Ralph Giles <giles@mozilla.com>
-
- Nov 11, 2012
-
-
Timothy B. Terriberry authored
Thnks to Ron Lee for the report.
-
Timothy B. Terriberry authored
Thanks to Ron Lee for the report.
-
- Nov 07, 2012
-
-
Ralph Giles authored
The 'echo' built into /bin/sh on MacOS X doesn't support -n, which confuses the AC_INIT macro. Use the separate binary which does.
-
- Nov 02, 2012
-
-
Ralph Giles authored
-
Ralph Giles authored
The jenkins autotools build has never worked because we try to build against uninstalled versions of the opus and ogg libraries, whose pkg-config files export a static library. This works fine for executables, but libtool seemingly can't link a dynamic library against a static library. We could change the -uninstalled.pc files to reference the libtool versions of the libraries, but that breaks the unix makefile builds, which of course don't use libtool. As a work around, write out our own versions of the pc files and use those to reference the file we need. Also sets -x on both continuous integration scripts so it's more clear what steps are being applied.
-
- Nov 01, 2012
-
-
Ralph Giles authored
-
- Oct 28, 2012
-
-
Timothy B. Terriberry authored
-
- Oct 27, 2012
-
-
Timothy B. Terriberry authored
Fixes the case where a raw IPv6 address would be rejected as not looking like a FQDN. Also simplifies the wildcard comparison a little.
-
Timothy B. Terriberry authored
a7c5b93c flipped the argument to it from true to false, since it made certificate checking actually work. This commit removes the option entirely to avoid encouraging people to use it now that that checking does work. seeking_example still disables checking (since it's not really needed).
-
Timothy B. Terriberry authored
We weren't loading the default certificate store, so there were no trusted certificates to validate hosts with, and all checks would fail (unless explicitly disabled with OP_SSL_SKIP_CERTIFICATE_CHECK(0)). This adds that call, and also adds hostname verification (which OpenSSL does not do for us, because they are morons). I've done my best to get the latter right by reading the RFCs, but this stuff is complex, it's easy to make mistakes, and I only have a limited ability to test it, so caveat emptor.
-
- Oct 26, 2012
-
-
Ralph Giles authored
This is, as far as I can remember, the process I went through to produce the 0.1 source and win32 binary packages. I also added a few things I wish I'd done, like stripping the binaries and including release notes and dependency versions in the README to help us remember next time.
-
- Oct 24, 2012
-
-
Ralph Giles authored
We need the sed invocation to strip the 'v' prefix when naming the dist tarball.
-
Ralph Giles authored
We use some C99 features (like lrintf) despite passing -std=c89 -pedantic. This works on normal linux and mac builds because we define _GNU_SOURCE, which enables them, but the mingw32 headers ignore this, generating warnings for lrintf and _putenv, the later hacked in by libtool. Avoid these by undefining __STRICT_ANSI__ in mingw builds, which allows the default extensions and fixes the warnings.
-
Ralph Giles authored
This should make mingw32-configure --enable-http less confusing.
-
Ralph Giles authored
This avoids trying to build in http support when cross-compiling for windows. Also cleans up some adjacent formatting.
-
Timothy B. Terriberry authored
Instead of assigning the return code to a local variable and then using OP_ASSERT(), define a new OP_ALWAYS_TRUE() macro that still evaluates its argument when assertions are disabled. This avoids -Wunused-but-set-variable warnings from clang and useless scan-build reports (if scan-build is run without assertions enabled).
-
- Oct 23, 2012
-
-
Timothy B. Terriberry authored
-
Ralph Giles authored
Updates the configure check to match the one in the Opus repository.
-
Ralph Giles authored
AC_INIT requires that the version string passed in be 'static' so we can't use the output of a shell invocation. However, it can be computed by an m4 shell invocation. This is what autoconf itself does to embed its git version number in PACKAGE_VERSION. Doing this necessitates the 'echo -n' in git-version.sh. Make is smart enough to strip the trailing newline, but AC_INIT is not. We must also add -f to autoreconf. Otherwise, autogen.sh will only update configure when configure.ac changes, even if the output of git-version.sh has changed. This is still not ideal, since it runs at autogen.sh time, not at 'make' time, which is what we want. This seems to be a limitation of an upcoming automake release, which removes the old style with PACKAGE and VERSION set by shell variables.
-
Timothy B. Terriberry authored
Instead put them on the most recent valid packet on the page. Also bullet-proof the offset checking to the "use the current position when seeking" code added in 6d61f3f1. The previous code relied on the file not changing out from under us, which we shouldn't do.
-
Timothy B. Terriberry authored
This is no longer guaranteed after the change in e7661191, so test for it explicitly. Thanks to Greg Maxwell for the test case.
-
Timothy B. Terriberry authored
This case can basically only get hit if there's another stream multiplexed in with ours, but this avoids re-scanning the same data multiple times when it happens.
-
Timothy B. Terriberry authored
In most cases, this is a minor speed-up at best, but in some it can be a big win. Also, when forcing a true bisection instead of a secant-step, don't add the negative bias to the result. This can significantly improve the worst-case.
-
Timothy B. Terriberry authored
- Attempt to re-use connections when we've already received enough data to do so immediately. - Make sure when seeking near the end, if the current chunk size is such that the _next_ chunk will be half the normal size or less, we just ask for the rest of the resource. With these two changes, a normal open of a single-chain Opus-only file requires exactly two HTTP requests. - Also use the response buffer as a dummy buffer when skipping data. This will avoid helgrind errors for multiple writes from different threads without locking (should someone be reading multiple streams from different threads). It's also better for SMP cache contention.
-
Timothy B. Terriberry authored
This can be quite expensive with the http backend, especially if it causes us to pass a chunk threshold and issue a new request. It also lets us error out more quickly if the underlying stream data changes.
-
- Oct 22, 2012
-
-
Timothy B. Terriberry authored
We apply a positive bias when the previous bisection point was inside the current link, causing us to scan forward a bit instead of seeking to a new location. This knocks up to 18% off the number of seeks required to open very large files with lots of links.
-
Timothy B. Terriberry authored
- The DIGIT character sets shouldn't need to list "0" twice. - Avoid a lookup for the port number in getaddrinfo(). - Resolve the OPUS_SET_GAIN TODO (by refusing to implement a fallback). - A few more minor things.
-
- Oct 20, 2012
-
-
Timothy B. Terriberry authored
This changes op_read_func to a) Take a single byte count to read instead of an "item" count (which the http backend couldn't properly support anyway). b) Use integers for buffer sizes to avoid having to worry about sign differences and whether size_t is larger or smaller than opus_int64, etc. c) Return an explicit error code (instead of using errno like fread). We had already eliminated the use of errno, but we did it by treating read errors and EOF identically in all cases. This was preventing us from reporting SSL truncation attacks from the https backend. The https backend now properly reports such errors. This commit also fixes a bug introduced in 9b57b0c2, where we accidentally started passing absolute offsets to the _boundary parameter of op_get_next_page() instead of relative offsets. We now use absolute offsets in all places, as it is the simpler choice. This matters now, because the error reported when encountering EOF before hitting the _boundary is no longer suppressed (but instead reported as OP_EBADLINK). Finally, it removes the op_page_seek() function. Except for the time needed to decode forward after seeking, this function was identical in performance to op_pcm_seek(), and Opus requires decoding 80 ms of data after seek anyway, so the relative benefit is much smaller than with Vorbis. A survey of open-source code using libvorbisfile showed that the only usages of ov_page_seek() in the wild were calling it to seek to the start of the stream, for which op_pcm_seek() already has a special case that makes it just as fast. The documentation was also updated to describe all of these chanes. This is an incompatible API change.
-
Timothy B. Terriberry authored
Right now we have no way to add any more parameters beyond a set of basic binary flags. This unifies op_url_stream_create() and op_url_stream_create_with_proxy() into a single function that takes a variable-length list of arguments, which can be extended in the future to include more options of any type. This is an incompatible API change.
-
Timothy B. Terriberry authored
We were computing the return value correctly, but then not returning it.
-