Max Kellermann 
							
						 
					 
					
						
						
							
						
						767b4c95bd 
					 
					
						
						
							
							renamed outputBuffer.[ch] to pipe.[ch]  
						
						... 
						
						
						
						No CamelCase in the file name.  The output_buffer struct is going to
be renamed to music_pipe.  There are so many buffer levels in MPD, and
calling this one "output buffer" is wrong, because it's not the last
buffer before the music reaches the output devices. 
						
						
					 
					
						2008-11-02 14:12:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b48ae8c26f 
					 
					
						
						
							
							decoder: enable decoders even if they have no init() method  
						
						... 
						
						
						
						Commit 1a4a3e1f 
						
						
					 
					
						2008-11-02 13:30:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4c1b96c307 
					 
					
						
						
							
							decoder: make the suffixes and mime_types arrays really const  
						
						... 
						
						
						
						The strings were constant, but the pointers weren't.  C syntax is
somewhat tricky.. 
						
						
					 
					
						2008-11-01 14:55:23 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0b614fbaae 
					 
					
						
						
							
							decoder: make all decoder_plugin structs const  
						
						... 
						
						
						
						All decoder_plugin structs are initialized at compile time, and must
never change. 
						
						
					 
					
						2008-11-01 14:54:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1a4a3e1f1f 
					 
					
						
						
							
							decoder: manage decoder list in a static array  
						
						... 
						
						
						
						Currently, there is no way to dynamically load decoder plugins, thus
we don't need a dynamic list to manage them. 
						
						
					 
					
						2008-11-01 14:53:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5036368f54 
					 
					
						
						
							
							decoder: return const decoder_plugin structs  
						
						... 
						
						
						
						The decoder_plugin structs must never change.  Don't work with
non-const pointers. 
						
						
					 
					
						2008-11-01 14:51:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						83f6222ae7 
					 
					
						
						
							
							permission: store passwords in GHashTable  
						
						... 
						
						
						
						Eliminating the deprecated linked list library. 
						
						
					 
					
						2008-11-01 14:33:25 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aa772ebc02 
					 
					
						
						
							
							tag: use GLib instead of utils.h  
						
						... 
						
						
						
						Don't use the deprecated functions from utils.h. 
						
						
					 
					
						2008-11-01 14:33:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						35710a81ea 
					 
					
						
						
							
							utils: use GUINT32_FROM_LE() instead of readLEuint32()  
						
						... 
						
						
						
						Eliminate code already provided by GLib. 
						
						
					 
					
						2008-11-01 14:11:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b996108675 
					 
					
						
						
							
							tag: don't return const string from fix_utf8()  
						
						... 
						
						
						
						Return NULL instead of the input value if there is nothing to fix.
This way, the caller doesn't have to use the xfree() hack. 
						
						
					 
					
						2008-11-01 14:04:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aa33422de6 
					 
					
						
						
							
							alsa, jack: no const pointers for allocated strings  
						
						... 
						
						
						
						Make the pointers "device" and "name" non-const, so we don't need the
xfree() hack.  The default value is expressed as NULL. 
						
						
					 
					
						2008-11-01 14:04:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9fdac529b4 
					 
					
						
						
							
							path: removed sanitizePathDup()  
						
						... 
						
						
						
						We don't need to sanitize the path, because the mapper already checks
for malformed paths. 
						
						
					 
					
						2008-10-31 16:50:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f291876772 
					 
					
						
						
							
							mapper: check for "." and ".."  
						
						... 
						
						
						
						Make map_directory_child_fs() refuse the names "." and "..".  This is
currently the interface where an attacker may inject a manipulated
path (through the "update" command). 
						
						
					 
					
						2008-10-31 16:48:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a5f8d4386c 
					 
					
						
						
							
							update: check return values  
						
						... 
						
						
						
						Nearly all mapper functions can fail and will then return NULL.  Add
checks to all callers. 
						
						
					 
					
						2008-10-31 16:47:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d8e877e335 
					 
					
						
						
							
							path: moved playlist_dir to mapper.c  
						
						... 
						
						
						
						Added the function map_spl_utf8_to_fs() which replaces
utf8_to_fs_playlist_path(). 
						
						
					 
					
						2008-10-31 16:47:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ef54271619 
					 
					
						
						
							
							mapper: use g_warning() for logging  
						
						... 
						
						
						
						g_error() is fatal by default.  Use g_warning() for non-fatal
