【问题标题】:Porting Gstreamer SDK Tutorials (gstreamer 0.1) to gstreamer 1.0将 Gstreamer SDK 教程 (gstreamer 0.1) 移植到 gstreamer 1.0
【发布时间】:2013-10-13 14:33:00
【问题描述】:

有没有人尝试移植 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-int 替换为 audio/x-raw

  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 函数上做更多工作。

提前感谢您的帮助。

【问题讨论】:

    标签: gstreamer


    【解决方案1】:

    SDK 教程已经移植到这里(由 GStreamer 开发人员之一):

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

    【讨论】:

    【解决方案2】:

    如果不查看您的最终代码,很难猜测。但是错误来自appsrc,并且是“未协商的”。从 0.10 到 1.0 的一个主要变化是缓冲区不再有上限。

    在 0.10 中,当您向 appsrc 发送 GstBuffer 时,它会携带一个 GstCaps,并且会在推送第一个缓冲区时设置和协商。在 1.0 中,您应该在将缓冲区推送到它之前显式地为 appsrc 设置一个上限。

    此外,audio/x-raw-int 并不完全等同于 audio/x-raw,因为 audio/x-raw 也可以表示浮点表示的音频。您可能需要检查 http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudio.html#GstAudioFormat 以查看是否要设置更严格的音频上限。

    另外,GstSample(http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html) 是一个包含 GstBuffer 和 GstCaps 的小对象,可能有助于再次检查您是否正确使用它。

    【讨论】:

    猜你喜欢
    • 2016-11-28
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多