Age | Commit message (Collapse) | Author |
|
When the user wants to set a mixer with a value greater
than the maximum or smaller than the minimum, the mixer
is set at an undefined value.
This patch set purpose is to return a error if the input
value is out of range.
Signed-off-by: Baptiste Robert <baptistex.robert@intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Author-Tracking-BZ: 129089
|
|
tinycap: support streaming captured PCM to stdout
|
|
When user want to set a mixer control with a value out of range,
the mixer control will be set at its maximum
|
|
Clean up asoundlib.h header file
|
|
Setting binary controls
|
|
Add separate call for pcm prepare
|
|
Tinyalsa combines PREPARE and START calls to the driver in the pcm_start()
function. Typically, this is needed for making a driver allocating hardware
resources that are not related to a PCM stream.
Change-Id: Ic83fad784936bbebab28e8e425debd449182db88
Signed-off-by: Omair Mohammed Abdullah <omair.m.abdullah@linux.intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-Tracking-BZ: 73509
|
|
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
|
|
It is sometimes useful for testing to be able to stream the
captured PCM to another tool instead of being forced to save
it to a WAV file.
Using '--' instead of the target filename will send the raw
PCM to stdout (without any header).
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
|
|
|
|
|
|
S24_LE is 24 bit audio in a 32 bit sample size. Also
make the pcm_format_to_bits() function part of the API
since it will be required for tinycap.
|
|
|
|
Some sound cards update their controls due to external
events, such as HDMI EDID byte data changing when an
HDMI cable is connected. This API allows the count of
elements to be updated.
|
|
This replaces (and extends) the existing get/set_bytes
API, which is no longer required.
|
|
|
|
Remove unused constants and unimplemented functions.
|
|
tinyplay: Make error messages more meaningful
|
|
|
|
Compare file parameters with device capabilities and
print out the reason(s) why a certain file couldn't be played.
|
|
This uses the new pcm_params_* API.
|
|
This enables the capabilities of any given PCM to be queried.
Created with input from Priyesh Bisla and Gabriel Beddingfield.
|
|
|
|
Shutdown gracefully on ctrl-c signals
|
|
Add mixer_ctl_{get,set}_data()
|
|
Allow mixer controls to be accessed through the name, not only by id.
|
|
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
|
|
For binary controls we don't want to go through
mixer_ctl_{set,get}_value() as that will trigger many calls to our
get()/put() callback in the kernel. Set the entire payload at once
and trigger the get()/put() callback once.
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
|
|
Correctly fill the value for riff chunk size in the WAV file produced by tinycap
|
|
|
|
|
|
|
|
|
|
This allows stereo controls to be set with different
values for left and right.
|
|
Default start threshold was set to the same value (half of the buffer size)
for playback and capture in pcm_open(). The normal default value for capture
should be 1 frame.
|
|
Change-Id: I72948868c4da88556b022ca2c583a351c5019022
|
|
pcm: add error check for pcm_start in pcm_read
|
|
tinycap: Fix byte_rate and block_align values
|
|
- Otherwise, read will be tried even after pcm_start is failed.
This leads into blocking inside the read ioctl forever.
pcm_start can fail, for example in full-speed USB audio device,
in some H/W, due to the lack of bandwidth in USB bus,
|
|
Add a flag which can be passed to pcm_open (called PCM_NORESTART).
When set on a playback stream, calls to pcm_write will not
automatically attempt to restart an ALSA device in the case of an
underflow. Instead, it will propagate the first EPIPE error up to the
application to allow it to handle the underflow situation. Subsequent
calls to pcm_write will attempt to start the pipeline.
|
|
|
|
Improve the reading of the RIFF WAVE header so that unrecognised
chunks are skipped, which means that extra chunks are not played
as if they were audio data. This ensures that all channels for
multichannel playback line up correctly.
Change-Id: Ifdb3cb73b3c0bf41a1e271068d263cd01116616c
|
|
'byte_rate' and 'block_align' sections of the WAV header were calculated
using an invalid 'bits_per_sample' value. 'bits_per_sample' is now set
before it gets used by other fields.
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
|
|
|
|
Just like the pcm_get_error() API, simplify the mixer API
functions to return pointers to constant strings instead
of making copies of strings.
|
|
|
|
tinyplay: Use buffer size in bytes instead of frames
|
|
pcm_write expects to receive buffer size given in bytes,
but tinyplay sends as a parameter the size in frames, which
causes audio sample data loss for some scenarios where more
than 2 channels are used.
For example:
When using 6 channels and 1024 as period size:
-On tinyplay side
size=4096 (buffer_size)
-On pcm_write (pcm.c)
x.frames = count / (pcm->config.channels *
pcm_format_to_bits(pcm->config.format) / 8);
x.frames = 4096 / (6 * 16/8)
x.frames = 341.33 (decimal part is discarded, 4 bytes are lost every
pcm_write)
--
In this case, 4 bytes are lost, which causes a shift
of the channels.
Use buffer size in bytes in order to avoid this problem.
Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
|
|
pcm: Factor out pcm_start() from pcm_read()
|
|
When starting the stream we're doing the same as a start()
|