[mythtv-users] AC3 Passthrough Problems - snd_hda_intel users
Matt Redmon
mythtv-user at comcast.net
Sun Aug 20 02:01:24 UTC 2006
Any ideas? If you are making use of the snd_hda_intel driver to deliver
digital surround sound, could you post your asound.conf/.asoundrc,
modprobe.conf, alsa version, etc?
Thanks!
On Mon, 2006-08-14 at 22:34 -0700, Matt Redmon wrote:
> I'm having some problems getting surround sound out of MythTV and into
> my receiver.
>
> The following command will put out AC3 surround sound audio:
> mplayer -ac hwac3 -ao alsa:device=analog
>
> If I change the device over to "digital" I get static:
> mplayer -ac hwac3 -ao alsa:device=digital
>
> Both of the following will put out analog 2-channel audio:
> mplayer -ao alsa:device=analog
> mplayer -ao alsa:device=digital
> But the latter one has static mixed in with the sound
>
> Neither of the following will work in MythTV when "Pass AC3 To SPDIF" is
> checked:
> ALSA:analog
> ALSA:digital
>
> But ALSA:analog will work as long as "Pass AC3 To SPDIF" is not checked.
>
> Xine works just fine for AC3 surround sound. All I had to do was change
> the speaker arrangement to Passthrough.
>
> Any idea why both xine and mplayer will work but MythTV won't?
>
> I have an Intel HDA audio device on my D915PBL motherboard. All of my
> recordings have AC3 sound.
>
> Thanks!
>
> Matt
>
>
>
>
>
>
> My /etc/asound.conf:
> # ALSA configuration file
>
> ##### USAGE #####
> # Save this file as "~/.asoundrc" (for user-specific sound
> configuration) or
> # "/etc/asound.conf" (for system-wide sound configuration) and specify
> ALSA
> # device names ad described in the next section.
>
>
> ##### DEVICE NAMES #####
> # This configuration file defines four devices for use by the user.
> Those
> # devices are "analog", "mixed-analog", "digital", and "mixed-digital".
> The
> # user may also re-define "default" to be identical to one of the
> above-named
> # devices (i.e. to send all sound output to the digital output unless
> otherwise
> # specified). Use the device names as described below:
> # - "analog" outputs to the analog output directly and (at least on
> software
> # sound cards) blocks other audio output. After playback completes,
> "queued"
> # sounds are output in sequence.
> # - "mixed-analog" mixes audio output from multiple programs into the
> analog
> # output (so you can hear beeps, alerts, and other noises while playing
> back
> # an audio stream).
> # - "digital" outputs to the digital output directly. Since most
> (all?)
> # digital outputs expect 48kHz PCM audio, this may not work for some
> playback
> # (i.e. CD's--which are 44.1kHz PCM audio--or 32kHz audio streams from
> TV
> # recordings, etc.).
> # - "mixed-digital"
>
> # All other devices created within this file are used only by the
> configuration
> # file itself and should /not/ be used directly. In other words, do not
> use
> # the devices "analog-hw", "dmix-analog", "digital-hw", or
> "dmix-digital".
>
>
> ##### IMPORTANT #####
> # To make this ALSA configuration file work with your sound card, you
> will need
> # to define the appropriate card and device information for the
> "analog-hw" and
> # "digital-hw" devices below. You can find the card and device
> information
> # using "aplay -l".
>
>
> ##### Configuration File #####
>
> # 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).
> #
> # Note, also, that as of ALSA 1.0.9, "software" sound cards have been
> modified
> # such that their default "default" device is identical to the
> "mixed-analog"
> # device. Whether using an ALSA version before or after 1.0.9, it does
> no harm
> # and has no affect on performance to redefine the device (even if the
> # redefinition does not change anything). Also, by using this ALSA
> # configuration file, you once again have access to unmixed analog
> output using
> # the "analog" device.
> 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"
> }
>
> # Control device (mixer, etc.) for the card
> ctl.!default {
> type hw
> card 0
> }
>
> # Alias for (converted) analog output on the card
> # - 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 card
> # - Note that as of ALSA 1.0.9, "software" sound card definitions
> redefine
> # "default" to do mixing, meaning this device is different from
> "default" and
> # allows playback while blocking other sound sources (until playback
> # completes).
> pcm.analog {
> type plug
> slave.pcm "analog-hw"
> }
>
> # Control device (mixer, etc.) for the card
> ctl.analog {
> type hw
> card 0
> }
>
> # Alias for (converted) mixed analog output on the card
> # - This will accept audio input--regardless of rate--and convert to the
> rate
> # required for the dmix plugin (in this case 48000Hz)
> # - Note that as of ALSA 1.0.9, "software" sound card definitions
> redefine
> # "default" to do mixing, meaning this device is identical to "default"
> for
> # "software" sound cards.
> pcm.mixed-analog {
> type plug
> slave.pcm "dmix-analog"
> }
>
> # Control device (mixer, etc.) for the card
> ctl.mixed-analog {
> type hw
> card 0
> }
>
> # Alias for (converted) digital (S/PDIF) output on the card
> # - 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 card
> ctl.digital {
> type hw
> card 0
> }
>
> # Alias for mixed (converted) digital (S/PDIF) output on the card
> # - 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 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 card
> # 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
> # - Uncomment one of the below or create a new "device N" line as
> appropriate
> # for your sound card or
> # device 1
> # device 4
> }
>
> # Control device (mixer, etc.) for the card
> ctl.analog-hw {
> type hw
> card 0
> }
>
> # Alias for digital (S/PDIF) output on the card
> # Do not use this directly--it requires specific rate, channels, and
> format
> pcm.digital-hw {
> type hw
> card 0
> # device 1
> # - Comment out "device 1" above and uncomment one of the below or
> create a
> # new "device N" line as appropriate for your sound card or
> device 2
> # device 4
> }
>
> # Control device (mixer, etc.) for the card
> ctl.digital-hw {
> type hw
> card 0
> }
>
> # Direct software mixing plugin for analog output on the card
> # 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 card
> ctl.dmix-analog {
> type hw
> card 0
> }
>
> # Direct software mixing plugin for digital (S/PDIF) output on the card
> # 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 card
> ctl.dmix-digital {
> type hw
> card 0
> }
>
> -----------------------------------------------
>
> aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: ALC880 Analog [ALC880 Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 2: ALC880 Digital [ALC880 Digital]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
>
> -----------------------------------------------
>
> aplay -L
> PCM list:
> hw {
> @args.0 CARD
> @args.1 DEV
> @args.2 SUBDEV
> @args.CARD {
> type string
> default {
> @func getenv
> vars {
> 0 ALSA_PCM_CARD
> 1 ALSA_CARD
> }
> default {
> @func refer
> name 'defaults.pcm.card'
> }
> }
> }
> @args.DEV {
> type integer
> default {
> @func igetenv
> vars {
> 0 ALSA_PCM_DEVICE
> }
> default {
> @func refer
> name 'defaults.pcm.device'
> }
> }
> }
> @args.SUBDEV {
> type integer
> default {
> @func refer
> name 'defaults.pcm.subdevice'
> }
> }
> type hw
> card $CARD
> device $DEV
> subdevice $SUBDEV
> }
> plughw {
> @args.0 CARD
> @args.1 DEV
> @args.2 SUBDEV
> @args.CARD {
> type string
> default {
> @func getenv
> vars {
> 0 ALSA_PCM_CARD
> 1 ALSA_CARD
> }
> default {
> @func refer
> name 'defaults.pcm.card'
> }
> }
> }
> @args.DEV {
> type integer
> default {
> @func igetenv
> vars {
> 0 ALSA_PCM_DEVICE
> }
> default {
> @func refer
> name 'defaults.pcm.device'
> }
> }
> }
> @args.SUBDEV {
> type integer
> default {
> @func refer
> name 'defaults.pcm.subdevice'
> }
> }
> type plug
> slave.pcm {
> type hw
> card $CARD
> device $DEV
> subdevice $SUBDEV
> }
> }
> plug {
> @args.0 SLAVE
> @args.SLAVE {
> type string
> }
> type plug
> slave.pcm $SLAVE
> }
> shm {
> @args.0 SOCKET
> @args.1 PCM
> @args.SOCKET {
> type string
> }
> @args.PCM {
> type string
> }
> type shm
> server $SOCKET
> pcm $PCM
> }
> tee {
> @args.0 SLAVE
> @args.1 FILE
> @args.2 FORMAT
> @args.SLAVE {
> type string
> }
> @args.FILE {
> type string
> }
> @args.FORMAT {
> type string
> default raw
> }
> type file
> slave.pcm $SLAVE
> file $FILE
> format $FORMAT
> }
> file {
> @args.0 FILE
> @args.1 FORMAT
> @args.FILE {
> type string
> }
> @args.FORMAT {
> type string
> default raw
> }
> type file
> slave.pcm null
> file $FILE
> format $FORMAT
> }
> null {
> type null
> }
> cards 'cards.pcm'
> front 'cards.pcm.front'
> rear 'cards.pcm.rear'
> center_lfe 'cards.pcm.center_lfe'
> side 'cards.pcm.side'
> surround40 'cards.pcm.surround40'
> surround41 'cards.pcm.surround41'
> surround50 'cards.pcm.surround50'
> surround51 'cards.pcm.surround51'
> surround71 'cards.pcm.surround71'
> iec958 'cards.pcm.iec958'
> spdif 'cards.pcm.iec958'
> modem 'cards.pcm.modem'
> phoneline 'cards.pcm.phoneline'
> dmix 'cards.pcm.dmix'
> dsnoop 'cards.pcm.dsnoop'
> default {
> type plug
> slave.pcm dmix-digital
> }
> analog {
> type plug
> slave.pcm analog-hw
> }
> mixed-analog {
> type plug
> slave.pcm dmix-analog
> }
> digital {
> type plug
> slave.pcm digital-hw
> }
> mixed-digital {
> type plug
> slave.pcm dmix-digital
> }
> analog-hw {
> type hw
> card 0
> }
> digital-hw {
> type hw
> card 0
> device 2
> }
> dmix-analog {
> type dmix
> ipc_key 1234
> slave {
> pcm analog-hw
> period_time 0
> period_size 1024
> buffer_size 4096
> rate 48000
> }
> }
> dmix-digital {
> type dmix
> ipc_key 1235
> slave {
> pcm digital-hw
> period_time 0
> period_size 1024
> buffer_size 4096
> rate 48000
> }
> }
>
> -----------------------------------------
>
> Relevant section of modprobe.conf:
> # ALSA portion
> alias char-major-116 snd
> alias snd-card-0 snd-hda-intel
> # OSS/Free portion
> alias char-major-14 soundcore
> # card #1
> alias sound-service-0-0 snd-mixer-oss
> alias sound-service-0-1 snd-seq-oss
> alias sound-service-0-3 snd-pcm-oss
> alias sound-service-0-8 snd-seq-oss
> alias sound-service-0-12 snd-pcm-oss
>
> _______________________________________________
> mythtv-users mailing list
> mythtv-users at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
More information about the mythtv-users
mailing list