Re: [pulseaudio-discuss] My default sound devices are not retained after suspend or reboot

2010-02-16 Thread Maarten Bosmans
2010/2/12 Colin Guthrie gm...@colin.guthr.ie:
 'Twas brillig, and Sebastien Pimenta at 12/02/10 09:41 did gyre and gimble:
 Hi
 thanks for the tip, I'll give it a try but I'm using shoutcast, don't
 know if it will work too.
 Moreover my main problem is that the default pulseaudio card changes
 each time I reboot (got a EMU0404 - a webcam and a intel sound card).
 So it is annoying to change the settings each time I want to run a
 broadcast :/

 It wont be a problem. The default wont matter (it shouldn't change every
 time you boot but that is another issue) as once you move the *stream*
 once, the *stream* device choice will be recorded and restored. The
 default device is only ever used if no more appropriate device for a
 given stream is available.

But using the gst-launch command results in PulseAudio recognizing the
stream as 'gst-launch'. So in order to have PulseAudio remember the
settings of several different streams all started with a gst-launch
command, you have to set some environment variables. See
http://pulseaudio.org/wiki/ApplicationProperties

The other option is to set the device parameter of the GstPulseSrc
element, but you'll lose the advantage of PA remembering the selected
output device.

Maarten


 Col

 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] PulseAudio - Network Streaming to sound card issues.

2010-02-16 Thread hyperstream
Here is a explaination of how ive been about things and what my issues
are:

Computers: 
laptop - Lucid Ubuntu 10.4 - PulseAudio 0.9.21-32-g8478 Compiled with libary 
version: 0.9.14
desktop- Karmic Ubuntu 9.10 - PulseAudio 0.9.19 Compiled with Libary Version: 
0.9.14

Desired setup:
laptop = slave
desktop= master

I'm trying to get my Desktop to broadcast the music on BOTH laptop and 
desktop's speakers

Software/Gui's:
pavucontrol
pavdevchooser
paprefs

The only way i could obtain any kind of results was by using pavdevchooser, 
with the following settings:

In the paprefs of BOTH the desktop  laptop, gui i have the following:

  Network Access
   Make discoverable PulseAudio network sound devices available locally
  Network Server
   Enable network access to local sound devices
   Allow other machines on the LAN to discover local sound devices
   Don't Require authentication

Everything else is unticked, including the multicast/RTP tab and Simultaneous 
Output

At this stage, pavdevchooser can see both machine's server on each computer.
how ever the only way i can get audio played on an oposite computer, is it set, 
lets say in this case the hyperstream-desktop to have a default server of the 
hyperstream-laptop, then if i open a rhythmbox player and play, it will play 
ONLY on the hyperstream-laptop, but not on its OWN speakers.

And vice versa if i do it around the otherway.

How ever someone in the #pulseaudio channel, told me pavdevchooser is outdated, 
and to use pavucontrol.
also that on the laptop i should only enable the Network server and the two sub 
options, and on the master to enable the network access sub option.

The only other horrible way i have manage to stream music is to setup the 
laptop as a multicast/RTP receiver, and the desktop as a multicast/RTP sender, 
but as im sure you are aware it goes out of tune, out of sync, and isnt very 
nice at all.

I had a friendly user in #pulseaudio attempt to show me how to use the pacmd to 
do it 'manually', but i have failed lol, i will demostrate how to reproduce the 
error:

(THIS IS DONE ON THE MASTER (desktop - the desktop machine has itself set as 
server at this stage and is playing sound through its own speakers))

run pacmd in a terminal:
load-module module-tunnel-sink server=hyperstream-laptop
list-sinks

