(strmif.h) IMemAllocator 介面
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
介面 IMemAllocator
會配置媒體範例,以在針腳之間移動數據。
當輸入針腳公開 IMemInputPin 介面時,此介面是由共用配置器的針腳使用。 針腳會交涉哪一個針腳會提供配置器。 配置器可用來配置記憶體緩衝區、擷取空白緩衝區和釋放緩衝區。 並非所有篩選都會建立自己的配置器,因此數個篩選條件可能會使用一個配置器。 如需詳細資訊,請參閱 Filters Connect 的方式。
應用程式通常不會使用此介面。
若要使用設定器,請執行下列步驟:
- 呼叫 IMemAllocator::SetProperties 方法來指定緩衝區需求,包括緩衝區數目和每個緩衝區的大小。
- 呼叫 IMemAllocator::Commit 方法來配置緩衝區。
- 呼叫 IMemAllocator::GetBuffer 方法來擷取媒體範例。 這個方法會封鎖直到下一個範例可供使用為止。
- 當您完成每個範例時,請在範例上呼叫 IUnknown::Release 方法。 當樣本的參考計數達到零時,不會刪除。 相反地,此範例會返回配置器的免費清單。
- 當您使用配置器完成時,請呼叫 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) |