aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* 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-181-49/+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"
* wavpack: added GLib log domainMax Kellermann2009-02-171-0/+3
|
* pcm_convert: removed pcm_convert_size()Max Kellermann2009-02-172-20/+0
| | | | The function is unused, since we added the pcm_buffer library.
* pcm_buffer: set size after allocationMax Kellermann2009-02-171-1/+2
| | | | | | When I implemented the pcm_buffer library, I forgot to set the new buffer size. This caused a new allocation in each pcm_buffer_get(), fortunately no memory was leaked.
* decoders: added and fixed GLib log domainsMax Kellermann2009-02-176-9/+22
| | | | | Fixed the log domains of the renamed decoders. Added G_LOG_DOMAIN macros in decoders which don't have one already.
* renamed decoder plugin "mpc" to "mpcdec"Max Kellermann2009-02-173-4/+4
| | | | This plugin is based on "libmpcdec".
* renamed decoder plugin "mp4" to "mp4ff"Max Kellermann2009-02-173-4/+4
| | | | This plugin is based on "libmp4ff".
* tag: fixed typo in MUSICBRAINZ_TRACKID tag nameMax Kellermann2009-02-171-1/+1
|
* faad: no CamelCaseMax Kellermann2009-02-161-160/+159
| | | | Renamed functions and variables.
* faad: removed AacBuffer.fileOffsetMax Kellermann2009-02-161-3/+0
| | | | | The element fileOffset is only written, but never read. It can be removed safely.
* renamed decoder plugin "oggvorbis" to "vorbis"Max Kellermann2009-02-162-3/+3
| | | | This plugin uses libvorbis.
* renamed decoder plugin "aac" to "faad"Max Kellermann2009-02-162-4/+4
| | | | A decoder plugin should be named after the library which is used.
* renamed decoder plugin "mp3" to "mad"Max Kellermann2009-02-163-5/+5
| | | | A decoder plugin should be named after the library which is used.
* output_api: don't include config.hMax Kellermann2009-02-162-1/+1
| | | | If an output plugin requires config.h, it should include it directly.
* mixer: include cleanupMax Kellermann2009-02-162-1/+4
| | | | | Don't include conf.h in mixer_api.h. Use a forward struct declaration instead.
* output: include cleanupMax Kellermann2009-02-164-2/+5
| | | | | Don't include output_api.h in output_internal.h. This change requires adding missing includes in several sources.
* mixer_api: replaced method "control()" with "{get,set}_volume()"Max Kellermann2009-02-166-149/+158
| | | | | The method control() is too complicated, and overengineered. Replace it with two trivial functions: get_volume() and set_volume().
* output_plugin: replaced method "control()" with "mixer()"Max Kellermann2009-02-164-28/+45
| | | | | The output plugin shouldn't know any specifics of the mixer API. Make it return the mixer object, and let the caller deal with it.
* output_plugin: added inline wrapper functionsMax Kellermann2009-02-164-33/+91
| | | | | Similar to the decoder plugin API: added wrapper functions to increase code readability.
* output_plugin: reorder method declarationsMax Kellermann2009-02-161-17/+17
| | | | | Initialization and deinitialization first, then tag functions, then play/cancel/pause.
* output_api: moved "struct audio_output_plugin" to output_plugin.hMax Kellermann2009-02-162-87/+116
| | | | | If we move the plugin struct to a separate header, we don't have to include the big fat output_api.h everywhere.
* output_api: moved "enum output_command" to output_internal.hMax Kellermann2009-02-162-11/+11
| | | | | Now that the output_command enum isn't exposed to output plugins anymore, we can hide its definition within output_internal.h.
* output_control: no CamelCaseMax Kellermann2009-02-162-56/+55
| | | | Renamed variables.
* wildmidi: check if configurationn file existsMax Kellermann2009-02-151-0/+4
| | | | | Don't call WildMidi_Init() if the configuration file does not exist. Don't let libwildmidi clutter stderr with its warning message.
* wildmidi: obtain timidity.cfg location from mpd.confMax Kellermann2009-02-151-3/+6
|
* decoder_list: added configuration option to disable decoder pluginsMax Kellermann2009-02-151-0/+4
|