aboutsummaryrefslogtreecommitdiffstats
path: root/test (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add support for MixRamp tagsTim Phipps2010-03-212-0/+16
| | | | | Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
* replay_gain: optionally use hardware mixer to apply replay gainMax Kellermann2010-02-171-0/+8
| | | | | | | | | | Add an option for each audio output which enables the use of the hardware mixer, instead of the software volume code. This is hardware specific, and assumes linear volume control. This is not the case for hardware mixers which were tested, making this patch somewhat useless, but we will use it to experiment with the settings, to find a good solution.
* replay_gain: reimplement as a filter pluginMax Kellermann2010-02-172-0/+12
| | | | | | | Apply the replay gain in the output thread. This means a new setting will be active instantly, without going through the whole music pipe. And we might have different replay gain settings for each audio output device.
* decoder_api: removed function decoder_get_uri()Max Kellermann2010-01-182-10/+0
| | | | Use input_stream.uri.
* test/run_convert: implement a GLib log callbackMax Kellermann2010-01-161-0/+12
| | | | | Log to stderr instead of the default stdout. We need a pristine stdout for the conversion result.
* test/run_convert: use fifo_buffer to adapt to odd sample sizesMax Kellermann2010-01-161-3/+26
| | | | | Ensure that the pcm_convert() length argument is aligned to the sample size.
* decoder_api: added function decoder_replay_gain()Max Kellermann2010-01-042-4/+14
| | | | | | This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over.
* input_stream: return allocated input_stream objectsMax Kellermann2010-01-014-27/+23
| | | | | | | | Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
* Update copyright notices.Avuton Olrich2009-12-3112-12/+12
|
* decoder_plugin: added method stream_tag()Max Kellermann2009-12-311-0/+14
| | | | | This is like tag_dup(), but works with an input_stream object instead of a file path.
* Makefile.am: added unit tests for the archive pluginsMax Kellermann2009-12-313-0/+30
|
* song: added support for selecting a time rangeMax Kellermann2009-12-271-0/+8
| | | | | | 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.
* decoder_api: added function decoder_timestamp()Max Kellermann2009-12-262-2/+14
| | | | | | 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 pluginMax Kellermann2009-12-251-14/+6
| | | | | | 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.
* input_stream: return errors with GErrorMax Kellermann2009-12-154-14/+43
|
* Merge branch 'v0.15.x'Max Kellermann2009-12-151-41/+64
|\ | | | | | | | | | | | | | | Conflicts: src/archive/bz2_plugin.c src/archive_api.h src/input/file_input_plugin.c test/run_input.c
| * test/run_input: deinitialize everything after open() errorMax Kellermann2009-12-151-40/+50
| | | | | | | | This enables valgrind debugging after an error occurred.
| * test/run_input: initialize archive pluginsMax Kellermann2009-12-151-0/+15
| | | | | | | | Enable archive plugin debugging.
* | input_plugin: method init() returns errors with GErrorMax Kellermann2009-12-144-4/+27
| | | | | | | | | | Not used by any plugin currently, but this eliminates the g_error() call in input_plugin_config(), so it's worth it.
* | input_stream: moved input_stream_global_init() to input_init.cMax Kellermann2009-12-144-0/+4
| |
* | test/run_{decoder,filter}: implemented GLib log callbackMax Kellermann2009-12-142-0/+25
| | | | | | | | Log to stderr, not to stdout (which broke PCM output).
* | audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-024-4/+4
| | | | | | | | | | | | This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
* | test: added normalize test programMax Kellermann2009-12-021-0/+79
| |
* | test: added program to test pcm_convert.cMax Kellermann2009-11-191-0/+86
| |
* | test/software_volume: check for errorsMax Kellermann2009-11-191-1/+6
| |
* | test/software_volume: fixed audio_format parserMax Kellermann2009-11-191-3/+3
| | | | | | | | Assign default value only if none was given on the command line.
* | audio_format: added function audio_format_to_string()Max Kellermann2009-11-143-7/+10
| | | | | | | | | | Unified function for converting an audio_format object to a string, for log messages and for the "status" command.
* | include config.h in all sourcesMax Kellermann2009-11-1210-2/+10
| | | | | | | | | | | | After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
* | test: fixed the read_mixer program on !HAVE_PULSEMax Kellermann2009-11-101-1/+6
| |
* | replay_gain: trigger OPTIONS idle event on mode changeMax Kellermann2009-11-012-0/+18
| |
* | output: consistently lock audio output objectsMax Kellermann2009-10-291-4/+0
| | | | | | | | | | Always keep the audio_output object locked within the output thread, unless a plugin method is called. This fixes several race conditions.
* | output/pulse: call mixer on state changesMax Kellermann2009-10-231-2/+16
| | | | | | | | | | | | Don't let the mixer plugin "override" the libpulse callbacks. Instead, add a "mixer" attribute to the pulse_output struct, and call the mixer on all interesting events.
* | audio_format: wildcards allowed in audio_format configurationMax Kellermann2009-10-214-4/+8
| | | | | | | | | | | | An asterisk means that this attribute should not be enforced, and stays whatever it used to be. This way, some configuration values work like masks.
* | pulse: code rewrite using the asynchronous libpulse APIMax Kellermann2009-10-212-0/+19
| | | | | | | | | | | | | | | | This is a complete rewrite of the PulseAudio output plugin. It uses the asynchronous API, which gives us more control over everything. Additionally, it connects to the PulseAudio server on startup, and keeps this connection up while MPD runs. During pause, instead of closing the stream, it enables "cork".
* | mixer_plugin: pass audio_output pointer to mixer_plugin.init()Max Kellermann2009-10-211-1/+1
| | | | | | | | | | This allows the mixer object to access its associated audio output object.
* | mixer_plugin: use GError for error handlingMax Kellermann2009-10-201-6/+14
| |
* | mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann2009-10-201-1/+1
| |
* | song: renamed attribute "url" to "uri"Max Kellermann2009-10-131-1/+1
| |
* | test/dump_playlist: try playlist_list_open_uri() firstMax Kellermann2009-10-131-21/+30
| |
* | test/dump_playlist: parse a configuration fileMax Kellermann2009-10-131-3/+11
| |
* | playlist_plugin: new plugin API for playlist parsersMax Kellermann2009-10-121-0/+117
| | | | | | | | | | | | | | | | Based on this API, we will add parsers for EXTM3U, PLS, ASX, last.fm radio and others. There is no integration into the MPD core yet. Right now, we have a command line test program. This is work in progress.
* | conf: handle fatal errors with GErrorMax Kellermann2009-09-244-4/+21
| | | | | | | | | | | | | | Don't call g_error(), which will abort the process and dump core. This patch does not affect all the config_get_X() functions. These need some more refactoring.
* | test: initialize locale in read_tags.cMax Kellermann2009-08-041-0/+10
| |
* | pcm_convert: use GError for error handlingMax Kellermann2009-07-231-1/+4
| | | | | | | | | | Don't abort the whole MPD process when the conversion fails. This has been a denial-of-service attack vector for years.
* | Add audio_format_init() functionDavid Woodhouse2009-07-194-20/+11
| | | | | | | | | | It makes no difference right now, but we're about to add an endianness flag and will want to make sure it's correctly initialised every time.
* | mixer/software: new mixer which controls filter/volumeMax Kellermann2009-07-061-0/+18
| | | | | | | | | | | | | | This mixer plugin may be used instead of the traditional global software mixer. It integrates with the "volume" filter plugin, and can control the software volume of an audio output which has no hardware mixer.
* | output: attach a filter chain to each audio_outputMax Kellermann2009-07-061-0/+23
| | | | | | | | | | | | | | | | This patch adds initial filter support for audio outputs. Each audio output gets a "filter" attribute, which is used by ao_play_chunk(). The PCM conversion is now performed by convert_filter_plugin. audio_output.convert_state has been removed.
* | filter/volume: don't use volume_level_get()Max Kellermann2009-07-051-6/+0
| | | | | | | | Added public methods to get and set the current volume.
* | test: added program "run_filter"Max Kellermann2009-07-051-0/+174
|/ | | | This program runs filter plugins in an isolated environment.
* conf: eliminated CamelCaseMax Kellermann2009-06-031-2/+2
| | | | Renamed all remaining CamelCase functions.