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