很難把它放到標題中,所以讓我解釋一下。在整個過程中使用指針傳遞紋理
我有一個使用Direct3D以顯示一些目和DirectShow(VMR9 +分配器)來播放某些視頻,然後發送視頻幀作爲紋理Direct3D的一部分被施加到網的應用程序。應用程序需要全天候運行。至少它可以每24小時重新啓動一次,但不會比這更頻繁。
現在的問題是,由於編解碼器,視頻驅動程序或視頻文件本身,directshow在播放幾個小時後似乎出現問題。此時應用程序只是拒絕播放視頻。但Direct3D部分仍然運行良好,網格仍然顯示。應用程序重新啓動後,一切恢復正常。
因此,我正在考慮將2部分拆分爲2個不同的過程。因此,當視頻過程無法播放視頻時,至少我可以立即重新啓動它,而不會丟失Direct3D部分。
所以問題來了,是否可以通過傳遞指針將視頻播放器中的紋理傳遞給direct3d進程,也就是從指針中檢索另一個進程的紋理?由於受保護的內存尋址,我最初的猜測是不可能的。
我在這兩個進程上都有TCP通信設置,我們不用擔心在這一點上傳遞指針。
這可能是一個瘋狂的想法,但它的工作不知道你是否分離出來作爲一個單獨的過程然後我懷疑這是不可能的這是有史以來可能
這就是分開它們的目的。目前,該播放器正在與direct3d分開的線程上運行。如果紋理存儲在視頻內存上,該怎麼辦? – faulty 2008-12-01 17:17:39
不確定視頻內存如何映射到進程/線程內存空間。只是不是我曾經處理過的事情。 – EBGreen 2008-12-01 18:49:26