Commit Graph

49 Commits

Author SHA1 Message Date
uau 50e46d7681 ao_alsa: Fix get_space() return values larger than buffersize
After a buffer underrun the ALSA get_space() function sometimes returned
values larger than the ao had set in ao_data.buffersize. Fix this by
replacing the old check against MAX_OUTBURST by one against
ao_data.buffersize. There should be no need for the MAX_OUTBURST check;
the current MPlayer side should no longer have any constant limit on the
amount of data an ao can buffer or request at once.

The get_space() values larger than ao_data.buffersize triggered errors
in audio decoding causing the current attempt to fill audio buffers to
be aborted. I'm not sure how often that caused behavior noticeably worse
then an underrun already is.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24610 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-24 21:49:58 +00:00
cladisch d091c1165b When setting the non-audio bit for hwac3 output, just try to set the
AES0 parameter in the device name instead of poking around inside ALSA's
configuration structures.  This means that the non-audio bit will be set
even if the user-specified device name tries to clear it.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22184 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-02-09 19:49:31 +00:00
kraymer 7043e4a0a7 MSGTRs for ao_alsa.c
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20780 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-08 14:52:33 +00:00
diego c24e344fae typo
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20759 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-07 21:09:10 +00:00
diego fcd45c5111 slight overall verbosity reduction
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20191 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-12 22:24:19 +00:00
diego 77347df36f Remove bogus #ifndef WORDS_BIGENDIAN.
patch by Emanuele Giaquinta, e.giaquinta glauco it


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20026 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-04 08:46:32 +00:00
cladisch bcebc89ef4 When the hardware sample format is AC3, do not force using an hardcoded
device name.

The setting of the non-audio bit is now done by changing the default
value of the AES0 parameter in the ALSA configuration structures. This
works with user-specified devices, too.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19895 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-18 16:58:21 +00:00
cladisch ec56167e11 When one of the PCM configuration function in init() fails, abort
immediately instead of continuing with the remaining calls that would
fail anyway because the device or some variable wasn't properly
initialized in this case.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19893 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-18 16:29:27 +00:00
cladisch e7941a0ef3 Add workarounds for old prerelease versions of alsa-lib 0.9.0 that did
not allow reading the buffer boundary value.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18010 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-31 09:28:37 +00:00
cladisch b263a6618e To avoid a bug in ALSA's rate plugin that causes spurious overruns, try
to disable it so that mplayer's resampler is used.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17850 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-13 10:50:37 +00:00
cladisch 6bab259faf Do not try to count hardware sound cards because there might be none
when using a software plugin for JACK/OSS/Polypaudio/Bluetooth/etc.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17849 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-13 10:49:12 +00:00
cladisch 6ccd999a89 Output error messages from the ALSA library through mp_msg() instead of
the default stderr.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17692 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-27 10:09:05 +00:00
cladisch 434f6b2347 Show the actual ALSA version instead of the version mplayer was compiled
with, if possible.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17691 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-27 10:06:27 +00:00
cladisch 7673cbf6a7 Fix the error handling in the play() function: add a handler for EINTR,
improve the reporting of other errors, and don't try to call
snd_pcm_writei() repeatedly when it aborts after a partial write due to
an error.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17622 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:48:29 +00:00
cladisch 7d319f4b75 This changes the software parameters to be more compatible with the
behaviour of the OSS driver.  This implies that underruns are not longer
reported.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17621 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:43:25 +00:00
cladisch 0fc0814fcd Using non-blocking writes makes sense when the program wants to do other
things instead of waiting for the device to become ready.  However, just
calling snd_pcm_wait() is identical to blocking mode, so we can just as
well remove support for non-blocking writes.

Besides, the waiting code was never actually used because play() is
never called with more data than reported by get_space().


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17620 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:38:12 +00:00
cladisch 1328f3731c Remove the now superfluous mmap suboption.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17619 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:17:43 +00:00
cladisch 7f9397276b After removing play_mmap(), the play() function just unconditionally
calls play_normal().  This indirection is now superfluous.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17618 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:16:29 +00:00
cladisch cc8359e4e8 This patch removes mmap support because it doesn't have any benefit.
Directly accessing the sample buffer makes sense only when the samples
can be constructed in-place.  When the samples are just copied from
another buffer (as is the case with libao2 drivers), the code to copy
those samples is just a reimplementation of snd_pcm_writei(), so we
could as well use that function.

Besides, the current mmap code does not work except in the most simple
cases: it claims to support non-interleaved and complex sample formats,
but treats them the same as interleaved formats and writes to the wrong
memory location.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17617 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-13 11:15:25 +00:00
cladisch ddfe8e253e Small fixes: make all global variables static, remove some unused
variables, and remove the unused dir parameter from set_xxx_near()
calls.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17576 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:28:08 +00:00
cladisch 18ca43b048 Remove a call to snd_pcm_prepare() because snd_pcm_hw_params() does it
automatically, and remove a call to snd_pcm_drop() because
snd_pcm_close() does it automatically.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17575 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:26:11 +00:00
cladisch a25341464c Simplify get_delay(): we don't need to get the complete PCM status but
can call snd_pcm_delay() directly.

