[英]0x800C000D error when using AddSourceFilter in the directshow SDK
我正在嘗試使用DirectShow SDK構建圖形。 當我調用GraphBuilder.AddSourceFilter時,出現錯誤0x800C000D
private IGraphBuilder graphBuilder = null;
private IBaseFilter sourceFilter = null;
int hr = 0;
graphBuilder = (IGraphBuilder)new FilterGraph();
hr = graphBuilder.AddSourceFilter(filename, @"Source1", out sourceFilter);
之后,hr返回上述錯誤代碼,並引發異常。 擔心我的文件名不正確,我嘗試了以下操作:
udp://224.1.1.13:9005/10.10.1.3
udp://224.1.1.13:9005/0.0.0.0
udp://224.1.1.13:9005
該流可用並且正在傳輸,我已經使用地址udp://224.1.1.13:9005的VLC進行了確認。
我對DirectShow圖形構建非常缺乏經驗,所以我想知道我是否缺少一些基本知識。 我已經遍歷了有關msdn的圖形生成文檔,但是我聽說該過程比ms所允許的要細致得多。
0x800C000D
是PST_E_UNKNOWN_EXCEPTION
,並且是罕見的不建議使用的PStore故障代碼。 問題在於過濾器查找/實例化在某處太深處失敗。 沒有可用的DirectShow過濾器來處理udp://
流(據說是RTP / RTSP)。 VLC使用自己的代碼處理它們。
通常,您需要特定的第三方過濾器來呈現這些URL,並且可能還需要直接通過AddFilter
添加此過濾器,而不是依賴AddSourceFilter
通過公共協議注冊來選擇它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.