aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/alsa_output_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-04-23output/alsa: multiply writei() result with out_frame_sizeMax Kellermann1-1/+3
.. and not in_frame_size, because this relates to the frame size being sent to ALSA. pcm_export_source_size() will then turn it back into the in_frame_size scale.
2012-04-23pcm_export: add _frame_size()Max Kellermann1-3/+1
Move code from the ALSA output plugin.
2012-04-23output/alsa: fix out_frame_size formula, multiply with channelsMax Kellermann1-1/+3
The hard-coded "3 bytes" was wrong because it ignored the number of channels.
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-27output/alsa: support 32 bit DSD-over-USBMax Kellermann1-4/+15
2012-03-27pcm_export: implement 24 to 32 bit conversionMax Kellermann1-1/+1
For 32 bit DSD-over-USB support.
2012-03-27output/alsa: use pcm_export for the DSD-over-USB conversionMax Kellermann1-11/+10
2012-03-27pcm_export: support DSD to DSD-over-USB conversionMax Kellermann1-3/+5
Prepare for removing SAMPLE_FORMAT_DSD_OVER_USB.
2012-03-27output/alsa: move pcm_export_open() to callerMax Kellermann1-11/+16
Give the caller more control, prepare for DSD-over-USB improvements.
2012-03-27output/alsa: more debug outputMax Kellermann1-0/+8
2012-03-22output/alsa: add option to enable DSD over USBMax Kellermann1-1/+54
2012-03-22output/alsa: split the frame_size attributeMax Kellermann1-6/+18
Make it in_frame_size and out_frame_size, to account for packing.
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/alsa: use pcm_export to pack 24 bit samplesMax Kellermann1-15/+48
2012-03-22pcm_export: add option "pack"Max Kellermann1-1/+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/alsa: simplify setup_format()Max Kellermann1-7/+4
2012-03-22output/alsa: don't pass audio_format to _try_format()Max Kellermann1-16/+13
Let the caller configure the audio_format object.
2012-03-22output/alsa: simplify alsa_output_try_format_both()Max Kellermann1-45/+18
Merge three functions into one and call get_bitformat() only once.
2012-03-21output/{alsa,oss}: move endian code to new library pcm_exportMax Kellermann1-31/+10
2012-03-21audio_format: remove the reverse_endian attributeMax Kellermann1-3/+1
Eliminate support for reverse endian samples from the MPD core. This moves a lot of complexity to the plugins that really need it (only ALSA and CDIO currently).
2012-03-21output/alsa: always receive host byte order samplesMax Kellermann1-3/+61
Don't use audio_format.reverse_endian.
2012-03-21output/alsa: merge alsa_data_free() into destructorMax Kellermann1-8/+3
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-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/+3
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/+24
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: rename plugin variablesMax Kellermann1-1/+1
Consistent naming.
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-07-20output/alsa: fix SIGFPE when alsa announces a period size of 0Max Kellermann1-0/+8
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-11-05output/alsa: dump buffer and period limitsMax Kellermann1-0/+20
2010-01-17output/alsa: support packed 24 bit samplesMax Kellermann1-0/+13
2010-01-16output/alsa: probe all sample formats in a loopMax Kellermann1-36/+34
More code simplification. Probe all formats, no matter which input format.
2010-01-16output/alsa: merged code into alsa_output_try_format()Max Kellermann1-51/+71
Remove the debug log messages, because they are duplicate (see ao_open() in output_thread.c).
2010-01-16output/alsa: pass sample_format to get_bitformat()Max Kellermann1-3/+3
2010-01-16output/alsa: moved code to alsa_output_setup_format()Max Kellermann1-72/+80
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-29/+44
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-1/+2
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-09output/alsa: fill period buffer with silence before drainingMax Kellermann1-3/+47
ALSA passes full period buffers to the hardware. If an application doesn't finish writing a period, libasound will nonetheless send the partial buffer (with undefined trailing data). This causes noise at the end of playback. This patch attempts to track the current position within the period buffer, and generates silence at the end, before calling snd_pcm_drain().
2009-11-02alsa_plugin.c: workaround snd_pcm_drain bugJeffrey Middleton1-1/+2
Reintroduce a fix from commit 52a0653 (Warren Dukes): "don't call snd_pcm_drain unless we're already in the RUNNING state". This prevents ALSA with dmix from sometimes hanging when snd_pcm_drain is called, e.g. when moving from one song to the next (as in mantis issue 2634).
2009-10-29output_plugin: added method "drain"Max Kellermann1-3/+9
drain() is the opposite of cancel(): it waits until all data in the buffer has finished playing. Instead of implicitly draining in the close() method like the ALSA plugin has been doing it forever, let the output thread decide whether to drain or to cancel.
2009-10-29output/alsa: don't recover on CANCELMax Kellermann1-1/+1
The recovery is for nothing if we get CLOSE afterwards. Let's not recover in the cancel() method, and let the next play() call sort it out.
2009-10-20mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann1-1/+2
2009-07-19Support wrong-endian ALSA outputDavid Woodhouse1-2/+50
2009-04-21alsa_output: don't use atexit() to clean up the ALSA libraryMax Kellermann1-7/+3
Call snd_config_update_free_global() manually in our finish() method, don't use atexit().
2009-03-26output_plugin: replaced output_plugin.get_mixer() with mixer_pluginMax Kellermann1-19/+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).