[SCM] libshout/master: Updated version 2.4.1 from 'upstream/2.4.1'

js at users.alioth.debian.org js at users.alioth.debian.org
Tue Aug 29 12:28:50 UTC 2017


New upstream version 2.4.1
Updated commons rev
Fix: Added check for time headers
Fix: fixed missing includes of standard headers.
releasing libshout 2.4.1
Fix make dist-gzip not copying libshout.ckport
Setting details in preparation for 2.4.0 release
Docs: updated date
Added RoarAudio specific stuff
Merge remote branch 'origin/master'
Set next version: 2.4.0
Docs: Updated NEWS file, added interpuction
Docs: Added NEWS info for RA support
Fix: included needed header for strcasecmp()
Fix: included needed header for strncasecmp()
Updated submodules
cleanup
Cleanup.
Feature: RoarAudio Protocol support.
Initial work to support the RoarAudio protocol.
Added SHOUTERR_RETRY.
Fix: Updated list of allowed ciphers.
Feature: Added support for SNI
Fix: corrected laste change date.
Fix: listed TLS related functions in docs
Fix: corrected order of <section>s
Fix: corrected prototype of shout_[sg]et_port in docs
Fix: added all new functions but TLS related
Fix: refer to correct replacement in ckport database
Fix: Note shout_set_meta() and mark obsolate functions
Fix: make use of <para> so text is visible
Fix: docs listed shout_get_pass but it's shout_get_password
Fix: added SHOUT_META_* to documentation.
Feature: Added ckport database.
Cleanup: updated documentation a bit
Cleanup: Corrected EXTRA_DIST to reflect filename changes
Cleanup: Renamed files to match what they do
Fix: updated NEWS file for upcoming release
Fix: Also accept to set TLS mode to RFC2817
Cleanup: Fix -Wextra warnings.
Cleanup: Move protocol specific code out of shout.c
Cleanup: Renamed ca_certificate to ca_file.
Doc: Give some more hints on usage of functions
Fix: Added TLS support to metadata updates.
Cleanup: Moved protcol handling out of socket code in shout_set_metadata()
Cleanup: Renamed TLS modi according standard and updated IDs
Cleanup: corrected copyright header
Merge branch 'tls+poke-support'
Feature: Autodetect RFC2818 TLS sockets correctly.
Fix: Do not retry on fatal error.
Feature: Added Upgrade: support RFC2817.
Merge branch 'poke-support' into tls-support
Cleanup: Added SHOUT_STATE_REQ_CREATION to statemachine
Cleanup: Added SHOUT_STATE_REQ_CREATION to statemachine
Feature: Send Host:-header
Feature: Check server for what it supports.
Fix: Corrected mimetype switch()
Cleanup: Move mimetype selection into a switch()
Fix: Check server's certificate in TLS mode.
Fix: Support for TLS.
Feature branch: Initial commit for TLS support.
Cleanup: Added some headlines to parameters
Fix: Cleanup of debian/ leftovers. part two...
Fix: Cleanup of debian/ leftovers.
Update: Updated submodule revisions.
Removeal of Debian packaging
Fix overlinking of libshout
Updated submodules
Epic Git migration commit!
expose converting of method names to enum values as httpp_str_to_method()
Changed ABI a bit: updated httpp_request_type_e-type. To avoid any problems do a complet rebuild of your projects. Thank you.
sync with my branch
fixing some compiler warnings
fixing some compiler warnings
Replaced usage of sprintf() with snprintf().
Replaced usage of sprintf() with snprintf(). Also exported size of key printer's buffer in avl/.
sync with my branch: * Adds protocol level meta data support, * Fixes some checks for NULL to avoid segfaults.
small format updates, added more comments to the header
added support for audio only webm, see #1872
fixed some compiler warnings (implicit declaration, signed vs. unsigned)
cleanups and hardening. Part of patch libshout-2.3.0-aac-mime-aim-irc-icq.patch, see #1872
commited support for HTTP PUT, See #1812
corrected prototype of shout_set_agent() to match prototype in source code
Bump version number and date for the 2.3.1 release.
opus.c: don't memcmp bytes which are not there.
Improvements to the Opus header rejection logic.
Remove an obsolete comment.
Reformat the opus code to use consistent 3-space indents.
Update the changelog.
Support for Opus. This uses packet duration counting and ignores the granpos.
Update autogen.sh based on the one in libopus.
Set native eol style on remaining source files.
Set native eol and $Id substitution attributes on webm.c
Update news for the 2.3.0 release.
Empty structs aren't portable.
Remove the shout-config fallback script. Use pkg-config or nothing.
Don't strip the tiny revision number on X.y.0 releases.
Bump the versioning to 2.3.0.
Add support for webm streaming.
minor cleanups.
bug+fix reported on icecast-dev (Petr Pisar, 06/07/2009). poll implementation of sock_connected had incorrect return in failure case.
Use usleep instead of sleep in nonblocking example. MinGW/MSys do not support sleep()
Support patch levels greater than 9. autogen.sh should be replaced with autoreconf.
MinGW/MSys portability fixes.
non-blocking setting on win32 broke with previous patch. Add optional xml setting for specifying the TCP send buffer size, it seems that on at least some win32 systems, the window size stays at 8k (even with registry settings) which could limit available streaming bandwidth.
Update libshout configure script for timing r15610. From Karl.
Add handlers for spinlocks if available, map to mutexes when not.
avoid SOCK_NONBLOCK name clash with recent glibc. Add support for optional bind parameter to connect_wto call. Some small compiler cleanups.
log: When keeping around log lines, only allocate what we actually use. Allow compiler printf arg checking. timing: win32 fix, don't use timeGetTime, fixes access log timestamp
Don't include a per node lock unless it is really wanted. I don't think anyone is using them currently, so lets reduce the structure size.  On win32, this extra lock increases the handles usage considerably.
minor update for uncommon cases
build fix for older setups with IPv6
Add --disable-speex and --disable-theora switches.  Closes #1162.
Linking libshout.la to Speed.  Closes #1161.
Use poll if available, select can cause stack corruption if descriptor value is over 1024
drop const usage and work around a FBSD issue with listening sockets
reduce wasted memory on 64bit systems, 32bit has no change
clean up prototypes and sock_t handling, for win32 mainly, no functional change
add guards for NULL dereference
added function to check whether the socket is still alive
const updates, again no functional change
minor build update
update to server side socket creation. Where IPv6-aware functions are available, use them to create dual IPv4/6 capable sockets.
Only define [u]int64_t on Windows if they haven't been defined already (e.g. in os.h from libshout or stdint.h in case they ever show up there.)
Portability fixes for Windows and IRIX (MIPS/MIPSpro C): Include missing headers, don't do pointer arithmetics with void*, and add some defines for Windows. Define va_copy only if it isn't defined, yet (e.g. for MINGW32.)
Allow all valid MP3 layers, not just layer 3. From Nicholas Humfrey.
libshout 2.2.2 tagged and bagged.
Cast to int to prevent warnings and type mismatches depending on what size_t actually is.
shout_open was failing unnecessarily in the connect_pending state. From Karl Heyes.
(from Karl)
Fix header installation to use pkgincludedir.
Another report on libshout.  This time on files that don't begin with zero granulepos.  The sync causes a very long sleep in such cases. patch attached.
Bump version to 2.2.1
Update HACKING to reflect switch from cvs to svn
Don't let a failed shout_open() leave the shout_t in an inconsistent state. Also fixes some leaks in failed shout_open() calls.
Codec setup is the very last step in shout_open, so codec teardown should only happen when SHOUT_STATE_CONNECTED.
fix install of header, take 9
Free tree if we fail to allocate root node.
os.h doesn't exist anymore, use compat.h.
Fix memory leak in authentication as reported.
libshout 2.2 release
Search backwards for response header terminator instead of just checking the end of the response, in case additional data is received after the header. Spotted by Karl.
I seem to need to include inttypes.h on OS X.4.3 before including any ogg headers. Seems like this might be libogg's fault (or fink's libogg package), but the workaround should be harmless.
Apply Karl's patch to avoid double-freeing the HTTP response header on unsuccessful connection.
William Volkman's speex support patch.
Don't test for the required libtheora version if the generic link failed. Corrects an erroneous version error when in fact the library wasn't found at all. Bug #719.
reduce stack allocation to 512k, the defaults tend to be quite large
j at v2v.cc's patch to use pkg-config for vorbis and theora if available
Include shout libdeps when building examples. Noted by j at v2v.cc.
Karl's patch. In his words: "looks like the theora part is missing the initial setting for theora streams, on files it's generally ok the absolute beginning is typically 0 but for streams that often isn't the case."
allow older xslt libs, we can conditionally build a missing function easily
initial openssl check
implement.h, a pthreads include file, is no longer required for win32.
update pthread check, for the pth lib and a solaris -pthreads check. Update the other m4 macros for the --with-X prefix check
Committed part of Karl's patch to prevent data from being resent on EAGAIN. The second part of it I'm not sure about... I think maybe the callers need to be fixed to check self->error instead of the return value.
store the original full uri if there are query parameters. small cleanup to prototype definitions
simple sanity check
Typo (spotted by Daniel Svan)
update debian/watch file to point to downloads.xiph.org
Whoops, forgot to install the nonblocking.c example file.
libshout 2.1 tagged and bagged.
Add SHOUTERR_BUSY to shout_get_error
Allow shout_get_connected to return SHOUTERR_BUSY if the socket is non-blocking and the connection is pending. This makes it more consistent with shout_open.
Bail out if ogg/vorbis libs not found
cleanups to last commit (loop over short writes)
Loop over send operation on short writes until write finishes or returns an error.
add unistd.h header for sleep() shout_get_connected never returns BUSY (maybe it should?), so the loop was using the wrong condition.
removal of old and unused code add '+' to those fields that are url decoded.
make sure we have a recent theora lib
update macros
Oops. Don't close unconnected links in shout_close. On the other hand, closing connected links is probably even a good idea.
Add shout_queuelen to expose the current length in bytes of the write queue. To do this without having to recalculate, I had to create a queue structure to hold the linked list itself and its length. Might be worth putting a pointer to the tail here too.
Per Karl, only queue data if it can't be sent right away (should significantly reduce malloc/free overhead in the common case).
merged from kh branch, allow for handling the vsnprintf return code better on older systems.
Use sock_error() wrapper instead of errno
update library check
add extra boundary checks when splitting headers
Full nonblocking IO support, per the API spec posted to the list. Not very well tested.
Bug fixes for nonblocking connect.
nonblocking API WIP. Don't use yet, this is just to keep from losing work. Everything should still work in blocking mode.
Update example to use SHOUT_FORMAT_OGG instead of SHOUT_FORMAT_VORBIS
make sure sock_connected does not block with timeout 0, use -1 for that, also handle the sock_connected return values properly in the case of timeout.
Create read queue for buffering response header. Buffer response header in HTTP login (we're very close to ready for   non-blocking I/O now).
try_write: write data, not queue struct. This only seemed to work because data was at the front of the queue.
x-audiocast (icecast v1) login headers buffered (untested - I have no icecast 1 server here)
Buffer icy login headers too (x-audiocast remains)
HTTP headers are buffered before being sent (using queue code which will be shared with non-blocking I/O).
Move configure.in to configure.ac, since it requires autoconf 2.5 anyway. Add inline check.
Non-blocking I/O, in progress (don't use)
Add keyword substition.
Use shout_send_raw instead of sock_write_bytes, to provide a hook for non-blocking/paged I/O.
Mangle the names of the codec open hooks. I forgot they'd be visible outside of libshout once they were moved into separate files. Anyone know a way to make functions only have intralibrary visibility?
Move theora codec support into separate file (cleaner, if by cleaner you mean "fewer #ifdefs", not "less autoconf")
Move vorbis codec handler into separate file. Theora will be moved shortly.
typo
remove vorbis.c and add ogg.c to project file
Add __func__ test if apps want it
Handle --without-theora option. Ideally this would be controlled by the caller (who may or may not want to allow this option), but I don't know how to do that while AC_ARG_WITH(theora...) is inside this macro.
update lib check, not usually a problem
minor makefile cleanup
Move stray variable declarations to top of functions.
Added Karl's Theora support, plus just enough autoconf to compile with Theora. It probably doesn't work right in general.
A reorganised version of Karl's multicodec support. Only Vorbis has been ported in this patch - Theora is up next.
Cosmetic changes (rename vorbis to ogg) before merging Karl's generic Ogg support.
Rename XIPH_PATH_OGG to XIPH_PATH_OGG2, to avoid conflicts with ogg.m4
Move .cvsignore into svn:ignore
Quote defs in xiph_curl and ogg2, add Id keyword substitution.
Add 'Id' keyword
Move .cvsignore into svn:ignore
minor build fixup
minor build fix
add speex.m4 to trunk/m4
The httpp module is also used by icecast and related projects.
m4 for libogg2
a test for theora
handle error condition at connection
a few cleanups and a fix for async connects
include win32 specific includes if compiling under windows
fix line endings on MSVC projects
added appropriate win32 files to the automake Makefiles for inclusion in distributions
added win32 support to libshout
Add Copyright notice to each source file, as requested by debian.
minor cleanups, and only have one thread responding to TERM
Quote our macro name in AC_DEFUN() to avoid a warning in automake 1.8. Patch from Alexander Winston.
Remove explicit exit() calls...this was possibly causing some cases of immediate UI termination without any messages...
minor cleanup
proper cleanup of the rwlocks in the avl trees.
typo
Leigh Smith's MINGW32 compatibility patch, with modifications for better autoconf feng shui
typo
Added Debian packaging
fix issues with non-portable echo flags and re-do the tests for automake version checking. The enrironment var AUTOMAKE can be used to indicate the first one to check for
another compiler cleanup wrt 64bit int/pointer mismatches, thanks to the ports maintainers
Plug small memory leak when a thread exits. Allow new threads to inherit scheduling policy. Use long instead of int in thread_exit, thanks to the ports maintainers for the heads up.
remove unwanted bits left in from previous commits
fixup last curl test with all the info it needs and avoid variable name clashes.
remove duplication for compiler flags, and fixup curl detection
we need to supply the curl cflags into the C preprocessor
Add the libcurl check to the m4 archive.
move xml/xslt detection into the m4 tree
fix variable expansion
Assign LGP to thread module
Assign LGPL to files (as implied by COPYING)
Libshout Release *cough* 2.0 *cough*
Insert annoying LGPL and copyright info into source and include files. The convenience libs are GPLed rather than LGPLed. Is this an issue?
Karl's fix to distcleancheck
Forgot to update example for built shout.h (noted by Karl)
Update shout.m4 to test for SHOUT_THREADSAFE in shout.h.
Shorten _XOPEN_SOURCE test case. Build shout.h from shout.h.in. Define SHOUT_THREADSAFE in shout.h at configure time.
The API reference is now complete. Thank God.
Correct shout.h documentation. Allow shout_set_metadata to work on an unopened connection (useful for utilities that want to modify another process' stream).
All functions documented but the individual parameter functions, which I have been putting off.
icecast at xiph.org isn't a very good bug-reporting address.
Reset LDFLAGS after the link test.
more portable va_copy for win32
Beta 3, aka the last and final ultimate omega beta.
va_copy is undefined on windows
The last of the convenience lib cleanups. A little forethought in designing a keyboard macro made this one a lot easier.
Irix portability fixes: 1. Don't define _XOPEN_SOURCE, at least with GCC. As ALWAYS, this macro undefines    a lot of the symbols we need. As of libshout 2.1, this define will be moved    into the "if not $GCC" category so we don't have to deal with it so often. 2. Irix defines inet_pton but not sockaddr_storage. We could fake it by using    an in6 structure, but why bother? Just don't check for inet_pton unless    we have struct sockaddr_storage.
MAX may be defined elsewhere
httpp goes through the rinse cycle
I missed a spot. And another one.
net gets the namespace deep cleansing treatment. I suspect all this may be unnecessary, only because I've never heard of this before. But then, I don't do much library work, and better safe than sorry.
Namespace cleanup: _mangle exported symbols, declare others static. This is tedious.
remove util.c functions from the global namespace (prefix with _shout_)
Declare our automake 1.6 dependency and propagate the version-enlighted autogen.sh from ices.
Mangle convenience lib prototypes with _shout_ instead of shout_. It makes them more private :) Simplify the macro very slightly.
Require automake 1.6
Corrected some minor inconsistencies noted while writing documentation.
The "important" functions (everything but metadata and the various getters/setters) are now documented.
Added constant and data type reference sections. Most functions are still missing.
Add a name mangling mechanism so we can safely compile in code we share with applications that might link with use. Currently only hooked up for the timing liblet, but thread is the real target.
Started writing some docs, then got bored.
Get everthing in make dist, and remove bitkeeper cruft
this was never used and it's handled elsewhere anyway
Bump version to 2.0b2
Rename --disable-pthread to --disable-thread
bump prereq to 2.54 since we're using AC_PROG_FGREP (and 2.54 is the first "stable" release of 2.5 anyway)
shout_init(), shout_shutdown() added (noone had any better ideas) shout_new calls shout_init just in case.
grr.
framelength off-by-one error for some bitrates (from Pritpaul Mahal)
finish what we started re: resolver
Cosmetics (superfluous "checking")
shout.m4 splits SHOUT_CFLAGS into SHOUT_CFLAGS and SHOUT_CPPFLAGS, and defines SHOUT_THREADED if the library was built threadsafe (from Karl).
Karl's extension to shout-config, shout.pc Adds cppflags and cflags-only variables
If you're going to shoot an elephant, you'd better make sure you finish the job.
Seed PKG_CONFIG_PATH with the default libshout shout.pc location (ported from ices0 version)
Move shout.m4 into shared repository. Libshout done, ices 0 to follow...
Prune shout_prefix from *-config include flags if it would generate a warning. Make all xiph_compiler macros comply with our coding guidelines XIPH_GCC_INCLUDE_WARNING renamed XIPH_GCC_WARNING
Don't use PKG_CHECK_MODULES: it aborts configure on systems without pkg-config, even if action-if-not-found is defined.
Lots more autoconf stuff 1. src/net tests abstracted into XIPH_NET macro. We should do the same for    src/thread, but it's a little more complicated - it will have to    interact with the caller (eg some apps may want --disable-threads) 2. uintxx_t, socklen_t tests encapsulated, moved to xiph_types.m4 3. solaris fixes for socket func, nanosleep detection 4. added $LIBS to SHOUT_LIBS for *-config scripts. Good or bad idea?
oops.
C++ has 'public' as a reserved keyword.
autoconf seems to be removing trailing spaces, apply a work around for it
Oops, leftovers from the last commit
A load of changes by Karl
libshout 2.0b1 Let's get all those bug reports now please.
ermmm, let's use the right operator.
minor cleanup for help output consistency
minor cleanup, removes compiler warning, makes it static, and doesn't re-evaluate string length each time.
remove file descriptor leak when IPv6 is being used.
Karl's simplified and cleaned up ogg/vorbis macros. This will push back release a bit unfortunately.
Oops. Place doc files in $(datadir)/doc/libshout rather than $(datadir)/doc
Whoops, INSTALL probably isn't needed in doc after installation (sort of the converse of the "open the box - inside you will find these instructions" joke).
Install documentation (ie example.c). Real API docs are for another day...
Add (somewhat terse) installation instructions. We're T-epsilon from release. make install still needs some tweaks.
Copied back from ices/m4/shout.m4 1.2. There must be a better way of keeping these m4 macros synchronised.
Move m4 macros from acinclude into m4 directory Use new shout.m4 macro
Minor obsolete advice.
Make configure --help look pretty
Oops, add xiph_clean_ccflags.m4 and shout.m4 to make dist Add shout.m4 to make install
shout.m4 has been completely rewritten for libshout 2.
Dirty little autoconf macro to remove duplicate compiler/linker flags. Documented at the top of the m4 file.
compatibility with solaris 8 /bin/sh
Solaris 8 portability: test for -lsocket with -lnsl don't define _XOPEN_SOURCE
Don't allow configure to complete successfully if Ogg or Vorbis is missing.
gcc 3.3 warns: dereferencing type-punned pointer will break strict-aliasing rules
double close bug on http connections, causes ices to report bad file descriptor when libshout cannot connect to icecast.
Lets put this in the right place.
Another net change, making it more bullet-proof, before could silently miss data. so now we allocate enough space for the write to succeed fully.
whoops
Karl's sys/select.h patch for fbsd. It must be under another std include on OS X for some reason.
Karl's patch for freebsd, minus the sys/select.h test which breaks on OS X. Also enables IPV6 in libshout!
Make SHOUTERR codes negative, for better unix semantics. THIS BREAKS BINARY COMPATIBILITY.
sock.h expects sys/uio.h to be autoconf-guarded
argh, same typo
Typo
Let the user override pkgconfig use with --enable-pkgconfig. Otherwise it will be used based on whether pkg-config is in the path.
Suppress shout-config installation if pkg-config is found on build system. And, vice versa.
Generate shout.pc (pkgconfig data file for libshout). Still need:   1. detect whether pkg-config is installed, switch shout.pc on and shout-config      off if so.   2. make 1. optional   3. Create AC macro to use pkg-config if available, otherwise try shout-config,      otherwise try linking by hand (?), use it in ices.
Karl's patch for a namespace collision he reports on some BSD systems.
Fix some function comments, sock_write_string() and sock_write may NOT be called with a non-blocking socket
Revert last change.
Use a seperate flag for 'initialised' so that serialno 0 can be used.
off by 1 bug. nul char could be written to unallocated space.
Don't pass 0x1 as a pointer to a syscall. oops.
Always prepend slash to mount if missing.
file descriptor 0 is a valid socket
Locally consistent indentation
Make vorbis handler in libshout not trust ogg page granulepos values, calculate them directly. Neccesary for accurate timing control where there may be granulepos gaps (as in a libshout client that optionally takes input from an icecast stream).
Add shout_delay, which computes milliseconds until shout_send can be called again, but doesn't actually sleep.
on OpenBSD the compiler starts complaining about missing types in the system headers. So I'll special case the _XOPEN_SOURCE define for OpenBSD as that is what is being used to disable the needed typedefs.
We really need to include the header for the test to be reliable
we need to define an API level we want for certain systems like solaris
Move uint type checking into config.h from shout_private.h Guard config.h against multiple inclusion.
Unnecessary include.
Apparently socklen_t may live in sys/socket.h (at least on FreeBSD).
The previous commits are in my opinion the wrong approach. A couple more changes are on the way after this, which just reverts the code to its previous version.
Don't ignore files which are in the repository
add m4 macros from the GNU macro archive for better socklen_t and stdint header detection.
ignore the shout-config generated files
better fix for cases with missing inet_aton
Brendan was getting pissed off about inconsistent indentation styles. Convert all tabs to 4 spaces. All code must now use 4 space indents.
Ensure mount point starts with / when using HTTP protocol
separate the check for pthread_rwlock_t, it will soon be an optional
add the _XOPEN_SOURCE define, which was ommitted from before, this is used to define certain POSIX/XPG APIs/structures
Randomly prod autotools into giving some vague semblance of working
Fix some compiler warnings from mp3.c Fix a compiler warning in util.c by replacing bogus code (that was incorrectly locale-dependent) with stuff modified from icecast/src/util.c
fix for certain versions of OS X which need thread options for finding pthread_rwlock_t
Return more useful message when HTTP login fails
avoid freeing a thread structure a second time.
Try to make automake 1.6 happy about shout-config.in Cosmetics
Add m4 files to dist Put maintainer mode back
Note to self: stop smoking crack.
This has been wrong forever.
autoheader snafu
One more location for socklen_t
New type checking code, gets rid of autoheader warnings Probably requires newer tools than half the people have. God damn autotools, I hate them so much.
various LIBS, CFLAGS cleanups, especially for shout-config
dict->key may be null if no key has ever been set
reduce include file namespace clutter for libshout and the associated smaller libs.
Make room for terminating null.
more libtool droppings
put all the defines into the automake header config.h, reduces the clutter on the compile lines
include the automake config.h file if the application defines one
Set another parameter in the icy protocol parse that logging expects
Added support for shoutcast login protocol (ewww...)
Just enough to get shout-config up and running. The next 10% will take 90% of the effort, as usual.
Mike points out that courtesy of Mike we can all skip this step.
Don't set OGG_CFLAGS to -INONE/include
more on the XIPH_CFLAGS. For the smaller libs like thread etc put any passed flags into the compiling rules.  Also configure in libshout now sets up the XIPH_CFLAGS
Move macros into subdirectory to make it easier to manage them
CVS build instructions failed to mention a few required modules
Add XIPH_CFLAGS which will be used to pass compiler flags which you don't want to get clobbered by things like make CFLAGS='....' The typical flags you don't want clobbered are ones like -pthread
Implement listing of all currently connected clients on a mountpoint
BitKeeper go bye-bye Whoops, broke thread include path
Require NO_THREAD to be defined to turn off locking in avl and net According to Karl, defining nops with do{}while(0) is a la mode.
Use gnu archive ACX_PTHREAD macro to figure out how to compile thread support. Also make it possible to build libshout without threads, albeit without locking in the resolver or avl trees. New option --disable-pthread too.
rwlocks were not getting destroyed when avl nodes or trees were freed. avl.h already includes thread.h
Remove some namespace pollution
Shoutcast metadata compatibility fix. Gah.
Shoutcast compatibility fixes
Make various thread structures omit the bits only used in debug mode. Some of these are pretty heavily used, so saving 10-20 bytes each can be quite significant.
Include and use XIPH_PATH_OGG, XIPH_PATH_VORBIS macros. Not sure they're totally correct, but it's a start.
Naughty little buglet in util_dict_free. Thanks oddsock.
And a couple more nits. Thanks, cpp!
A couple of nits
Make new ice-audio-info header use ; instead of & as delimiter, like RTSP headers sometimes do. Compare:
Send ice-audio-info header in HTTP protocol, instead of ice-bitrate. This header is encoded like the query part of a GET request, eg ice-audio-info: bitrate=128&samplerate=44100&channels=2
add util_dict_urlencode, update shout_set_metadata to use it. This will also be used for audio_info.
shout_(get|set)_bitrate REMOVED.
The "ICE" protocol has been superseded by HTTP.
Fix formatting of ip addresses so that v6 sockets are logged correctly.
Remove comment added earlier - that version of the function is only there for backwards compatibility, and isn't MEANT to do ipv6. Oops.
Better IPv6 support. Hopefully logging will work correctly now. However, some things still won't work, notably relaying (the relay can be ipv6, the server being relayed _from_ may not be). I'll fix that some time soon.
Increase ip buffer sizes so that ipv6 has a better chance of working.
vorbis libshout clients will now send application/ogg instead of application/x-ogg
icecast 1.x dumpfile support, for completeness' sake.
Lots of fixes for screwy code formatting, plus:
Finished shout_version()
We weren't actually using poll at all, we were just including the header. For portability, remove the header and the check in configure.in
autoconf 2.5 generated files
Fix double-close under error conditions in http login. Bug found by Karl Heyes.
Bah. That'll teach me to trust the manpage... let's try something which might be marginally more portable.
Set TCP_NODELAY on sockets for streams and fileserving.
Fix some warnings, fix cflags.
Move HTTP basic authorization into separate function. Add HTTP metadata update for icecast2.
Indentation again, don't mind me
Automatically authenticate (saves round trip)
Make indentation consistent before doing other work
Add default useragent (libshout/VERSION). Get all this reindenting out of the way
Have libshout set the user to "source" by default. More indentation fixes, sorry Mike.
Add icy/xaudiocast metadata support. Make indentation consistent.
Add URL encoding function modified from libshout1. Make indentation consistent.
Version libshout to avoid conflicts with libshout2, minor portability tweaks. This configure.in is likely not very portable though.
Needed for autoconf 2.13 vs socklen_t
Ignore more autogenerated files, and my Project Builder directory
Inconsistent spacing
Added
Remove useless code
Introduce shout_(get)|(set)_(connected)|(public) Some additional commenting.
Cosmetics
More OS X portability. More should be done with poll I guess.
Make automake happy
Just typos
mp3 metadata complete. Still untested.
Rename thread_t to avoid problems on OS X
Patch for example code from  Pedro Corte-Real (typo at netcabo.pt)
Fix compilation errors on non-windows platforms.
win32 port updates to recent changes
Fix a compile error.
Karl Heyes: patches for better networking code. IPv6 support (complete? Not sure).
More bugfixes
Lots of bugfixes contributed by Karl Heyes.
Fix automake things.
shout_send_raw() was bug-riddled. Attempt to restore sanity.
shout_open_(vorbis|mp3) wasn't being called on an http login.
Fix bug (in documentation and implementation) of shout_send_raw
Minor cleanup.
Bugfix: thread_join is often called after a thread has already exited, which it does using thread_exit(). thread_exit() was freeing the thread structure, so thread_join was using freed memory. Rearrange things so that if the thread is detached, the freeing happens in thread_join instead.
Backpropogate hack for libshout test
Missing NULL terminator - so login only worked if you were lucky.
Add ability to send a user-agent string to the server.
Liberally sprinkle #ifdef THREAD_DEBUG around so libshout doesn't need to link with it.
bugfixes for httpp_parse_response
HTTP Basic authentication for libshout.
Timing fixes
Various cleanups
oddsock's xslt stats support, slightly cleaned up
Cleaned up version of Ciaran Anscomb's relaying patch.
Add shout_get_errno function
Lots of patches committable now that my sound card works properly again.
Config fixes for when parsing fails Don't needlessly call getsockopt() all the time (it's a system call, hence expensive)
fix autogen.sh so that builddir != srcdir works
automake is stupid
Memory leaks. Lots of little ones.
Don't use start after freeing it in thread startup code.
Jochem Wichers Hoeth caught a signedness problem which could cause reads beyond the end of the data buffer.
Buffer overflows.
We need sys/types.h for definitions of some types, such as ssize_t
Ricardo Galli found this too.  We weren't setting no linger and keepalive as we used to in icecast1.  They make things work a bit better.
Fix comments (and remove old commented out code) from sock_write_bytes.
Add error == 0 to recoverable error numbers.  Patch from Ricardo Galli. Minor style fixes.
win32 patches from Ed
Bunch of fixes:
More win32 fixes.
minor build fixes for win32 courtesy of Oddsock
Typos. :(
First cut of the big libshout2 merge.  Brendan did all the heavy lifting on this, and it's been sitting on my todo list for some time.  This will now support _both_ mp3 and ogg datatypes and 3 protocols (ICE, ICY, and XAUDIOCAST).  Consider libshout1 now deprecated :)
Ciaran found this bug.  We only ever set tv_usec, but for bitrates around 32 and lower, this will set tv_usec to > 1 second, which wrong.  So we do it the right way, and put seconds in tv_sec.
-mv8 not available on x86 Solaris.
Fix for x86 Solaris.
Update AM_PATH_SHOUT macro.
Revert the stacksize work.  It's stupid.
Fix header definition.
Gar.  Fix typedefs.
Stack size per thread needs to be configurable.  Setting it on a global bases is not enough.  ices and icecast need this to be different, and if one is interested in tuning memory usage, one will want to alter this per thread.
Update shout.m4 to fix test for Solaris.  This change has already been propagated to ices.
Fix a warning.  That variable was never used, so get rid of it.
Get rid of 'long long'.
Add check for stdint.h, since the timing module uses this.
Add check for stdint.h, since Solaris doesn't have it.  This is needed on Linux for uint64_t, but Solaris defines this in sys/types.h.  Use check where appropriate, and also add typedefs for Win32.
Thanks to Akos Maroy <darkeye at tyrell.hu> for this.  These variables need to be uppercase always in order to comply with the HTTP specification. While not a problem internal to icecast, they were slipping into the log files and breaking some less-than-robust parsers.
Win32 updates.  Mostly header fixes and defines for windows.  Apparently interface is a reserved word, so we've renamed one variable.  There's also no sethostent on win32, and Oddsock seems to think we need DeleteCriticalSection instead of DestroyCriticalSection.  I was unable to figure out from msdn.microsoft.com why this was, but I'll trust Oddsock's judgement.
Win32 fixes.  Specifically a header change and not using the gcc extensions for vararg macros.  It's not as pretty, but it works.
select first argument should be 0 when we use it for sleeping.
Change long long to the more standard uint64_t.  This will need to be typedefed for some platforms.
Win32 compatibility courtesy of Oddsock.
Oddsock found this bug when working with icecast2 on freebsd.  Nanoseconds were off by a few orders of magnitude.
Add CVS build instructions.
More .cvsignore
Updated .cvsignore
Add .cvsignore
.cvsignore is fun!
Still more .cvsignore
More .cvsignore
Initial revision
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: c59bd12635a235160a8e02affa103d814b0c2f62
X-Git-Newrev: 1fef199cbe1d091579dedde0113d169fb05b87ea

The following commit has been merged in the master branch:
commit 9c860502c5d575bf70eb38500ad5195760c2b1bd
Merge: c59bd12635a235160a8e02affa103d814b0c2f62 e57ef8fc48a502c2ae81e5e7986f9b87d2d0a834
Author: Jonas Smedegaard <dr at jones.dk>
Date:   Tue Aug 29 13:15:32 2017 +0200

    Updated version 2.4.1 from 'upstream/2.4.1'
    
    with Debian dir f06ad406b93aea789c085206749b893a6c554014


-- 
libshout packaging



More information about the pkg-multimedia-commits mailing list