(THIS IS WHERE I GET LOST, i was asked to take note of the 'name of tunnel 
sink' and the 'local sink')

2 sink(s) available.
  * index: 0
name: alsa_output.pci-_00_06.1.analog-stereo
driver: module-alsa-card.c
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE 
priority: 9959
volume: 0:  47% 1:  47%
0: -19.63 dB 1: -19.63 dB
balance 0.00
base volume: 100%
 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 1 KiB
max rewind: 64 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
 Stereo
used by: 0
linked by: 2
configured latency: 0.00 ms; range is 1.00 .. 371.52 ms
card: 0 alsa_card.pci-_00_06.1
module: 4
properties:
alsa.resolution_bits = 16
device.api = alsa
device.class = sound
alsa.class = generic
alsa.subclass = generic-mix
alsa.name = ALC888 Analog
alsa.id = ALC888 Analog
alsa.subdevice = 0
alsa.subdevice_name = subdevice #0
alsa.device = 0
alsa.card = 0
alsa.card_name = HDA NVidia
alsa.long_card_name = HDA NVidia at 0xf96f irq 21
alsa.driver_name = snd_hda_intel
device.bus_path = pci-:00:06.1
sysfs.path = /devices/pci:00/:00:06.1/sound/card0
device.bus = pci
device.vendor.id = 10de
device.vendor.name = nVidia Corporation
device.product.id = 0371
device.product.name = MCP55 High Definition Audio
device.form_factor = internal
device.string = front:0
device.buffering.buffer_size = 65536
device.buffering.fragment_size = 32768
device.access_mode = mmap+timer
device.profile.name = analog-stereo
device.profile.description = Analog Stereo
device.description = Internal Audio Analog Stereo
alsa.mixer_name = Realtek ALC888
alsa.components = HDA:10ec0888,18491e01,0011
module-udev-detect.discovered = 1
device.icon_name = audio-card-pci
ports:
analog-output: Analog Output 

Re: [pulseaudio-discuss] PulseAudio - Network Streaming to sound card issues.

2010-02-16 Thread Colin Guthrie
'Twas brillig, and hyperstream at 16/02/10 12:08 did gyre and gimble:
 run pacmd in a terminal:
 load-module module-tunnel-sink server=hyperstream-laptop
 list-sinks
 
 (THIS IS WHERE I GET LOST, i was asked to take note of the 'name of tunnel 
 sink' and the 'local sink')
 
 2 sink(s) available.
   * index: 0
   name: alsa_output.pci-_00_06.1.analog-stereo

 index: 1
   name: 
 tunnel.hyperstream-laptop.local.alsa_output.pci-_00_1b.0.analog-stereo

These are the two names here.

 load-module module-combine 
 master=alsa_output.pci-_00_06.1.analog-stereo slaves=tunnel.remote.sink
 Module load fails.

Your slaves name is wrong. It's not the name assigined to the sink
itself which you listed above.

Also, I believe that the combine sink no longer needs a master argument
and you can support all the devices as slaves.

 load-module module-combine
slaves=alsa_output.pci-_00_06.1.analog-stereo,tunnel.hyperstream-laptop.local.alsa_output.pci-_00_1b.0.analog-stereo#

 As you can see, i cannot find a name for the local sink tunnel, so im using 
 the name of the index 0 sink.

No you're not, you're using a made up name :p


 PLEASE NOTE: on the after the last steps, the desktop is sending 180KB's 
 outgoing. the laptop is not receiving anything.

Does the tunnel work by itself? Have you made sure that it is physically
working before you try and use it as a slave of the combined sink? You
should test each stage.

You can test easily via:

PULSE_SINK=tunnel.hyperstream-laptop.local.alsa_output.pci-_00_1b.0.analog-stereo
mplayer /path/to/a/file.mp3

(or any PA application)

You could also just produce some sound locally then move the stream to
the tunnel from the Playback tab in pavucontrol.

Hope this helps.

Col




-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] system-wide daemon

2010-02-16 Thread Markus Rechberger
On Thu, Feb 11, 2010 at 12:29 AM, Lennart Poettering
lenn...@poettering.net wrote:
 On Wed, 10.02.10 09:59, Markus Rechberger (mrechber...@gmail.com) wrote:

 this is another wrong assumption, libusb uses raw USB access, if every
 user would have access
 to USB some devices might be damaged.
 Sane would need to be serverbased, full raw access to the usb bus
 would seriously be a security
 risk (imagine RAW USB access to a USB harddisk).

 This is nonsense. Since ages we by default add ACLs for the console
 user for libusb devices for cameras, scanners, and so on. That too
 works via udev-acl.

Lennard, don't spread nonsense around, if you have raw access to a camera there
might be the possibility to update the firmware and damage the device.
If you would have little experience with hardware you should know about that.
Your ACL/libusb restriction won't make this situation better it's
still a security risk.
Although just drop libusb as an example.

Markus


 You are spreading FUD and lies. You are annoying. And are stealing my
 time. I'd prefer if you'd waste other people's time, and stop lighting
 up the flames of this flamewar over and over again.

 Lennart

 --
 Lennart Poettering                        Red Hat, Inc.
 lennart [at] poettering [dot] net
 http://0pointer.net/lennart/           GnuPG 0x1A015CC4
 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] system-wide daemon

