aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2011-09-16decoder_api: move code to decoder_check_cancel_read()Max Kellermann1-12/+28
2011-09-16input/curl: wait some more before resuming the streamMax Kellermann1-1/+6
Pausing and resuming after every little chunk adds lots of overhead. Add a lower level for resuming the stream.
2011-09-16input/curl: clear the "paused" flag before resumingMax Kellermann1-1/+1
curl_easy_pause(CURLPAUSE_CONT) may have added enough data to go into pause again.
2011-09-16input/curl: remove _schedule_update()Max Kellermann1-48/+1
Call _update_fds() directly. This is possible because it's only called from within the I/O thread.
2011-09-16input/curl: unlock the mutex for io_thread_call()Max Kellermann1-1/+4
Fix deadlock.
2011-09-16input/soup: fix "unused local variable" warningsMax Kellermann1-1/+1
2011-09-16input/curl, output/pulse: fix "unused local variable" warningsMax Kellermann2-2/+3
2011-09-15input_stream: add "nonnull" attributesMax Kellermann1-0/+12
2011-09-15decoder/ffmpeg: flush the codec after seekingMax Kellermann1-1/+3
Let the codec start with fresh buffers. This should fix the remaining seeking issues.
2011-09-15decoder/ffmpeg: explicitly specify the current stream for seekingMax Kellermann1-2/+11
Use AVStream.time_base to convert the decoder_seek_where() value, and pass the current stream number to av_seek_frame().
2011-09-15decoder/ffmpeg: don't require key frame for seekingMax Kellermann1-1/+2
Use flag AV_TIME_BASE.
2011-09-15decoder/ffmpeg: higher precision timestampsMax Kellermann1-1/+2
2011-09-15decoder/ffmpeg: move formula to time_from_ffmpeg()Max Kellermann1-2/+10
2011-09-15decoder/ffmpeg: add local variable "av_stream"Max Kellermann1-3/+4
Code simplification.
2011-09-15input/rewind: copy the MIME type only onceMax Kellermann1-1/+3
Reduce heap usage by reducing the number of malloc() / free() calls.
2011-09-15input/curl: per-request mutex/condMax Kellermann1-33/+35
The global data structures are now lock-free, because they are accessed only from the I/O thread. By using per-request locks, we have finer grained locking, preparing for locks shared with the client.
2011-09-15input/curl: move all libCURL calls to the I/O threadMax Kellermann1-29/+69
This adds some overheads for indirect calls to the I/O thread, but reduces the amount of global locks. Next step will be switching to per-request locks.
2011-09-15input/file: return NULL instead of "false"Max Kellermann2-5/+5
2011-09-15input/curl: don't set "ready" on _easy_free()Max Kellermann1-3/+2
Move the assignment to _request_done(), right before the GCond is signalled. This might fix spurious wakeups.
2011-09-15input/curl: add assertions on io_thread_inside()Max Kellermann1-0/+9
2011-09-15input/curl: merge _request_abort() into _request_done()Max Kellermann1-31/+19
This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call.
2011-09-15udp_server: disable -Wmissing-field-initializersMax Kellermann1-0/+7
2011-09-15gcc.h: add macro GCC_CHECK_VERSIONMax Kellermann1-1/+6
2011-09-15input/curl: API documentation fixMax Kellermann1-1/+1
2011-09-14input_plugin: add method update()Max Kellermann4-0/+33
Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer().
2011-09-14input_internal: add assertionsMax Kellermann1-0/+9
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann14-20/+88
2011-09-14decoder_internal: don't call input_stream_buffer()Max Kellermann3-37/+12
This is not necessary since all relevant input plugins have been moved to the I/O thread, and there is no remaining useful buffer() implementation. This also fixes a busy loop when playing radio.
2011-09-13db_print: move code to function db_selection_print()Max Kellermann7-132/+27
Use it in handle_lsinfo(), and eliminate some duplicate code.
2011-09-13db_visitor: add method playlist()Max Kellermann3-0/+54
2011-09-13db_plugin: add method visit()Max Kellermann7-22/+147
2011-09-13database: don't allow uri==NULLMax Kellermann7-10/+34
Add nonnull attributes and fix all callers.
2011-09-13gcc.h: add macro gcc_nonnullMax Kellermann1-0/+4
2011-09-13gcc.h: change "mpd_" prefix to "gcc_"Max Kellermann2-19/+19
This is specific to gcc, not to mpd.
2011-09-13db_plugin: add method get_song()Max Kellermann3-2/+39
New db_get_song() implementation.
2011-09-13database: generate GError when database is disabledMax Kellermann3-5/+20
2011-09-13directory: don't visit "self" in _walk()Max Kellermann2-4/+8
Let the caller decide if the current directory should be visited.
2011-09-13locate: remove unused function locate_item_new()Max Kellermann2-17/+0
2011-09-13directory: don't require a "directory" visitorMax Kellermann1-6/+6
.. to recurse. A visitor may not have one, but still be interested in a recursive search.
2011-09-13database: add struct db_visitorMax Kellermann12-196/+361
Use this struct for db_walk().
2011-09-11stored_playlist: return GError, code is playlist_resultMax Kellermann10-197/+320
Improve error reporting and handling. command.c gets the new function print_error(), which sends a GError to the client.
2011-09-11playlist: move enum playlist_result to playlist_error.hMax Kellermann8-17/+49
Reduce header dependencies.
2011-09-11playlist: move PLAYLIST_COMMENT to stored_playlist.cMax Kellermann2-2/+2
Only used there.
2011-09-10db_plugin: introducing a plugin API for the song databaseMax Kellermann7-189/+527
First draft, not really pluggable currently - hard-coded to use the "simple" plugin, and calls several of its internal functions. The API is very simple currently, all searches are still performed over the root "directory" object. Future changes to the API will move those search implementations into the plugin, to allow more efficient implementations, or implementations that don't have the whole tree in memory all the time.
2011-09-10database: move code to db_save.cMax Kellermann3-128/+214
2011-09-10directory_save: pass const pointer to _save()Max Kellermann2-4/+4
2011-09-10tag_internal: add missing tag.h includeMax Kellermann1-0/+2
For TAG_NUM_OF_ITEM_TYPES.
2011-09-09conf: export config_param_free()Max Kellermann2-1/+4
2011-09-09conf: _get_next_param() returns a const pointerMax Kellermann2-3/+3
No writers.
2011-09-09database: return GError on failureMax Kellermann4-23/+41