| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This is required to when playing on a52: device, rewind is broken
in those plugins.
Credits to Michael Rans <mcarans@yahoo.co.uk> for finding this
workaround, and Tanu Kaskinen <tanuk@iki.fi> for providing
valuable feedback.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
|
| |
|
|
|
|
|
|
|
| |
Positive base volume can happen, if the alsa volume range has been limited. For
example, in an embedded environment it may be known that the sound device is
capable of louder output than what the speakers can handle, so setting the max
volume below 0 dB makes sense.
|
|
|
|
|
|
|
|
|
|
| |
Rewinding the ring buffer completely causes audible issues with DMAs.
Previous solution didn't work with tsched=0, and used tsched_watermark
for guardband, which isn't linked to hardware and could become really high
if underflows occurred.
Added separate parameter that can be tuned to hardware limitations and size
of DMA bursts.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
period settings we had before
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In virtual machines sound card clocks and OS scheduling tend to become
unreliable, adding various 'uneven' latencies. The adaptive algorithm
that handles drop-outs does not handle it this well: in contrast to
drop-outs on real machines that are evenly distributed, small and can
easily be encountered via the adpative algorithms, drop-outs in VMs tend
to happen abruptly, and massively, which is not easy to counter.
This patch simply disables timer based scheduling in VMs reverting to
classic IO based scheduling. This should help make PA perform better in
VMs.
https://bugzilla.redhat.com/show_bug.cgi?id=532775
|
| |
|
| |
|
|
|
|
| |
metrics so that we don't accidently set a buffer size that is suitable for tsched where we don't use tsched
|
|
|
|
| |
way we do it for initial opening
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- As discussed on alsa-devel it's probably better to initialize the
buffer size first, followed by the period size. If that fails try the
other way round. If that fails try to configure only buffer size. If
that fails try to configure only period size. Finally, try to
configure neither.
- Don't require integral periods anymore.
Both of these changes should help improving compatibility with various
weirder sound devices, such as TV cards.
|
| |
|
| |
|
|
|
|
| |
smart
|
| |
|
| |
|
|
|
|
| |
sources, following the scheme for sinks
|
|
|
|
|
|
|
| |
Exponentially increase the amount of time between smoother updates. We start
with a 2ms interval and increase up to 200ms intervals.
Smoother updates and the resulting linear regression take a fair amount of CPU
so we want to reduce the amount of updates.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- We now implement a logic where the sink maintains two distinct
volumes: the 'reference' volume which is shown to the users, and the
'real' volume, which is configured to the hardware. The latter is
configured to the max of all streams. Volume changes on sinks are
propagated back to the streams proportional to the reference volume
change. Volume changes on sink inputs are forwarded to the sink by
'pushing' the volume if necessary.
This renames the old 'virtual_volume' to 'real_volume'. The
'reference_volume' is now the one exposed to users.
By this logic the sink volume visible to the user, will always be the
"upper" boundary for everything that is played. Saved/restored stream
volumes are measured relative to this boundary, the factor here is
always < 1.0.
- introduce accuracy for sink volumes, similar to the accuracy we
already have for source volumes.
- other cleanups.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Error from snd_pcm_rewind() might mean we just woke up from suspend and
didn't have a chance to try to recover the stream since we didn't write
to it in between. Call try_recover() in such cases.
Note that for this to work kernel must return ESTRPIPE instead of EBADF
for rewind/forward attempts on suspended streams, so that
snd_pcm_recover() can recognize it should snd_pcm_resume() the stream.
This is not the case yet (2.6.31-rc5), patch is available.
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
|
| |
|
|
|
|
| |
if we didn't call snd_pcm_avail immediately before
|
| |
|
| |
|
|\
| |
| |
| | |
Merge commit 'e4d914c945c13d23b131d7ba75fbdd03cb6d0043'
|
| | |
|
| | |
|
|/
|
|
| |
finally fixed for granularity
|
|
|
|
| |
in one place
|
|
|
|
| |
to allow profiles mit multiple sinks or multiple sources
|
|
|
|
|
|
|
|
|
|
|
|
| |
Completely rework mixer logic. This now allows controlling a full set of
elements from a single sink's volume slider/mute button.
This also introduces sink and source "ports" that can be used to choose
different input or output ports with the UI. (i.e. "mic"/"line-in" or
"speaker"/"headphones".
The mixer paths and device maps are now configered in external
configuration files and can be tweaked as necessary.
|
|
|
|
|
|
| |
This should close rhbz #494851, mandriva bz #51234.
Probably the same as our own #572, launchpad #352732.
|
|
|
|
| |
becomes unused
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This allows us to forward the fixed latency directly from the sink to
the monitor source withut having to wait for pa_sink_put().
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reference volume is to be used as reference volume for stored stream
volumes. Previously if a new stream was created the relative volume was
taken relatively to the virtual device volume. Due to the flat volume
logic this could then be fed back to the virtual device volume.
Repeating the whole story over and over would result in a device volume
that would go lower, and lower and lower.
This patch introduces a 'reference' volume for each sink which stays
unmodified by stream volume changes even if flat volumes are used. It is
only modified if the sink volumes are modified directly by the user.
For further explanations see http://pulseaudio.org/wiki/InternalVolumes
|
| |
|
|
|
|
|
| |
This allows us to easily use different mixer controls for analog and
spdif output.
|
|
|
|
| |
Issue pointed out by Jaroslav Kysela
|