[Armadillo:03826] Re: soundcard.h の SNDCTL_DSP_PROFILE について
西 智哉
email@hidden
2008年 12月 19日 (金) 17:32:35 JST
SHOJI さん
西です。
#657〜#667の文章の存在は把握してまして、訳すと下記のようになると思います。
> APF_NORMAL と APF_NETWORK は、(バッファの)アンダーランが発生するとき
> 必ず、(サウンド)ドライバに再生バッファをクリーンアップさせます。
> これは、現在のバッファが繰り返し再生されることを防止することに(CPUが)
> 時間を使います。
>
> APF_CPUINTENS は、時折、CPUタイムを使い尽くす程、CPU負荷の
> 大きいアプリケーションで、設定されることを意図しています。
> このモードでは、CPUタイムを節約するためにバッファのクリーンアップが
> ディスエーブルされています、しかし、(バッファの)アンダーランの後で
> ポーズしている期間は、以前のバッファの内容が再生されています。
その通りなんでしょうけど、応用含めた、生きた情報を知りたくて
ポストさせて頂いた次第です。
いま、Armadillo-500 のCPUタイムを使い切っているので
APF_CPUINTENS を設定しています。しかし、文章後半に
「アンダーランのときに以前のバッファの内容が再生される」
ともあります。
その設定が適切か? もっとベターの設定があるのか?
この設定はそのままで、「アンダーランのときに以前のバッファの
内容が再生される」ことを回避する別の策があるのかなど、情報を
集めております。
On Fri, 19 Dec 2008 10:28:10 +0900
Yasushi SHOJI <email@hidden> wrote:
> At Fri, 19 Dec 2008 09:53:46 +0900,
> 西 智哉 wrote:
> >
> > soundcard.h の中に下記の定義があります。googleで検索しても
> > 明確な説明が見付かりませんでした。
>
> googleしなくても soundcard.hに書いてありますよ。
>
> http://lxr.linux.no/linux+v2.6.26.8/include/linux/soundcard.h#L657
>
> 657/*
> 658 * Application's profile defines the way how playback underrun situations should be handled.
> 659 *
> 660 * APF_NORMAL (the default) and APF_NETWORK make the driver to cleanup the
> 661 * playback buffer whenever an underrun occurs. This consumes some time
> 662 * prevents looping the existing buffer.
> 663 * APF_CPUINTENS is intended to be set by CPU intensive applications which
> 664 * are likely to run out of time occasionally. In this mode the buffer cleanup is
> 665 * disabled which saves CPU time but also let's the previous buffer content to
> 666 * be played during the "pause" after the underrun.
> 667 */
>
> > > #define SNDCTL_DSP_PROFILE _SIOW ('P', 23, int)
> > > #define APF_NORMAL 0 /* Normal applications */
> > > #define APF_NETWORK 1 /* Underruns probably caused by an "external" delay */
> > > #define APF_CPUINTENS 2 /* Underruns probably caused by "overheating" the CPU */
>
> OSSのころはアプリケーションの種類を指定していたようです。
> alsaに代ってからは、使われていません。
>
> alsa上の OSSレイヤを使っている場合は、無視されます。
> ↓
> http://lxr.linux.no/linux+v2.6.26.8/sound/core/oss/pcm_oss.c#L2582
> 2582 case SNDCTL_DSP_PROFILE:
> 2583 return 0; /* silently ignore */
> --
> yashi
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
armadillo メーリングリストの案内