[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 メーリングリストの案内