Date: Mon, 3 Nov 2008 06:01:57 +0900 From: Norikatsu Shigemura <nork@FreeBSD.org> To: Alexander Motin <mav@FreeBSD.org> Cc: freebsd-multimedia@FreeBSD.org, nork@FreeBSD.org Subject: Re: How do I use AC3 codec instead of PCM like mplayer -ac hwac3 Message-ID: <20081103060157.4ce3ce50.nork@FreeBSD.org> In-Reply-To: <490E0898.5030809@FreeBSD.org> References: <20081103023207.68fb4ced.nork@FreeBSD.org> <490DED08.9010800@FreeBSD.org> <20081103045643.c6081414.nork@FreeBSD.org> <490E0898.5030809@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --Multipart=_Mon__3_Nov_2008_06_01_57_+0900_i0wLV1BMjWeGqm_f Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sun, 02 Nov 2008 22:07:52 +0200 Alexander Motin <mav@FreeBSD.org> wrote: > Yes, comment out whole > /* Declare soft PCM and master volume if needed. */ > > if (pdevinfo->play >= 0) { > > ... > } > part. > And disable vchans for pcm1 and pcm2: > sysctl dev.pcm.1.play.vchans=0 > sysctl dev.pcm.2.play.vchans=0 Thank you! It looks good! But, Sorry, I don't have any S/PDIF and HDMI devices. So I didn't confirm with hearing from speaker. But I can get S/PDIF speaker! :D case of hw.snd.default_unit=1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : ========================================================================== Forced audio codec: hwac3 Opening audio decoder: [hwac3] AC3/DTS pass-through S/PDIF dec_audio: Allocating 8192 bytes for input buffer. dec_audio: Allocating 16384 + 65536 = 81920 bytes for output buffer. No accelerated IMDCT transform found hwac3: switched to AC3, 448000 bps, 48000 Hz AUDIO: 48000 Hz, 2 ch, ac3, 448.0 kbit/29.17% (ratio: 56000->192000) Selected audio codec: [hwac3] afm: hwac3 (AC3 through S/PDIF) ========================================================================== Building audio filter chain for 48000Hz/2ch/ac3 -> 0Hz/0ch/??... [libaf] Adding filter dummy [dummy] Was reinitialized: 48000Hz/2ch/ac3 [dummy] Was reinitialized: 48000Hz/2ch/ac3 ao2: 48000 Hz 2 chans ac3 audio_setup: using '/dev/dsp' dsp device audio_setup: using '/dev/mixer' mixer device audio_setup: using 'pcm' mixer device audio_setup: sample format: ac3 (requested: ac3) audio_setup: frags: 32/32 (512 bytes/frag) free: 16384 AO: [oss] 48000Hz 2ch ac3 (1 bytes per sample) AO: Description: OSS/ioctl audio output AO: Author: A'rpi Building audio filter chain for 48000Hz/2ch/ac3 -> 48000Hz/2ch/ac3... [dummy] Was reinitialized: 48000Hz/2ch/ac3 [dummy] Was reinitialized: 48000Hz/2ch/ac3 Starting playback... : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case of hw.snd.default_unit=1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : ========================================================================== Forced audio codec: hwac3 Opening audio decoder: [hwac3] AC3/DTS pass-through S/PDIF dec_audio: Allocating 8192 bytes for input buffer. dec_audio: Allocating 16384 + 65536 = 81920 bytes for output buffer. No accelerated IMDCT transform found hwac3: switched to AC3, 448000 bps, 48000 Hz AUDIO: 48000 Hz, 2 ch, ac3, 448.0 kbit/29.17% (ratio: 56000->192000) Selected audio codec: [hwac3] afm: hwac3 (AC3 through S/PDIF) ========================================================================== Building audio filter chain for 48000Hz/2ch/ac3 -> 0Hz/0ch/??... [libaf] Adding filter dummy [dummy] Was reinitialized: 48000Hz/2ch/ac3 [dummy] Was reinitialized: 48000Hz/2ch/ac3 ao2: 48000 Hz 2 chans ac3 audio_setup: using '/dev/dsp' dsp device audio_setup: using '/dev/mixer' mixer device audio_setup: using 'pcm' mixer device audio_setup: sample format: ac3 (requested: ac3) audio_setup: frags: 32/32 (512 bytes/frag) free: 16384 AO: [oss] 48000Hz 2ch ac3 (1 bytes per sample) AO: Description: OSS/ioctl audio output AO: Author: A'rpi Building audio filter chain for 48000Hz/2ch/ac3 -> 48000Hz/2ch/ac3... [dummy] Was reinitialized: 48000Hz/2ch/ac3 [dummy] Was reinitialized: 48000Hz/2ch/ac3 Starting playback... : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Norikatsu Shigemura <nork@FreeBSD.org> --Multipart=_Mon__3_Nov_2008_06_01_57_+0900_i0wLV1BMjWeGqm_f Content-Type: text/plain; name="dmesg.snd_hda.txt.diff" Content-Disposition: attachment; filename="dmesg.snd_hda.txt.diff" Content-Transfer-Encoding: 7bit --- dmesg.snd_hda.txt 2008-11-03 02:13:54.016366831 +0900 +++ dmesg.snd_hda.txt.2 2008-11-03 05:34:47.487079858 +0900 @@ -45,7 +45,7 @@ pci0:0:20:2: reprobing on driver added hdac0: <ATI SB600 High Definition Audio Controller> mem 0xf0500000-0xf0503fff irq 16 at device 20.2 on pci0 hdac0: HDA Driver Revision: 20081030_0115 -ioapic0: Assigning PCI IRQ 16 to local APIC 1 +ioapic0: Assigning PCI IRQ 16 to local APIC 0 ioapic0: routing intpin 16 (PCI IRQ 16) to vector 53 hdac0: [MPSAFE] hdac0: [ITHREAD] @@ -848,7 +848,6 @@ pcm0: +- ctl 15 (nid 12 in 1): mute pcm0: +- ctl 63 (nid 35 in 10): mute pcm0: -pcm0: Enabling Soft PCM volume pcm0: Mixer "vol": pcm0: Mixer "pcm": pcm0: Mixer "speaker": @@ -858,10 +857,9 @@ pcm0: Mixer "rec": pcm0: Mixer "ogain": pcm0: Mixer "monitor": -pcm0: Soft PCM mixer ENABLED pcm0: clone manager: deadline=750ms flags=0x8000001e -pcm0: sndbuf_setmap 2ecd0000, 4000; 0xfffffffea2324000 -> 2ecd0000 -pcm0: sndbuf_setmap 25710000, 4000; 0xfffffffea2334000 -> 25710000 +pcm0: sndbuf_setmap 38f30000, 4000; 0xfffffffea2324000 -> 38f30000 +pcm0: sndbuf_setmap a96e0000, 4000; 0xfffffffea2334000 -> a96e0000 pcm1: <HDA Realtek ALC888 PCM #1> at cad 0 nid 1 on hdac0 pcm1: +--------------------------------------+ pcm1: | DUMPING PCM Playback/Record Channels | @@ -889,13 +887,8 @@ pcm1: | DUMPING Volume Controls | pcm1: +-------------------------+ pcm1: -pcm1: Forcing Soft PCM volume -pcm1: Forcing master volume with PCM -pcm1: Mixer "vol" -> "none": child=0x00000010 -pcm1: Mixer "pcm": parent="vol" -pcm1: Soft PCM mixer ENABLED pcm1: clone manager: deadline=750ms flags=0x8000001e -pcm1: sndbuf_setmap 28ba0000, 4000; 0xfffffffea2344000 -> 28ba0000 +pcm1: sndbuf_setmap a9620000, 4000; 0xfffffffea2344000 -> a9620000 pcm2: <HDA ATI (Unknown) PCM #0> at cad 0 nid 1 on hdac1 pcm2: +--------------------------------------+ pcm2: | DUMPING PCM Playback/Record Channels | @@ -923,10 +916,5 @@ pcm2: | DUMPING Volume Controls | pcm2: +-------------------------+ pcm2: -pcm2: Forcing Soft PCM volume -pcm2: Forcing master volume with PCM -pcm2: Mixer "vol" -> "none": child=0x00000010 -pcm2: Mixer "pcm": parent="vol" -pcm2: Soft PCM mixer ENABLED pcm2: clone manager: deadline=750ms flags=0x8000001e -pcm2: sndbuf_setmap 28b90000, 4000; 0xfffffffea2354000 -> 28b90000 +pcm2: sndbuf_setmap a9600000, 4000; 0xfffffffea2354000 -> a9600000 --Multipart=_Mon__3_Nov_2008_06_01_57_+0900_i0wLV1BMjWeGqm_f Content-Type: text/plain; name="sysctl.snd_hda.txt.diff" Content-Disposition: attachment; filename="sysctl.snd_hda.txt.diff" Content-Transfer-Encoding: 7bit --- sysctl.snd_hda.txt 2008-11-03 02:12:18.973311505 +0900 +++ sysctl.snd_hda.txt.2 2008-11-03 05:48:29.342878364 +0900 @@ -40,14 +40,10 @@ dev.pcm.1.%desc: HDA Realtek ALC888 PCM #1 dev.pcm.1.%driver: pcm dev.pcm.1.%parent: hdac0 -dev.pcm.1.play.vchans: 1 -dev.pcm.1.play.vchanrate: 48000 -dev.pcm.1.play.vchanformat: s16le +dev.pcm.1.play.vchans: 0 dev.pcm.1.buffersize: 16384 dev.pcm.2.%desc: HDA ATI (Unknown) PCM #0 dev.pcm.2.%driver: pcm dev.pcm.2.%parent: hdac1 -dev.pcm.2.play.vchans: 1 -dev.pcm.2.play.vchanrate: 48000 -dev.pcm.2.play.vchanformat: s16le +dev.pcm.2.play.vchans: 0 dev.pcm.2.buffersize: 16384 --Multipart=_Mon__3_Nov_2008_06_01_57_+0900_i0wLV1BMjWeGqm_f Content-Type: text/plain; name="hdac.c.diff" Content-Disposition: attachment; filename="hdac.c.diff" Content-Transfer-Encoding: 7bit --- sys/dev/sound/pci/hda/hdac.c.orig 2008-11-02 14:42:38.116879000 +0900 +++ sys/dev/sound/pci/hda/hdac.c 2008-11-03 05:22:08.359475698 +0900 @@ -3485,7 +3485,7 @@ struct hdac_widget *w, *cw; struct hdac_audio_ctl *ctl; uint32_t mask, recmask, id; - int i, j, softpcmvol; + int i, j; hdac_lock(sc); @@ -3549,8 +3549,10 @@ } } +#if 0 /* Declare soft PCM and master volume if needed. */ if (pdevinfo->play >= 0) { + int softpcmvol; ctl = NULL; if ((mask & SOUND_MASK_PCM) == 0 || (devinfo->function.audio.quirks & HDA_QUIRK_SOFTPCMVOL)) { @@ -3593,6 +3595,7 @@ ); } } +#endif recmask &= (1 << SOUND_MIXER_NRDEVICES) - 1; mask &= (1 << SOUND_MIXER_NRDEVICES) - 1; --Multipart=_Mon__3_Nov_2008_06_01_57_+0900_i0wLV1BMjWeGqm_f--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081103060157.4ce3ce50.nork>