MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 屬性
指定拓撲載入器是否列舉媒體來源所提供的媒體類型。
資料類型
UINT32
使用下列其中一個值。
值 | 意義 |
---|---|
|
請勿列舉來源媒體類型。 |
|
列舉來源媒體類型。 |
取得/設定
若要取得此屬性,請呼叫 IMFAttributes::GetUINT32。
若要設定此屬性,請呼叫 IMFAttributes::SetUINT32。
適用於
備註
媒體來源上的每個數據流都可以提供多個媒體類型。 類型清單會透過 數據流描述元上的IMFMediaTypeHandler 介面來列舉。
拓撲載入器嘗試媒體來源媒體類型的順序是由兩個屬性所控制:
- 拓撲上的 MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 屬性。
- 來源 節點上的 MF_TOPONODE_CONNECT_METHOD 屬性。
如果MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES屬性為 FALSE 或未設定,拓撲載入器會使用數據流目前的媒體類型。 它不會列舉可能的類型清單。 如果目前的媒體類型與下游拓撲節點不相容,而且找不到譯碼器/轉換器的組合,拓撲解析就會失敗。
如果MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES屬性為 TRUE,拓撲載入器會列舉來源的媒體類型,直到找到相容的類型為止。 在此情況下,作業的確切順序取決於來源節點上MF_TOPONODE_CONNECT_METHOD屬性是否包含MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES旗標。
如果MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES為 TRUE 且 已設定MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 旗標,拓撲載入器會在移至下一個媒體之前耗盡每個媒體類型,如下所示:
foreach media type T
connect directly using T
if failed, connect with converters using T
if failed, connect with decoders using T
如果MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES為 TRUE 但 未設定MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES ,拓撲載入器會嘗試與每個媒體類型直接連線,然後使用轉換器嘗試每個媒體類型,最後嘗試每個具有譯碼器的媒體類型:
foreach media type T
connect directly using T
if failed,
foreach media type T
connect with converters using T
if failed
foreach media type T
connect with decoders using T
如果MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES為 FALSE, 則會忽略MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 旗標。
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES的預設值為 FALSE,以便與現有應用程式相容。
此屬性的 GUID 常數是從 mfuuid.lib 導出。
範例
以下是說明MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES旗標的範例。 假設拓撲已將 MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 屬性設定為 TRUE。
媒體來源提供下列類型:
- T1、T2、T3
媒體接收接受下列類型:
- T3、T4
案例 1:已 設定MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 旗標。
- 拓撲載入器會嘗試與 T1 直接連線。 接收會拒絕 T1。
- 拓撲載入器會插入接受 T1 並輸出 T4 的譯碼器。 接收接受 T4。
- 最終拓撲包含:媒體來源→譯碼器→媒體接收。
案例 2:未設定旗標。
- 拓撲載入器會嘗試與 T1 直接連線。 接收會拒絕 T1。
- 拓撲載入器會嘗試與T2直接連線。 接收會拒絕 T2。
- 拓撲載入器會嘗試與 T3 直接連線。 接收接受 T3。
- 最終拓撲包含:媒體來源→媒體接收。
需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 R2 [僅限傳統型應用程式] |
頁首 |
|
另請參閱