aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-12-27decoder, player: support song rangesMax Kellermann2-5/+40
Seek the decoder to the start of the range before beginning with playback. Stop the decoder when the end of the range has been reached. Add the start position to the seek position. Expose the duration of the range, not the full song file.
2009-12-27playlist_queue: resolve relative URIs, database lookupMax Kellermann2-18/+118
Prepend the playlist's base URI to relative song URIs. Look up songs in the database (if the URI refers to a local song file). Merge existing database metadata with metadata from the playlist plugin.
2009-12-27song: added support for selecting a time rangeMax Kellermann3-1/+30
Added attributes start_ms, end_ms. This allows us to address a portion of a song file (important for CUE support). There is no support yet for storing these attributes in the state file.
2009-12-27playlist_queue: load playlists from music directoryMax Kellermann1-4/+36
Try the playlist directory first, and if that file does not exist, try the same relative path within the music directory.
2009-12-27uri: added function uri_safe_local()Max Kellermann2-0/+42
2009-12-27playlist/cue: return the original song URIMax Kellermann1-10/+1
The caller should be responsible for building the absolute URI.
2009-12-27playlist_queue: pass const string to playlist_open_path_into_queue()Max Kellermann1-1/+1
2009-12-26song: added function song_get_duration()Max Kellermann4-4/+14
2009-12-26playlist_queue: try open by URI firstMax Kellermann1-10/+21
If that fails, try opening the file as a stream.
2009-12-26playlist_list: use uri_get_suffix()Max Kellermann1-4/+2
2009-12-26uri: check presence of slash in suffixMax Kellermann1-2/+9
If there's a slash in the uri_get_suffix() return value, then it's malformed. Return NULL in this case.
2009-12-26decoder_api: added function decoder_timestamp()Max Kellermann20-81/+59
Remove the data_time parameter from decoder_data(). This patch eliminates the timestamp counting in most decoder plugins, because the MPD core will do it automatically by default.
2009-12-25output_init: use the normalize filter pluginMax Kellermann5-95/+11
Use the plugin instead of the glue code in normalize.c. This is used wrapped inside a "autoconv" filter, to enable normalization for all input file formats.
2009-12-25filter: added the "autoconvert" filter pluginMax Kellermann2-0/+203
2009-12-25filter_plugin: allow open() to force an input formatMax Kellermann8-40/+64
Make the audio_format argument non-const. Allow the open() method to modify it, to indicate that it wants a different input audio format than the one specified. Check that condition in chain_filter_open(), and fail.
2009-12-25filter/volume: support 32 bit samplesMax Kellermann1-8/+0
The pcm_volume library supports 32 bit samples, there's no reason to disallow it in the filter plugin.
2009-12-25filter/route: check configured channel count in method init()Max Kellermann1-8/+9
Detect misconfiguration during MPD startup, not when playback begins.
2009-12-25filter/route: route_filter_parse() returns boolMax Kellermann1-3/+6
Indicate success and error.
2009-12-25filter_registry: removed the "chain" plugin from filter_pluginsMax Kellermann1-1/+0
This plugin cannot be configured.
2009-12-25filter/chain: return NULL if a filter() method has failedMax Kellermann1-1/+1
Don't close child filters in the filter() method.
2009-12-16playlist: added CUE playlist pluginMax Kellermann3-0/+166
This plugin is the groundwork for MPD's future generic CUE sheet support. That's not complete yet, e.g. there is no way for a playlist plugin to address an arbitrary position within a music file.
2009-12-16playlist_list: support URI suffix matchMax Kellermann1-2/+54
When no plugin matches the URI scheme, try the file name suffix.
2009-12-16playlist_list: check if open method is presentMax Kellermann1-2/+6
Use open_uri() / open_stream() only after checking that they are implemented.
2009-12-16cue_tag: added song duration supportMax Kellermann1-2/+10
Get duration from track_get_length().
2009-12-16cue_tag: check cd_get_track()!=NULLMax Kellermann1-3/+5
2009-12-16cue_tag: added function cue_tag()Max Kellermann2-17/+29
Merge code from cue_tag_file() and cue_tag_string().
2009-12-16cue_tag: merged code into cue_tag_merge()Max Kellermann1-22/+18
2009-12-16cue_tag: pass "const" string to cue_tag_string()Max Kellermann2-2/+2
2009-12-16cue_tag: changed runtime checks to assertionsMax Kellermann1-14/+9
It's illegal to pass NULL here. This should not be ignored silently.
2009-12-16cue_tag: fixed indent and code styleMax Kellermann2-78/+43
2009-12-16cue_tag: tag_new() cannot failMax Kellermann1-22/+10
Removed the NULL check.
2009-12-16cue_tag: include cleanupMax Kellermann2-2/+5
2009-12-16archive_plugin: use GError in the open() methodMax Kellermann7-14/+23
2009-12-16input/archive: check for archive_file_open() errorsMax Kellermann1-0/+2
This fixes a NULL pointer dereference in case of archive plugin failure.
2009-12-16archive_plugin: wrap method callsMax Kellermann8-12/+132
Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions.
2009-12-16archive_plugin: pass const string to method open()Max Kellermann4-4/+4
2009-12-16archive: added a C header for each pluginMax Kellermann7-4/+81
Moved the archive plugin "extern" declarations into each plugin header.
2009-12-16archive/bz2: removed the bz2_context typedefMax Kellermann1-13/+13
Use the raw struct name instead.
2009-12-16archive/bz2: renamed archive sources and plugin variablesMax Kellermann2-3/+3
2009-12-16archive/iso: renamed plugin to "iso9660"Max Kellermann2-37/+47
Based on libiso9660.
2009-12-16archive/bz2: use g_path_get_basename()Max Kellermann1-10/+1
Use g_path_get_basename() instead of manually filtering the path name. Big advantage: g_path_get_basename() cannot fail.
2009-12-16updated mp4ff decoder about input_stream_seekAlam Arias1-2/+2
2009-12-15input_stream: return errors with GErrorMax Kellermann32-160/+378
2009-12-15encoder/flac: fix write callback prototype for libFLAC 1.1.2Max Kellermann1-1/+7
2009-12-15decoder_internal: decoder_input_buffer() returns boolMax Kellermann1-4/+4
This fixes a regression: a boolean value was returned from decoder_input_buffer(), but the caller chose to do a "<= 0" comparison.
2009-12-15input/archive: use g_path_is_absolute()Max Kellermann1-1/+1
.. instead of manually checking pathname[0]=='/'. g_path_is_absolute() is portable.
2009-12-15archive/bz2: simplified error handling, short readMax Kellermann1-34/+23
Don't attempt to fill the whole buffer in the read() method, return whatever libbz2 provides with the first successful BZ2_bzDecompress().
2009-12-15archive/bz2: no CamelCaseMax Kellermann1-11/+10
2009-12-15archive/zzip: removed the "zip_context" typedefMax Kellermann1-11/+11
Use the raw struct name.
2009-12-15archive/zip: renamed plugin to "zzip"Max Kellermann2-31/+31
This plugin is based on libzzip.