initialization errors. 
						
						
					 
					
						2008-10-31 16:46:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f098db149e 
					 
					
						
						
							
							decoder: eliminate gotos in decodeStart()  
						
						... 
						
						
						
						http://xkcd.com/292/  
					
						2008-10-31 16:29:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a1ca32168c 
					 
					
						
						
							
							decoder: don't wake up player when command==NONE  
						
						... 
						
						
						
						If nobody sent a command, the player isn't waiting for the decoder.
Don't wake it up. 
						
						
					 
					
						2008-10-31 16:29:39 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						63682eb1b8 
					 
					
						
						
							
							decoder: notify player after stop  
						
						... 
						
						
						
						The player should always be woken up when the decoder quits. 
						
						
					 
					
						2008-10-31 16:29:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						347e816247 
					 
					
						
						
							
							decoder: reset state and command in decoder_task()  
						
						... 
						
						
						
						Eliminate one goto in decodeStart() by moving some cleanup to
decoder_task(). 
						
						
					 
					
						2008-10-31 16:29:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						86fbac54fd 
					 
					
						
						
							
							decoder: introduce switch statement in decoder_task()  
						
						... 
						
						
						
						switch looks much nicer than if/elseif/... and gcc generates nice
warnings when a new command is added to the enum. 
						
						
					 
					
						2008-10-31 16:29:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						78448fe1a5 
					 
					
						
						
							
							decoder_api: pass constant path pointers  
						
						
						
						
					 
					
						2008-10-31 15:56:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6d6e615825 
					 
					
						
						
							
							input_stream: pass const url to input_stream_open()  
						
						
						
						
					 
					
						2008-10-31 15:50:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a92903983d 
					 
					
						
						
							
							client: use bool  
						
						... 
						
						
						
						Return bool instead of int. 
						
						
					 
					
						2008-10-31 13:58:00 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6757c17689 
					 
					
						
						
							
							removed UTF-8 library, use GLib instead  
						
						... 
						
						
						
						Removed duplicated code. 
						
						
					 
					
						2008-10-31 13:57:10 +01:00 
						 
				 
			
				
					
						
							
							
								Alam Arias 
							
						 
					 
					
						
						
							
						
						78f60c9c6d 
					 
					
						
						
							
							removed unneed check for protocol in shout plugin, will assume icecast2 protocol if not exist in config  
						
						
						
						
					 
					
						2008-10-31 12:20:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						71fe7ad81a 
					 
					
						
						
							
							path: free GLib error in fs_charset_to_utf8()  
						
						... 
						
						
						
						g_error_free() was missing in case g_convert() failed. 
						
						
					 
					
						2008-10-31 12:20:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f9d9cc042 
					 
					
						
						
							
							directory: directory_free() frees children  
						
						... 
						
						
						
						directory_free() should free all of its children (subdirectories and
songs).  This way, db_finish() properly frees all allocated memory. 
						
						
					 
					
						2008-10-31 09:20:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ea515494cb 
					 
					
						
						
							
							added prefix to header macros  
						
						... 
						
						
						
						"LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
ffmpeg's fault, because short macros should be reserved for
applications, but since it's always a good idea to choose prefixed
macro names, even for applications, we are going to do that in MPD. 
						
						
					 
					
						2008-10-31 09:19:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5ef17ac1aa 
					 
					
						
						
							
							client: don't try again after partial write  
						
						... 
						
						
						
						After a partial write, chances are vanishing that another write() will
succeed.  Don't try immediately. 
						
						
					 
					
						2008-10-31 09:19:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b7ee6febaa 
					 
					
						
						
							
							removed the sllist library  
						
						... 
						
						
						
						The "simple singly-linked-list" library has been replaced with GLib's
GList and GQueue. 
						
						
					 
					
						2008-10-31 09:19:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						94cbdffb72 
					 
					
						
						
							
							client: use GQueue instead of sllist.h for deferred_send  
						
						... 
						
						
						
						Another custom data structore converted to GLib. 
						
						
					 
					
						2008-10-31 09:18:11 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90e9079142 
					 
					
						
						
							
							client: use GSList instead of struct strnode for command lists  
						
						... 
						
						
						
						Replace a custom data structure with a GLib one. 
						
						
					 
					
						2008-10-31 09:17:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e5ef2d8a37 
					 
					
						
						
							
							client: removed list_cache  
						
						... 
						
						
						
						The list cache aims to save memory allocations, and complicates the
