gstreamer - 将 Gstreamer SDK 教程 (gstreamer 0.1) 移植到 gstreamer 1.0

标签 gstreamer

是否有人尝试将 Gstreamer SDK 教程移植到 http://docs.gstreamer.com/display/GstSDK/Tutorials 到 gstreamer 1.0?

我尝试将 basic-tutorial-8.c 从 GstSDK 移植到 gstreamer 1.0。最终结果不起作用,并且在运行时退出并出现错误。

这是我到目前为止所做的。我的主要帮助来源是以下页面: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-porting-1.0.html#section-porting-objects-1.0

  1. 用audio/x-raw替换audio/x-raw-int

  2. 将 data.app_sink, "new-buffer"替换为 data.app_sink, "new-sample"

  3. 已替换

    tee_src_pad_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (data.tee), "src%d");
    

    tee_src_pad_template = gst_element_class_get_pad_template( GST_ELEMENT_GET_CLASS( data.tee ), "src_%u" ); 
    
  4. 已替换

    raw = (gint16 *)GST_BUFFER_DATA (buffer);
    

GstMapInfo stGstMapInfo1;
gst_buffer_map( buffer, &stGstMapInfo1, (GstMapFlags)( GST_MAP_READ | GST_MAP_WRITE ) );
raw = (gint16 *)stGstMapInfo1.data;

。 。 .

/* Free the buffer now that we are done with it */
gst_buffer_unmap( buffer, &stGstMapInfo1 );
  • 5- 将“ffmpegcolorspace”替换为“videoconvert”

经过上述更改后,我可以构建并运行该程序,但几分钟后出现以下错误: 从元素 audio_source 收到错误:内部数据流错误。 调试信息:gstbasesrc.c(2865): gst_base_src_loop():/GstPipeline:test-pipeline/GstAppSrc:audio_source: 流任务暂停,原因未协商 (-4)

我认为我必须在本教程的 new_buffer 和 push_data 函数上做更多的工作。

预先感谢您的帮助。

最佳答案

SDK 教程已移植到此处(由 GStreamer 开发人员之一移植):

http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/

关于gstreamer - 将 Gstreamer SDK 教程 (gstreamer 0.1) 移植到 gstreamer 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19346350/

相关文章:

streaming - 使用 GStreamer 创建 MJPEG 流

linux - Gstreamer - opus caps 解析错误,有人知道如何解决吗?

Gstreamer、rtspsrc 和负载类型

Gstreamer 多个接收器不起作用

c++ - 必须在QObject::connect之前调用g_signal_connect?

c - 当主循环在 Gstreamer 中运行时,如何从控制台(stdin)读取并执行用户命令?

linux - Linux 上的 gstreamer 音频错误

linux - GStreamer:具有不会构建的依赖项的插件

c# - Gstreamer 单声道开发人员

c - GStreamer 视频窗口未打开 (macOS)