2010-02-16 Thread Lennart Poettering
On Tue, 16.02.10 20:48, Markus Rechberger (mrechber...@gmail.com) wrote:

 Lennard, don't spread nonsense around, if you have raw access to a camera 
 there
 might be the possibility to update the firmware and damage the device.
 If you would have little experience with hardware you should know about that.
 Your ACL/libusb restriction won't make this situation better it's
 still a security risk.
 Although just drop libusb as an example.
 
 Markus

Marcus, then you better run quickly and complain to the udev folks,
because they have been shipping udev with libusb devices accessible to
console users sine about forever. Just plug in a USB scanner on a
reasonably new Linux machine and run ls -al /dev/bus/usb/*/*. Then,
look out for the + in the permissions column and run getfacl on that
file, and you'll see that the logged in user may access the device
node.

But all of this has nothing to do with PA. So please go away, and
complain elsewhere.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] system-wide daemon

2010-02-16 Thread Markus Rechberger
On Tue, Feb 16, 2010 at 10:17 PM, Lennart Poettering
lenn...@poettering.net wrote:
 On Tue, 16.02.10 20:48, Markus Rechberger (mrechber...@gmail.com) wrote:

 Lennard, don't spread nonsense around, if you have raw access to a camera 
 there
 might be the possibility to update the firmware and damage the device.
 If you would have little experience with hardware you should know about that.
 Your ACL/libusb restriction won't make this situation better it's
 still a security risk.
 Although just drop libusb as an example.

 Markus

 Marcus, then you better run quickly and complain to the udev folks,
 because they have been shipping udev with libusb devices accessible to
 console users sine about forever. Just plug in a USB scanner on a
 reasonably new Linux machine and run ls -al /dev/bus/usb/*/*. Then,
 look out for the + in the permissions column and run getfacl on that
 file, and you'll see that the logged in user may access the device
 node.


Sure but this doesn't mean that it's right and is a security issue.
It's like making CPU levels obsolete just because someone made
the mistakes to run everything at Kernellevel.
Almost all available USB TV Tuners use to run with a firmware nowadays,
even by loading the wrong firmware into a chip a chip can blow up.
If every user has the possibility to access devices at a raw level
(not at a defined
API level) ...everyone can do that.

 But all of this has nothing to do with PA.

Indeed, but this ACL example came up by you guys, so you should better
learn that
this is not always the correct way. With your example this even turns
out to be a security risk.

Markus
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] set volume all sinks

2010-02-16 Thread Lennart Poettering
On Mon, 15.02.10 17:02, poort (po...@telenet.be) wrote:

 Thanks,

 But I was thinking on a script that will be called with GDM's
 Postlogin default script.The script should find the user's default
 sink and put the volume to max or 80 % with set-sink-volume users
 default sink 55000

Uh, that's a very bad idea, as for cards with builtin amplifiers (such
as USB speakers) 80% will blast off your ears. 80% has no defined
meaning and will result in completely different volumes on different
hardware. 

If at all use alsctl init 0 which is a lot smarter about coming up
with good default, based on the hw in use.

But that said it is presumably a much better idea to use the default
logic which saves/restores the volume settings between sessions, as
Colin pointed out.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] What is latency? And other related questions

