aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* output_api: play() returns a lengthMax Kellermann2009-02-2312-119/+103
| | | | | | | | The old API required an output plugin to not return until all data passed to the play() method is consumed. Some output plugins have to loop to fulfill that requirement, and may block during that. Simplify these, by letting them consume only part of the buffer: make play() return the length of the consumed data.
* shout: removed shout_plugin.hMax Kellermann2009-02-223-54/+28
| | | | | There are no plugins left which require shout_plugin.h. Moved the struct declaration to shout_plugin.c.
* shout: removed shout_encoder_pluginsMax Kellermann2009-02-221-11/+0
| | | | This array is empty, and is not used anymore.
* shout: use the new encoder APIMax Kellermann2009-02-226-566/+103
| | | | | Removed shout's encoder plugin API in favor of the new generic encoder plugin API.
* encoder: added lame mp3 encoderMax Kellermann2009-02-224-0/+296
| | | | | This new LAME encoder plugin is based on the existing shout_mp3.c plugin.
* encoder: added vorbis encoderMax Kellermann2009-02-224-0/+401
| | | | | This new vorbis encoder plugin is based on the existing shout_ogg.c plugin.
* added the encoder APIMax Kellermann2009-02-226-0/+308
| | | | The new generic encoder API will replace shout's custom encoder API.
* shout: merged open_shout_conn() into my_shout_open_device()Max Kellermann2009-02-221-10/+2
| | | | | The method implementation my_shout_open_device() consists of only one line, the call to open_shout_conn(). Merge both functions into one.
* shout: bool return values instead of intMax Kellermann2009-02-221-27/+28
| | | | Return true/false instead of 0/-1.
* pcm: added API documentationMax Kellermann2009-02-216-1/+130
|
* crossfade: added API documentationMax Kellermann2009-02-201-0/+21
|
* path: don't export path_set_fs_charset()Max Kellermann2009-02-202-3/+2
| | | | The function path_set_fs_charset() is only used in path.c.
* path: validate configured character setMax Kellermann2009-02-201-0/+11
|
* decoder_api: fixed shadow warning, rename "wait"Max Kellermann2009-02-191-2/+2
| | | | | The parameter name "wait" overlaps with the POSIX wait() function. Rename it.
* utils: use g_usleep() instead of my_usleep()Max Kellermann2009-02-196-24/+4
| | | | | | | Now that I've found this nice function in the GLib docs, we can finally remove our custom sleep function. Still all those callers of g_usleep() have to be migrated one day to use events, instead of regular polling.
* faad: use faacDecFrameInfo instead of NeAACDecFrameInfoMax Kellermann2009-02-191-1/+1
| | | | Don't use libfaad's internal type names.
* added G_LOG_DOMAIN macros to several librariesMax Kellermann2009-02-194-0/+12
| | | | | Define the GLib logging domain in the following libraries: conf, daemon, event_pipe, log.
* conf: log the effective configuration file nameMax Kellermann2009-02-191-0/+2
| | | | | For better debugging aid when something goes wrong, log the name of the effective configuration file.
* log: added log_early_init() for early debug messagesMax Kellermann2009-02-193-0/+25
|
* Makefile.am: add new headers to $(mpd_headers)Max Kellermann2009-02-191-0/+5
| | | | I forgot to add these, and this broke "make distcheck".
* mms: fix assertion in input_stream_openPeter Colberg2009-02-191-0/+1
| | | | | | | | | | | | | | | Hi, upon trying to play an MMS stream added to the play list, I got this: mpd: /tmp/mpd/./src/input_stream.c:85: input_stream_open: Assertion `is->plugin->open == ((void *)0) || is->plugin == plugin' failed. With the following patch applied, it works perfectly. Thanks for having implemented MMS support :-). Best regards, Peter
* configure.ac: check ${host_os} instead of ${host}Max Kellermann2009-02-181-4/+4
| | | | | | The configure.ac script does not care about the host architecture, it only cares about the OS. Use ${host_os} instead of ${host} to simplify the matching expressions.
* configure.ac: added AC_CANONICAL_HOSTMax Kellermann2009-02-181-0/+2
| | | | Without AC_CANONICAL_HOST, ${host_os} etc. are not defined.
* pcm_volume: optimized pcm_volume_change_24() on i386Max Kellermann2009-02-181-1/+40
| | | | | | | | | | | Added an inline assembly function for the 64 bit multiplication. Benchmark results on a Pentium II 266 MHz, 512 MB of 24 bit PCM data: dd if=/dev/zero bs=64k count=8k | time ./test/software_volume 48000:24:2 >/dev/null Before this patch 22.94s, after this patch 7.24s.
* test: added command line test program for pcm_volume.cMax Kellermann2009-02-183-2/+70
| | | | | This program is a simple utility for debugging and benchmarking the software volume code.
* configure.ac: added switch for test programsMax Kellermann2009-02-182-0/+23
| | | | The switch syntax is "--enable-test". There are no test programs yet.
* mp4ff: always free the mp4ff_read_sample() bufferMax Kellermann2009-02-181-2/+2
| | | | | When mp4ff_read_sample() returns a value bigger than zero, it guarantees that the buffer is set. Remove the check.
* mp4ff: don't allocate seek_table when input is not seekableMax Kellermann2009-02-181-2/+10
| | | | Don't waste any precious memory when the seek_table cannot be used.
* mp4ff: include cleanupMax Kellermann2009-02-181-4/+4
| | | | Don't include limits.h, use GLib constants instead.
* mp4ff: use faacDecInit2() to find the AAC trackMax Kellermann2009-02-182-50/+36
| | | | | | | | | Use faacDecInit2() instead of AudioSpecificConfig() to detect the AAC track in the MP4 file. This has a great advantage: it initializes the libfaad decoder, which the caller would normally do anyway - but now we can go without the AudioSpecificConfig() call. When decoder==NULL (called from mp4_tag_dup()), fall back to a mp4ff_get_track_type()==1 check, like other audio players do.
* mp4ff: moved code to mp4_faad_new()Max Kellermann2009-02-181-53/+65
| | | | | | Moved the libfaad decoder initialization to mp4_faad_new(), and also fill the audio_format struct there. This eliminates a little bit of complexity in mp4_decode().
* mp4ff: call decoder_initialized() after libfaad initializationMax Kellermann2009-02-181-23/+32
| | | | | Don't wait for the first frame to be decoded. We already have the sample rate and the channel count from faacDecInit2().
* mp4ff: merged mp4_load_tag() into mp4_tag_dup()Max Kellermann2009-02-181-7/+1
| | | | | The function mp4_load_tag() is used only once, and mp4_tag_dup() is a one-liner. Merge them.
* player_thread: don't drop audio buffers when not seekableMax Kellermann2009-02-171-1/+2
| | | | | | | When a file is not seekable, MPD dropped the audio buffers before even attempting to seek. This caused noticable sound corruption. Fix: first attempt to seek, and only if that succeeds, call audio_output_all_cancel().
* faad: variable cleanupMax Kellermann2009-02-171-9/+4
| | | | Make some variables more local, and eliminate superfluous ones.
* faad: added source code commentsMax Kellermann2009-02-171-1/+36
|
* faad: faad_decoder_init() returns an audio_formatMax Kellermann2009-02-171-25/+23
| | | | | Instead of returning the sample rate and channel count as separate values, fill an audio_format struct.
* faad: call decoder_initialized() after libfaad initializationMax Kellermann2009-02-171-18/+27
| | | | | Don't wait for the first frame to be decoded. We already have the sample rate and the channel count from faacDecInit().
* faad: removed DECODE_COMMAND_SEEK checkMax Kellermann2009-02-171-2/+0
| | | | | The MPD core will never send a SEEK command to a decoder which has declared to be not seekable.
* input_file, input_curl, icy_metadata: added GLib log domainsMax Kellermann2009-02-173-0/+9
| | | | Define G_LOG_DOMAIN.
* faad: use the decoder_buffer libraryMax Kellermann2009-02-171-152/+155
| | | | | Replace this plugin's own buffer library with the new decoder_buffer library.
* faad: check the result of adts_find_frame()Max Kellermann2009-02-171-4/+2
| | | | | Instead of checking if the buffer is empty after adts_find_frame(), check adts_find_frame()'s return value. This is more robust.
* faad: added libfaad wrappersMax Kellermann2009-02-171-42/+61
| | | | | Moved libfaad API quirks to the wrapper functions faad_decoder_init() and faad_decoder_decode().
* faad: functions return duration, no float pointerMax Kellermann2009-02-171-15/+18
| | | | | Instead of writing the song duration into a float pointer, return it from the function.
* faad: removed length==NULL check in faad_song_duration()Max Kellermann2009-02-171-5/+1
| | | | There are no callers which pass NULL here.
* faad: fill buffer in adts_find_frame()Max Kellermann2009-02-171-4/+2
| | | | | | All callers of adts_find_frame() use faad_buffer_fill() before that. Move that faad_buffer_fill() call into adts_find_frame() instead. adts_find_frame() will get its own logic for on-demand filling.
* added the "decoder buffer" libraryMax Kellermann2009-02-173-0/+236
| | | | | The decoder buffer library may be used by decoder libraries such as "faad".
* faad: converted length check to assertion in adts_check_frame()Max Kellermann2009-02-171-3/+2
| | | | | | adts_check_frame() must not be called with a buffer length smaller than 8. We can eliminate that duplicate check, and convert it into an assertion.
* faad: added length check before comparing "ADIF"Max Kellermann2009-02-171-1/+1
| | | | | It's not valid to use the buffer's data without ensuring that the buffer contains enough data.
* faad: renamed internal functionsMax Kellermann2009-02-171-12/+12
| | | | "aac" -> "faad"