C (C++ ではない) で記述され、Fedora 15 で実行されているイーサネット経由で G.711 オーディオを送信するプロジェクトに取り組み始めています。スマートなことをして RTP を使用するのではなく、UDP を使用してオーディオデータを転送しています。パケットの並べ替えの問題をある程度克服するために、各パケットの本体で次のような構造体を使用することにしました。
struct payload {
char cc;
char audio_data[160];
};
変数 "cc" は 0 ~ 15 で実行される継続カウンターで、パケットが受信者に到着すると、cc の値に基づいてこれらの構造体の配列に入れられます。オーディオ出力ルーチンは、この配列をループしてデータを再生します。
私の質問は、これがオーディオをパッケージ化する最良の方法ですか? 出力配列は最終的に2次元になり、各メンバーの読み取りと出力への書き込みが遅くなりますか? 反対側のオーディオ インターフェイスに書き込むことができる 160 バイト幅の型を定義する方法はありますか?
ALSA に関する役立つリソースへのリンクと同様に、任意の提案をいただければ幸いです (これは非常にまれなようです!)。
ジョシュ