What is SQLshout?
SQLshout is a Shoutcast compatible streaming source client which uses a SQL database as its source for playlist generation. Using a SQL database allows for interaction with web applications like PHP Nuke.
June-15-2004 2:20PM HST : Finished getting the program to run in threaded operation. I still have a bit more polish to do for proper exits and cleanups in threaded operation though. Also, added a logging facility (A requirement when running threaded). The program now logs by default to /tmp/sqlshout.log, but it can be configured to log elsewhere vi the config file.
June-10-2004 12:21PM HST : Okay, I have a development version of the code running as a threaded application. The foreground mode seems to work fine, but when I daemonize() the application it seems to lose it. I'll keep working on the bug, so we should have a version 1.5 soon.
June-3-2004 10:33AM HST : Okay, my initial theory seems to have been correct. I have eliminated all known
bugs in the code. I have been running the program inside of valgrind for quite a while now with no errors. I am
going to commit the changes to CVS right now.
May-21-2004 11:21AM HST : Been a while since I've updated the site or the code, but I am now working on
tracking down the intermittant segmentation violations that happen in the code. I am predisposed to believe that
perhaps the MySQL connection times out while the re-encoder/streamer is running, and as such I am adding logic to
check the connection and re-establish prior to running the next iteration. I'll upload some new code as soon as I
get it running.
Feb-20-2004 9:18AM HST : Well, we're working on a re-write of the code into C++. There will soon be better
support for ID3 tags instead of relying completely on the database for the artist and title information.
Jan-21-2004 7:56AM HST : Okay, uploaded a lot of changes to the CVS tree. There are lots of
changes to how strings and MySQL result rows are handled, added the PHPNuke module though it probably
won't work anywhere but on my server, and added the SQL tables script in ROOT/nuke/sqldefs.mysql.
Jan-19-2004 4:18AM HST : If SourceForge ever gets their CVS servers back online, I'll upload LOTS of changes
and probably make a release. Here's a list of changes:
- Background Daemon Mode
- More modularized SQL functions
- Fixed varied samplerate/bitrate issues (Chipmunk Effect)
- Got stream metadata working with Icecast
- Better support for request limitations. Requests can now be limited to X requests/user/hour.
Overall, lots of updates.
Jan-19-2004 1:42AM HST : Finally figured out why metadata wasn't working with shoutcast server. NullSoft's
server gets it's metadata from the MP3 stream headers, whereas icecast gets them from the shout_set_header() call.
So, metadata works fine with icecast, but not shout. I'll add code to the lame encoding functions to add MPEG tags
in the next day or two.
Jan-18-2004 8:31PM HST : Trying to come up with a solution for figuring out the negative ratings. Right now,
I insert a new instance of the song record for both positive and negative ratings adjusting rating to be wither 1 or
-1 respectively. Unfortunately, this means that a song with a rating of -4 has the same chance of being chosen as a
a song with a rating of +4. Uhhg!!
Jan-18-2004 5:03PM HST : May have fixed a quasi-bug. There was an issue with MP3s with a samplerate other
than the default 44100KHz. Now, using lidMAD's header struct I am using lame_set_in_samplerate() to set the input
Jan-18-2004 4:30PM HST : Worked on a few stability bugs. On certain song names retrieved from the DB,
the program segfaults trying to assigned to a string pointer allocated to the size of the filename. Added
memcpy() calls after each malloc to fill strings with 0's and changed some assignments from sprintf to
snprintf or strdup. We'll see if this helps.
Jan-15-2004 2:31PM HST : Finished some code cleanups and set up the source tree for automake/autoconf. Also, seperated out some of the
functions into seperate source files for better readability.
Jan-15-2004 1:13AM HST : SUCCESS!!! The program decodes, encodes, and streams properly!!. Still getting
some segfaults on the id3info function, but when it is rewritten to use libid3tag, it should work fine. In the
meantime, id3tags are disabled.
Jan-14-2004 3:48PM HST : Resolving some final issues in shout_open() and we'll be done.
Jan-14-2004 1:18PM HST : Have the libmad decoding and LAME encoding working. Need to finish the
code and we'll be off to the races!!!
Jan-14-2004 12:53AM HST : After speaking with Alexander Leidinger from
the LAME project, I have started to switch to libMAD for the MP3
Jan-13-2004 1:12AM HST : Got back on-line and have gotten the LAME decoder working. Just need
Jan-12-2004 3:50PM HST : Modified some of the casts to fix some warnings output by gcc.
Jan-12-2004 2:35PM HST : Rewrote the shoutcast portions of the code to support the latest
version of libshout