GStreamer 的特点
Features of GStreamer
GStreamer 是否具有以下 functionalities/features,或者是否可以在 GStreamer 之上实现它们:
- 时间windows:设置图形,使一个元素的接收器垫不仅接收当前帧,还接收
n
先前帧和m
未来帧。包括寻求新职位时。
- 在元素之间传递数据时没有数据复制,而是重复使用相同的缓冲区。
- 在不同分支上的多个元素之间共享数据,该数据随时间变化,但缓冲方式使得所有元素对于相同的帧索引都获得相同的值。
Q1)时间windows
您需要使用 GstAdapter 编写您的插件。
Q2) 元素之间传递数据时没有数据拷贝
这是默认完成的。除非需要,否则不会将数据从一个元素复制到另一个元素。它只是传递一个指向 GstBuffer 实例的指针。如果一个元素像编码器或过滤器,需要在缓冲区上工作以产生新数据,显然会在 GstMemory 中使用新生成的数据创建一个新的 GstBuffer 实例。
Q3) 在多个元素之间共享数据
不太清楚你的意思。是否可以通过使用 GstMemory 共享来实现您想要的?看看gst_memory_share(), gst_buffer_copy_region(), or gst_adapter_get_buffer().
GStreamer 是否具有以下 functionalities/features,或者是否可以在 GStreamer 之上实现它们:
- 时间windows:设置图形,使一个元素的接收器垫不仅接收当前帧,还接收
n
先前帧和m
未来帧。包括寻求新职位时。 - 在元素之间传递数据时没有数据复制,而是重复使用相同的缓冲区。
- 在不同分支上的多个元素之间共享数据,该数据随时间变化,但缓冲方式使得所有元素对于相同的帧索引都获得相同的值。
Q1)时间windows
您需要使用 GstAdapter 编写您的插件。
Q2) 元素之间传递数据时没有数据拷贝
这是默认完成的。除非需要,否则不会将数据从一个元素复制到另一个元素。它只是传递一个指向 GstBuffer 实例的指针。如果一个元素像编码器或过滤器,需要在缓冲区上工作以产生新数据,显然会在 GstMemory 中使用新生成的数据创建一个新的 GstBuffer 实例。
Q3) 在多个元素之间共享数据
不太清楚你的意思。是否可以通过使用 GstMemory 共享来实现您想要的?看看gst_memory_share(), gst_buffer_copy_region(), or gst_adapter_get_buffer().