完整和部分媒體類型
本主題描述完整媒體類型和部分媒體類型之間的差異。
完整媒體類型
完整的媒體類型是完整定義媒體資料流程格式的媒體類型。 假設有完整的媒體類型,管線元件可以剖析與媒體類型相關聯的資料流程資料,但沒有任何模棱兩可。
針對未壓縮的格式,下列主題會定義完整媒體類型所需的屬性:
- 音訊: 未壓縮的音訊媒體類型
- 影片: 未壓縮的視訊媒體類型
針對壓縮的 (或 編碼) 資料流程,完整的媒體類型定義是由編解碼器所定義。 不過,如果壓縮資料流程已知任何未壓縮的類型屬性,這些值應該包含在壓縮資料流程的媒體類型中。 例如,如果已知畫面大小,請設定媒體類型的 MF_MT_FRAME_SIZE 屬性,即使技術上壓縮的資料流程沒有框架大小也一樣。
部分媒體類型
部分媒體類型缺少完整媒體類型所需的一或多個屬性。 列舉可能的媒體類型時,Microsoft Media Foundation 元件可能會讓值保持未設定,以指出它可以處理任何值。 例如,視訊處理器可能會讓 MF_MT_FRAME_RATE 屬性保持未設定,以指出它可以處理任何畫面播放速率,並視需要執行畫面播放速率轉換。
如果您建立部分媒體類型,您仍應該包含您知道的資訊量。 不過,媒體類型不得包含不確定的資訊。 資訊遺失比錯誤更好。
部分媒體類型至少應該只包含兩個屬性: MF_MT_MAJOR_TYPE 和 MF_MT_SUBTYPE。
有時候媒體基礎元件必須提供完整的媒體類型:
- 媒體來源必須提供完整的輸出類型。
- 設定輸入類型之後,解碼器必須提供完整的輸出類型。 設定輸入類型之前,解碼器可能會提供部分輸出類型。
- 設定輸出類型之後,編碼器必須提供完整的輸入類型。 設定輸出類型之前,編碼器可能會提供部分輸入類型。
相關主題