重迭混音器篩選
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
重迭混音器篩選器是專為 DVD 播放和廣播視訊串流設計的視訊轉譯器,具有第 21 行隱藏式輔助字幕。 重迭混音器也支援視訊埠延伸模組(VPE),讓其能夠使用硬體 MPEG-2 譯碼器或類比電視微調器,將視訊直接傳送至圖形卡,而不是透過PCI總線。
注意
視訊混合轉譯器 9 現在優先於重迭混音器篩選,但 VPE 案例除外。
重迭混音器會使用 DirectDraw 進行轉譯。 它需要圖形卡上的重疊表面。 主要視訊串流應該連線到釘選 0。 次要串流 (隱藏式輔助字幕圖形或 DVD 子圖片) 會連接到針腳 1 和更新版本。 重迭混音器會將次要數據流直接點選到主要介面上;它不會混合或Alpha混合它們。
重迭混音器會使用視訊轉譯器進行視窗管理。 視訊轉譯器會連線到重迭混音器的輸出針腳。
當應用程式使用 IDvdGraphBuilder 和 ICaptureGraphBuilder2 介面來建立圖形時,此篩選會自動新增至篩選圖表。 篩選圖形管理員不會自動將重迭混音器新增至圖形。
注意
在下表中,輸入針腳 0 上接受的媒體子類型相依於硬體。 重迭混音器無法判斷是否支援特定子類型,直到它建立 DirectDraw 表面為止。 因此,上游篩選判斷是否支持子類型的唯一方法是嘗試與該子類型的連線。
標籤 | 價值 |
---|---|
篩選介面 | IAMOverlayFX、IAMVideoDecimationProperties、IBaseFilter、IDDrawExclModeVideo、IKsPropertySet、 IMediaPosition、IMediaSeeking、IMixerOCX、IQualProp、IVPNotify、IVPNotify2 |
輸入釘選媒體類型 | 主要類型:MEDIATYPE_Video 亞:
|
輸入釘選介面 | IAMVideoAccelerator、IKsPin、IKsPropertySet、IMemInputPin、IMixerPinConfig、IMixerPinConfig2、IOverlay(僅限 pin 0)、IPin、IPinConnection、IQualityControl、IVPNotify、 IVPNotify2 |
輸出釘選媒體類型 | MEDIATYPE_Video,MEDIASUBTYPE_Overlay |
輸出釘選介面 | IMediaPosition、IMediaSeeking、IPinIQualityControl |
篩選 CLSID | CLSID_OverlayMixer |
屬性頁 CLSID | 沒有屬性頁。 |
可執行 | qdvd.dll |
優點 | MERIT_DO_NOT_USE |
篩選類別目錄 | CLSID_LegacyAmFilterCategory |
言論
重疊混音器會使用目的地色彩索引鍵來混合視訊表面與重疊。 它會將色彩索引鍵和次要視訊點選到主要介面,並將主要視訊傳送至重疊表面。 然後,圖形卡片會將兩個表面複合到其框架緩衝區中。
若要測試圖形驅動程式是否支援硬體重疊,請呼叫 IDirectDraw7::GetCaps。 如果 dwMaxVisibleOverlays 欄位中的 DDCAPS 結構大於零,則驅動程式支援硬體重疊。
應用程式可以透過 IMixerPinConfig2 介面,控制重迭混音器上的某些行為。 遊戲開發人員可以使用重迭混音器,在 DirectDraw 獨佔模式中顯示視訊,如本節稍後所述。 不過,視訊混合轉譯器篩選 9 (VMR-9) 現在為遊戲中的視訊提供更好的支援。 如需詳細資訊,請參閱 使用視訊混合轉譯器。
下列資訊適用於篩選開發人員,以及想要在 DirectDraw 獨佔模式中使用重疊混音器的遊戲開發人員。
重疊混音器內部作業
重迭混音器會針對每個傳入數據流公開輸入針腳。 一般而言,有三個輸入針腳:視訊數據的針腳 0,以及第 21 行和 DVD 子圖片數據的針腳 1 和 2。 在內部,重迭混音器會建立 DirectDraw 物件,其中主要介面包含整個桌面,再加上由 Pin 0 上視訊串流大小所定義的重疊表面。 如果譯碼器未指定色彩索引鍵,重迭混音器會使用預設色彩索引鍵:較新的圖形卡片使用深灰色,而較舊的 256 色卡則使用深灰色。
注意
如果譯碼器同時在重疊表面的相同位置提供兩個次要視訊串流,則結果為未定義。 (這有時會發生於包含子圖片和第 21 行數據流的 DVD。視訊可能會閃爍,或只顯示其中一個數據流。
在 Windows Vista 或更新版本上,如果顯示驅動程式支援硬體重疊,重迭混音器會停用桌面視窗管理員 (DWM) 組合。 應用程式應避免使用重迭混音器篩選;請改用 VMR-9 或增強式視訊轉譯器 (EVR)。
使用視訊譯碼器 上游連線
通常重迭混音器的輸入針腳會連線到上游視訊譯碼器。 主要視訊串流必須連線到針腳 0。 第 21 行或子圖片數據流會連線到針腳 1 或更新。 如果譯碼器是獨佔使用主機 CPU 的軟體譯碼器,譯碼器和 Pin 0 之間的連線是 IMemInputPin 連線。 如果譯碼器使用硬體加速,則 Pin 0 的連線必須使用 IAMVideoAccelerator 推斷。 這兩種類型的連線互斥。
如果譯碼器直接繪製到重迭介面上,它應該使用針腳 0 上的 IOverlay 介面,並實作 IOverlayNotify 介面。
包裝硬體譯碼器並透過視訊埠連線到重疊混音器的篩選條件,必須實作 IVPConfig 介面。 重迭混音器會實作 IVPNotify 介面。 這兩個介面可讓譯碼器指定它所需的重疊表面,而且它們可讓重疊混音器通知譯碼器這些表面在視訊記憶體中的位置。
重疊混音器也可確保視訊矩形已正確縮放。 視訊擷取涉及調整預覽影像和擷取交錯視訊畫面的某些問題。 如果您要開發硬體視訊擷取裝置的篩選或WDM驅動程式,請參閱 IVPConfig 和 IVPNotify 參考頁面,以取得這些主題的詳細資訊。
重迭混音器不適用於 1394 或 USB 擷取案例。 它用於透過PCI總線的視訊擷取。
使用視訊轉譯器 下游連線
重迭混音器有一個輸出釘選,可連線到 視訊轉譯器 篩選。 在此情況下,影片轉譯器不會轉譯影片;它只會管理視訊視窗。
針腳聯機會使用 IOverlay 介面,而不是 IMemInputPin 介面。 影片轉譯器會透過重迭混音器將視窗控點傳遞至 DirectDraw,以管理矩形裁剪。 應用程式可以透過篩選 Graph 管理員上的 IVideoWindow 和 IBasicVideo2 介面來控制視訊轉譯器。
DirectDraw 獨佔模式
重迭混音器的 DirectDraw 獨佔模式可讓遊戲在畫面的某些部分顯示視訊。 在此模式中,重迭混音器會將視訊直接轉譯為遊戲應用程式所建立的 DirectDraw 表面,而不是轉譯器所提供的視窗。 這可讓遊戲控制色彩鍵。 重迭混音器只會在 DirectDraw 獨佔模式中公開一個輸入針腳,這表示無法在此模式中執行第 21 行或 DVD 子圖片的混合。
若要在 DirectDraw 獨佔模式中使用覆迭混音器,請在建置篩選圖形之前,先建立 Overlay Mixer 的實例,並查詢其 IDDrawExclModeVideo 介面。 然後呼叫 IDDrawExclModeVideo::SetDDrawSurface,以指定轉譯的 DirectDraw 表面。 此模式的一個重要限制是遊戲無法存取實際的視訊位。 如果您使用 IDDrawExclModeVideo,您的應用程式會建立主要介面,而重迭混音器會建立重疊介面。
您也可以使用 DirectDraw 獨佔模式來執行無視窗轉譯,例如在網頁中,但不建議這麼做,因為重迭混音器不會在此模式中執行任何混合。 這表示無法顯示第 21 行或子圖片數據。
相關主題