QVorbis (0.9.2) | 2009-09-09 12:00 |
QTTA は、TTA オーディオストリームのデコードコアライブラリである。 C 言語で記述され、C 関数 API を提供する。
純粋に TTA パケットデータのみをデコードする低水準デコーダー API と、TTA コンテナ フォーマットからデコードを行うリーダー API が用意されている。
TTA ファイルをデコードする場合は、高水準のリーダー API のみを用いればよい。
- struct QTTA_Reader;
- typedef struct QTTA_Reader QTTA_Reader_t;
- QTTA_Reader_t* QTTA_CreateReader(void);
- void QTTA_ReleaseReader(QTTA_Reader_t* t);
- BOOL QTTA_OpenReader(
- QTTA_Reader_t* t,
- const WCHAR* path);
- BOOL QTTA_OpenReader_IStream(
- QTTA_Reader_t* t,
- IStream* p);
- const QTTA_Format_t* QTTA_GetFormat(
- QTTA_Reader_t* t);
- BOOL QTTA_Seek(
- QTTA_Reader_t* t,
- INT64 sample);
- BOOL QTTA_Decode(
- QTTA_Reader_t* t,
- VOID* buffer,
- INT32 samples,
- INT32* output);
リーダーオブジェクトを作成する。
リーダーオブジェクトを解放する。
ローカルファイルから TTA ストリームを読みだす。
Windows IStream COM インターフェイスから TTA ストリームを読みだす。
オーディオフォーマットを取得する。
シークを実行する。シーク先は、サンプル位置を指定する。
ストリームをデコードし、PCM サンプルを取り出す。
PCM データは、16bit 符号つき整数で出力される。
samples は、デコードする最大サンプル数。
output は、実際にデコードされたサンプル数を返す。0 を返した場合は、ストリーム の終了を表す。最大値は、samples と同じとなるが、必ずしも最大値で返るわけではない。
buffer に用意すべきサイズは、samples * 2 * チャンネル数 (Byte) である。
SamplingRate サンプリングレート (Hz)
Channels チャンネル数 (1 or 2)
Duration ストリーム長 (サンプル数)
デコーダーオブジェクトを作成する。
デコーダーオブジェクトを解放する。
デコーダーを初期化する。
channels チャンネル数 (1 or 2)
samples 1フレームあたりのサンプル数
1 フレーム分のビットストリームをデコードし、PCM サンプルを返す。
packet, size には、1 フレーム分の入力ビットストリームを指定する。 (1 フレームごとのパケット化は、上位のコンテナフォーマットで処理される。)
output へ、出力結果が返される。
チャンネル数 (Channels)、1 フレームに含まれるサンプル数 (Length) は、デコーダー初期化時に設定した値となる。
Output には、16 bit 符号付き整数サンプルが格納される。サンプル実体は、デコーダーの内部ワーク へ格納されているため、呼び出し側でデータをコピーしてから、次のデコード処理を呼び出すこと。
[PageInfo]
LastUpdate: 2009-08-20 15:26:30, ModifiedBy: noumiakira
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:members, delete/config:members