共用方式為


重疊 Mixer 篩選器

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

重迭混音器篩選是專為 DVD 播放和廣播視訊串流所設計的視訊轉譯器,具有第 21 行隱藏式輔助字幕。 重迭混音器也支援視訊埠延伸模組 (VPEs) ,讓其能夠使用硬體 MPEG-2 解碼器或直接將視訊傳送至圖形卡的類比電視微調器,而不是透過 PCI 匯流排。

注意

視訊混合轉譯器 9現在優先于重迭混音器篩選準則,但 VPE 案例除外。

 

重迭混音器會使用 DirectDraw 進行轉譯。 它需要圖形卡上的重迭介面。 主要視訊串流應該連線到釘選 0。 次要串流 (關閉標題圖形或 DVD 子圖形) 會連線到針腳 1 和更新版本。 重迭混合器會將次要串流直接導向至主要 suface;它不會混合或 Alpha 混合。

重迭混音器會使用視訊轉譯器進行視窗管理。 視訊轉譯器會連接到重迭器輸出針腳。

當應用程式使用 IGraphBuilderICaptureGraphBuilder2 介面來建立圖形時,會自動將此篩選新增至篩選圖表。 篩選圖形管理員不會自動將重迭混音器新增至圖形。

注意

在下表中,輸入針腳 0 上接受的媒體子類型相依于硬體。 在建立 DirectDraw 表面之前,重迭混音器無法判斷是否支援特定子類型。 因此,上游篩選器判斷是否支援子類型的唯一方法是嘗試與該子類型的連線。

 

標籤
篩選介面 IAMOverlayFXIAMVideoDecimationPropertiesIBaseFilterIDDrawExclModeVideoIKsPropertySetIMediaPosition、IMediaSeekingIMixerOCXIQualPropIVPNotify、IVPNotify2
輸入釘選媒體類型 主要類型:MEDIATYPE_Video
亞:
  • 僅MEDIASUBTYPE_Overlay (針腳 0)
  • DirectDraw YUV 格式僅 (針腳 0)
  • DirectDraw 影片加速格式 (僅釘選 0)
  • DirectDraw RGB 格式 (所有輸入針腳)
格式類型:
  • Format_VIDEOINFO
  • Format_VIDEOINFO2
輸入針腳介面 IAMVideoAcceleratorIKsPin、IKsPropertySetIMemInputPinIMixerPinConfig、IMixerPinConfig2IOverlay (pin 0 only) 、IPin、IPinConnectionIQualityControlIVPNotifyIVPNotify2
輸出釘選媒體類型 MEDIATYPE_Video,MEDIASUBTYPE_Overlay
輸出針腳介面 IMediaPositionIMediaSeekingIPinIQualityControl
篩選 CLSID CLSID_OverlayMixer
屬性頁 CLSID 沒有屬性頁。
可執行檔 qdvd.dll
優點 MERIT_DO_NOT_USE
篩選類別 CLSID_LegacyAmFilterCategory

 

備註

重迭混音器會使用目的地色彩索引鍵來混合視訊表面與重迭。 它會將色彩索引鍵和次要視訊點選到主要介面,並將主要視訊傳送至重迭介面。 圖形卡接著會將兩個表面複合成其框架緩衝區。

若要測試圖形驅動程式是否支援硬體重迭,請呼叫 IDirectDraw7::GetCaps。 如果DDCAPS結構中的dwMaxVisibleOverlays欄位大於零,驅動程式支援硬體重迭。

應用程式可以透過 IMixerPinConfig2 介面控制重迭混音器上的某些行為。 遊戲開發人員可以使用重迭混音器,在 DirectDraw 獨佔模式中顯示影片,如本節稍後所述。 不過, 影片混合轉譯器篩選 9 (VMR-9) 現在提供較佳的遊戲視訊支援。 如需詳細資訊,請參閱 使用影片混合轉譯器

下列資訊適用于篩選開發人員的優點,以及想要在 DirectDraw 獨佔模式中使用重迭混合器的遊戲開發人員。

重迭混合器內部作業