2010-02-16 Thread Lennart Poettering
On Fri, 12.02.10 09:20, David Henningsson (launchpad@epost.diwic.se) wrote:

  What happens here either there is a large period (~30 seconds to
  90 seconds) of silence before audio begins to play fine, or I get
  bursts of audio (5-10 seconds) followed by very long bursts of
  silence. I know this is related to prebuffering, but beyond that I
  am lost.
 
 First, make sure that your tlength is at least two-three time as large
 as mixlen. My guess is that you supply a tlength but for some reason
 fail to fill it properly, so you get underruns on the PA frontend, which
 makes PA increase tlength even more, leading to higher prebuffering (and
 latency).

Uh, 2-3x seems very arbitrary to me. I don't see where such a rule
would ever apply.

  2. How do the meaning of pa_stream_writable_size and pa_simple_get_latency 
  differ in terms of the fill state of the buffer?
 
 pa_stream_writable_size returns the number of bytes that may be written
 using pa_stream_write. 

Actually, to be fully correct you are welcome to write both less or
more than pa_stream_writable_size() returns. 

Generally however the rule is that you should pass at least what it
returns. A good reason to pass more is when your app generates blocks
of PCM and hence cannot generate the exact number of samples
_writable_size() indicated.

A reason to pass less is for example when you are reaching the end of
your stream, or otherwise want to (temporarily or not) stop passing
audio data.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] What is latency? And other related questions

2010-02-16 Thread Lennart Poettering
On Sun, 14.02.10 11:13, David Henningsson (launchpad@epost.diwic.se) wrote:

 
 Tristin Celestin wrote:
  Is there a downside to making a version of pa_stream_writable_size 
  available in the
  simple API? 
 
 Good question. In your use case, can see the use for a function
 returning how many bytes that can be written to pa_simple_write without
 pa_simple_write blocking.
 
  Why would I want to specify the buffer attributes in the simple API with
  a buffer_attr, but not be able to query the state of the buffer while 
  writing to it?
 
 If there is no free space in the buffer, the simple API blocks until all
 data you send to it has been written to the buffer. This is a good
 approach for some applications, although your app doesn't seem to be one
 of them. Perhaps it is a PA design decision that apps that don't want
 pa_simple_write to block, shouldn't use the simple API, I don't
 know.

Yes, that is exactly the case. The simple API is supposed to be a
simplified, synchronous version of the complex, asynchronous API.

_writable_size() only really makes sense in an asynchronous API. WHich
is why I see no point in adding it to the simple API.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] hda intel + Line-In + ext. mic

2010-02-16 Thread Lennart Poettering
On Thu, 11.02.10 00:23, Николай Коротинский (magedon...@gmail.com) wrote:

 Hi all,
 
 I have a laptop Amilo Si 3655 and Ubuntu 9.10 64

Please read this before reporting bugs upstream.

http://pulseaudio.org/wiki/UbuntuBugs

 I have 2 mic: internal and external.
 Internal mic work successfully.
 But external Mic and Line-In work as outputs.
 
 Line-In output surround channel.
 Mic output Center and LFE channels.
 
 But sometime I need external Mic and Line-In.
 How I can change channels on Line-In and Mic?

This is called Jack Retasking.

Most likely you have some kind of low-level ALSA mixer control that
allows you to retask your jacks. Please check whether you can find one
with alsamixer -c0.

If you find a control like this and it is apparently not set properly
when PA changes device profiles then this is probably something that
should be fixed in alsa.

i.e. when the surround51:x device string is opened ALSA should toggle the
retasking controls to enable 6ch mode, and when the device is closed
again or opened as front:x ALSA should toggle the retasking control
back to 2ch duplex mode.

This would then work similarly to how the SPDIF low-level controls are
toggled when spdif:xxx is opened/closed.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] system-wide daemon

2010-02-16 Thread Lennart Poettering
On Wed, 10.02.10 18:49, Jeremy Nickurak (pulseaudio-disc...@trk.nickurak.ca) 
wrote:

 A question about the console-kit approach, where the user physically near
 the sound hardware is the person that gets to use it...
 
 A favorite trick of mine is to ssh into a machine, and use the sound
 hardware there to announce some kind of event. It might be an alarm to wake
 up a family member, or a remotely-generated event alert. It might not be
 SSH, it might be a cron job, or a CGI...
 
 Assuming I'm the administrator of the machine, how can I pull off this trick
 in the context of console-kit? If it's even possible, it sounds like I'd
 have to suspend the existing pulseaudio connection by assigning rights to a
 virtual console of some kind, which would then have the opportunity to use
 the audio device until it released it.