code a bit.  We should rather use GLib slices later, which are easy to
use. 
						
						
					 
					
						2008-10-31 09:17:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f37f7c838 
					 
					
						
						
							
							ogg: don't include _flac_common.h  
						
						... 
						
						
						
						The source _ogg_common.c does not need any symbols from
_flac_common.h, but including it leads to compiler errors when libflac
isn't available. 
						
						
					 
					
						2008-10-31 08:52:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d65d6548a3 
					 
					
						
						
							
							oggflac: adapt to new API  
						
						... 
						
						
						
						Again, I forgot to adapt oggflac to the new API (struct input_stream,
bool return values). 
						
						
					 
					
						2008-10-31 08:52:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5024f0b6cc 
					 
					
						
						
							
							ffmpeg: pass input_stream pointer to decoder_data()  
						
						... 
						
						
						
						decoder_data() uses wait times to let the input stream continue its
transfer. 
						
						
					 
					
						2008-10-30 19:09:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b15c4cdeb5 
					 
					
						
						
							
							ffmpeg: use return value of decoder_data()  
						
						... 
						
						
						
						decoder_data() always returns the current command.  If we use this, we
can save a lot of decoder_get_command() calls. 
						
						
					 
					
						2008-10-30 19:03:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3b4a28518 
					 
					
						
						
							
							ffmpeg: output buffer size cannot be negative  
						
						... 
						
						
						
						Converted the runtime check to an assertion. 
						
						
					 
					
						2008-10-30 19:03:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						130fc58b36 
					 
					
						
						
							
							ffmpeg: break immediately after av_read_frame()  
						
						... 
						
						
						
						Remove one indent level. 
						
						
					 
					
						2008-10-30 19:03:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5f1df0a927 
					 
					
						
						
							
							ffmpeg: moved code to ffmpeg_send_frame()  
						
						... 
						
						
						
						Move code from ffmpeg_decode_internal() to make it smaller and more
readable. 
						
						
					 
					
						2008-10-30 19:03:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						048d62a628 
					 
					
						
						
							
							ffmpeg: report seek errors to MPD  
						
						... 
						
						
						
						The decoder API provides the function decoder_seek_error() to report
seek errors.  Use this function instead of logging the error. 
						
						
					 
					
						2008-10-30 19:02:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cd7a720426 
					 
					
						
						
							
							ffmpeg: simplified mpdurl_read()  
						
						... 
						
						
						
						The function mpdurl_read() is too complicated, and uses the wrong data
types. 
						
						
					 
					
						2008-10-30 19:02:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						964442c5ad 
					 
					
						
						
							
							ffmpeg: call tag_free() instead of free()  
						
						... 
						
						
						
						tag objects must be freed with tag_free() to ensure that all resources
are freed. 
						
						
					 
					
						2008-10-30 19:01:36 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						25f4efcdb8 
					 
					
						
						
							
							ffmpeg: eliminated local variable "tag"  
						
						... 
						
						
						
						The function ffmpeg_tag() already has the variable base.tag, which can
be used for this. 
						
						
					 
					
						2008-10-30 19:01:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7cbd9821c6 
					 
					
						
						
							
							ffmpeg: make ffmpeg_helper() return bool  
						
						... 
						
						
						
						ffmpeg_try_decode() did not interpret ffmpeg_helper()'s return value
properly; migrate everything to bool to make it consistent. 
						
						
					 
					
						2008-10-30 19:01:23 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						078d83ca13 
					 
					
						
						
							
							ffmpeg: removed debug messages  
						
						... 
						
						
						
						We don't need those anymore, they just fill the log. 
						
						
					 
					
						2008-10-30 19:01:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b180d0b47f 
					 
					
						
						
							
							ffmpeg: initialize base.decoder  
						
						... 
						
						
						
						ffmpeg_tag() did not initialize base.decoder, which made valgrind
unhappy, and can lead to a egmentation fault. 
						
						
					 
					
						2008-10-30 18:08:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4d72bda4c3 
					 
					
						
						
							
							listen: set file mode 666 on the unix socket  
						
						... 
						
						
						
						Depending on MPD's umask, the file permissions of the unix socket were
too restrictive, and many clients were not able to connect.  Do a
chmod(0666) on the socket, to allow everybody to connect. 
						
						
					 
					
						2008-10-30 18:03:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9ec695559f 
					 
					
						
						
							
							pulse: fix segfault without sink name  
						
						... 
						
						
						
						Commit d692e9 broke configurations without explicit server or sink
configuration.  Check for getBlockParam()==NULL. 
						
						
					 
					
						2008-10-30 17:46:56 +01:00