- Dec 29, 2015
-
-
Timothy B. Terriberry authored
This includes convenience routines specifying the album gain should be applied and for parsing the tag.
-
- Dec 15, 2015
-
-
Timothy B. Terriberry authored
In commit 41c29626 I claimed that it was not worth the machinery to buffer an extra page to avoid a seek when we have continued packet data. That was a little unsatisfying, considering how much effort we make to avoid unnecessary seeking elsewhere, but in the general case, we might have to buffer an arbitrary number of pages, since a packet can span several. However, we already have the mechanism to do this buffering: the ogg_stream_state. There are a number of potentially nasty corner-cases, but libogg's page sequence number tracking prevents us from accidentally gluing extraneous packet data onto some other unsuspecting packet, so I believe the chance of introducing new bugs here is manageable. This reduces the number of seeks in Simon Jackson's continued-page test case by over 23%. This also means we can handle pages without useful timestamps (including those multiplexed from another stream) between the last timestamped page at or before our target and the first timestamped page after our target without any additional seeks. Previously we would scan all of this data, see that the 'page_offset' of the most recent page we read was way beyond 'best' (the end of the last timestamped page before our target), and then seek back and scan it all again. This should greatly reduce the number of seeks we need in multiplexed streams, even if there are no continued packets.
-
Timothy B. Terriberry authored
We avoid seeking when the seek target lies within the packets buffered from the current page. However, the calculation of the page start time was _adding_ the first packet's duration to its end time, instead of subtracting it.
-
- Dec 07, 2015
-
-
Timothy B. Terriberry authored
When assertions are disabled, nothing else uses header_len.
-
- Dec 06, 2015
-
-
Timothy B. Terriberry authored
If the packet where we wanted to start decoding was continued from a previous page, and _other_ packets ended on that previous page, we wouldn't feed the previous page to the ogg_stream_state. That meant we wouldn't get the packet we wanted, and would fail with OP_EBADLINK (because the starting PCM offset of the first packet we did decode would already be after the one we wanted). Instead, check for continued packet data and feed in an extra page to prime the stream state. Thanks to Simon Jackson for the report and the excellent test case.
-
Timothy B. Terriberry authored
-
- Sep 26, 2015
-
-
Ralph Giles authored
autoreconf looks for ACLOCAL_*FLAGS in Makefile.am and will pass that on when it invokes aclocal. Furthermore, setting a local like this doesn't make it available to subcommands, so the line has no effect.
-
- May 27, 2015
-
-
Ralph Giles authored
-
Simon Jackson authored
- Added new configure option --disable-examples which can be used to stop the example programs being built. This can be useful in some situations, such as when cross compiling static libraries. - Examples are still built by default, --disable-examples must be passed explicitly to stop them being built. Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
- Feb 27, 2015
-
-
Timothy B. Terriberry authored
OS X 10.5.8 does not define AI_NUMIERCSERV either, so instead of trying to enumerate the platforms that don't, just test for the value itself. Patch by Dave Evans at MacPorts. Fixes #2172
-
- Jul 04, 2014
-
-
Ralph Giles authored
Add some newer generated files.
-
- Jun 11, 2014
-
-
Ralph Giles authored
No ABI changes. Error behaviour has changed, but that falls under 'compatible'.
-
- Apr 12, 2014
-
-
Needed at least on NetBSD. Signed-off-by:
Thomas Klausner <wiz@NetBSD.org>
-
- Mar 30, 2014
-
-
Timothy B. Terriberry authored
If an Opus stream is currently multiplexed with other streams, we would have to scan the whole file to identify the pages that belong to just the stream we play back. That's probably not what the user wants, and if it is, they have a way to do that (using op_bitrate_instant()). Document this so as not to surprise developers. Thanks to Lithopsian for the report.
-
- Mar 26, 2014
-
-
Timothy B. Terriberry authored
Makes style slightly more consistent. Also fixes the return code of op_fetch_headers() to make it consistently return OP_EBADHEADER if the stream runs out of pages after a valid OpusHead packet is found. Previously, if a valid OpusHead was found, it would return OP_ENOTFORMAT if it ran out of pages before finding one without its BOS flag set, and OP_EBADHEADER if it ran out of pages after finding one without its BOS flag set.
-
- Mar 25, 2014
-
-
Timothy B. Terriberry authored
width=height=depth=colors=0 should be allowed, but wasn't thanks to some missing parentheses. Thanks to Lithopsian for the report.
-
- Mar 16, 2014
-
-
Timothy B. Terriberry authored
We were skipping the BOS page for non-Opus streams, but never read in the next page, causing setup to fail with a duplicate serial number validation error. Thanks to Lithopsian for the report.
-
- Mar 12, 2014
-
-
Timothy B. Terriberry authored
-
- Mar 03, 2014
-
-
Timothy B. Terriberry authored
It helps to increment the comment count. Thanks to lithopsian for the report.
-
- Jan 11, 2014
-
-
Timothy B. Terriberry authored
Thanks to gmaxwell for the report.
-
- Jan 10, 2014
-
-
Ralph Giles authored
-
- Jan 09, 2014
-
-
Ralph Giles authored
We've added tag copy/compare, server_info, decode_cb, set_dither. Constification is backward-compatible.
- Jan 08, 2014
-
-
Ralph Giles authored
Automake 1.14.1 warns that this will become the default in the future and advises enabling this, I assume to catch conflicts. We already use this option in the opus library.
-
Timothy B. Terriberry authored
These should use the same macros as the rest of the code.
-
Timothy B. Terriberry authored
This was meant to affect file opening only, not stream info printing.
-
- Dec 05, 2013
-
-
Ron authored
This reverts commit 8638d78c. Since it doesn't actually fix the original problem with shallow clones, it returns just a hash, not something we (currently) can extract as a version string in the form things are expecting. Which means the .pc version checks for things using the library at least will still fail.
-
- Nov 20, 2013
-
-
Timothy B. Terriberry authored
RFC 6555 "Happy Eyeballs" has a few recommendations for implementing dual requests to hosts with both IPv4 and IPv6 DNS entries that differ slightly from how we used to do it. This commit updates things to follow those recommendations.
-
Timothy B. Terriberry authored
Otherwise redirects we'll stuff two requests into the same buffer if there's a redirect to another https URL via a proxy.
-
Timothy B. Terriberry authored
This separates the state for whether pipelining might be supported (HTTP 1.1 responses with a Server header) and for whether it's been explicitly disabled (Server headers from known-bad servers). This does a better job with repeated (and possibly contradictory) headers.
-
Timothy B. Terriberry authored
-
- Oct 01, 2013
-
-
Ralph Giles authored
This provides a fallback commit id if no tags are available, for example when doing a shallow clone.
-
- Sep 03, 2013
-
-
Timothy B. Terriberry authored
For many Latin1 characters this still worked correctly by pure luck. Unfortunately, that included my test case.
-
Timothy B. Terriberry authored
It was only guaranteed to work in the seekable case. Thanks to Radio Stadtfilter 96.3Mhz for sending a stream which triggered this failure.
-
Timothy B. Terriberry authored
All the actual filters are named op_foo_filter(), so op_read_native_filter() looked like another one. Changing the word order should remove the ambiguity.
-
Timothy B. Terriberry authored
Don't know if this actually leads to any better code generation, but it may make the code a little clearer.
-
Timothy B. Terriberry authored
This makes it clear they don't modify the state, which is a useful indicator of what is safe to call from the application decode callback.
-
Timothy B. Terriberry authored
Otherwise we would have failed to open the stream.
-
Timothy B. Terriberry authored
This is a little easier to read, and allows us to save some subtractions and a comparison.
-
Timothy B. Terriberry authored
The increasingly-inaccurately named op_shaped_dither16() can serve this role instead, without much additional complexity (perhaps less, once you consider the required shuffling around of the function parameters).
-