|
From: Takashi N. <nak...@ni...> - 2013-05-07 16:20:16
|
中島です。 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>' コード全文は以下です。 https://github.com/ted-n/ruby-gnome2/blob/streams/gstreamer/sample/stream-status.rb |
|
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してもらえますか?
|
|
From: Takashi N. <nak...@ni...> - 2013-05-09 16:15:18
|
中島です。
(2013年05月08日 23:15), Kouhei Sutou wrote:
> とりあえず、これは後回しにしたいのでtypoを直した状態でpull
> requestしてもらえますか?
いろいろtypoすみません。直してpull requestしました。
動かない状態でrequestするのは何か申し訳ないですが...
次に移ろうかと思いますが、controllerサンプルのため、GObjectIntrospectionで
GstControllerを読めるようになりませんでしょうか?
当方で勝手にloader.load("GstController")してみたところ、以下のエラーが
出てしまっています。
/home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:
line 146
GLib-GObject-CRITICAL **:g_param_spec_boxed: assertion `G_TYPE_IS_BOXED
(boxed_type)' failed
/home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:
line 146
GLib-GObject-CRITICAL **:g_object_class_install_property: assertion
`G_IS_PARAM_SPEC (pspec)' failed
|
|
From: Takashi N. <nak...@ni...> - 2013-05-12 09:10:29
|
中島です。
(2013年05月11日 10:43), Kouhei Sutou wrote:
> む、手元だとおきないですねぇ。
> masterでGst.initするとGstControllerもloadするようにしておい
> たのでそれでも同じようなエラーになるか確認してもらえますか?
ありがとうございます。現masterのGst.initでは起きませんでした。
ただControllerではなくて、Gst::Clockの方でつまづいています。
bin = Gst::Pipeline.new("pipeline")
clock = bin.clock
...
clock_id = clock.new_single_shot_id(clock.time + (7 * Gst::SECOND))
私の環境では、ここでclock_idにnilが返ってきてしまいます。
Cコードでは問題なく動くのですが。
コード全文は以下です。
https://github.com/ted-n/ruby-gnome2/blob/controller/gstreamer/sample/audio-example.rb
|
|
From: Takashi N. <nak...@ni...> - 2013-05-15 12:51:21
|
中島です。 (2013年05月14日 21:56), Kouhei Sutou wrote: > 数値が変えるようにしました! > C的にはgpointer(= void *)なのですが、Rubyにはポインターが > ないのでアドレスを数値として返すようにしました。 ありがとうございます!ご指摘の修正込みでpull requestさせていただきました。 |
|
From: Kouhei S. <ko...@co...> - 2013-05-15 12:57:09
|
須藤です。 In <519...@ni...> "Re: [ruby-gnome2-devel-ja] GStreamerサンプルstreamsのGstBus.set_sync_handler()について" on Wed, 15 May 2013 21:50:53 +0900, Takashi Nakajima <nak...@ni...> wrote: > (2013年05月14日 21:56), Kouhei Sutou wrote: >> 数値が変えるようにしました! >> C的にはgpointer(= void *)なのですが、Rubyにはポインターが >> ないのでアドレスを数値として返すようにしました。 > > ありがとうございます!ご指摘の修正込みでpull requestさせていただきました。 ありがとうございます! 取り込みました! |
|
From: Kouhei S. <ko...@co...> - 2013-05-14 12:57:15
|
須藤です。
In <518...@ni...>
"Re: [ruby-gnome2-devel-ja] GStreamerサンプルstreamsのGstBus.set_sync_handler()について" on Sun, 12 May 2013 18:10:14 +0900,
Takashi Nakajima <nak...@ni...> wrote:
> ただControllerではなくて、Gst::Clockの方でつまづいています。
>
> bin = Gst::Pipeline.new("pipeline")
> clock = bin.clock
> ...
> clock_id = clock.new_single_shot_id(clock.time + (7 * Gst::SECOND))
>
> 私の環境では、ここでclock_idにnilが返ってきてしまいます。
数値が変えるようにしました!
C的にはgpointer(= void *)なのですが、Rubyにはポインターが
ないのでアドレスを数値として返すようにしました。
> コード全文は以下です。
> https://github.com/ted-n/ruby-gnome2/blob/controller/gstreamer/sample/audio-example.rb
手元では
wait_ret = Gst::Clock.id_wait(clock_id)
$stderr.puts "Clock::id_wait returned: #{wait_ret}" if wait_ret != Gst::Clock::OK
を
wait_ret, jitter = Gst::Clock.id_wait(clock_id)
$stderr.puts "Clock::id_wait returned: #{wait_ret}" if wait_ret != Gst::ClockReturn::OK
にしたら動いたのでそこだけ直してpull requestしてもらえますか?
修正点:
* id_waitの戻り値は第2引数のjitterもある。
* Clock::OKではなくClockReturn::OK。
|
|
From: Kouhei S. <ko...@co...> - 2013-05-11 01:43:28
|
須藤です。
In <518...@ni...>
"Re: [ruby-gnome2-devel-ja] GStreamerサンプルstreamsのGstBus.set_sync_handler()について" on Fri, 10 May 2013 01:15:03 +0900,
Takashi Nakajima <nak...@ni...> wrote:
>> とりあえず、これは後回しにしたいのでtypoを直した状態でpull
>> requestしてもらえますか?
>
> いろいろtypoすみません。直してpull requestしました。
> 動かない状態でrequestするのは何か申し訳ないですが...
いえいえ、むしろこちらの力不足ですみません。。。
> 次に移ろうかと思いますが、controllerサンプルのため、GObjectIntrospectionで
> GstControllerを読めるようになりませんでしょうか?
> 当方で勝手にloader.load("GstController")してみたところ、以下のエラーが
> 出てしまっています。
む、手元だとおきないですねぇ。
masterでGst.initするとGstControllerもloadするようにしておい
たのでそれでも同じようなエラーになるか確認してもらえますか?
バージョンの違いなんですかねぇ。手元では1.0.7を使っているの
ですが。。。
% dpkg -l | grep libgstreamer1.0-dev
ii libgstreamer1.0-dev 1.0.7-1 amd64 GStreamer core development files
|