Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'v0.16.x' | Max Kellermann | 2012-02-04 | 1 | -34/+36 |
|\ | | | | | | | | | | | | | Conflicts: src/decoder/ffmpeg_decoder_plugin.c test/read_tags.c test/run_decoder.c | ||||
| * | decoder/ffmpeg: use AV_SAMPLE_FMT_* if available | Max Kellermann | 2012-02-03 | 1 | -0/+8 |
| | | | | | | | | | | Implements support for libavcodec 0.9, which removes the compatibility macros SAMPLE_FMT_* | ||||
| * | decoder/ffmpeg: use sentinel for the ffmpeg_tag_maps table | Max Kellermann | 2012-02-03 | 1 | -3/+6 |
| | | | | | | | | Minor optimisation. | ||||
| * | decoder/ffmpeg: support all MPD tags | Max Kellermann | 2012-02-03 | 1 | -12/+5 |
| | | | | | | | | | | Use the tag_item_names table to look up the names of all MPD tags, and remove the duplicate entries from ffmpeg_tag_maps. | ||||
| * | decoder/ffmpeg: pass tag_type and name to _copy_metadata() | Max Kellermann | 2012-02-03 | 1 | -5/+6 |
| | | | | | | | | Allow using this function without the ffmpeg_tag_map struct. | ||||
| * | decoder/ffmpeg: merge code to _copy_dictionary() | Max Kellermann | 2012-02-03 | 1 | -6/+11 |
| | | | | | | | | Eliminate some duplicate code. | ||||
| * | decoder/ffmpeg: add macros emulating AVDictionary | Max Kellermann | 2012-02-03 | 1 | -13/+7 |
| | | | | | | | | Move the #ifdefs out of _copy_metadata(). | ||||
| * | decoder/ffmpeg: _copy_metadata() returns void | Max Kellermann | 2012-02-03 | 1 | -3/+1 |
| | | | | | | | | No interest in this return value. | ||||
* | | directory: require the caller to lock the db_mutex | Max Kellermann | 2012-02-02 | 9 | -26/+127 |
| | | | | | | | | | | Reduce the number of lock/unlock cycles, and make database handling safer. | ||||
* | | db_lock: add assertions | Max Kellermann | 2012-02-02 | 2 | -0/+33 |
| | | |||||
* | | update_walk: use directory_make_child() | Max Kellermann | 2012-02-02 | 1 | -5/+2 |
| | | |||||
* | | directory: add new objects to the end of the linked list | Max Kellermann | 2012-02-02 | 1 | -2/+2 |
| | | | | | | | | | | This was the cause of the reversed ordering when loading a database file. | ||||
* | | input/soup: use #pragma only with gcc 4.6+ | Max Kellermann | 2012-01-29 | 1 | -2/+2 |
| | | | | | | | | | | | | It seems gcc 4.5 does not allow #pragma within function: src/input/soup_input_plugin.c:284:9: error: #pragma GCC diagnostic not allowed inside functions | ||||
* | | directory: fix deep path lookup | Max Kellermann | 2012-01-29 | 1 | -16/+14 |
| | | | | | | | | | | This commit fixes a major regression in directory_lookup_directory(), which broke the deep lookup of directories. | ||||
* | | directory: mark unused parameter | Max Kellermann | 2012-01-24 | 1 | -1/+2 |
| | | |||||
* | | 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. |