Age | Commit message (Collapse) | Author |
|
Wait delay
|
|
avail issue
|
|
The users of tinyalsa had no way of knowing on which subdevice a stream had
been created. A new API, "unsigned int pcm_get_subdevice(struct *pcm)" returns
it. This information is filled during the pcm_open()
Change-Id: Ie866e10e06ce6691ede09e2ca46a24441723ea8b
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
ALSA supports reporting of pcm_delay, make that availble to the users of
tinyalsa too
Change-Id: Ic460f5c55137d263fdf7b142503d3bd52c4b7ebd
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
Signed-off-by: Apelete Seketeli <apeletex.seketeli@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
Tinyalsa pcm_wait() function does not wait on POLLIN events,
preventing it to be used when recording audio data.
This allows pcm_wait to wait on POLLIN events.
Change-Id: I2e4bd0f4f57415add37213f8785a3602897f2c8a
Signed-off-by: Apelete Seketeli <apeletex.seketeli@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|
Change-Id: I0e6a04da5a4b122a3748b16c7eb01c4a224c3d84
Signed-off-by: Andy Hung <hunga@google.com>
|
|
add support for mmap read
|
|
pcm_get_htimestamp can now use CLOCK_MONOTONIC
|
|
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
|
|
avail will be wrong when avail is same with pcm->boundary.
|
|
|
|
Previously the timebase was not documented. Now a new pcm_open flag
can be used to specify the clock. If flag PCM_MONOTONIC is specified,
then pcm_open uses SNDRV_PCM_IOCTL_TTSTAMP with parameter
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC to request timestamps in CLOCK_MONOTONIC.
Change-Id: I40ce359cb38d686cbb2521fb0602a8a17ab4f925
|
|
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.
|
|
This enables the capabilities of any given PCM to be queried.
Created with input from Priyesh Bisla and Gabriel Beddingfield.
|
|
|
|
|
|
|
|
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.
|
|
- 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.
|
|
When starting the stream we're doing the same as a start()
|
|
pcm: Constify write buffers
|
|
Mark the write buffers as const - they won't be modified and this is
friendlier to applications.
|
|
The following code:
while (pcm->boundary * 2 <= LONG_MAX - pcm->buffer_size)
pcm->boundary *= 2;
Creates an infinite loop on systems where LONG_MAX != INT_MAX
(e.g. 64-bit systems). pcm->boundary is an unsigned int, and so
INT_MAX is the proper value to use.
|
|
Commit ee9ba87d modified the stop threshold for capture and
playback and caused pcm samples to be dropped during capture.
Restore initial stop threshold for capture and leave new value
for playback.
|
|
pcm_get_htimestamp() should return an error if stream state is not
running or draining as the time stamp returned by the driver is not
valid in other states.
Change-Id: Icdfe9554b26f57119d7a8d762a6ea6e8e3eaf370
|
|
The changes made for mmap mode broke the underrun detection by
pushing the stop_threshold beyong the buffer size.
This caused the hw_ptr to go past the app_ptr and
pcm_get_htimestamp() to report wrong values in case of underrun.
Change-Id: Ic671fdd09f3afb8a301a391b48788fd9bc99322d
|
|
Add mmap playback and no period IRQ support to pcm core.
|
|
Add the ability to explicitly set start, stop and silence thresholds during
tinyalsa's pcm_open. Setting any of these values to 0 in your pcm_config
structure will cause the system to use its old defaults.
|
|
pcm_get_htimestamp() returns the number of available frames
in the kernel driver buffers as well as the corresponding
high resolution time stamp.
|
|
This is essential for streams such as loopback devices that
do not transfer data.
|
|
|
|
|
|
|
|
|
|
|