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

Yas*_*hil 2 gstreamer

有没有人试图将http://docs.gstreamer.com/display/GstSDK/Tutorials中提供的Gstreamer SDK教程移植 到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替换了data.app_sink,"new-buffer","new-sample"

  3. 更换

    tee_src_pad_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (data.tee), "src%d");
    
    Run Code Online (Sandbox Code Playgroud)

    tee_src_pad_template = gst_element_class_get_pad_template( GST_ELEMENT_GET_CLASS( data.tee ), "src_%u" ); 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 更换

    raw = (gint16 *)GST_BUFFER_DATA (buffer);
    
    Run Code Online (Sandbox Code Playgroud)

GstMapInfo stGstMapInfo1;
gst_buffer_map( buffer, &stGstMapInfo1, (GstMapFlags)( GST_MAP_READ | GST_MAP_WRITE ) );
raw = (gint16 *)stGstMapInfo1.data;
Run Code Online (Sandbox Code Playgroud)

...

/* Free the buffer now that we are done with it */
gst_buffer_unmap( buffer, &stGstMapInfo1 );
Run Code Online (Sandbox Code Playgroud)
  • 5-用"videoconvert"替换"ffmpegcolorspace"

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

我想我必须更多地学习本教程的new_buffer和push_data函数.

预先感谢您的帮助.

jja*_*don 9

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

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