PulseAudio:サンプルスペック

struct pa_sample_specサンプルスペック構造体
pa_sample_spec_init構造体を初期化
pa_sample_spec_equal2つの構造体が同じか
pa_sample_spec_valid値が有効か
pa_bytes_per_second1秒間のバッファのバイト数を返す
pa_frame_size1フレームのサイズを取得
pa_sample_size1サンプルのサイズを取得
pa_bytes_to_usecバッファサイズから時間を計算
pa_usec_to_bytes指定時間の再生に必要なバッファサイズを計算
サポート
pa_channels_valid指定チャンネル数がサポートされているか
pa_sample_format_valid指定フォーマットがサポートされているか
pa_sample_rate_valid指定サンプルレートがサポートされているか
フォーマット
pa_sample_size_of_format指定フォーマットのサンプルサイズを取得
pa_sample_format_is_be指定フォーマットがビッグエンディアンか
pa_sample_format_is_le指定フォーマットがリトルエンディアンか
文字列
pa_bytes_snprintバイト数を文字列にして返す
pa_sample_format_to_string指定フォーマットを文字列にして返す
pa_sample_spec_snprint指定構造体を文字列にする
pa_parse_sample_format文字列を解析してサンプル構造体を取得
typedef struct pa_sample_spec {
    pa_sample_format_t format;
    uint32_t rate;
    uint8_t channels;
} pa_sample_spec;
サンプルスペック構造体
format
フォーマットタイプ。

PA_SAMPLE_U8 : unsigned 8bit PCM
PA_SAMPLE_ALAW : 8bit a-Law
PA_SAMPLE_ULAW : 8 Bit mu-Law
PA_SAMPLE_S16LE : Signed 16bit PCM, LE
PA_SAMPLE_S16BE : Signed 16bit PCM, BE
PA_SAMPLE_FLOAT32LE : 32bit IEEE floating point, LE, (-1.0 〜 1.0)
PA_SAMPLE_FLOAT32BE : 32bit IEEE floating point, BE
PA_SAMPLE_S32LE : Signed 32bit PCM, LE
PA_SAMPLE_S32BE : Signed 32bit PCM, BE
PA_SAMPLE_S24LE : Signed 24bit PCM packed, LE
PA_SAMPLE_S24BE : Signed 24bit PCM packed, BE
PA_SAMPLE_S24_32LE : Signed 24bit PCM in LSB of 32bit words, LE
PA_SAMPLE_S24_32BE : Signed 24bit PCM in LSB of 32bit words, BE
PA_SAMPLE_INVALID : 無効な値
rate
サンプリングレート (Hz)
channels
チャンネル数
pa_sample_spec *pa_sample_spec_init(pa_sample_spec *spec);
spec を初期化し、そのポインタを返す。
この値で pa_sample_spec_valid() を実行しても、失敗する。
int pa_sample_spec_equal(const pa_sample_spec *a, const pa_sample_spec *b);
2つの構造体の値を比較して、同じなら 0 以外を返す。
int pa_sample_spec_valid(const pa_sample_spec *spec);
構造体の値が有効な状態なら、0 以外を返す。
size_t pa_bytes_per_second(const pa_sample_spec *spec);
指定された仕様で、1秒間のオーディオを再生するための、バッファのバイト数を返す。
size_t pa_frame_size(const pa_sample_spec *spec);
1フレームのサイズを取得
size_t pa_sample_size(const pa_sample_spec *spec);
1サンプルのサイズを取得
pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec);
指定された仕様で、length のバッファサイズを再生するのにかかる時間を計算する。
戻り値は常に切り捨てられる。
size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec);
指定された仕様で、t (マイクロ秒) の時間の再生に必要なバッファサイズを計算する。
戻り値は常に切り捨てられる。
サポート
int pa_channels_valid(uint8_t channels);
指定チャネル数がサポートされている場合は、0 以外を返す。
int pa_sample_format_valid(unsigned format);
指定フォーマットがサポートされていれば、0 以外を返す。
int pa_sample_rate_valid(uint32_t rate);
指定サンプルレートがサポートされているか
フォーマット
size_t pa_sample_size_of_format(pa_sample_format_t f);
指定フォーマットのサンプルサイズを取得
int pa_sample_format_is_be(pa_sample_format_t f);
指定したフォーマットがビッグエンディアンの場合は 1、リトルエンディアンの場合は 0 を返す。
指定された形式にエンディアンが適用されない場合、またはエンディアンが不明な場合は、-1 を返す。
int pa_sample_format_is_le(pa_sample_format_t f);
指定フォーマットがリトルエンディアンか
文字列
char *pa_bytes_snprint(char *s, size_t l, unsigned v);
バイト数を文字列にして返す
const char *pa_sample_format_to_string(pa_sample_format_t f);
指定フォーマットを文字列にして返す。
S16LE なら、"s16le" となる。
char *pa_sample_spec_snprint(char *s, size_t l, const pa_sample_spec *spec);
構造体の値を文字列にフォーマットして格納する。
例: "s16le 2ch 44100Hz"
pa_sample_format_t pa_parse_sample_format(const char *format);
文字列を解析してサンプル構造体を取得