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-「ffmpegcolorspace」を「videoconvert」に置き換えました
上記の変更後、プログラムをビルドして実行できますが、しばらくすると次のエラーが表示されます: 要素 audio_source から受信したエラー: 内部データ フロー エラー。デバッグ情報: gstbasesrc.c(2865): gst_base_src_loop (): /GstPipeline:test-pipeline/GstAppSrc:audio_source: ストリーミング タスクが一時停止、ネゴシエートされていない理由 (-4)
このチュートリアルの new_buffer と push_data 関数にもっと取り組む必要があると思います。
よろしくお願いいたします。