acmStreamConvert 関数 (msacm.h)

acmStreamConvert 関数は、指定された変換ストリームに対して変換を実行するように ACM に要求します。 ストリームの開き方によっては、変換が同期または非同期になる場合があります。

構文

MMRESULT ACMAPI acmStreamConvert(
  HACMSTREAM        has,
  LPACMSTREAMHEADER pash,
  DWORD             fdwConvert
);

パラメーター

has

開いている変換ストリームへのハンドル。

pash

変換のソース バッファーと変換先バッファーを記述するストリーム ヘッダーへのポインター。 このヘッダーは、 acmStreamPrepareHeader 関数を使用して以前に準備しておく必要があります。

fdwConvert

変換を実行するためのフラグ。 次の値が定義されています。

説明
ACM_STREAMCONVERTF_BLOCKALIGN ブロックの整数のみが変換されます。 変換されたデータは、ブロックアライン境界で終了します。 ブロックアライン変換先に変換するのに十分なソース データが存在しない限り、アプリケーションはストリーム上のすべての変換にこのフラグを使用する必要があります。 この場合、このフラグを指定せずに最後の変換を指定する必要があります。
ACM_STREAMCONVERTF_END ACM 変換ストリームは、保留中のインスタンス データの返しを開始する必要があります。 たとえば、変換ストリームにエコー フィルター操作の終了などのインスタンス データが保持されている場合、このフラグにより、ストリームはオプションのソース データを含む残りのデータの返しを開始します。 このフラグは、ACM_STREAMCONVERTF_START フラグで指定できます。
ACM_STREAMCONVERTF_START ACM 変換ストリームは、そのインスタンス データを再初期化する必要があります。 たとえば、変換ストリームにデルタや予測情報などのインスタンス データが保持されている場合、このフラグはストリームを開始の既定値に復元します。 このフラグは、ACM_STREAMCONVERTF_END フラグで指定できます。

戻り値

成功した場合は 0 を返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。

リターン コード 説明
ACMERR_BUSY
pash で指定されたストリーム ヘッダーは現在使用中であり、再利用できません。
ACMERR_UNPREPARED
pash で指定されたストリーム ヘッダーは、現在、acmStreamPrepareHeader 関数によって準備されていません。
MMSYSERR_INVALFLAG
少なくとも 1 つのフラグが無効です。
MMSYSERR_INVALHANDLE
指定されたハンドルが無効です。
MMSYSERR_INVALPARAM
少なくとも 1 つのパラメーターが無効です。

解説

acmStreamConvert に渡される前に、acmStreamPrepareHeader 関数を使用してソース バッファーと宛先バッファーを準備する必要があります。

非同期変換要求が ACM またはドライバーによって正常にキューに入れられ、その変換が後で不可能と判断された場合、 aCMSTREAMHEADER 構造体は cbDstLengthUsed メンバーがゼロに設定された状態でアプリケーションのコールバック関数にポストバックされます。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー msacm.h
Library Msacm32.lib
[DLL] Msacm32.dll

関連項目

オーディオ圧縮関数

オーディオ圧縮マネージャー