|
From: Kouhei S. <ko...@co...> - 2013-05-08 14:15:42
|
須藤です。
In <518...@ni...>
"[ruby-gnome2-devel-ja] GStreamerサンプルstreamsのGstBus.set_sync_handler()について" on Wed, 08 May 2013 01:15:51 +0900,
Takashi Nakajima <nak...@ni...> wrote:
> framestep1.rbの取り込みありがとうございます。
こちらこそありがとうございます!
> GStreamerサンプル移植ですが、次にstreamsディレクトリの
> stream-status.cを試してみたところ、Gst::Bus.set_sync_handler()を
> 呼んだところで以下のエラーになりました。
>
> /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:307:in
> `invoke': TODO: <BusSyncHandler>(func) callback is not supported yet.
> (NotImplementedError)
> from
> /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:307:in
> `block in load_method_info'
> from stream-status.rb:71:in `<main>'
対応しました!
set_sync_handlerの代わりにsync_handlerを使ってください。
あと、ブロックの引数はbusとmessageになるのでこうなります。
bin.bus.sync_handler do |bus, message|
...
end
ブロックの中はここを変更しないといけなかったです。
- puts "object: type #{val.type_name}, value #{val.object}"
+ puts "object: type #{val.type.name}, value #{val.value}"
^ ^^^^^^
- if val.type == Gst::Type::Task
+ if val.type == Gst::Task
------
- Gst::Bus::PASS
+ Gst::BusSyncReply::PASS
+++++++++++
が、これを直しても以下のようなメッセージがでてSEGVするんです
よねぇ。。。
*** longjmp causes uninitialized stack frame ***: ruby terminated
GVLをいじってごにょごにょするのがダメなのかしら。。。
とりあえず、これは後回しにしたいのでtypoを直した状態でpull
requestしてもらえますか?
|