c++ IPC - d3d hook 和 directshow 捕获源

发布于 2024-08-23 10:10:12 字数 251 浏览 10 评论 0原文

我正在编写一个基本上类似于 Fraps 的应用程序,但它会将视频帧作为 DirectShow 捕获源推送。这将使在 ustream、justin.tv 等网站上流式传输游戏变得容易。我想知道进行进程间通信的最佳方式是什么。速度非常重要。现在我有一个被注入的 dll 并挂钩 d3d 以获取帧缓冲区。我需要一种方法将其发送到 directshow 过滤器。 DirectShow 对我来说真的很困惑,但我已经实现了 CSource 和 CSourceStream (在另一个 dll 中)。

I'm writing an app that will basically be like Fraps, but it will push video frames as a DirectShow Capture Source. This will make it easy to stream games on websites like ustream, justin.tv, etc. I'm wondering what the best way to do the interprocess communication would be. Speed is very important. Right now I have a dll that is injected and hooks d3d to grab the frame buffer. I need a way to send that to a directshow filter. DirectShow is really confusing for me, but I've implemented CSource an CSourceStream (in another dll).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌辣 2024-08-30 10:10:12

如果您想要速度,请使用共享内存。将其与 COM 结合起来进行正常通信,您就得到了标准的 Windows IPC 方法。

如果您想用更现代的 C++ 风格来包装它,请查看 Boost.Interprocess' 原语。

If you want speed, use shared memory. Combine that with COM for normal communication and you got a standard windows IPC approach.

If you want to wrap it up with a more modern C++ style, take a look at Boost.Interprocess' primitives.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文