共用方式為


完整和部分媒體類型

本主題描述完整媒體類型和部分媒體類型之間的差異。

完整媒體類型

完整的媒體類型是完整定義媒體資料流程格式的媒體類型。 假設有完整的媒體類型,管線元件可以剖析與媒體類型相關聯的資料流程資料,但沒有任何模棱兩可。

針對未壓縮的格式,下列主題會定義完整媒體類型所需的屬性:

針對壓縮的 (或 編碼) 資料流程,完整的媒體類型定義是由編解碼器所定義。 不過,如果壓縮資料流程已知任何未壓縮的類型屬性,這些值應該包含在壓縮資料流程的媒體類型中。 例如,如果已知畫面大小,請設定媒體類型的 MF_MT_FRAME_SIZE 屬性,即使技術上壓縮的資料流程沒有框架大小也一樣。

部分媒體類型

部分媒體類型缺少完整媒體類型所需的一或多個屬性。 列舉可能的媒體類型時,Microsoft Media Foundation 元件可能會讓值保持未設定,以指出它可以處理任何值。 例如,視訊處理器可能會讓 MF_MT_FRAME_RATE 屬性保持未設定,以指出它可以處理任何畫面播放速率,並視需要執行畫面播放速率轉換。

如果您建立部分媒體類型,您仍應該包含您知道的資訊量。 不過,媒體類型不得包含不確定的資訊。 資訊遺失比錯誤更好。

部分媒體類型至少應該只包含兩個屬性: MF_MT_MAJOR_TYPEMF_MT_SUBTYPE

有時候媒體基礎元件必須提供完整的媒體類型:

  • 媒體來源必須提供完整的輸出類型。
  • 設定輸入類型之後,解碼器必須提供完整的輸出類型。 設定輸入類型之前,解碼器可能會提供部分輸出類型。
  • 設定輸出類型之後,編碼器必須提供完整的輸入類型。 設定輸出類型之前,編碼器可能會提供部分輸入類型。

媒體類型