[mythtv-users] 11/20 CVS and ALSA

Rob Rosenfeld mythtv.org at rosenfeld.to
Sun Nov 21 07:06:30 UTC 2004


I have been running 0.16 with ALSA with no audio problems for a month or 
so.  However, I was affected by the bug where the frontend would freeze 
as long as it was in a recording, so I decided to upgrade to CVS.  I 
built CVS with both OSS and ALSA support.  My kernel (2.6.9) has ALSA w/ 
OSS emulation configured.  It works fine (and fixes my freezes!) as long 
as I configure audio to use OSS devices in mythfrontend.  I have also 
confirmed that ALSA still works (there have been no changes) by running:

$ alsaplayer -o alsa some.mp3

Since I had it working before and have been doing a reasonable job of 
keeping up with the mailing list, I thought I understood how to 
configure audio for CVS.  I have attempted the following to get ALSA 
working:

In Utilities/Setup -> Setup -> General ) I set
Audio ouput device:  ALSA:default
Mixer device:            default
Mixer controls:           PCM

I have also tried with Master under Mixer controls.

I have tried both /dev/dsp and ALSA:default for the video card setup in 
mythsetup.  I have a PVR-250, so not sure if this even matters.

When I try to watch live TV or a recording, I see the following output 
on the console where I started mythfrontend and a similar warning 
intervenes in mythfrontend. 

$ mythfronted
.
.   skipped output
.
Timestamp Initializing audio parms from stream #0.
Timestamp Initializing audio parms from stream #0.
Timestamp Initializing audio parms from stream #0.
Could not bind to UDP notify port: 6948
Timestamp Initializing audio parms from stream #0.
Timestamp Opening audio device 'default'
Timestamp mixer unable to find control Master
Timestamp mixer unable to find control Master
Timestamp mixer unable to find control PCM
Timestamp mixer unable to find control PCM
Timestamp mixer unable to find control PCM
Timestamp Changing from None to WatchingLiveTV
Timestamp Decoder not alive, and trying to play..
Timestamp Changing from None to None
$

I noticed that it mentions nothing about ALSA which I swore 0.16 used to 
do and I know OSS does.
I also noticed the UDP error and don't know if it's relevant.  The 
following shows nothing on that port:

# netstat -natp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         
State       PID/Program name
tcp        0      0 0.0.0.0:2442            0.0.0.0:*               
LISTEN      7078/mtd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               
LISTEN      6472/mysqld
tcp        0      0 0.0.0.0:6543            0.0.0.0:*               
LISTEN      3716/mythbackend
tcp        0      0 0.0.0.0:6544            0.0.0.0:*               
LISTEN      3716/mythbackend
tcp        0      0 0.0.0.0:80              0.0.0.0:*               
LISTEN      6494/apache2
tcp        0      0 0.0.0.0:22              0.0.0.0:*               
LISTEN      6477/sshd
tcp        0      0 0.0.0.0:443             0.0.0.0:*               
LISTEN      6494/apache2


My .asoundrc is attached in case it's useful. It copied and tweaked from 
http://www.mythtv.info/moin.cgi/DigitalSoundHowTo which Jarod pointed 
to, so the comments about sound card type are not accurate.  (It works 
great, thanks)

Thanks for taking a look.  Any help appreciated.

Rob
-------------- next part --------------
# Override the default output used by ALSA.
# If you do not override the default, your default
# device is identical to the (unmixed) analog device
# shown below.  If you prefer mixed and/or digital
# output, uncomment the appropriate four lines below
# (only one slave.pcm line).
pcm.!default {
  type plug
## Uncomment the following to use mixed analog by default
#  slave.pcm "dmix-analog"
## Uncomment the following to use unmixed digital by default
#  slave.pcm "digital-hw"
## Uncomment the following to use mixed digital by default
  slave.pcm "dmix-digital"
}

# Alias for analog output on the nForce2 (hw:0,0)
# - This is identical to the device named "default"--which
# always exists and refers to hw:0,0 (unless overridden)
# - Therefore, we can specify "hw:0,0", "default", or "analog"
# to access analog output on the nForce2
pcm.analog {
 type plug
 slave.pcm "analog-hw"
}

# Control device (mixer, etc.) for the nForce2 card
ctl.analog {
 type hw
 card 0
}

# Alias for (rate-converted) mixed analog output on the
# nForce2 (hw:0,0)
#  - This will accept audio input--regardless of rate--and
# convert to the rate required for the dmix plugin
# (in this case 48000Hz)
pcm.mixed-analog {
 type plug
 slave.pcm "dmix-analog"
}

# Control device (mixer, etc.) for the nForce2 card
ctl.mixed-analog {
 type hw
 card 0
}

# Alias for (rate-converted) digital (S/PDIF) output on the
# nForce2 (hw:0,2)
#  - This will accept audio input--regardless of rate--and
# convert to the rate required for the S/PDIF hardware
# (in this case 48000Hz)
pcm.digital {
 type plug
 slave.pcm "digital-hw"
}

# Control device (mixer, etc.) for the nForce2 card
ctl.digital {
 type hw
 card 0
}

# Alias for mixed (rate-converted) digital (S/PDIF) output on the
# nForce2 (hw:0,2)
#  - This will accept audio input--regardless of rate--and
# convert to the rate required for the S/PDIF hardware
# (in this case 48000Hz)
pcm.mixed-digital {
 type plug
 slave.pcm "dmix-digital"
}

# Control device (mixer, etc.) for the nForce2 card
ctl.mixed-digital {
 type hw
 card 0
}

# The following devices are not useful by themselves.  They
# require specific rates, channels, and formats.  Therefore,
# you probably do not want to use them directly.  Instead use
# of of the devices defined above.

# Alias for analog output on the nForce2 (hw:0,0)
# Do not use this directly--it requires specific rate,
# channels, and format
pcm.analog-hw {
 type hw
 card 0
 # The default value for device is 0, so no need to specify
}

# Control device (mixer, etc.) for the nForce2 card
ctl.analog-hw {
 type hw
 card 0
}

# Alias for digital (S/PDIF) output on the nForce2 (hw:0,2)
# Do not use this directly--it requires specific rate,
# channels, and format
pcm.digital-hw {
 type hw
 card 0
# device 2
}

# Control device (mixer, etc.) for the nForce2 card
ctl.digital-hw {
 type hw
 card 0
}

# Direct software mixing plugin for analog output on
# the nForce2 (hw:0,0)
# Do not use this directly--it requires specific rate,
# channels, and format
pcm.dmix-analog {
 type dmix
 ipc_key 1234
 slave {
   pcm "analog-hw"
   period_time 0
   period_size 1024
   buffer_size 4096
   rate 48000
 }
}

# Control device (mixer, etc.) for the nForce2 card
ctl.dmix-analog {
 type hw
 card 0
}

# Direct software mixing plugin for digital (S/PDIF) output
# on the nForce2 (hw:0,2)
# Do not use this directly--it requires specific rate,
# channels, and format
pcm.dmix-digital {
 type dmix
 ipc_key 1235
 slave {
   pcm "digital-hw"
   period_time 0
   period_size 1024
   buffer_size 4096
   rate 48000
 }
}

# Control device (mixer, etc.) for the nForce2 card
ctl.dmix-digital {
 type hw
 card 0
}



More information about the mythtv-users mailing list