Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | directory: replace songvec with doubly linked list | Max Kellermann | 2012-01-24 | 10 | -226/+98 | |
| | | ||||||
* | | directory: add function directory_get_song(), ... | Max Kellermann | 2012-01-24 | 4 | -14/+64 | |
| | | | | | | | | Wrap songvec_find() and other songvec methods. | |||||
* | | directory: replace dirvec with doubly linked list | Max Kellermann | 2012-01-24 | 7 | -205/+99 | |
| | | | | | | | | | | Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array. | |||||
* | | util/list.h: import the Linux kernel's linked list library | Max Kellermann | 2012-01-24 | 3 | -0/+798 | |
| | | ||||||
* | | directory: simplify constructors and clarify API documentation | Max Kellermann | 2012-01-24 | 5 | -76/+111 | |
| | | | | | | | | | | Pass only the "name" to a directory, instead of the full (relative) path. | |||||
* | | dirvec: unlock mutex in dirvec_find() in all branches | Max Kellermann | 2012-01-24 | 1 | -1/+4 | |
| | | ||||||
* | | dirvec: don't call g_path_get_basename() on parameter | Max Kellermann | 2012-01-24 | 1 | -10/+3 | |
| | | | | | | | | | | This overhead is completely useless, because no caller expects this behaviour. | |||||
* | | songvec: move code to songvec_find_pointer() | Max Kellermann | 2012-01-24 | 1 | -18/+28 | |
| | | ||||||
* | | songvec: _delete() returns void | Max Kellermann | 2012-01-24 | 2 | -4/+4 | |
| | | | | | | | | | | The given song must exist, or MPD will abort. Calling it with an unknown song is illegal. | |||||
* | | refcount: add missing stdbool.h include | Max Kellermann | 2012-01-24 | 1 | -0/+1 | |
| | | ||||||
* | | decoder/ffmpeg: remove debug code | Max Kellermann | 2012-01-24 | 1 | -5/+0 | |
| | | ||||||
* | | dirvec: remove unused functions _clear(), _for_each() | Max Kellermann | 2012-01-21 | 2 | -33/+0 | |
| | | ||||||
* | | db_lock: new unified lock for songvec and dirvec | Max Kellermann | 2012-01-21 | 6 | -70/+110 | |
| | | ||||||
* | | db/simple: pass the correct GError pointer | Max Kellermann | 2012-01-12 | 1 | -1/+1 | |
| | | ||||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2012-01-12 | 1 | -3/+7 | |
|\| | | | | | | | | | Conflicts: src/decoder/ffmpeg_decoder_plugin.c | |||||
| * | decoder/ffmpeg: check libavutil version for AVDictionaryEntry | Max Kellermann | 2012-01-12 | 1 | -1/+5 | |
| | | | | | | | | Require libavutil 51.5.0. | |||||
| * | decoder/ffmpeg: raise version dependency for avformat_find_stream_info() | Max Kellermann | 2012-01-12 | 1 | -2/+2 | |
| | | | | | | | | | | This function was added when the libavformat version was 53.2.0, but the actual release 53.2.0 did not have it. | |||||
* | | mixer/alsa: listen for external volume changes | Max Kellermann | 2012-01-05 | 1 | -1/+180 | |
| | | | | | | | | | | | | Use libasound's polling functions, implement a bridge to GSource / GPollFD and send idle events to clients when an external program changes the ALSA mixer volume. | |||||
* | | mixer/alsa: move code to alsa_mixer_setup() | Max Kellermann | 2012-01-05 | 1 | -25/+34 | |
| | | | | | | | | Better error handling. | |||||
* | | mixer/alsa: move code to alsa_mixer_lookup_elem() | Max Kellermann | 2012-01-05 | 1 | -24/+27 | |
| | | ||||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2012-01-05 | 2 | -4/+115 | |
|\| | | | | | | | | | | | Conflicts: src/decoder/ffmpeg_decoder_plugin.c src/input/ffmpeg_input_plugin.c | |||||
| * | decoder/ffmpeg: support libavformat 0.8 | Max Kellermann | 2012-01-05 | 1 | -2/+46 | |
| | | ||||||
| * | decoder/ffmpeg: use avcodec_decode_audio4(), support libavcodec 0.8 | Max Kellermann | 2012-01-04 | 1 | -1/+58 | |
| | | ||||||
| * | decoder/ffmpeg: include libavutil/mathematics.h | Max Kellermann | 2012-01-04 | 1 | -0/+1 | |
| | | | | | | | | Needed for av_rescale_q() in ffmpeg 0.8. | |||||
| * | decoder/ffmpeg: use avcodec_open2() on newer ffmpeg versions | Max Kellermann | 2012-01-04 | 1 | -1/+6 | |
| | | | | | | | | avcodec_open() has been deprecated. | |||||
| * | decoder/ffpmeg: don't use av_metadata_conv() in ffmpeg 0.7 | Max Kellermann | 2012-01-04 | 1 | -0/+2 | |
| | | | | | | | | It's a no-op and deprecated. | |||||
| * | decoder/ffmpeg: use AVIOContext instead of ByteIOContext | Max Kellermann | 2012-01-04 | 1 | -0/+8 | |
| | | ||||||
| * | input/ffmpeg: use the new AVIOContext API | Max Kellermann | 2012-01-04 | 1 | -1/+37 | |
| | | | | | | | | URLContext is deprecated. | |||||
| * | input/ffmpeg: define AV_VERSION_INT if not present | Max Kellermann | 2012-01-04 | 1 | -0/+4 | |
| | | | | | | | | Support ancient ffmpeg versions. | |||||
* | | output/osx: fix memory leak after AudioUnitSetProperty() failure | Max Kellermann | 2012-01-04 | 1 | -0/+1 | |
| | | ||||||
* | | output/osx: implement 32 bit playback | Max Kellermann | 2011-12-24 | 1 | -2/+6 | |
| | | ||||||
* | | output/osx: allocate the device in enable() | Max Kellermann | 2011-12-24 | 1 | -102/+116 | |
| | | | | | | | | | | Keep the device open as long as the output is enabled, but initialize it only when playback starts. | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-12-24 | 2 | -7/+4 | |
|\| | ||||||
| * | output/osx: clear render buffer when there's not enough data | Max Kellermann | 2011-12-24 | 1 | -2/+3 | |
| | | | | | | | | | | | | When we don't have enough data, generate some silence, hoping the input buffer will fill soon. Reducing the render buffer size is not legal. | |||||
| * | output/osx: remove sleep call from render callback | Max Kellermann | 2011-12-24 | 1 | -4/+0 | |
| | | | | | | | | | | Blocking inside the render callback is forbidden, and this sleep call didn't make any sense. | |||||
| * | Playlist: fix bug in moving after current song | Maarten Sebregts | 2011-12-21 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | Moving songs using either 'move' or 'moveid' to position -1 (after the current song) would fail for a song which is just before the current song. This patch corrects the check to see if the current song is in the range to be moved. Since the range is from `start` up to `end` (exclusive) the check was incorrect, but is now fixed. | |||||
* | | command: new command "seekcur" | Max Kellermann | 2011-12-24 | 4 | -0/+57 | |
| | | | | | | | | For simpler seeking within current song. | |||||
* | | output/openal: improve synchronization | Max Kellermann | 2011-12-13 | 1 | -13/+16 | |
| | | | | | | | | | | | | | | | | | | This plugin's use of the "Timer" library was wrong; it added the same amount of virtual data in every iteration in _play(), but did not actually play something. This created an artificial, but useless, delay. This patch implements the method _cancel(), and implements hard-coded sleep values. This is only slightly better, but does not attempt to look sane. | |||||
* | | output/openal: move code to inline functions | Max Kellermann | 2011-12-13 | 1 | -9/+25 | |
| | | ||||||
* | | output/openal: use alGetSourcei(AL_BUFFER) to force-unqueue buffers | Max Kellermann | 2011-12-13 | 1 | -14/+4 | |
| | | | | | | | | | | | | | | | | The implementation of cancel() did not work well: you cannot use alSourceUnqueueBuffers() to unqueue queued buffers, and our function openal_unqueue_buffers() left the OpenAL library in a rather undefined state; nothing was supposed to be queued, but the "filled" variable was not reset. | |||||
* | | output/openal: make attribute "filled" unsigned | Max Kellermann | 2011-12-13 | 1 | -1/+1 | |
| | | ||||||
* | | output/openal: remove bogus format check from _open() | Max Kellermann | 2011-12-13 | 1 | -8/+0 | |
| | | | | | | | | The expression "!format" does not make sense, and cannot occur. | |||||
* | | output/fifo: implement output_plugin method delay() | Max Kellermann | 2011-12-13 | 1 | -3/+11 | |
| | | ||||||
* | | output/null: implement output_plugin method delay() | Max Kellermann | 2011-12-13 | 1 | -3/+11 | |
| | | ||||||
* | | output/null: don't initialize the "timer" attribute in _init() | Max Kellermann | 2011-12-13 | 1 | -6/+1 | |
| | | | | | | | | Unnecessary overhead. | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-12-13 | 6 | -14/+18 | |
|\| | | | | | | | | | | | Conflicts: NEWS configure.ac | |||||
| * | output/openal: force 16 bit playback, as 8 bit doesn't work | Max Kellermann | 2011-12-13 | 1 | -10/+4 | |
| | | | | | | | | | | | | The OpenAL specification says that AL_FORMAT_MONO8 and AL_FORMAT_STEREO8 expect unsigned 8 bit samples, but MPD uses unsigned samples. | |||||
| * | timer: fix time unit mixup in timer_delay() | Max Kellermann | 2011-12-13 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | The local variable was already divided by 1000, and the return value was being divided by 1000 again - doh! This caused delays in the httpd output plugin that were too small by three orders of magnitude, and the buffer was filled too quickly. | |||||
| * | update_walk: print debug message for song_file_load() | Max Kellermann | 2011-12-13 | 1 | -0/+2 | |
| | | ||||||
| * | decoder/mp4ff: work around assertion failure in read() callback | Max Kellermann | 2011-12-13 | 1 | -0/+6 | |
| | | | | | | | | | | This workaround leads to an infinite loop instead of an assertion failure, but hey, now it's libmp4ff's fault. |