使用GStreamer的多个应用程序

时间:2012-08-23 12:02:19

标签: gstreamer

我想写(但首先我想了解如何做)基于GStreamer框架的应用程序(不止一个),它们将同时共享相同的硬件资源。

例如:有一个硬件加速用于视频解码。我想同时启动两个能够使用硬件加速解码不同视频流的应用程序。当然我假设HW能够处理这样的请求,有适当的驱动程序(但不是GStreamer元素),但是如何编写GStreamer元素来支持不同进程之间的这种资源共享?

我会很感激任何链接,建议从哪里开始...

2 个答案:

答案 0 :(得分:1)

你有h / w可以同时访问。因此,同时访问它的两个gstreamer元素应该工作!这里没有Gstreamer特有的东西。

假设您想要编写解码元素,它就像任何解码元素一样,您可以正确访问您的硬件。您的驱动程序应该处理并发访问。 起点是Gstreamer插件编剧指南。

答案 1 :(得分:1)

因此,您需要一个控制HW解码器的过程,并解码来自多个源的流。

我建议建立一个守护进程,也可能是基于GStreamer。 gdppay和gdpdepay提供了非常简单的方法来将数据通过套接字传递给守护进程并返回。守护程序将等待指定端口(或unix套接字)上的连接,并为每个连接打开虚拟解码器。单独应用程序中的视频解码器元素将在内部连接到守护程序并获取已解码的视频。