Age | Commit message (Collapse) | Author |
|
|
|
Adjust translations for the spacing changes etc. which this introduces.
|
|
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
|
|
If needed, use calloc() to allocate the area so that it's already
reset by the time it returns.
|
|
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()).
|
|
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
|
|
put the volume to zero.
|
|
|
|
The value being converted is already of the correct type.
|
|
The problem was basically that detection if PA was available happened in
open() instead of open_plugin().
|
|
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.
|
|
(Fall back on SNDCTL_DSP_GETOPTR.)
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
--HG--
extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
|
|
For contributed code, leave whatever the version we last synced for is using
to make simpler future syncs.
|
|
Solaris definitions.
|
|
Some plugins may have been missed due to them not being built here.
|
|
|
|
close the driver on a return value <0
|
|
|
|
|
|
|
|
|
|
Checked snd_pcm_delay return code, and don't trust negative values.
|
|
|
|
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.
|
|
automake-related files.
|
|
--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
|
|
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
|
|
CVS patchset: 8778
CVS date: 2007/03/31 22:06:54
|
|
CVS patchset: 8777
CVS date: 2007/03/31 21:22:58
|
|
getter methods, returning the correct value in case the property is not implemented.
CVS patchset: 8776
CVS date: 2007/03/31 21:16:22
|
|
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
|
|
using hacksaround. Also replace the whole pthread check with an improved macro originally written for XCB, this way it's not going to try linking the fake -lpthread on Darwin, and it also does not force a -I/usr/local/include on FreeBSD. The new macro respects the same variables set by ports, so that it's even more transparent to FreeBSD users.
CVS patchset: 8739
CVS date: 2007/03/22 20:44:58
|
|
based on Intel CPUs). Patch by Martin Aumueller.
CVS patchset: 8723
CVS date: 2007/03/19 23:48:58
|
|
CVS patchset: 8709
CVS date: 2007/03/17 20:57:59
|
|
headers, and then include the best one that has been found on the system. Check for definition of SNDCTL_DSP_SETFRAGMENT in those headers. Check for the correct request parameter type for ioctl(), as also modern Linux uses unsigned long. Don't list all the big endian machines (as they aren't reliable to list anyway, some of them might work with both endians), use WORDS_BIGENDIAN instead.
CVS patchset: 8697
CVS date: 2007/03/17 06:59:31
|
|
long rather than int). This patch is less invasive and portable.
CVS patchset: 8676
CVS date: 2007/03/16 17:13:57
|
|
Svishchev, see bug #1667848.
CVS patchset: 8658
CVS date: 2007/03/10 00:55:14
|
|
Albert Lee.
CVS patchset: 8651
CVS date: 2007/03/09 23:56:42
|
|
CVS patchset: 8630
CVS date: 2007/02/25 22:33:25
|
|
thanks Kirill Belokurov and Matthias Kretz
CVS patchset: 8629
CVS date: 2007/02/25 21:54:03
|
|
CVS patchset: 8607
CVS date: 2007/02/20 00:04:50
|
|
CVS patchset: 8584
CVS date: 2007/02/03 10:46:14
|
|
connection, as that's just what is going on those given moments, and avoids stray signals along the way.
CVS patchset: 8583
CVS date: 2007/02/03 10:45:02
|
|
immediately on class load, this way they will be shared by all PulseAudio outputs; connect to the context when opening the output device, rather than the first time you play the stream (this way avoids latency while playing multiple tracks).
The result is only one connection is present for xine instance, even if multiple streams are called on it.
CVS patchset: 8582
CVS date: 2007/02/03 10:41:09
|