重迭混音器會針對每個傳入資料流程公開輸入針腳。 一般而言,有三個輸入針腳:視訊資料的針腳 0,以及第 21 行和 DVD 子圖片資料的針腳 1 和 2。 在內部,重迭混音器會建立 DirectDraw 物件,其中包含組成整個桌面的主要介面,再加上矩形是由 Pin 0 上的視訊串流大小所定義的重迭介面。 如果解碼器未指定色彩索引鍵,重迭混音器會使用預設色彩索引鍵:較新的圖形卡片使用深灰色,而較舊的 256 色卡則為深灰色。

注意

如果解碼器在重迭表面的相同位置同時傳遞兩個次要視訊資料流程,結果就會未定義。 (這有時會發生在包含子圖形和第 21 行 streams.) 視訊可能會閃爍或只顯示其中一個資料流程的 DVD。

 

在 Windows Vista 或更新版本上,如果顯示驅動程式支援硬體重迭,重迭混合器會停用桌面視窗管理員 (DWM) 組合。 應用程式應該避免使用重迭混合器篩選;請改用 VMR-9 或增強的視訊轉譯器 (EVR) 。

與影片解碼器的上游連線

一般而言,重迭器輸入針腳會連線到上游視訊解碼器。 主要視訊串流必須連線到針腳 0。 第 21 行或子圖形資料流程會連線到針腳 1 或更新版本。 如果解碼器是軟體解碼器,該解碼器是獨佔使用主機 CPU 的軟體解碼器,則解碼器與 Pin 0 之間的連線是 IMemInputPin 連線。 如果解碼器使用硬體加速,則 Pin 0 的連線必須使用 IAMVideoAccelerator 推斷。 這兩種類型的連線互斥。

如果解碼器直接繪製到重迭介面上,它應該使用針腳 0 上的 IOverlay 介面,並實作 IOverlayNotify 介面。

包裝硬體解碼器並透過視訊埠連線到重迭混音器的篩選準則必須實作 IVPConfig 介面。 重迭器會實作 IVPNotify 介面。 這兩個介面可讓解碼器指定所需的重迭表面,並讓重迭混音器通知解碼器在視訊記憶體中這些表面的位置。

重迭混音器也可確保視訊矩形已正確調整。 視訊擷取涉及調整預覽影像和擷取交錯視訊畫面的特定問題。 如果您要開發硬體視訊擷取裝置的篩選或 WDM 驅動程式,請參閱 IVPConfigIVPNotify 參考頁面,以取得這些主題的詳細資訊。

重迭混合器不會在 1394 或 USB 擷取案例中使用。 它會用於透過 PCI 匯流排的視訊擷取。

與影片轉譯器的下游連線

重迭混音器具有連接到 影片轉譯器 篩選的輸出針腳。 在此情況下,影片轉譯器不會轉譯視訊;它只會管理視訊視窗。

針腳連接會使用 IOverlay 介面,而不是 IMemInputPin 介面。 影片轉譯器會透過重迭混音器將其視窗控點傳遞至 DirectDraw,以管理矩形裁剪。 應用程式可以透過篩選圖形管理員上的 IVideoWindowIBasicVideo2 介面來控制影片轉譯器。

DirectDraw 獨佔模式

重迭混合器的 DirectDraw 獨佔模式可讓遊戲在畫面的某些部分顯示視訊。 在此模式中,重迭混音器會將視訊直接轉譯成遊戲應用程式所建立的 DirectDraw 表面,而不是轉譯器所提供的視窗。 這可讓遊戲控制色彩按鍵。 重迭混音器只會在 DirectDraw 獨佔模式中公開一個輸入針腳,這表示無法在此模式中混用 Line 21 或 DVD 子圖形。

若要在 DirectDraw 獨佔模式中使用 Overlay 混合器,請先建立 Overlay 混合器的實例,並在建置篩選圖形之前先查詢 IDDrawExclModeVideo 介面。 然後呼叫 IDDrawExclModeVideo::SetDDrawSurface 來指定 DirectDraw 表面以進行轉譯。 此模式的其中一項重大限制是遊戲無法存取實際的視訊位。 如果您使用 IDDrawExclModeVideo,您的應用程式會建立主要表面,而 Overlay 混合器會建立重迭表面。

您也可以使用 DirectDraw 獨佔模式來執行無視窗轉譯,例如在網頁中,但不建議這麼做,因為重迭混音器不會在此模式中執行任何混合。 這表示無法顯示第 21 行或子圖片資料。

DirectShow 篩選