Commit graph

332 commits

Author SHA1 Message Date
Jaroslav Kysela
1d0042d7e9 aplay/arecord: change the interrupt handling using snd_pcm_abort()
It is required (exclude the fatal SIGABRT) to call snd_pcm_close() and
the end of work (outside of the interrupt handler). Use new snd_pcm_abort()
function to inform alsa-lib to not ignore EINTR and move the in_aborting
variable to the global scope to be checked in the i/o loops.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-08 13:30:54 +02:00
Jaroslav Kysela
6de3c709b3 aplay/arecord: added isatty() check (interactive mode)
Turn off the interactive mode when stdin is not a tty.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-03-22 14:00:44 +01:00
Takashi Iwai
de61ec66fe aplay: Add the support for big-endian WAV format (RIFX)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-13 10:53:19 +01:00
Fabio Estevam
c6614dbdab aplay: Show usage if no parameter is passed
When aplay/arecord are called without any argument the application hangs forever.

Instead of hanging, print the usage and exit.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-13 14:33:40 +01:00
Jaroslav Kysela
6017849f1b aplay: fix typo & silence warning..
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-09-24 16:18:54 +02:00
Takashi Iwai
000bf230cf aplay: More support for channel map option
Now aplay tries to follow the given channel map by rearranging the
channels even when the channel map override isn't allowed but if the
device is still capable to return a channel map.

Also update the man page appropriately.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-20 13:55:24 +02:00
Takashi Iwai
a9add2252f aplay: Add support for channel mapping
With -m option, user can specify the order of channel map.
As of this commit, it just tries to override the channel map, thus it
works only on devices that support the channel map override like HDMI.
Adjusting the channel order in aplay itself will be added later.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-17 12:23:33 +02:00
Arun Raghavan
16bc934c0b aplay: Use open() instead of open64()
AC_SYS_LARGEFILE in configure.in will automatically set up defines so
that open() will support large files if supported, and if not, this
allows us to fall back gracefully to non-LFS open().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-17 15:08:03 +02:00
Arun Raghavan
ae0a7d6f0a aplay: Fix signal.h include
The correct header to include is <signal.h> not <sys/signal.h>.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-17 15:07:31 +02:00
Jerome Carretero
6bbeb78dba aplay: print vu-meter to stderr, not stdout
It allows showing the vu-meter while recording to stdout, eg:

   aplay -C -V stereo | oggenc - > out.ogg

Signed-off-by: Jerome Carretero <cJ@zougloub.eu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-11 17:09:50 +02:00
Ben Gardiner
658c3cfd57 aplay/arecord: option to treat any xrun as fatal
Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-03-19 15:44:16 +01:00
Pavel Hofman
2d105e0f18 aplay - option to dump HW parameters
Dumping HW parameters of the current device with snd_pcm_hw_params_dump,
a new option --dump-hw-params added.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-03-06 10:42:17 +01:00
Jaroslav Kysela
5b91ee7f61 Fix the examples in aplay.1
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-02-06 14:58:03 +01:00
Jaroslav Kysela
dc02bd4517 aplay: Add backward compatible endian macro definitions
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-01-25 10:40:25 +01:00
David Henningsson
af0bf78505 aplay: Fix spelling error
BugLink: https://bugs.launchpad.net/bugs/816388
Reported-by: Chad Dunlap <cldunlap1@gmail.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2011-10-12 20:14:13 +02:00
Tim Blechmann
0131ab6a67 aplay: increase channel limit to 256
aplay is limited to 32 channels, which makes it impossible to use it for
testing devices with more channels. here we increase the limit to 256,
which should be sufficient for a virtual device made of 4 64-channel
soundcards.

