无法在自定义 gstreamer 插件中 Transform_caps

标签 c gstreamer

我正在编写一个 gstreamer (1.x) 插件,它将自动增益应用于视频帧。它将转换 GRAY16_LE -> GRAY8。

我首先在 gst-plugins-bad-1.3.2/tools 中运行 gst-element-maker 工具并使用 videofilter 模板。

如果我将 src 和水槽垫盖设置为“{GRAY8,GRAY16_LE}”,我可以运行以下管道:

gst-launch-1.0 videotestsrc ! video/x-raw,format=GRAY16_LE ! videoautogain ! videoconvert ! autovideosink

但是,它在 src 和接收器上使用相同的上限(在本例中为 GRAY16_LE)。如果将水槽盖更改为“{GRAY16_LE}”并将 src 盖更改为“{GRAY8}”,则会在连接管道时出错。我想我可能需要实现 GstBaseTransform->transform_caps 函数,但我不确定,也不知道应该如何实现它以在两个焊盘上强制静态但不同的上限。有人能指出我正确的方向吗?

最佳答案

我能够在 gst-plugins-bad-1.3.2/ext/opencv/gstcvsobel 中找到我需要做的事情的简单示例(尽管是在 GRAY8->GRAY16_LE 方向而不是 GRAY16_LE->GRAY8) .c 插件。现在效果很好!

关于无法在自定义 gstreamer 插件中 Transform_caps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147988/

相关文章:

c - System V 消息队列 - 获取已存在的消息

c - 在标准 C 中声明固定大小的整数 typedef

c++ - ffmpeg(-mt) 和 TBB

c编程,链表错误

linux - 无法使用 Gstreamer 从电视卡录制视频和声音

c - `register` 在 GStreamer 中做什么

gstreamer 1.0 rtspsrc 到 rtph264depay 无法链接

cmake - .so 之后是数字,如何在 cmake 的 find_library 中匹配它们?链接作为子依赖项的共享对象时出错

java - GStreamer-Java : RTSP-Source to UDP-Sink

c - 从 Haskell 释放 C 运行时分配的内存