(strmif.h) IMemAllocator 介面

[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。

介面 IMemAllocator 會配置媒體範例,以在針腳之間移動數據。

當輸入針腳公開 IMemInputPin 介面時,此介面是由共用配置器的針腳使用。 針腳會交涉哪一個針腳會提供配置器。 配置器可用來配置記憶體緩衝區、擷取空白緩衝區和釋放緩衝區。 並非所有篩選都會建立自己的配置器,因此數個篩選條件可能會使用一個配置器。 如需詳細資訊,請參閱 Filters Connect 的方式

應用程式通常不會使用此介面。

若要使用設定器,請執行下列步驟:

  1. 呼叫 IMemAllocator::SetProperties 方法來指定緩衝區需求,包括緩衝區數目和每個緩衝區的大小。
  2. 呼叫 IMemAllocator::Commit 方法來配置緩衝區。
  3. 呼叫 IMemAllocator::GetBuffer 方法來擷取媒體範例。 這個方法會封鎖直到下一個範例可供使用為止。
  4. 當您完成每個範例時,請在範例上呼叫 IUnknown::Release 方法。 當樣本的參考計數達到零時,不會刪除。 相反地,此範例會返回配置器的免費清單。
  5. 當您使用配置器完成時,請呼叫 IMemAllocator::D ecommit 方法來釋放緩衝區的記憶體。

繼承

IMemAllocator 介面繼承自 IUnknown 介面。 IMemAllocator 也有下列類型的成員:

方法

IMemAllocator 介面具有這些方法。

 
IMemAllocator::Commit

Commit 方法會配置緩衝區內存。
IMemAllocator::D ecommit

Decommit 方法會釋放緩衝區內存。
IMemAllocator::GetBuffer

GetBuffer 方法會擷取包含空白緩衝區的媒體範例。
IMemAllocator::GetProperties

GetProperties 方法會擷取配置器將建立的緩衝區數目,以及緩衝區屬性。
IMemAllocator::ReleaseBuffer

ReleaseBuffer 方法會釋放媒體範例。
IMemAllocator::SetProperties

SetProperties 方法會指定要配置的緩衝區數目,以及每個緩衝區的大小。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)