Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GStreamer插件在Haskell中的使用_Haskell_Opengl_Plugins_Gstreamer - Fatal编程技术网

GStreamer插件在Haskell中的使用

GStreamer插件在Haskell中的使用,haskell,opengl,plugins,gstreamer,Haskell,Opengl,Plugins,Gstreamer,我正在尝试使用GStreamer从网络摄像头获取图像,并将其加载到OpenGL纹理 我在用哈斯克尔图书馆。我设法在一个窗口中简单地显示网络摄像头的输出,其中v4l2src作为源,xImageSink作为接收器。现在我想把它加载到OpenGL纹理中。我看到您可以在C中使用GStreamer插件来完成这项工作,该插件允许您通过调用gst\u app\u sink\u pull\u sample()从管道中提取样本 我想我成功地加载了app插件和appsink功能,但我不知道Haskell中的gst\

我正在尝试使用GStreamer从网络摄像头获取图像,并将其加载到OpenGL纹理

我在用哈斯克尔图书馆。我设法在一个窗口中简单地显示网络摄像头的输出,其中
v4l2src
作为源,
xImageSink
作为接收器。现在我想把它加载到OpenGL纹理中。我看到您可以在C中使用GStreamer插件来完成这项工作,该插件允许您通过调用
gst\u app\u sink\u pull\u sample()
从管道中提取样本

我想我成功地加载了
app
插件和
appsink
功能,但我不知道Haskell中的
gst\u app\u sink\u pull\u sample()

这就是我加载
app
插件和
appsink
功能的方式:

import qualified Media.Streaming.GStreamer as GS

main = do
    GS.init
    appPlugin <- GS.pluginLoadByName "app"
    appsinkFeature <- GS.registryLookupFeature GS.defaultRegistry "appsink"

但是,在对管道进行采样之后,我该如何处理它呢?

@ellegnord和潜在的回答者:请注意,C答案在这里可能会有所帮助。gstreamer-Haskell库似乎是一个薄薄的包装器。如果GStreamer插件Elle不需要Haskell绑定,并且如果有一种方法可以只使用核心库来回答这个问题,那么从C直接翻译成Haskell应该是可能的。不幸的是,我无法提供更多帮助,因为我对这两种语言中的GStreamer库知之甚少。它似乎不是Haskell绑定的一部分,而且动态GLib动作信号的使用似乎不可能(如果我错了,请纠正我)。必须首先将其添加到绑定中。但独立于此,Haskell GStreamer绑定适用于GStreamer的旧0.10版本系列,自3年后不再维护。特别是对于任何与OpenGL相关的东西,都应该使用最新的1.6版本。但是这对你来说可能不是很有用,因为你似乎知道如何从C:)我认为可以在GStreamer Haskell库中使用信号,但我不知道如何做到这一点。信号的概念对我来说是很新的,我真的不知道从哪里开始。有什么建议吗?无论如何,感谢您的见解。据我所知,只有API可以连接到信号,您在这里需要的是能够发出信号。@ElleGnrd和潜在的回答者:请注意,C答案在这里可能会有所帮助。gstreamer-Haskell库似乎是一个薄薄的包装器。如果GStreamer插件Elle不需要Haskell绑定,并且如果有一种方法可以只使用核心库来回答这个问题,那么从C直接翻译成Haskell应该是可能的。不幸的是,我无法提供更多帮助,因为我对这两种语言中的GStreamer库知之甚少。它似乎不是Haskell绑定的一部分,而且动态GLib动作信号的使用似乎不可能(如果我错了,请纠正我)。必须首先将其添加到绑定中。但独立于此,Haskell GStreamer绑定适用于GStreamer的旧0.10版本系列,自3年后不再维护。特别是对于任何与OpenGL相关的东西,都应该使用最新的1.6版本。但是这对你来说可能不是很有用,因为你似乎知道如何从C:)我认为可以在GStreamer Haskell库中使用信号,但我不知道如何做到这一点。信号的概念对我来说是很新的,我真的不知道从哪里开始。有什么建议吗?无论如何,谢谢你的洞察力。在我看来,只有API可以连接到信号,你需要的是能够发出信号。
appSink <- GS.elementFactoryMake "appsink" (Just "app-sink")