To avoid the audio device appearing to be running too fast after an
underrun, ignore any samples that were lost in an underrun.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17574 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:24:48 +00:00
cladisch 689c7b37a2 Fix get_space(): we don't need to differentiate between the various PCM
device states, and there is no need to avoid returning a positive value
less than 1024.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17573 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:21:17 +00:00
cladisch 508d589e21 This adds support for more sample formats (U32, float BE, mu/A-law).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17572 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:20:08 +00:00
cladisch 7bb5f4e138 This replaces the hardcoded numbers for the sample format widths with a
call to snd_pcm_format_physical_width().


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17571 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-10 09:18:27 +00:00
rathann e7db4ccf1a Patch by Stefan Huehner / stefan % huehner ! org \
patch replaces '()' for the correct '(void)' in function
declarations/prototypes which have no parameters. The '()' syntax tell
thats there is a variable list of arguments, so that the compiler cannot
check this. The extra CFLAG '-Wstrict-declarations' shows those cases.

Comments about a similar patch applied to ffmpeg:

That in C++ these mean the same, but in ANSI C the semantics are
different; function() is an (obsolete) K&R C style forward declaration,
it basically means that the function can have any number and any types
of parameters, effectively completely preventing the compiler from doing
any sort of type checking. -- Erik Slagter

Defining functions with unspecified arguments is allowed but bad.
With arguments unspecified the compiler can't report an error/warning
if the function is called with incorrect arguments. -- Måns Rullgård


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17567 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-09 14:08:03 +00:00
rathann 2601de4120 massive attack: mp_msg printf format fixes
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17367 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-01-12 20:04:36 +00:00
wanderer dd75eef3f3 use snd_mixer_selem_set_playback_switch when muting ALSA, patch by Matthias Lederhofer <matled -at- gmx dot net>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17195 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-12-15 17:50:29 +00:00
rathann 637ef4ab74 fix
ao_alsa.c:115: warning: suggest parentheses around assignment used as truth value


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17098 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-12-05 01:31:03 +00:00
henry 99bd394969 reordered bps calculation
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16310 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-08-25 21:46:32 +00:00
henry 4b40fd60f0 set the nearest number of channels, return(0) upon errors
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16309 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-08-25 19:57:32 +00:00
reimar 95cf851ea6 aos should respect the immed uninit flag (quit immediatly vs waiting till file
is played to end).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14850 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-02-27 23:06:32 +00:00
reimar 3b1f8fda2b Typo in hwac3 string
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14613 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-01-30 09:16:41 +00:00
reimar 20817ae85e Fixed the syntax of the spdif device string.
Thanks to Takashi Iwai for the hint.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14607 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-01-28 10:12:28 +00:00
reimar bf4f28d583 Use the subopt-helper for parsing suboptions.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14329 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-01-03 14:23:18 +00:00
alex 14a29762f2 af_fmt2str_short
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14265 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-28 19:11:14 +00:00
alex 646a2a2e37 maybe now..
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14252 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-27 18:14:03 +00:00
alex 4d7d3bf2c0 hopefully final fix
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14250 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-27 18:10:30 +00:00
alex 507121f7fe removing AFMT_ dependancy
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14246 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-27 17:30:15 +00:00
diego 67a1fd4053 Make include paths consistent.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14124 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-07 02:24:15 +00:00
reimar efeaeab3c4 Only use S/PDIF output when no other alsa device is set, allows to use
external ac3 decoders.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13662 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-10-17 20:03:55 +00:00
reimar d6100972a5 allow to select an alsa mixer channel index.
Patch by Eric Yagerlener [eyager (at) chartermi (dot) net].
Applied with slight modifications, see also bugzilla bug #69.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13435 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-09-22 14:12:53 +00:00
reimar 4deb67c3fa Use = instead if # in ALSA device name, as # irritates our config-parser.
Original patch by stan (at) saticed (dot) me (dot) uk


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12920 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-07-30 16:15:06 +00:00
joyping e178b25151 removed status in debug_msg as it is nonsens anyway.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12820 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-07-14 15:46:33 +00:00
joyping 31b88697d4 volume calc fixes for mixer, by reimar döffinger, 10l reverse by me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12812 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-07-14 00:48:26 +00:00
joyping d7ad1015c1 fixes provided by reimar dörfinger. mixer, subdevice parsing, alsa#help,
set chunksize, others.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12806 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-07-13 15:47:16 +00:00
joyping 319dfbad80 string, alloca etc. fixes
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12748 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-07-02 04:30:46 +00:00
henry df2e49d51c additional formats - 8bit & float
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12571 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-06-11 15:20:49 +00:00
joyping 010e3cc77f alsa9/1.x merge, now with api_compat-definition
printfs converted to mp_msg, thanks to adland <adland123@yahoo.com>
gcc 3.4 fix, undefined label at end of case statement
default device is now 'default' instead of hw:0,0. so users are able to
set their own defaultdevice (dmix) in asoundrc.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12466 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-05-12 22:56:55 +00:00