[pulseaudio-discuss] redirecting audio from SAA7134 tv card

Tanu Kaskinen tanuk at iki.fi
Fri Oct 2 08:30:07 PDT 2009


to, 2009-10-01 kello 12:38 -0500, Luca DELLA GHEZZA kirjoitti:
> ok Tanu, first of all thx a lot for your reply.
> 
> I used pactl list to localize the correct input device, as well for the
> output, but I'm not shure is the right one.
> this is the output device I choose:
> Sink #0
> 	State: SUSPENDED
> 	Name: alsa_output.pci-0000_00_07.0.analog-stereo
> 	Description: Internal Audio Analog Stereo

<snip>

If the internal sound card is the card from which you want to hear the
tv card, then it's the right one. As Lennart said, you can actually use
pavucontrol to move the loopback stream wherever you want to.

> Anyway with this command
> 
> pactl load-module module-loopback
> source=alsa_input.pci-0000_01_08.0.analog-stereo
> sink=alsa_output.pci-0000_00_07.0.analog-stereo rate=32000 format=s16le
> 
> I can ear the tv audio from the standard output. That is fantastic,
> because I tried as well with the BT headset and it works.
> 
> Sadly the audio has a very poor quality:
> 1) the audio is pulsing, it seems that it pump up and down the master
> volume
> 2) the rate is wrong, because it seems an old 33 rpm listening at 45.

I don't have any idea about the volume pumping, but the rate problem
sounds like the tv card driver is broken: I guess pulseaudio opens the
device with rate 44100 or 48000 Hz, but the card actually sends stuff at
32000 Hz. In that case there should be regular audio drop-outs, since
the sink plays samples faster than what comes from the source.

If my guess is right, you might be able to work around the driver bug by
loading the source for the tv card manually in /etc/pulse/default.pa.
(Fixing the driver bug would of course be much better.) Add something
like this *above* module-detect-udev (I'm assuming it's a stereo device
and not mono):

load-module module-alsa-source source_name=tvcard device=hw:CARD channels=2 rate=32000

where CARD is the tv card name given by alsa. It can be found
in /proc/asound/cards. For example, I have this in
my /proc/asound/cards:

 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe024000 irq 16

The stuff in the square brackets is the card name, so in my case I have
a sound card with name "SB".

-- 
Tanu Kaskinen




More information about the pulseaudio-discuss mailing list