簡體   English   中英

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

[英]Porting Gstreamer SDK Tutorials (gstreamer 0.1) to gstreamer 1.0

有沒有人試圖將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"); 

     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-用“videoconvert”替換“ffmpegcolorspace”

在上述更改之后,我可以構建並運行該程序,但它會在一段時間后出現以下錯誤:從元素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/

如果不查看最終代碼,很難猜到。 但錯誤來自appsrc並且是“未經協商的”。 從0.10到1.0的一個主要變化是緩沖區不再具有上限。

在0.10中,當您向appsrc發送GstBuffer時,它將攜帶GstCaps,並且在推送第一個緩沖區時將設置並協商。 在1.0中,你應該在向緩沖區推送緩沖區之前明確設置一個上限。

另外,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的小對象,可能很有用仔細檢查你是否正確使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM