Eric Wollesen 
							
						 
					 
					
						
						
							
						
						4970c42c86 
					 
					
						
						
							
							shout: introduce pluggable encoder API  
						
						... 
						
						
						
						I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin.  The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change.  For an MP3 stream,
configuration is the same as Ogg, with two exceptions.  First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details.  Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs.  This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures.  Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.)  I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work.  I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds.  It seemed to work fine.  Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one.  Splitted this patch into
several parts; the others were already applied before this one.  Fixed
a bunch GCC warnings and wrong whitespace modifications.  Made it
compile with mpd-mk by adapting to its prototypes] 
						
						
					 
					
						2008-09-12 16:04:40 +02:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						6f2be47270 
					 
					
						
						
							
							Make the shout timeout configurable.  The default is still 2 seconds.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@6556  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-06-12 18:28:57 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						652c2fc8b0 
					 
					
						
						
							
							Adding ChangeLog entry for zeroconf_enabled, adding Zeroconf section to  
						
						... 
						
						
						
						mpdconf.example, and updating the zeroconf_* docs.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6474  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-06-03 20:09:12 +00:00 
						 
				 
			
				
					
						
							
							
								Patrik Weiskircher 
							
						 
					 
					
						
						
							
						
						d67737bc64 
					 
					
						
						
							
							allow zeroconf to be disabled.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@6467  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-06-03 18:08:51 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						41d65da4bd 
					 
					
						
						
							
							Adding a null output to mpdconf.example.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@6394  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-05-30 16:58:39 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						b9b39849d8 
					 
					
						
						
							
							Increasing default buffer_before_play from 0% to 10%.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@6290  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-05-27 13:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						93b96edacc 
					 
					
						
						
							
							Adding a note to mpdconf.example about increasing buffer_before_play if you  
						
						... 
						
						
						
						hear skipping when changing songs.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6240  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-05-23 14:13:46 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						b1a93e8641 
					 
					
						
						
							
							Updating metadata_to_use docs to be more consistent with tagtypes command.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@5793  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-03-31 20:40:57 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						ea3d38e006 
					 
					
						
						
							
							Tidying up libsamplerate example in mpdconf.example.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@5333  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-02-13 22:31:47 +00:00 
						 
				 
			
				
					
						
							
							
								Avuton Olrich 
							
						 
					 
					
						
						
							
						
						79ef8ba248 
					 
					
						
						
							
							Add libsamplerate support, old resampling is still an option, but this sounds much better for those who need it and don't want to use pulseaudio. Reviewed by shank/avuton.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@5316  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-02-02 03:51:07 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Ramsay 
							
						 
					 
					
						
						
							
						
						5d79aced8c 
					 
					
						
						
							
							Added zeroconf service publishing using avahi  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@5238  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2007-01-11 20:41:17 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						202ae2270d 
					 
					
						
						
							
							Adding documentation for gapless_mp3_playback config option.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@5158  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-12-23 18:56:23 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						528429b028 
					 
					
						
						
							
							Filling in link to wiki for audio outputs in mpdconf.example  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4776  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-09-15 00:48:46 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						98424851d8 
					 
					
						
						
							
							I can't believe qball is correcting my typos.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4771  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-09-13 17:04:14 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						6d5950bbe7 
					 
					
						
						
							
							Typo found by bensonk.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4769  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-09-12 23:23:29 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						bb5e87bd3d 
					 
					
						
						
							
							New example config.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4768  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-09-12 23:16:14 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						cf90f8194f 
					 
					
						
						
							
							Adding on the fly volume normalization support.  Code originally from mplayer, ported by syscrash, cleaned up by avuton, and further cleaned up by me (jat).  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4424  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-07-22 00:53:37 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						9768d96954 
					 
					
						
						
							
							Fix more shank typos in mpdconf.example.  Thanks to ves for reporting them.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4358  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-07-16 15:28:51 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						ee8b70b595 
					 
					
						
						
							
							Typo.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4293  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-06-30 17:05:27 +00:00 
						 
				 
			
				
					
						
							
							
								J. Alexander Treuman 
							
						 
					 
					
						
						
							
						
						18306dfbd3 
					 
					
						
						
							
							Add back the id3v1_encoding option.  Now it really will convert id3v1 only.  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@4282  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-06-21 20:52:51 +00:00 
						 
				 
			
				
					
						
							
							
								Qball Cow 
							
						 
					 
					
						
						
							
						
						cc679ab624 
					 
					
						
						
							
							fix title->track  in config file replaygain example  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3827  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2006-01-14 22:57:06 +00:00 
						 
				 
			
				
					
						
							
							
								Eric Wong 
							
						 
					 
					
						
						
							
						
						1bfa9173dd 
					 
					
						
						
							
							remove unnecessary apostrophe  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3410  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-07-31 11:35:03 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						ead82e4d5a 
					 
					
						
						
							
							change the default max_output_buffer_size from 2048 to 8192  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3226  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-04-27 15:54:26 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						44f802a74d 
					 
					
						
						
							
							update config file  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3060  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-03-12 04:06:16 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						4c7c6ca4a6 
					 
					
						
						
							
							*) add support for pid files  
						
						... 
						
						
						
						*) we now require pid_file to specified in the config
