是否有人尝试将 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
将 audio/x-raw-int 替换为 audio/x-raw
将 data.app_sink, "new-buffer" 替换为 data.app_sink, "new-sample"
更换
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" );
更换
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-用“videoconvert”替换“ffmpegcolorspace”
进行上述更改后,我可以构建并运行程序,但片刻后它会出现以下错误:从元素 audio_source 收到错误:内部数据流错误。调试信息: gstbasesrc.c(2865): gst_base_src_loop (): /GstPipeline:test-pipeline/GstAppSrc:audio_source: 流任务暂停,原因未协商 (-4)
我想我必须在本教程的 new_buffer 和 push_data 函数上做更多的工作。
预先感谢您的帮助。