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 旗標來指定這個旗標。

傳回值

如果成功或發生錯誤,則傳回零。 可能的錯誤值包括下列專案。

傳回碼 描述
ACMERR_BUSY
pash中指定的資料流程標頭目前正在使用中,無法重複使用。
ACMERR_UNPREPARED
pash中指定的資料流程標頭目前不是由 acmStreamPrepareHeader 函式所準備。
MMSYSERR_INVALFLAG
至少有一個旗標無效。
MMSYSERR_INVALHANDLE
指定的控制碼無效。
MMSYSERR_INVALPARAM
至少有一個參數無效。

備註

您必須使用 acmStreamPrepareHeader 函 式來準備來源和目的地緩衝區,再將它們傳遞至 acmStreamConvert

如果 ACM 或驅動程式成功將非同步轉換要求排入佇列,且稍後判定無法轉換, 則 ACMSTREAMHEADER 結構會張貼回應用程式的回呼函式,並將 cbDstLengthUsed 成員設定為零。

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 msacm.h
程式庫 Msacm32.lib
Dll Msacm32.dll

另請參閱

音訊壓縮函式

音訊壓縮管理員