1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 01:22:30 +00:00
Commit Graph

56 Commits

Author SHA1 Message Date
Uoti Urpala
f01f7f6259 ao_alsa: Sanity check get_space() return values better
Sometimes after seek audio reset I see snd_pcm_status_get_avail()
return huge values. get_space() already had a check againt the value
being larger than the whole buffer; however since the unsigned value
from the ALSA function had been cast to signed by that point it was
interpreted as negative and the check didn't trigger. Use unsigned
instead to make the check reliable and ensure the return value is sane.
2008-12-10 02:54:01 +02:00
Uoti Urpala
66cefd5f71 ao_alsa: If pause loses samples replace them with silence
If the ALSA pause functionality is not available the driver has to
drop buffered samples when MPlayer calls pause(). Replace them by
playing a corresponding amount of silence in resume() instead of
shortening the overall audio duration.
2008-12-08 22:36:06 +02:00
cehoyos
22bb046adc Replace numeric constants by their defines.
Fixes icc warning #188: enumerated type mixed with another type


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27738 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-09 17:08:47 +00:00
ranma
cb8c70d6c2 Fix "format '%d' expects type 'int', but argument 6 has type 'size_t'" warning.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27714 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-04 15:11:39 +00:00
ranma
68fa9667ec Make alsa resume after suspend to disk (would say 'file descriptor is in bad state' before this change)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27712 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-04 15:03:10 +00:00
reimar
6dfb85dc9e Our ALSA code needs alloca, so check for it in configure and include alloca.h
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27313 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-07-17 17:11:30 +00:00
diego
bc0058c63e cosmetics: Remove pointless parentheses from return statements.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26789 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-16 09:31:55 +00:00
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