aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/oss_output_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-03-27audio_format: remove SAMPLE_FORMAT_DSD_OVER_USBMax Kellermann1-1/+0
DSD-over-USB should not be a MPD core format, because it is not a "natural" format; it is just a temnporary over-the-wire format. This format has been implemented in pcm_export, and does not need to be supported by pcm_convert.
2012-03-27pcm_export: implement 24 to 32 bit conversionMax Kellermann1-1/+1
For 32 bit DSD-over-USB support.
2012-03-27pcm_export: support DSD to DSD-over-USB conversionMax Kellermann1-3/+7
Prepare for removing SAMPLE_FORMAT_DSD_OVER_USB.
2012-03-22audio_format: remove the packed S24 formatMax Kellermann1-1/+0
For simplicity, the MPD core should not have to deal with packing. It is rarely used, and those plugins that need it should use the pcm_export library instead.
2012-03-22output/oss: use pcm_export to pack 24 bit samplesMax Kellermann1-10/+15
2012-03-22pcm_export: add option "pack"Max Kellermann1-0/+1
Converts padded 24 bit samples to packed 24 bit samples. Will replace the packed S24 sample format, which is not used internally.
2012-03-22output/oss: remember the real OSS formatMax Kellermann1-5/+13
Improving oss_reopen() by using the very same value that was used initially.
2012-03-21output/oss: move code to oss_probe_sample_format()Max Kellermann1-34/+59
2012-03-21output/{alsa,oss}: move endian code to new library pcm_exportMax Kellermann1-30/+13
2012-03-21output/oss: always receive host byte order samplesMax Kellermann1-7/+68
Don't use audio_format.reverse_endian.
2012-03-21audio_format: remove the format SAMPLE_FORMAT_DSD_LSBFIRSTMax Kellermann1-1/+0
This format is unused since the DSDIFF decoder plugin now reverses the bit order.
2012-03-19audio_format: basic support for DSD-over-USBMax Kellermann1-0/+1
2012-03-06use g_strerror() instead of strerror()Max Kellermann1-5/+5
Make sure we get a UTF-8 encoded string.
2012-03-01audio_format: add DSD sample formatMax Kellermann1-0/+2
Basic support for Direct Stream Digital. No conversion yet, and no decoder/output plugin support.
2011-10-20audio_format: basic support for floating point samplesMax Kellermann1-0/+1
Support for conversion from float to 16, 24 and 32 bit integer samples.
2011-09-19output_plugin: the plugin allocates the audio_output objectMax Kellermann1-17/+32
Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs.
2011-09-17output: per-plugin headerMax Kellermann1-0/+1
Move the "extern" declarations from output_list.c, for more type safety.
2011-09-17output: rename plugin source filesMax Kellermann1-0/+0
2011-02-28output/oss: disable 24 bit playback on FreeBSDMax Kellermann1-0/+9
See code comment.
2011-02-28output/oss: AFMT_S24_PACKED is little-endianMax Kellermann1-0/+12
According to the Solaris dsp manpage, AFMT_S24_PACKED is little-endian: http://download.oracle.com/docs/cd/E19963-01/821-1475/6nmf5baot/index.html The Minix soundcard.h header says the same.
2011-02-09general: whitespace cleanupThomas Jansen1-1/+1
Remove trailing whitespace found by this command: find -name '*.[ch]' | xargs grep "[[:space:]]$"
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-07-25database, ...: remove EINTR checks after stdio callsMax Kellermann1-1/+1
MPD doesn't have child processes anymore, and thus we're not expecting to receive SIGCHLD very often. Since hard disk access isn't interrupted by signals anyway, we don't need those excessive checks.
2010-05-14output/oss: 24 bit support via OSS4Max Kellermann1-0/+34
Added #ifdefs on the macros AFMT_S24_NE and other OSS4 extensions.
2010-05-13output/oss: rewrite of the audio format detectionMax Kellermann1-301/+324
Removed the "supported" / "unsupported" arrays, and auto-detect on every open() call, just like the ALSA output plugin.
2010-05-13output/oss: use the *_NE macrosMax Kellermann1-8/+2
Removed the macro AFMT_S16_MPD.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-4/+5
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.
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
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.
2009-11-10fd_util: removed creat_cloexec()Max Kellermann1-2/+2
Add a "mode" argument to open_cloexec() instead.
2009-11-07set the close-on-exec flag on all file descriptorsMax Kellermann1-3/+7
Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
2009-10-20mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann1-1/+2
2009-03-26output_plugin: replaced output_plugin.get_mixer() with mixer_pluginMax Kellermann1-20/+1
The mixer core library is now responsible for creating and managing the mixer object. This removes duplicated code from the output plugins.
2009-03-14mixer_api: moved mixer_plugin imports to mixer_list.hMax Kellermann1-1/+1
This patch allows the output plugins to import only mixer_list.h, instead of the full mixer_api.h (which would expose internal structures).
2009-03-14mixer_api: moved functions to mixer_control.cMax Kellermann1-0/+1
mixer_control.h should provide the functions needed to manipulate a mixer, without exposing the internal mixer API (which is provided by mixer_api.h).
2009-03-13all: Update copyright header.Avuton Olrich1-9/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-01output: removed duplicate debug messages from pluginsMax Kellermann1-5/+0
The MPD core logs the audio format of all audio outputs. Remove the duplicate message from the plugins.
2009-02-26output_plugin: report errors with GErrorMax Kellermann1-32/+43
Use GLib's GError library for reporting output device failures. Note that some init() methods don't clean up properly after a failure, but that's ok for now, because the MPD core will abort anyway.
2009-02-26oss: moved code from oss_open() to oss_setup()Max Kellermann1-13/+26
Eliminate one label and a bunch of gotos.
2009-02-26oss: convert OSS_STAT_* to an enumMax Kellermann1-10/+15
Use C instead of CPP.
2009-02-26oss: return bool instead of intMax Kellermann1-10/+10
Return type of oss_find_supported_param(), oss_can_convert() and oss_find_unsupported_param() should be bool instead of int.
2009-02-26oss: use unsigned integersMax Kellermann1-14/+9
Convert the num_supported and num_unsupported variables from signed to unsigned.
2009-02-26oss: no CamelCaseMax Kellermann1-107/+125
Renamed types, functions and variables.
2009-02-25output_plugin: don't pass audio_output object to method init()Max Kellermann1-2/+1
audio_output_get_name() has been removed, which was the only function left in output_api.h. The output plugin doesn't need the audio_output object at all, remove the parameter from the init() method.
2009-02-23output: pass the music chunk pointer as void*, not char*Max Kellermann1-2/+2
The meaning of the chunk depends on the audio format; don't suggest a specific format by declaring the pointer as "char*", pass "void*" instead.
2009-02-23output_api: play() returns a lengthMax Kellermann1-10/+7
The old API required an output plugin to not return until all data passed to the play() method is consumed. Some output plugins have to loop to fulfill that requirement, and may block during that. Simplify these, by letting them consume only part of the buffer: make play() return the length of the consumed data.
2009-02-16output_plugin: replaced method "control()" with "mixer()"Max Kellermann1-8/+9
The output plugin shouldn't know any specifics of the mixer API. Make it return the mixer object, and let the caller deal with it.
2009-01-25use g_free() instead of free()Max Kellermann1-1/+1
On some platforms, g_free() must be used for memory allocated by GLib. This patch intends to correct a lot of occurrences, but is probably not complete.
2009-01-25mixer: removed mixer_configure(), configure mixer in mixer_new()Max Kellermann1-4/+2
Allocate the mixer object when it is configured. Merged mixer_configure() into mixer_new(). mixer_new() was quite useless anyway.
2009-01-25mixer: return a mixer struct pointerMax Kellermann1-8/+10
Don't use statically allocated mixer objects.