2014-03-05 63 views
-2

使用GraphStudioNext顯示我的過濾器輸出引腳具有GUID_NULL的主類型和子類型。 我在哪裏可以在C++代碼中設置它?我在哪裏設置主要和子類型的GUID

+0

這是用於IMpeg2Demultiplexer? –

+0

這是爲avi mux。它接受主要類型爲MEDIATYPE_STREAM和MEDIATYPE_Avi子類型的媒體 – Luke

+0

不熟悉,但使用mpeg創建[AM_MEDIA_TYPE](http://msdn.microsoft.com/en-us/library/windows/desktop/dd373477( v = vs.85).aspx)並將其傳遞給'CreateOutputPin'。 –

回答

1

根據MSDN,IPin::QueryAccept

S_OK的返回值指示,所述銷將接受的媒體類型,或者在下一樣本,或後一個針重新連接。

因此,您可以創建一個新的AM_MEDIA_TYPE並將其傳遞給IPin :: QueryAccept。

0

在MSDN中查找AMOVIESETUP_FILTER,這個結構描述了你的過濾器在系統中的註冊。它包含一些AMOVIESETUP_PIN,用於描述您的針腳幷包含一些AMOVIESETUP_MEDIATYPE結構,用於描述您的篩選器針腳的主要和子類型。如果你想GraphEdits顯示它們,這是放置正確類型的地方。

0

我不清楚,你在這裏做什麼(例如你的過濾器是和你是否嘗試將其連接到AVI MUX輸入或輸出),但一些基本點:

  • 之前連接GraphStudioNext中的引腳屬性顯示過濾器提供的介質類型。在使用基類的C++過濾器中,這通過覆蓋GetMediaType來完成 - 確切的類取決於您使用的過濾器/引腳類。如果你沒有覆蓋這個,你通常看不到提供的媒體類型。某些過濾器會接受帶有GUID_NULL/GUID_NULL媒體類型的輸入,但不太可能給出明智的結果(例如Avi Mux也許)。
  • 某些過濾器支持從輸入引腳提供媒體類型,但這種情況並不常見。
  • 連接後,GraphStudioNext中的引腳屬性顯示連接的媒體類型。
  • 如果要連接到Avi Mux輸入引腳,則需要仔細選擇媒體類型 - GraphStudioNext具有支持該模式的模式。 Avi Mux相當混雜,並且會將大多數DirectShow媒體類型和樣本包裝在AVI容器中,但如果媒體類型不正常,結果可能無法使用。這確實使得AVI文件成爲用於測試的有用的通用容器文件。注意AVI文件意外重新連接它們的輸入引腳 - 它們通常會在輸出引腳提供的第一種介質類型上重新連接。
  • Avi Mux輸出引腳預期通過IStream(如文件編寫器)連接到支持隨機存取的輸入引腳,而不是通過媒體採樣傳送數據。在GraphStudioNext中,您可以使用分析器文件寫入器過濾器並在屬性頁面中查看寫入過程。
  • 如果您只是想將所有輸出示例數據連接到文件,則可以使用Microsoft示例轉儲篩選器執行此操作。例如,這對診斷音頻問題很有用。這也是編寫自己的基於文件的渲染器的一個可能的起點。
  • 如果您對GraphStudioNext有任何問題,請在Google Code網站上添加問題。開發者正在傾聽!
相關問題