summaryrefslogtreecommitdiff
path: root/src/audio_out
AgeCommit message (Collapse)Author
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-10-10Don't use deprecated JACK APIMatěj Laitl
xine-lib jack audio output plugin still uses deprecated jack_client_new() function. This function has been superseded by jack_client_open(). New API has an advantage that jackd is allowed to alter name of the client in case of ambiguity.
2009-09-28Incorrect int-to-float conversion in the JACK output pluginRemco Bloemen
Using bitmeter, I found that xine's jack output suffers from the problem mentioned at the bottom of bitmeter's home page. "Although JACK itself works entirely with IEEE floating point values the conversion to and from analog audio uses integers, as do popular audio storage technologies like DAT and Red Book CDs. For correct operation JACK software which uses such integers should use the same conversion ratios as JACK itself. e.g. 16-bit samples should be divided by exactly 32768. A common mistake is to choose the value 32767 instead. You can't hear this, or see it with ordinary meters, but the bitmeter shows a clear signature for audio processed in this way. The 8th bit of the mantissa (counting the rightmost as the 0th) is orange, indicating that an unusually high percentage of samples have this bit set." (from http://users.ecs.soton.ac.uk/njl98r/code/audio/bitmeter/ via Google cache)
2009-08-26Garbled sound with multichannel audio (using sndio)Brad Smith
At the moment playing multichannel audio via the sndio backend results in garbled sound. This disables the multichannel audio support until I have more time to look into a better and more appropriate fix.
2009-05-28Fix a recently-added POSIX incompatibility.Marc Dequènes (Duck)
2009-02-18Add support for new OpenBSD sound APIBrad Smith
2009-01-18Remove '#include "config.h"' from all public header files.Darren Salt
This requires that many other files include config.h themselves. Also convert <config.h> to "config.h".
2009-01-17Avoid libtool running ldconfig (where not needed) at install time.Darren Salt
2009-01-12Fix build of directx VO plugin.František Dvořák
Update for build with newer mingw compilation tools.
2008-09-17Mingw+MSys: NLS support, --enable-stdcall-fixupCarlo Bramini
It was not possible to compile some parts of XINE-LIB with NLS enabled. It's also a good idea to explicitely enable --enable-stdcall-fixup for solving a huge amount of warnings. Attached patch fixes these problems.
2008-11-20Fix using of the pointers, leak fixes in configfile.František Dvořák
2008-11-05Simpler code, no gaps during playback in DirectX(2) audio outputmringwal@vs22.inf.ethz.ch
The playback pointer did occasionally overrun the write pointer, which results in audible gaps in playback. To solve this, the slotted ringbuffer was replaced by a simple ringbuffer and the service threads now checks periodically if there is still data in the buffer instead of checking at the slots borders. --HG-- extra : transplant_source : %A1%12%60%B9%E4%AB%E7%7C%D7%D6%BD%7C%C6M%C9%94s%7F%BE%91
2008-10-17Replace configure test for PulseAudio version by cpp testMatthias Ringwald
Version 0.9.6 has PA_PROTOCOL_VERSION 10, version 0.9.7 has 11. This simplifies configure and limits the knowledge about PA versions to the audio output plug-in. This time, the patch includes configure.ac, too.
2008-06-14Replacement JACK pluginEd Wildgoose
2008-06-12Fix up reporting of supported formats by the ALSA & OSS output plugins.Darren Salt
Adjust translations for the spacing changes etc. which this introduces.
2008-05-09Use size_t to keep the value returned by strlen().Diego 'Flameeyes' Pettenò
When using a variable to store the result of strlen(), make sure its type is size_t just like the function returns, rather than using a smaller type like int. --HG-- extra : transplant_source : %B0%D5%3B%D7%1Dy%0A%7E%7D%7C%023%08%B2%CE%D3t%0B3%D7
2008-05-07Avoid memset() on newly allocated memory areas.Diego 'Flameeyes' Pettenò
If needed, use calloc() to allocate the area so that it's already reset by the time it returns.
2008-05-07Use asprintf() rather than malloc() + sprintf().Diego 'Flameeyes' Pettenò
Using asprintf() instead of malloc() + sprintf() reduces the lines of code in xine-lib (moving the allocation to the C library or asprintf replacement), makes it safer to access the string and can also improve performance whenever the value returned by a function was used as parameter, as before it had to run the function twice in almost every case (once for strlen(), once for sprintf()).
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
The xine_xmalloc() function is going to be deprecated, as its behaviour is rarely needed as such, and it's thus misused. With this, almost all uses of xine_xmalloc() with static size (for instance the value returned by sizeof()) or with a size that is guaranteed not to be zero (like strlen()+1) are replaced with calls to either calloc(1, ...) or malloc(). malloc() is used whenever the allocated memory is going to be immediately overwritten, while calloc() is used in every other case, as it sets the whole memory area to zero. --HG-- extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
2008-04-14Make sure that muting/unmuting the audio without setting the volume does not ↵Diego 'Flameeyes' Pettenò
put the volume to zero.
2008-04-11Test for pulseaudio 0.9.7 to determine which muting method to use.Darren Salt
2008-04-11Remove an unnecessary volume scale conversion.Darren Salt
The value being converted is already of the correct type.
2008-04-04Updated PulseAudio driver (fixup)Lennart Poettering
The problem was basically that detection if PA was available happened in open() instead of open_plugin().
2008-04-01Updated PulseAudio driverLennart Poettering
It's basically a rework of the PulseAudio driver, fixing all the inherent races (and thus stability issues), adding proper surround sound support, support for proper muting and pause/resume. It also gets rid of all usleep() loops to make sure we don't wakeup more often than we need to. Also does a couple of other minor cleanups. This also increases the autoprobe priority to 12, above ALSA, to make sure that the Pulse plugin is preferred over ALSA if both are available. This is because we want to make sure that Xine-on-PA is preferred over Xine-on-ALSA-on-PA.
2008-03-12Cope with NetBSD, which apparently doesn't have SNDCTL_DSP_GETODELAY.Darren Salt
(Fall back on SNDCTL_DSP_GETOPTR.)
2008-02-15Don't unlock unconditionally the mainloop on failure.Diego 'Flameeyes' Pettenò
2008-01-01Avoid potential install-time mislinkage against libxine.so.2.Darren Salt
2007-12-10Simplify Pulse plugin reverting some of today's changes and going back from ↵Diego 'Flameeyes' Pettenò
there. Instead of using a thread to watch for completion, use mutexes where needed. Don't wait for operation completion for volume changes, they can happen asynchronously too.
2007-12-10Backport the PulseAudio plugin from 1.2 branch.Diego 'Flameeyes' Pettenò
2007-12-02Fixed ALSA close function to not discard all data that had been written but ↵Matthias Kretz
not played yet. When closing the pcm device make sure that everything that was written to the device actually gets played. This was the race we were seeing with Ogg Vorbis and wav playback where a delayed driver->close would fix playback. Notice that blocking mode needs to be used for snd_pcm_drain, otherwise the call would be a noop.
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-06-16Rename the BE/LE/ME macros with a _X_ prefix, so they don't clash with ↵Diego 'Flameeyes' Pettenò
Solaris definitions.
2007-06-09Add $(LTLIBINTL) wherever objdump -R shows a dependency on gettext functions.Darren Salt
Some plugins may have been missed due to them not being built here.
2007-06-08Add two missing alloca.h includes and clean up one other.Darren Salt
2007-06-04handle unplugged devices in audio_alsa_out (return -1) and in audio_out ↵Matthias Kretz
close the driver on a return value <0
2007-04-07Use CC_ATTRIBUTE_FORMAT; replace __attribute((format(printf, ...))) accordingly.Darren Salt
2007-04-06Remove executable status from all files which shouldn't have it.Darren Salt
2007-04-06Remove a redundant comment.Diego 'Flameeyes' Pettenò
2007-04-06Use xineplug_LTLIBRARIES wherever possible.Diego 'Flameeyes' Pettenò
2007-04-05Fixed current audio sync, delay was always 0.Thibaut Mattern
Checked snd_pcm_delay return code, and don't trust negative values.
2007-04-04Use size_t for samples and seconds data in Sun audio plugin.Pascal S. de Kloe
2007-04-04Check for audio_info_t.output_muted member, rather than assuming it's not ↵Diego 'Flameeyes' Pettenò
available on NetBSD only. With this, it's not needed to check for OpenBSD too. Thanks to Pascal S. de Kloe for pointing at it.
2007-04-03Rationalise use of .hgignore, removes a bunch of files that only ignored ↵Diego 'Flameeyes' Pettenò
automake-related files.
2007-04-02Migrate all .cvsignore files to .hgignore.Diego 'Flameeyes' Pettenò
--HG-- rename : .cvsignore => .hgignore rename : doc/.cvsignore => doc/.hgignore rename : doc/faq/.cvsignore => doc/faq/.hgignore rename : doc/hackersguide/.cvsignore => doc/hackersguide/.hgignore rename : doc/man/.cvsignore => doc/man/.hgignore rename : doc/man/en/.cvsignore => doc/man/en/.hgignore rename : include/.cvsignore => include/.hgignore rename : intl/.cvsignore => intl/.hgignore rename : lib/.cvsignore => lib/.hgignore rename : m4/.cvsignore => m4/.hgignore rename : misc/.cvsignore => misc/.hgignore rename : misc/fonts/.cvsignore => misc/fonts/.hgignore rename : po/.cvsignore => po/.hgignore rename : src/.cvsignore => src/.hgignore rename : src/audio_out/.cvsignore => src/audio_out/.hgignore rename : src/combined/.cvsignore => src/combined/.hgignore rename : src/demuxers/.cvsignore => src/demuxers/.hgignore rename : src/dxr3/.cvsignore => src/dxr3/.hgignore rename : src/input/.cvsignore => src/input/.hgignore rename : src/input/dvb/.cvsignore => src/input/dvb/.hgignore rename : src/input/libdvdnav/.cvsignore => src/input/libdvdnav/.hgignore rename : src/input/libreal/.cvsignore => src/input/libreal/.hgignore rename : src/input/librtsp/.cvsignore => src/input/librtsp/.hgignore rename : src/input/vcd/.cvsignore => src/input/vcd/.hgignore rename : src/input/vcd/libcdio/.cvsignore => src/input/vcd/libcdio/.hgignore rename : src/input/vcd/libcdio/MSWindows/.cvsignore => src/input/vcd/libcdio/MSWindows/.hgignore rename : src/input/vcd/libcdio/cdio/.cvsignore => src/input/vcd/libcdio/cdio/.hgignore rename : src/input/vcd/libcdio/image/.cvsignore => src/input/vcd/libcdio/image/.hgignore rename : src/input/vcd/libvcd/.cvsignore => src/input/vcd/libvcd/.hgignore rename : src/input/vcd/libvcd/libvcd/.cvsignore => src/input/vcd/libvcd/libvcd/.hgignore rename : src/liba52/.cvsignore => src/liba52/.hgignore rename : src/libdts/.cvsignore => src/libdts/.hgignore rename : src/libfaad/.cvsignore => src/libfaad/.hgignore rename : src/libfaad/codebook/.cvsignore => src/libfaad/codebook/.hgignore rename : src/libffmpeg/.cvsignore => src/libffmpeg/.hgignore rename : src/libffmpeg/libavcodec/.cvsignore => src/libffmpeg/libavcodec/.hgignore rename : src/libffmpeg/libavcodec/alpha/.cvsignore => src/libffmpeg/libavcodec/alpha/.hgignore rename : src/libffmpeg/libavcodec/armv4l/.cvsignore => src/libffmpeg/libavcodec/armv4l/.hgignore rename : src/libffmpeg/libavcodec/i386/.cvsignore => src/libffmpeg/libavcodec/i386/.hgignore rename : src/libffmpeg/libavcodec/libpostproc/.cvsignore => src/libffmpeg/libavcodec/libpostproc/.hgignore rename : src/libffmpeg/libavcodec/mlib/.cvsignore => src/libffmpeg/libavcodec/mlib/.hgignore rename : src/libffmpeg/libavcodec/ppc/.cvsignore => src/libffmpeg/libavcodec/ppc/.hgignore rename : src/libffmpeg/libavcodec/sparc/.cvsignore => src/libffmpeg/libavcodec/sparc/.hgignore rename : src/libffmpeg/libavutil/.cvsignore => src/libffmpeg/libavutil/.hgignore rename : src/libflac/.cvsignore => src/libflac/.hgignore rename : src/liblpcm/.cvsignore => src/liblpcm/.hgignore rename : src/libmad/.cvsignore => src/libmad/.hgignore rename : src/libmpeg2/.cvsignore => src/libmpeg2/.hgignore rename : src/libmpeg2new/.cvsignore => src/libmpeg2new/.hgignore rename : src/libmpeg2new/include/.cvsignore => src/libmpeg2new/include/.hgignore rename : src/libmpeg2new/libmpeg2/.cvsignore => src/libmpeg2new/libmpeg2/.hgignore rename : src/libmusepack/.cvsignore => src/libmusepack/.hgignore rename : src/libmusepack/musepack/.cvsignore => src/libmusepack/musepack/.hgignore rename : src/libreal/.cvsignore => src/libreal/.hgignore rename : src/libspeex/.cvsignore => src/libspeex/.hgignore rename : src/libspucc/.cvsignore => src/libspucc/.hgignore rename : src/libspucmml/.cvsignore => src/libspucmml/.hgignore rename : src/libspudec/.cvsignore => src/libspudec/.hgignore rename : src/libspudvb/.cvsignore => src/libspudvb/.hgignore rename : src/libsputext/.cvsignore => src/libsputext/.hgignore rename : src/libtheora/.cvsignore => src/libtheora/.hgignore rename : src/libvorbis/.cvsignore => src/libvorbis/.hgignore rename : src/libw32dll/.cvsignore => src/libw32dll/.hgignore rename : src/libw32dll/DirectShow/.cvsignore => src/libw32dll/DirectShow/.hgignore rename : src/libw32dll/dmo/.cvsignore => src/libw32dll/dmo/.hgignore rename : src/libw32dll/qtx/.cvsignore => src/libw32dll/qtx/.hgignore rename : src/libw32dll/qtx/qtxsdk/.cvsignore => src/libw32dll/qtx/qtxsdk/.hgignore rename : src/libw32dll/wine/.cvsignore => src/libw32dll/wine/.hgignore rename : src/libxineadec/.cvsignore => src/libxineadec/.hgignore rename : src/libxineadec/gsm610/.cvsignore => src/libxineadec/gsm610/.hgignore rename : src/libxineadec/nosefart/.cvsignore => src/libxineadec/nosefart/.hgignore rename : src/libxinevdec/.cvsignore => src/libxinevdec/.hgignore rename : src/post/.cvsignore => src/post/.hgignore rename : src/post/audio/.cvsignore => src/post/audio/.hgignore rename : src/post/deinterlace/.cvsignore => src/post/deinterlace/.hgignore rename : src/post/deinterlace/plugins/.cvsignore => src/post/deinterlace/plugins/.hgignore rename : src/post/goom/.cvsignore => src/post/goom/.hgignore rename : src/post/mosaico/.cvsignore => src/post/mosaico/.hgignore rename : src/post/planar/.cvsignore => src/post/planar/.hgignore rename : src/post/visualizations/.cvsignore => src/post/visualizations/.hgignore rename : src/video_out/.cvsignore => src/video_out/.hgignore rename : src/video_out/libdha/.cvsignore => src/video_out/libdha/.hgignore rename : src/video_out/libdha/bin/.cvsignore => src/video_out/libdha/bin/.hgignore rename : src/video_out/libdha/kernelhelper/.cvsignore => src/video_out/libdha/kernelhelper/.hgignore rename : src/video_out/libdha/oth/.cvsignore => src/video_out/libdha/oth/.hgignore rename : src/video_out/libdha/sysdep/.cvsignore => src/video_out/libdha/sysdep/.hgignore rename : src/video_out/macosx/.cvsignore => src/video_out/macosx/.hgignore rename : src/video_out/vidix/.cvsignore => src/video_out/vidix/.hgignore rename : src/video_out/vidix/drivers/.cvsignore => src/video_out/vidix/drivers/.hgignore rename : src/xine-engine/.cvsignore => src/xine-engine/.hgignore rename : src/xine-utils/.cvsignore => src/xine-utils/.hgignore rename : win32/.cvsignore => win32/.hgignore rename : win32/include/.cvsignore => win32/include/.hgignore
2007-04-01Try to improve response when the plugin can't connect to PulseAudio. ↵Diego 'Flameeyes' Pettenò
Unfortunately if the server dies during playback xine will be too messed up to recover. This is the same issue as unplugged USB devices, it requires a proper generic handling of these cases. CVS patchset: 8779 CVS date: 2007/04/01 00:32:29
2007-03-31Set the volume of the stream to 100% by default.Diego 'Flameeyes' Pettenò
CVS patchset: 8778 CVS date: 2007/03/31 22:06:54
2007-03-31Lock/Unlock on opening.Diego 'Flameeyes' Pettenò
CVS patchset: 8777 CVS date: 2007/03/31 21:22:58
2007-03-31Implement AO_PROP_MUTE_VOL (both set and get), and cleanup the setter and ↵Diego 'Flameeyes' Pettenò
getter methods, returning the correct value in case the property is not implemented. CVS patchset: 8776 CVS date: 2007/03/31 21:16:22
2007-03-31Add a mutex on all PulseAudio operations, PA is thread-safe by itself, but ↵Diego 'Flameeyes' Pettenò
xine's plugin wasn't, this caused race conditions similar to the old ones with ALSA output. Also instead of copying two pointers (three with the mutex) from the class to the output instance, just copy a pointer to the class. CVS patchset: 8775 CVS date: 2007/03/31 20:58:51