*) new prefered method for killing mpd: mpd --kill
*) cleaned up some nastiness with decode_pid handling
git-svn-id: https://svn.musicpd.org/mpd/trunk@3042  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-03-09 03:13:33 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						586a21688f 
					 
					
						
						
							
							config file change!  now 'port' is optional and 'db_file' is required!  
						
						... 
						
						
						
						also, should have better error reporting when failing to open playlist or
music directory's, or writing the db, etc
git-svn-id: https://svn.musicpd.org/mpd/trunk@3027  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-03-06 19:00:58 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						d60c37f1f9 
					 
					
						
						
							
							sample config file example  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3026  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-03-06 04:27:19 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						3bdee55217 
					 
					
						
						
							
							added composer, performer, and comment metadata items  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@3022  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2005-03-05 22:24:10 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						c5d27d8eaa 
					 
					
						
						
							
							merge changes from metadata-rewrite branch  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2589  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-11-10 21:58:27 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						902cfe2523 
					 
					
						
						
							
							add "genre" and "description" to shout config parameters  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2557  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-11-09 13:04:20 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						b7c7f6e692 
					 
					
						
						
							
							update mpdconf.example  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2527  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-11-06 16:34:20 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						657bec26b1 
					 
					
						
						
							
							update default mpdconf.example to use default ao output  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2407  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-10-29 18:28:06 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						58dbe4bb5d 
					 
					
						
						
							
							merge shank-rewrite-config changes  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2375  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-10-28 05:14:55 +00:00 
						 
				 
			
				
					
						
							
							
								Avuton Olrich 
							
						 
					 
					
						
						
							
						
						9b2529360d 
					 
					
						
						
							
							Added ao_driver options to help the user pick what they need, also told to refer to libao docs for more info  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2350  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-10-26 17:40:57 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						d9c8994319 
					 
					
						
						
							
							add shout* stuff to exampe mpd config file  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@2348  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-10-26 03:47:31 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						233afb7c07 
					 
					
						
						
							
							1) bumb version to 0.11.3  
						
						... 
						
						
						
						2) Update changelog for 0.11.3
3) Merge avuton's mpdconf.example changes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1875  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-07-18 12:48:17 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						5550baa4af 
					 
					
						
						
							
							Update doc's and Changelog for 0.11.1  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@1626  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-06-23 11:52:25 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						b7e0d34b9e 
					 
					
						
						
							
							update mpd manpage and sample config file with replaygain and  
						
						... 
						
						
						
						audio_output_format options
git-svn-id: https://svn.musicpd.org/mpd/trunk@1453  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-06-12 21:27:15 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						59db1f9f95 
					 
					
						
						
							
							change default port to 6600 (just a doc change)  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@1291  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-06-02 01:48:26 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						b1d12ba0f6 
					 
					
						
						
							
							make default max playlist length be 16384.  bumped up from 4096  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@602  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-04-04 07:08:00 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						d294bc3e57 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@441  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 01:06:28 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						115f9903a4 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@440  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 01:01:06 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						85e4825731 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@439  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:58:47 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						5a9bf01221 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@437  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:53:55 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						6314487982 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@435  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:48:19 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						9dcc46e082 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@434  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:45:43 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						7a5a21f4d2 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@433  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:42:47 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						653c0929e4 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@432  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:42:03 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						ef2f9c673f 
					 
					
						
						
							
							git-svn-id:  https://svn.musicpd.org/mpd/trunk@431  09075e82-0dd4-0310-85a5-a0d7c8717e4f  
						
						
						
						
					 
					
						2004-03-24 00:39:45 +00:00 
						 
				 
			
				
					
						
							
							
								Warren Dukes 
							
						 
					 
					
						
						
							
						
						dc17446615 
					 
					
						
						
							
							update with better documentation  
						
						... 
						
						
						
						git-svn-id: https://svn.musicpd.org/mpd/trunk@430  09075e82-0dd4-0310-85a5-a0d7c8717e4f 
						
						
					 
					
						2004-03-24 00:37:54 +00:00