Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | song: added function song_get_duration() | Max Kellermann | 2009-12-26 | 4 | -4/+14 | |
| | | ||||||
* | | playlist_queue: try open by URI first | Max Kellermann | 2009-12-26 | 1 | -10/+21 | |
| | | | | | | | | If that fails, try opening the file as a stream. | |||||
* | | playlist_list: use uri_get_suffix() | Max Kellermann | 2009-12-26 | 1 | -4/+2 | |
| | | ||||||
* | | uri: check presence of slash in suffix | Max Kellermann | 2009-12-26 | 1 | -2/+9 | |
| | | | | | | | | | | If there's a slash in the uri_get_suffix() return value, then it's malformed. Return NULL in this case. | |||||
* | | decoder_api: added function decoder_timestamp() | Max Kellermann | 2009-12-26 | 20 | -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. | |||||
* | | output_init: use the normalize filter plugin | Max Kellermann | 2009-12-25 | 5 | -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. | |||||
* | | filter: added the "autoconvert" filter plugin | Max Kellermann | 2009-12-25 | 2 | -0/+203 | |
| | | ||||||
* | | filter_plugin: allow open() to force an input format | Max Kellermann | 2009-12-25 | 8 | -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. | |||||
* | | filter/volume: support 32 bit samples | Max Kellermann | 2009-12-25 | 1 | -8/+0 | |
| | | | | | | | | | | The pcm_volume library supports 32 bit samples, there's no reason to disallow it in the filter plugin. | |||||
* | | filter/route: check configured channel count in method init() | Max Kellermann | 2009-12-25 | 1 | -8/+9 | |
| | | | | | | | | Detect misconfiguration during MPD startup, not when playback begins. | |||||
* | | filter/route: route_filter_parse() returns bool | Max Kellermann | 2009-12-25 | 1 | -3/+6 | |
| | | | | | | | | Indicate success and error. | |||||
* | | filter_registry: removed the "chain" plugin from filter_plugins | Max Kellermann | 2009-12-25 | 1 | -1/+0 | |
| | | | | | | | | This plugin cannot be configured. | |||||
* | | filter/chain: return NULL if a filter() method has failed | Max Kellermann | 2009-12-25 | 1 | -1/+1 | |
| | | | | | | | | Don't close child filters in the filter() method. | |||||
* | | playlist: added CUE playlist plugin | Max Kellermann | 2009-12-16 | 3 | -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. | |||||
* | | playlist_list: support URI suffix match | Max Kellermann | 2009-12-16 | 1 | -2/+54 | |
| | | | | | | | | When no plugin matches the URI scheme, try the file name suffix. | |||||
* | | playlist_list: check if open method is present | Max Kellermann | 2009-12-16 | 1 | -2/+6 | |
| | | | | | | | | | | Use open_uri() / open_stream() only after checking that they are implemented. | |||||
* | | cue_tag: added song duration support | Max Kellermann | 2009-12-16 | 1 | -2/+10 | |
| | | | | | | | | | | Get duration from track_get_length(). | |||||
* | | cue_tag: check cd_get_track()!=NULL | Max Kellermann | 2009-12-16 | 1 | -3/+5 | |
| | | ||||||
* | | cue_tag: added function cue_tag() | Max Kellermann | 2009-12-16 | 2 | -17/+29 | |
| | | | | | | | | Merge code from cue_tag_file() and cue_tag_string(). | |||||
* | | cue_tag: merged code into cue_tag_merge() | Max Kellermann | 2009-12-16 | 1 | -22/+18 | |
| | | ||||||
* | | cue_tag: pass "const" string to cue_tag_string() | Max Kellermann | 2009-12-16 | 2 | -2/+2 | |
| | | ||||||
* | | cue_tag: changed runtime checks to assertions | Max Kellermann | 2009-12-16 | 1 | -14/+9 | |
| | | | | | | | | It's illegal to pass NULL here. This should not be ignored silently. | |||||
* | | cue_tag: fixed indent and code style | Max Kellermann | 2009-12-16 | 2 | -78/+43 | |
| | | ||||||
* | | cue_tag: tag_new() cannot fail | Max Kellermann | 2009-12-16 | 1 | -22/+10 | |
| | | | | | | | | Removed the NULL check. | |||||
* | | cue_tag: include cleanup | Max Kellermann | 2009-12-16 | 2 | -2/+5 | |
| | | ||||||
* | | archive_plugin: use GError in the open() method | Max Kellermann | 2009-12-16 | 7 | -14/+23 | |
| | | ||||||
* | | input/archive: check for archive_file_open() errors | Max Kellermann | 2009-12-16 | 1 | -0/+2 | |
| | | | | | | | | | | This fixes a NULL pointer dereference in case of archive plugin failure. | |||||
* | | archive_plugin: wrap method calls | Max Kellermann | 2009-12-16 | 8 | -12/+132 | |
| | | | | | | | | | | Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions. | |||||
* | | archive_plugin: pass const string to method open() | Max Kellermann | 2009-12-16 | 4 | -4/+4 | |
| | | ||||||
* | | archive: added a C header for each plugin | Max Kellermann | 2009-12-16 | 7 | -4/+81 | |
| | | | | | | | | | | Moved the archive plugin "extern" declarations into each plugin header. | |||||
* | | archive/bz2: removed the bz2_context typedef | Max Kellermann | 2009-12-16 | 1 | -13/+13 | |
| | | | | | | | | Use the raw struct name instead. | |||||
* | | archive/bz2: renamed archive sources and plugin variables | Max Kellermann | 2009-12-16 | 2 | -3/+3 | |
| | | ||||||
* | | archive/iso: renamed plugin to "iso9660" | Max Kellermann | 2009-12-16 | 2 | -37/+47 | |
| | | | | | | | | Based on libiso9660. | |||||
* | | archive/bz2: use g_path_get_basename() | Max Kellermann | 2009-12-16 | 1 | -10/+1 | |
| | | | | | | | | | | Use g_path_get_basename() instead of manually filtering the path name. Big advantage: g_path_get_basename() cannot fail. | |||||
* | | updated mp4ff decoder about input_stream_seek | Alam Arias | 2009-12-16 | 1 | -2/+2 | |
| | | ||||||
* | | input_stream: return errors with GError | Max Kellermann | 2009-12-15 | 32 | -160/+378 | |
| | | ||||||
* | | encoder/flac: fix write callback prototype for libFLAC 1.1.2 | Max Kellermann | 2009-12-15 | 1 | -1/+7 | |
| | | ||||||
* | | decoder_internal: decoder_input_buffer() returns bool | Max Kellermann | 2009-12-15 | 1 | -4/+4 | |
| | | | | | | | | | | | | This fixes a regression: a boolean value was returned from decoder_input_buffer(), but the caller chose to do a "<= 0" comparison. | |||||
* | | input/archive: use g_path_is_absolute() | Max Kellermann | 2009-12-15 | 1 | -1/+1 | |
| | | | | | | | | | | .. instead of manually checking pathname[0]=='/'. g_path_is_absolute() is portable. | |||||
* | | archive/bz2: simplified error handling, short read | Max Kellermann | 2009-12-15 | 1 | -34/+23 | |
| | | | | | | | | | | Don't attempt to fill the whole buffer in the read() method, return whatever libbz2 provides with the first successful BZ2_bzDecompress(). | |||||
* | | archive/bz2: no CamelCase | Max Kellermann | 2009-12-15 | 1 | -11/+10 | |
| | | ||||||
* | | archive/zzip: removed the "zip_context" typedef | Max Kellermann | 2009-12-15 | 1 | -11/+11 | |
| | | | | | | | | Use the raw struct name. | |||||
* | | archive/zip: renamed plugin to "zzip" | Max Kellermann | 2009-12-15 | 2 | -31/+31 | |
| | | | | | | | | This plugin is based on libzzip. | |||||
* | | Merge branch 'v0.15.x' | Max Kellermann | 2009-12-15 | 5 | -4/+15 | |
|\| | | | | | | | | | | | | | | | Conflicts: src/archive/bz2_plugin.c src/archive_api.h src/input/file_input_plugin.c test/run_input.c | |||||
| * | iso, zip: fixed memory leak in destructor | Max Kellermann | 2009-12-15 | 2 | -2/+4 | |
| | | | | | | | | Free the "context" pointer in the method archive_plugin.close(). | |||||
| * | archive: close archive when stream is closed | Max Kellermann | 2009-12-15 | 4 | -0/+9 | |
| | | | | | | | | | | | | | | | | Fixes a memory leak: the "archive" input plugin opens the archive, but never closes it. This patch moves the responsibility for doing that to archive_plugin.open_stream(). This is an slight internal API change, but it is the simplest and least intrusive fix for the memory leak. | |||||
| * | archive/bz2: removed NULL check before g_free() | Max Kellermann | 2009-12-15 | 1 | -2/+2 | |
| | | | | | | | | g_free(NULL) is allowed. | |||||
| * | input/archive: close the archive file on error | Max Kellermann | 2009-12-15 | 1 | -0/+1 | |
| | | | | | | | | Fixed memory leak in error handler. | |||||
| * | input/file: don't fall back to parent directory | Max Kellermann | 2009-12-15 | 1 | -18/+3 | |
| | | | | | | | | | | This code has never made any sense, and has broken some of the archive plugin. | |||||
* | | input/file: don't fall back to parent directory | Max Kellermann | 2009-12-15 | 1 | -18/+3 | |
| | | | | | | | | | | This code has never made any sense, and has broken some of the archive plugin. |