If you are root you can do anything you want, including doing the
baddest things to your audio devices you want.

And as mentioned a gazillion of times in recetn distros even non-root
users can do this, regardless whether they are logged in or not, if
they are a member of the audio group.

 Incidentally, this seems to be the same use case that vision-impaired users
 were dealing with recently: How can system-level processes inject their
 inputs to the speakers without a system-level pulseaudio daemon sharing that
 hardware?

Nope, there should not be a system-level process generating the speech
audio. It should be a user/session process. Now, unfortunately the
current solutions are mostly based on system daemons, but that doesn't
mean that that would be the correct way to handle these
things. Because it is not.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] system-wide daemon

2010-02-16 Thread Luke Yelavich
On Wed, Feb 17, 2010 at 12:25:27PM EST, Lennart Poettering wrote:
 On Wed, 10.02.10 18:49, Jeremy Nickurak (pulseaudio-disc...@trk.nickurak.ca) 
 wrote:
  Incidentally, this seems to be the same use case that vision-impaired users
  were dealing with recently: How can system-level processes inject their
  inputs to the speakers without a system-level pulseaudio daemon sharing that
  hardware?
 
 Nope, there should not be a system-level process generating the speech
 audio. It should be a user/session process. Now, unfortunately the
 current solutions are mostly based on system daemons, but that doesn't
 mean that that would be the correct way to handle these
 things. Because it is not.

There are a group of us gradually moving everything a11y, including speech 
output/audio into user sessions, and as discussed last month, an idle like user 
that consolekit/udev knows about is needed for those speech/audio processes 
that users want to use so they can get a text console login screen to be 
usable. Should nobody else get to this in the coming months, this is on my 
agenda.

Luke
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] Add rtkitctl manpage

2010-02-16 Thread Lennart Poettering
On Mon, 18.01.10 14:27, Luke Yelavich (them...@ubuntu.com) wrote:

 As Lennart asked about the rtkitctl manpage Ubuntu has, here is a
 patch against rtkit git.

Thanks a lot!

Applied.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] rtkit: Add client-side testing of properties

2010-02-16 Thread Lennart Poettering
On Sun, 07.02.10 13:59, David Henningsson (launchpad@epost.diwic.se) wrote:

 To complete the previous patch that implemented properties in rtkit,
 here's the client-side code that tests that the properties work, and make
 them more accessible for the casual C programmer.

Thanks a lot!

Applied (with trivial changes).

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Automatically change 'Default device'?

2010-02-16 Thread Lennart Poettering
On Mon, 15.02.10 17:13, Ng Oon-Ee (ngoo...@gmail.com) wrote:

  Wait no longer!
  
  http://colin.guthr.ie/2010/02/this-is-the-route-to-hell/
  
  Col
  
 A nice read Colin, thanks.
 
 /me also wonders whether all these 'restore' options need to be made
 much more transparent. At the very least with a checkbox somewhere
 saying save per-stream routings. I believe in the simplest use cases
 (internal laptop speakers or BT headset on the move, USB headset at
 home), it would be advantageous to be able to specify that stream
 routings should NOT be saved, but that a device preference should
 instead be used.
 
 Of course, this is up to those who write the code (and I believe the
 same thing could be achieved by NOT loading module-stream-restore). I
 know that it would cover about 90% of my personal use-case though.

My own thoughts about all of this are basically:

1) I think it is bad UI to expose the entire history of devices to the
   user and allow him to rearrange items in there. I am aware that KDE
   folks disagree with me on this and like stuff like that and Colin
   is willing to please them.

2) We definitely should save the device history for streams, and when
   it comes to  finding a device for a stream go backwards finding the 
   newest entry that is applicable and apply it. All of this should be
   automatic and opaque to the user.

3) If that didn't result in anything try to find a good default by
   some other means, i.e. by used intended roles and stuff like
   that. Should be automatic and opaque to the user as well.

4) The UI would allow the user to fix any setting the system chose
   and the system will then remember as good as possible.

