2009年7月12日

[plamo:29910] Esound

本多です

あまりたいした投稿ではないのですが、multimedia関連が充実すると良いなと思いまして
(充実でなくともちゃんと動けばもちろん満足です)。
Change Logを見たところ、esdがlogin時に起動する設定になり また、esd自体も更新されたようですね。

私も個人的にesdを使ってきたのですが。
#pulseやjackは普通の設定だと音飛び等で使えないです。何か設定があるのですかね??


esdはいろいろ使っていると動かなくなりませんか?つまりある時点から音が出なくなる。
# KDE上だとsystem通知で"esdが動かないので代わりalsa(or pulse or jack)を使うと"
# 報せてきて、代替措置が働くのですが。。

で何が起きているかというと、audio_alsa09.cのesd_audio_flush()関数中の
snd_pcm_drain()の中でpolling stateの状態で止ってしまってesdのmain loopに戻ってこれなく
なっています
#手持ちのmachine全ての発生するので結構一般的ではないかと思います。
#ちなみにkernelは27->29全て、libasoud.soはplamo謹製の最新版で。

Sourcesを見てると、そもそもesd_audio_flush()が呼ばれる条件は再生数が0かつselectで0が返るという
変な状態の時ですから(in clients.c)、ここでdrainを呼びだす必要はないようです。
ですから、drainでなくてdropつまり
snd_pcm_drain() => snd_pcm_drop()
で十分のようです。私はsnd_pcm_drop()に変更して以来この問題には悩まされなくなりました。
勿論、dropで音が終了時に突然消えるという事も経験していません。
参考まで。


投稿者 xml-rpc : 2009年7月12日 02:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86611
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。