Signed-off-by: Tim Blechmann <tim@klingt.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-06-29 09:53:52 +02:00
Takashi Iwai
36d642f448 aplay: Use standard endian convesions
asm/*.h stuff shouldn't be used directly from the user-space apps.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 14:35:44 +02:00
Takashi Iwai
ce2d64b48a aplay: Add include files for mkdir()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 14:34:19 +02:00
Takashi Iwai
a3ebe640a7 aplay: Avoid recursive signal handling
When abort() is issued in snd_pcm_close() path, it may loop recursively
and crash.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 12:44:17 +02:00
Takashi Iwai
d67a965aec aplay: Add -i option for interactive mode
The recent addition of pause/resume control via keyboard brought
a problem when aplay/arecord is invoked in background.  For avoiding
regressions, it's safer to use non-interactive mode as default and
enable the new feature via an option.

Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-06-03 12:41:26 +02:00
Jaroslav Kysela
bb865dc10b aplay/arecord: term_c_lflag variable might be unitialized in some cases
The term_c_lflag variable might be unitialized in some cases. Add extra
check to avoid setting of wrong value.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-08-18 08:23:09 +02:00
Jaroslav Kysela
73c79ebf26 aplay: fix termio settings - return back old c_flag value on exit
- symptom - ssh client password authentication does not work with
  the modified terminal settings

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-07-15 13:39:14 +02:00
Jaroslav Kysela
3bd6533622 aplay/arecord: Added hardware pause support (press SPACE or Enter)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-07-15 10:40:21 +02:00
John Sauter
55cd025f18 aplay -- update the man file
Bring the man file up to date, documenting the signals and all the
options, including those added for audio surveilance.

Signed-off-by: John Sauter <John_Sauter@systemeyescomputerstore.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-01-10 18:58:23 +01:00
John Sauter
3b425f8fb5 aplay -- add features for audio surveilance
Add signal SIGUSR1 to turn over the output file,
--max-file-time to cause the output file to turn over automatically,
and --use-strftime to create output files based on the current time.

Signed-off-by: John Sauter <John_Sauter@systemeyescomputerstore.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-01-10 18:56:53 +01:00
John Sauter
0895fcdce2 aplay - add option --process-id-file
Write the process ID to a file so other programs can
signal aplay.  When aplay exits, delete the file.

Signed-off-by: John Sauter <John_Sauter@systemeyescomputerstore.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-01-10 18:41:49 +01:00
Jaroslav Kysela
400e6f440e aplay: Dump PCM state on xrun when verbose mode is active
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-01-08 15:58:47 +01:00
Jaroslav Kysela
1185611ac1 arecord: fix wrong chunk_size initialization when verbose and mmap flags are set
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-11-09 11:49:51 +01:00
Arnout Engelen
325462e80a aplay - Show available formats
Report available sample formats in aplay/arecord when currently selected
one doesn't work.

Signed-off-by: Arnout Engelen <alsa2@bzzt.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-02 16:44:06 +01:00
Jaroslav Kysela
658cebdc05 aplay/arecord: improve suspicious buffer detection and add --test-coef parameter
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-04-09 09:48:27 +02:00
Jaroslav Kysela
57a38debe1 aplay/arecord: remove debug printfs introduced by previous patch
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-04-08 18:15:56 +02:00
Jaroslav Kysela
641556d963 aplay/arecord: fix underrun/overrun time calculation for monotonic clock
Also, add librt check to configure.in.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-04-08 09:22:16 +02:00
Peter Stokes
9a47cf7b35 Fix wrong direction check in aplay/arecord --list-pcms
I have just discovered a minor logic inversion bug in
aplay/arecord --list-pcms functionality.

Basically, executing "aplay --list-pcms" lists all devices capable of
capture and executing "arecord --list-pcms" lists all devices capable
of playback.

Signed-off-by: Peter Stokes <linux@dadeos.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-12 12:29:41 +01:00
Diego E. 'Flameeyes' Pettenò
6232f1c96c Make some static tables and strings constants.
By doing this we move them from the .data section to .rodata setion,
or from .data.rel to .data.rel.ro.

The .rodata section is mapped directly from the on-disk file, which is
always a save, while .data.rel.ro is mapped directly when using
prelink, which is a save in a lot of cases.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 13:10:02 +01:00
Diego E. 'Flameeyes' Pettenò
ca1ea1e904 Mark static the functions not used outside their unit.
This way the compiler can assume more information about their
interface for optimisation.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 13:09:56 +01:00
Jaroslav Kysela
46f9fb6873 aplay/arecord: add --test-position test
In some cases (HDA audio) the ring buffer position values returned
from alsa-lib are inaccurate. The added --test-position option will
print suspicious values.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-10-23 11:13:24 +02:00
Jaroslav Kysela
6bd621177d aplay - show sample arrangement (mmap areas) in verbose more for debugging
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-09 12:53:28 +02:00
Takashi Iwai
8802e85d41 aplay - Fix a compile warning
aplay.c: In function ‘compute_max_peak’:
aplay.c:1327: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
2008-04-16 14:43:01 +02:00
Takashi Iwai
c58817e8af aplay - Add stereo VU-meter support
Added the support of stereo VU-meter.
Enabled via -Vs option.

The new option, -V, can be used to enable the VU-meter.  Now
VU-meter can be enabled even without -vv.
2008-03-14 14:11:06 +01:00
Pawel MOLL
4bdb0adef1 Support for playing WAV files with "extensible format" header using aplay.
WAV files with more than 2 channels or with more than 16 bits per samples
can be saved with "extensible format" chunk
(see http://msdn2.microsoft.com/en-us/library/ms713496(VS.85).aspx).
For instance, sox, when converting data to 24- or 32-bits per sample format
uses this format, and aplay was unable to play such file. Now the problem
is solved :-)

Signed-off-by: Pawel MOLL <pawel.moll@st.com>
2008-03-06 17:34:21 +01:00
Andrew Paprocki
6f438b9b9a aplay/arecord - Add support for IEEE float 32-bit WAV files
This patch modifies aplay/arecord to support playing/capturing IEEE float
32-bit WAV files. Tested on HDA hardware in both stereo and multi-channel
modes. Added the WAV file constant for Dolby AC-3 S/PDIF passthrough to
formats.h for future use when AC-3 passthrough is better supported.

Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
2008-02-06 14:05:07 +01:00
Jaroslav Kysela
62a27ec90b release 1.0.16rc1
Patch-level: Merged
2008-01-21 10:42:48 +01:00
Takashi Iwai
9abeb5843a Remove xfer_align
The xfer_align is the obsolete feature now.  Remove it from aplay
and speaker-test to avoid deprecated calls.
2008-01-08 18:39:06 +01:00
Takashi Iwai
4cb74aed89 Remove sleep_min from aplay
The sleep_min is the obsolete feature now.  Remove it from aplay.
2008-01-08 18:38:32 +01:00
Takashi Iwai
beecc1419e aplay - Reset non-blocking flag before snd_pcm_drain()
snd_pcm_drain() doesn't block when running with O_NONBLOCK.
Reset the non-blocking mode before calling snd_pcm_drain() properly
(and restore again for any further operations).
2007-12-14 15:29:51 +01:00
Jaroslav Kysela
48de580a7b Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:25:17 +02:00
Takashi Iwai
7992d3aca0 aplay - Include missing time.h for time()
With salsa-lib,
  aplay.c: In function ‘compute_max_peak’:
  aplay.c:1207: warning: implicit declaration of function ‘time’
2007-08-07 15:36:41 +02:00
Takashi Iwai
483d8d65d9 aplay - Fix VU meter
Fix spaces displayed in VU meter to match with the actual max lengh (51).
2007-07-12 17:02:18 +02:00
Takashi Iwai
ea04f2c888 aplay - Fix possible endless loop with SIGBART
The signal handler may cause endless loop with SIGABRT.
2007-07-12 15:20:52 +02:00
Takashi Iwai
c7d2be17d7 Remove unneeded -lasound
-lasound is unnecessary in aplay/Makefile.am.
2007-06-04 15:15:39 +02:00
Jaroslav Kysela
815fc4bea0 aplay: namehint fix - use filter before printing device name 2006-11-30 13:45:08 +01:00
Jaroslav Kysela
a6f9df06af fix for recent namehint API (use get_hint function) 2006-11-30 13:42:33 +01:00
Takashi Iwai
a8e31a5589 Fix argument for snd_device_name_hint().
Fix the iface argument for snd_device_name_hint().
2006-11-06 17:27:50 +01:00
Jaroslav Kysela
ff26da1a3d aplay/arecord: Remove -n commad (obsolete, undocumented)
Also fix a small memory leak (missing snd_output_delete call).
2006-10-12 14:53:56 +02:00
Jaroslav Kysela
eee0b78320 aplay/arecord -L command: process properly end-of-line characters 2006-10-12 11:04:38 +02:00
Jaroslav Kysela
0b70f2e606 aplay/arecord: filter direction for -L command 2006-10-11 13:36:37 +02:00
Jaroslav Kysela
f6ed3aa3be aplay/arecord - use snd_device_name_hint() for -L command 2006-10-11 13:31:47 +02:00
Jaroslav Kysela
e32785dd55 aplay: add fflush(stdout) for -vvv verbosity
See bug#2454
2006-10-01 15:03:26 +02:00
Takashi Iwai
e45f2f4bf5 Don't call close() for the same fd twice in arecord
Since fmt_rec_table[].end() closes the file descriptor, we should
reset fd to -1 for avoiding closing the same fd once again.
2006-08-03 17:33:32 +02:00
Takashi Iwai
3de280c6f4 Use the right word in message of areacord
Use the word "stdin" instead of "stdout" when arecord is used.
2006-08-03 17:29:51 +02:00
Takashi Iwai
2759c90a67 Fix segfault in aplay when snd_pcm_name() == NULL
Fix segfault in aplay when snd_pcm_name() == NULL.
2006-08-03 17:27:35 +02:00
Takashi Iwai
ca5cc4b984 Fix misc bugs in arecord
- remove unused static declaration
- fix double close in signal handler
- fix NULL reference
- fix max file size to stdout with non-raw format
- code clean up
2006-05-18 12:33:35 +02:00
Takashi Iwai
56190f977b Fix endless loop of recording in arecord
Fix and clean up arecord (capture) code:
- fix the ending condition check
- fix invalid file close in raw mode
- clean up the code
2006-05-17 14:59:29 +02:00
Takashi Iwai
58bab1a4a7 Fix a compile warning in aplay.c
Fix a compile warning regarding the 2GB constant value.
2006-05-10 17:26:53 +02:00
Takashi Iwai
f92e100b56 Allow aplay/arecord to handle up to 2GB for WAV
Change the max_filesize value for WAV format to 2GB.
(It's still not 100% sure that WAV allows *exactly* 2GB, though.)
2006-04-26 16:14:51 +02:00
Takashi Iwai
9104d67f40 Fix arecord to quit properly at max file size
Fix arecord to quit properly at the max file size of the given format.
2006-04-26 16:11:57 +02:00
Takashi Iwai
2516c6c43e Don't show invalid plug example in the error message of aplay
Don't show invalid examples of usage with plug prefix
in the error message of aplay/arecord.
2006-04-18 15:14:43 +02:00
Takashi Iwai
2304da6822 Fix a typo in manpage
Fix a typo in manpage of aplay.
2006-03-13 19:38:36 +00:00
Takashi Iwai
9fb30e388f Fix compile warnings
Fix trivial compile warnings.
2005-12-16 18:44:14 +00:00
Takashi Iwai
5f9f0e817c split interleaved files in arecord when reaching 2GB
From: Dirk Jagdmann <doj@cubic.org>

This patch will split files in chunks of aprox. 2GB in the interleaved
recording mode of arecord. This is meant to overcome the 2GB filesize
limit of .wav files, which is easily reached when recording multiple
channels.
2005-12-06 11:25:47 +00:00
Takashi Iwai
504131b582 alternative peak meter for aplay
From: Dirk Jagdmann <doj@cubic.org>

This patch adds an alternative peak meter for aplay/arecord which is
enabled via three "-v" command line arguments. This new mode differs
from the old in a larger meter, no linefeeds for every meter update and
a static maximum peak (for 1s).
2005-12-06 11:23:00 +00:00
Jaroslav Kysela
9a335c4613 aplay/arecord - show the default settings
See bug#534 for more details.
2005-11-14 10:11:50 +00:00
Takashi Iwai
9dc666526f Disable NLS support when --disable-nls is passed
Disable NLS support when --disable-nls is passed (bug#1514).
2005-11-08 16:43:36 +00:00
Takashi Iwai
9d1ad2effd Fix compile with --disable-nls
Fix compile with --disable-nls.
2005-10-31 14:44:03 +00:00
Takashi Iwai
9fbb2b59f5 Use strtol() instead of atoi()
Use strtol() instead of atoi() for parsing parameters.
2005-10-18 15:22:25 +00:00
Takashi Iwai
71dd656ef1 Fix VU meter for S24_3 and big-endian
From: Martin Habets <errandir_news@mph.eclipse.co.uk>

Fixed VU meter calculation for S24_3 format and on big-endian.
2005-10-10 12:52:28 +00:00
Takashi Iwai
87ffccedfd Fix / clean up man pages
Fix / clean up man pages (bug#1386)
2005-09-02 17:36:40 +00:00
Jaroslav Kysela
9997c99faf aplay - remove EINTR handling (a job for alsa-lib) 2005-08-24 14:07:35 +00:00
Jaroslav Kysela
7fb39a9cd5 aplay - added -EINTR error code handling for read/write operations 2005-08-23 12:54:26 +00:00
Takashi Iwai
39ff48b437 Output help messages to stdout
Output help messages and lists to stdout instead of stderr.
2005-06-23 10:39:16 +00:00
Takashi Iwai
6343f35202 i18nize some programs
i18nize some programs with gettext.
2005-06-23 10:38:06 +00:00
Jaroslav Kysela
50414b817e Added -n (--list-devnames) command 2005-05-10 10:53:40 +00:00
Takashi Iwai
02244f65c0 Fix VU meter
Fixed VU meter output of 8 and 32bit samples.
2005-01-03 13:33:06 +00:00
Nicolas FRANCOIS
ca5f8cbcfe Fix hyphens in man pages
This patch converts hyphens to minus signs in the man pages (for options,
emails, or command line examples).

This patch also closes one font modifier in iecset.1.
(s/\fIfalse\fI,/\fIfalse\fP,/)

Signed-off-by: Nicolas FRANCOIS <nicolas.francois@centraliens.net>
2004-10-08 16:15:34 +00:00
Thomas Hood
c7faadde2d Describe what happens if aplay's --duration is zero
Signed-off-by: Thomas Hood <jdthood@yahoo.co.uk>
2004-09-24 09:51:45 +00:00
Clemens Ladisch
72ae8b1e79 various bugfixes
- don't parse -X option because such an option doesn't exist
- allow argument for --sleep-min option
- fix handling of .voc magic string
- fix handling of .voc files on big-endian machines
- remove superfluous "size" parameter from check_wavefile_space macro
- reallocate buffer only if needed in check_wavefile_space
- fix playback of >2GB .wav files
- skip over padding bytes in .wav files
- fix memory leak when playing .voc silence blocks
- fix file length when recording >2GB .wav files
- fix recording of >4GB files
2004-09-13 07:04:53 +00:00
Clemens Ladisch
ce70bf037a manpages: remove bogus .ID macro, use .TP for examples 2004-07-09 07:09:28 +00:00
Takashi Iwai
36b797f335 Show warning if the format is changed due to the file type.
(e.g. WAV yields little-endian)
2004-07-01 09:36:54 +00:00
Clemens Ladisch
d6b7774f7f print caption in hardware list only once 2004-06-10 15:50:58 +00:00
Clemens Ladisch
4b26b779a1 fix default buffer time setting when maximum buffer time is less than 250 ms 2004-05-03 10:03:57 +00:00
Jaroslav Kysela
25141facf0 amorac <amorac@ole.com>
arecord doesn't record if you don't indicate the time limit
The problem happens when the Wave-file is checked for it being even.
I have tried with the next change in aplay.c and it seems to work fine.
2004-04-27 13:38:59 +00:00
Jaroslav Kysela
2b6e61e353 Jeff Law
aplay.c relies upon a GCC extension that has been removed.
Specifically the "cast as lvalue" extension. This patch removes
this dependency.
2004-03-09 17:43:46 +00:00
Jaroslav Kysela
9a30928540 more 64-bit stuff 2004-03-09 13:18:29 +00:00
Jaroslav Kysela
8383eaf65c Fixed calc_count() routine - wav files with traling RIFF chunks sound ok now 2003-11-28 10:24:53 +00:00
Takashi Iwai
911e5f7248 - fixed the infinite loop in probing a card control. 2003-11-27 11:07:25 +00:00
Jaroslav Kysela
80476a0170 - changes against PCM API switch
- 1.0.0 version
- fixed amidi warning
2003-11-05 11:08:25 +00:00
Takashi Iwai
9b621eeac4 - fixed the order of period and buffer size setting.
firstly period then buffer size.  this will avoid the problem of
  rounding.
2003-09-11 11:23:58 +00:00
Jaroslav Kysela
0cc48a4ef8 More size_t off64_t changes 2003-08-27 11:12:50 +00:00
Jaroslav Kysela
5014a50176 Added snd_config_update_free_global() calls and 64-bit file offset support 2003-08-27 11:08:27 +00:00
Takashi Iwai
cb8494d8d4 - added --buffer-size and --period-size options.
- accept -h as the help :)
- fixed VU meter for 8 bit and negative values.
- updated man page.
2003-08-07 14:48:17 +00:00