I think this is a simple enough scheme. Certainly, the logic in #3
(especially) might not be obvious to the user, but that doesn't
matter: we have to default to something, and it's better to pick the
most likely device in an non-obvious way than pick a completely random
one.

As I understood Colin's blog his suggestion mostly differs in that he
wants apps to get full access to the device history and change it, so
that what I call the history hence becomes more of a priority
list.

But uh, while I don't think that would be good idea UI-wise, if that's
what makes KDE folks happy this should not be a stumbling block to to
merge both approaches.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] RFC stream-restore save_sink|source flag reset more musings on device selection.

2010-02-16 Thread Lennart Poettering
On Fri, 05.02.10 10:11, Colin Guthrie (gm...@colin.guthr.ie) wrote:

 Hi,
 
 Recently I tried to write a client that would nuke the device part of
 the stream restore database.
 
 This works fine but any active streams that match the rule will not have
 their save_sink|source flag reset when this happens.
 
 I think the following patch does this but just wanted to double check
 this wouldn't trigger some other unwanted behaviour (e.g. in gnome apps)
 before I push it.
 
 I also generate a sink input|source output change subscription message
 here. This is arguably not correct as the sink input itself is not
 changing, although the rules governing it's routing have. In lieu of a
 proper subscription system for routing rules I just fire this one.
 
 Comments?
 
 http://colin.guthr.ie/git/pulseaudio/commit/?id=7a7c7e53914f641686fe3fe59d0772e78cdf86ca

Hmm, we actually try pretty hard to supress subscription events if we
can. Since the only thing you change about the sink input is the
save_sink flag I see no reason to fire the event. The primary purpose
of the subscription event is to notify clients about changes, but they
have no access to the save_sink flag at all.

I'd advise to not fire the subscription event here, unless an existing
module really needs this. (Though generally I am tempted to say that
modules that care about save_sink and the routing stuff should use
synchrnous hooks rather than asynchronous subscriptions)

But otherwise the patch looks fine to me, and makes a lot of sense to
me.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] regression in pacat

2010-02-16 Thread Lennart Poettering
On Thu, 11.02.10 23:34, Colin Guthrie (gm...@colin.guthr.ie) wrote:

 
 'Twas brillig, and Colin Guthrie at 11/02/10 22:52 did gyre and gimble:
  'Twas brillig, and pl bossart at 11/02/10 21:41 did gyre and gimble:
  Hi Lennart, hope you had a good time in India.
  paplay seems to be broken in git master, git bisect tells me the culprit 
  is:
 
  fb55798a3eb73b4c00225232408b766f74533409 is first bad commit
  commit fb55798a3eb73b4c00225232408b766f74533409
  Author: Lennart Poettering lenn...@poettering.net
  Date:   Fri Jan 15 01:25:21 2010 +0100
 
  pacat: allow configuration of latency in msec
 
  With this commit paplay is stuck, there's no audio out and no update
  of time/latency.
  
  Ahh so that's where the problem lies... I'll try and fix if Lennart
  doesn't beat me to it.
 
 This fixes it for me:
 ff2091b pacat: Don't use any buffer attr if we don't set any
 latency/process time params
 
 May not be the nicest fix in the world but it'll do until Lennart can
 review properly :)

Actually I had I really wanted to write what I wrote. i.e. passing
NULL as buffer_attr means use the default latency (which is
250ms). Passing a buffer_attr with all values set to -1 means i don't
care about latency (which ideally means 2s latency).

So, yes, I actually meant what I did in fb55798a... Now the question
is why this doesn't work for Pierre.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] regression in pacat

2010-02-16 Thread pl bossart
 Actually I had I really wanted to write what I wrote. i.e. passing
 NULL as buffer_attr means use the default latency (which is
 250ms). Passing a buffer_attr with all values set to -1 means i don't
 care about latency (which ideally means 2s latency).

 So, yes, I actually meant what I did in fb55798a... Now the question
 is why this doesn't work for Pierre.

I will retry tomorrow on a standard Fedora12/HDAudio config. Could be
that my setup doesn't work with 'default' values, I always work with
-1 values or way-smaller ones.
-Pierre
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] new virtual-sink and virtual-source modules

