NetBSDの新しいOSSを使ってみる

この記事は、NetBSD Advent Calendar 2016の9日目の記事です。 どうも忙しくていけません…。

はじめに

pkgsrc/www/firefoxは先日までpkgsrc/audio/pulseaudioに依存していましたが、 それはOSS (Open Sound System)サポートでは、一つのプログラムが オーディオデバイスを占有してしまい、複数のプログラムからオーディオ出力 できないためでした。 (今は、pkgsrc-currentのpkgsrc/www/firefoxは、pkgsrc/audio/alsa-lib経由で OSSとpulseaudioを選べるようになっています。)

最近の nat@のオーディオサブシステムの変更によって、一つのプログラムが オーディオデバイスを占有することはなくなったようですので、試してみました。

カーネルをビルドする

NetBSD/amd64-currentで試してみようと思います。 そのためには、カーネルのソースツリーを最新にして、ビルドし直す必要があります。 NetBSD-currentを追い掛けている方には、当たり前の内容ですが、 簡単に書いておきます。 詳細は、Tracking NetBSD-current を参照してください。 カーネルモジュールだけ作っても良いのですが、ここではユーザーランド全体を更新してしまいます。


$ cd /usr/src
$ cvs update -dP
$ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 tools
$ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 kernel=GENERIC
$ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 build
# cd /usr/src
# cp /usr/world/7.99/amd64/obj/sys/arch/amd64/compile/GENERIC/netbsd /
# ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 install=/
# etcupdate
# reboot

実際に試してみよう

何かオーディオを再生できるプログラムが必要です。 ここでは、pkgsrc/multimedia/mplayerを使ってみます。 以下のようにしてインストールします。


# cd /usr/pkgsrc/multimedia/mplayer
# make install

ホームディレクトリーにある適当なmp3ファイルを再生してみます。 AO: [oss]と表示されれば、OSSで再生できています。


$ mplayer -ao oss ~/test1.mp3
MPlayer 1.3.0-5.4.0 (C) 2000-2016 MPlayer Team
224 audio & 451 video codecs

Playing /home/ryo_on/test1.mp3.
libavformat version 57.56.100 (external)
Audio only file format detected.
Load subtitles in /home/ryo_on/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 57.64.101 (external)
AUDIO: 44100 Hz, 2 ch, floatle, 128.0 kbit/4.54% (ratio: 16003->352800)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   0.8 (00.7) of 55.0 (55.0)  0.2%
他の仮想ターミナルでも同様にしてみます。

$ mplayer -ao oss ~/test2.mp3
MPlayer 1.3.0-5.4.0 (C) 2000-2016 MPlayer Team
224 audio & 451 video codecs

Playing /home/ryo_on/test2.mp3.
libavformat version 57.56.100 (external)
Audio only file format detected.
Load subtitles in /home/ryo_on/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 57.64.101 (external)
AUDIO: 44100 Hz, 2 ch, floatle, 128.0 kbit/4.54% (ratio: 16003->352800)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   0.8 (00.7) of 55.0 (55.0)  0.2%
いずれもデバイスがビジーであるとのエラーもなく再生できました。 音もちゃんと重なっています。

おわりに

最近コミットされたオーディオサブシステムへの変更を試してみました。 これは便利そうです。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

plgarc/wip/llama.cppでpkgsrcのBLASサポートを探る

この記事は、 NetBSD Advent Calendar 2024 の13日目の記事です。 llama.cppを使ってみる 以前に、 NetBSD/amd64でllama.cppを使ってみる という記事で llama.cpp を使ってみていました。 あれか...