2010-02-16 Thread Lennart Poettering
On Thu, 11.02.10 16:47, pl bossart (bossart.nos...@gmail.com) wrote:

 The patches I am about to post provide two modules that could be of
 interest to the PulseAudio community.
 
 module-virtual-sink is a template for the addition of PCM processing.
 It's basically based on the LADSPA module, I use it for internal
 experiments and will enhance it in the future.

This definitely makes sense, especially when we'll eventually get the
filtering logic I have mentioined a couple of times.

 To enable both modules, just add these lines in default.pa
 load-module module-virtual-sink sink_name=vsink
 set-default-source vsink
 load-module module-virtual-source source_name=vsource uplink_sink=uplink
 set-default-source vsource

I have merged both modules to master now since they look mostly good,
and are not invasive. I'll have a closer look soon and fix what there
is left to fix.

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] [PATCH 0/2] HFP AG integration with PulseAudio

2010-02-16 Thread Lennart Poettering
On Wed, 03.02.10 16:38, João Paulo Rechi Vita (jprv...@gmail.com) wrote:

 On Tue, Feb 2, 2010 at 09:10, Lennart Poettering lenn...@poettering.net 
 wrote:
  On Fri, 29.01.10 12:53, João Paulo Rechi Vita (jprv...@gmail.com) wrote:
 
   Any help on testing and getting this working together or comments on the
   topic would be appreciated.
  
   [1] http://www.spinics.net/lists/linux-bluetooth/msg04250.html
   [2] http://www.spinics.net/lists/linux-bluetooth/msg04251.html
  
  
  
 
  I forgot to add, suspending of the sink/source seemed to cause
  disconnection by the AG, so you might want to disable
  module-suspend-on-idle when testing. BTW, Lennart, is there any way to
  mark a source/sink to not be suspended?
 
  Not really. As Colin mentioned you can make suspending a simple NOOP
  which does what you want. That said I do believe it makes a lot of
  sense to actually mark sinks as suspendable. I.e. Introduce a sink
  flag PA_SINK_SUSPENDABLE or so that we flag for all sinks that
  actually support suspending and leave unset fo all others, like yours.
 
 
 Even after figuring out suspending wasn't really causing any problem
 to my tests, it sounds like a good thing to have support for.
 
  Anyway, the patches look really good to me. I'd be happy to merge
  this, though is the bluez counterpart merged yet? (sorry, haven't
  closely followed bluez development for a while)
 
 
 BlueZ part is still not merged, the code is under peer-review now but
 it's likely to be merged soon. There may be some modification on which
 signals to listen in order to load module-bluetooth-device (for HFP
 case only), also. I'll send a patch rebased against git's head when
 the merging time comes.

Is this merged now into Bluez? Or even released?

If so I should probably merge your code into our master. Could you
publish this on one of your public git trees?

Lennart

-- 
Lennart PoetteringRed Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/   GnuPG 0x1A015CC4
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] new virtual-sink and virtual-source modules

2010-02-16 Thread pl bossart
 module-virtual-sink is a template for the addition of PCM processing.
 It's basically based on the LADSPA module, I use it for internal
 experiments and will enhance it in the future.

 This definitely makes sense, especially when we'll eventually get the
 filtering logic I have mentioined a couple of times.

Humm, I am not sure I remember having seen anything on this 'filtering
logic'. Would you mind providing a pointer to previous posts?

 I have merged both modules to master now since they look mostly good,
 and are not invasive. I'll have a closer look soon and fix what there
 is left to fix.

Cool. Thanks in advance for your feedback.
What I am now looking at is a way to handle sinks and sources in a
more optimized manner for low-latency speech calls: it doesn't make
any sense power-wise to handle uplink and downlink paths in completely
separate threads with their own timers. You use the same latency
settings,sampling frequencies and channel-map on both paths, relying
on completely independent structures results in 2x wakeups for no good
reason. Plus if you start doing processing you need inter-thread
communication for acoustic enhancements. Maybe we could handle both
threads with the same wake-up events (a single rtpoll?), or combine
sink/source threads. I know no one cares with a 50 Wh battery, things
are different in a handheld
- Pierre
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss