You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(60) |
Jul
(52) |
Aug
(67) |
Sep
(167) |
Oct
(186) |
Nov
(173) |
Dec
(220) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(37) |
Feb
(66) |
Mar
(89) |
Apr
(71) |
May
(32) |
Jun
(61) |
Jul
(64) |
Aug
(99) |
Sep
(33) |
Oct
(31) |
Nov
(50) |
Dec
(41) |
| 2004 |
Jan
(9) |
Feb
(9) |
Mar
(25) |
Apr
(23) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(9) |
Sep
(1) |
Oct
(31) |
Nov
(38) |
Dec
|
| 2005 |
Jan
(16) |
Feb
(49) |
Mar
(14) |
Apr
(1) |
May
|
Jun
(12) |
Jul
(25) |
Aug
(18) |
Sep
(48) |
Oct
(76) |
Nov
(20) |
Dec
|
| 2006 |
Jan
(16) |
Feb
(12) |
Mar
(4) |
Apr
(5) |
May
(77) |
Jun
(37) |
Jul
(15) |
Aug
|
Sep
(3) |
Oct
(15) |
Nov
(7) |
Dec
(27) |
| 2007 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
(7) |
Jun
(18) |
Jul
(44) |
Aug
(12) |
Sep
(1) |
Oct
(13) |
Nov
(15) |
Dec
(5) |
| 2008 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(8) |
Oct
(6) |
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(3) |
| 2010 |
Jan
(8) |
Feb
(8) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(17) |
Oct
(7) |
Nov
(3) |
Dec
|
| 2011 |
Jan
(34) |
Feb
(47) |
Mar
(12) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
(20) |
Aug
(4) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(40) |
| 2012 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
| 2013 |
Jan
(2) |
Feb
(33) |
Mar
(21) |
Apr
(10) |
May
(29) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(21) |
Nov
(21) |
Dec
(7) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(5) |
Sep
(23) |
Oct
(29) |
Nov
(2) |
Dec
(1) |
| 2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(8) |
|
From: Takashi N. <nak...@ni...> - 2013-03-02 11:38:53
|
中島です。 giを使ったGStreamerのサンプルを移植中ですが、今度はadapter フォルダのadapter_test.cについて、以下3点ご教示お願いします。 (今現在困っているのは3つめだけですが) 1. GstBaseのバインディング このadapter_test.cは、GstBase-1.0.girに定義されている GstAdapterを使っています。こちらGstBaseのバインディングの 作成予定はありますでしょうか? なお、試しにgst.rbのモジュール名とLoaderのパラメータを "GstBase"に変えたものをrequireしてみたところ、 GstBase::Adapter.newは通ったようです。 2. Gst::Bufferの生成方法 AdapterにGst::Bufferを与えるのですが、これを生成する関数として、 オリジナル使用の gst_buffer_new_and_alloc() の v.1.0版と思われる、 gst_buffer_new_allocate() を使いたいと考えています。 しかしgiの Gst::Bufferには new_allocate というコンストラクタが定義 されておらず、 buf = Gst::Buffer.new buf.initialize_new_allocate(nil, size) という形になっているようです。 これで生成と初期化はできているようですが、気分としては buf = Gst::Buffer.new_allocate(nil, size) などで一発生成できるとうれしいです。 3. Gst::Bufferがwritableにならない 上記生成したGst::Bufferに、 buf.memset(0, 0, size) で0クリアしようとしたところ、コンソールに大量のメッセージ (adapter_test.rb:8776): GStreamer-CRITICAL **: gst_buffer_memset: assertion `gst_buffer_is_writable (buffer)' failed が出力され、書き込みに失敗しました。 GStreamerのリファレンスによると、Bufferのrefcountが1でなければ ならないらしいですが、上記 2. のコードだとカウントが上がってしまうので しょうか? なお、refcountを確認したいのですが、Buffer内でカウントを持っているらしい GstMiniObjectを以下のように参照すると puts buf.mini_object.refcount 以下のエラーになります。 /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:150:in `get_field_value': failed to get field value (ArgumentError) from /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:150:in `block (2 levels) in load_fields' なお、現在のコードは以下です。 https://github.com/ted-n/ruby-gnome2/blob/adapter/gstreamer-gi/sample/adapter_test.rb https://github.com/ted-n/ruby-gnome2/blob/adapter/gstreamer-gi/sample/gst-base.rb |
|
From: Takashi N. <nak...@ni...> - 2013-02-24 14:25:23
|
中島です。 (2013年02月24日 22:48), Kouhei Sutou wrote: > そうですね! > ただ、1.8.7はあと数ヶ月でサポートが終了するので、Ruby-GNOME2 > プロジェクトとしてはRuby 1.8系はサポート対象外とします! 改めて確認しましたが、1.8.7はもう今年の6月までだったんですね。 了解しました。 (Mac環境はこれも更新しなきゃ^^;) |
|
From: Kouhei S. <ko...@co...> - 2013-02-24 13:48:16
|
須藤です。 In <512...@ni...> "Re: [ruby-gnome2-devel-ja] GStreamerサンプルへのosssinkの使用是非について" on Sun, 24 Feb 2013 22:34:11 +0900, Takashi Nakajima <nak...@ni...> wrote: > ところで、Mac OS Xでも動かそうとしていて(できてませんが) > 気がついたのですが、このサンプルで以下のエラーが出ます。 > > ../../gobject-introspection/lib/gobject-introspection/loader.rb:207:in > `validate_arguments': undefined method `cover?' for 1..1:Range > (NoMethodError) > from > ../../gobject-introspection/lib/gobject-introspection/loader.rb:75:in > `define_module_function' > from > ../../gobject-introspection/lib/gobject-introspection/loader.rb:79:in `call' > from > ../../gobject-introspection/lib/gobject-introspection/loader.rb:79:in > `parse_launch' > from mp3parselaunch.rb:58 > > Macは関係なくて、単にRuby 1.8.7なのでRange#cover?がないせいと思われます。 そうですね! ただ、1.8.7はあと数ヶ月でサポートが終了するので、Ruby-GNOME2 プロジェクトとしてはRuby 1.8系はサポート対象外とします! |
|
From: Takashi N. <nak...@ni...> - 2013-02-24 13:35:01
|
中島です。 回答ありがとうございます! > はい!変更するべきだと思います。 > > autoaudiosinkで動くならそっちの方がいいかなぁと思います。そ > うすれば、Mac OS XやWindowsでも動きそうな気がするので。 autoaudiosinkで動いたので、これでpull requestさせていただきました。 よろしくお願いいたします。 ところで、Mac OS Xでも動かそうとしていて(できてませんが) 気がついたのですが、このサンプルで以下のエラーが出ます。 ../../gobject-introspection/lib/gobject-introspection/loader.rb:207:in `validate_arguments': undefined method `cover?' for 1..1:Range (NoMethodError) from ../../gobject-introspection/lib/gobject-introspection/loader.rb:75:in `define_module_function' from ../../gobject-introspection/lib/gobject-introspection/loader.rb:79:in `call' from ../../gobject-introspection/lib/gobject-introspection/loader.rb:79:in `parse_launch' from mp3parselaunch.rb:58 Macは関係なくて、単にRuby 1.8.7なのでRange#cover?がないせいと思われます。 |
|
From: Kouhei S. <ko...@co...> - 2013-02-24 06:00:38
|
須藤です。 In <512...@ni...> "[ruby-gnome2-devel-ja] GStreamerサンプルへのosssinkの使用是非について" on Sun, 24 Feb 2013 01:35:37 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: > しばらく間が空きましたが、giを使ったGStreamerサンプル移植を継続中です。 ありがとうございます! > サンプルフォルダlaunchにあるmp3parselaunch.cを選び、コード自体はすぐに > (若干変更すれば)動いたのですが、サンプル内容がかなりの環境依存の > もののようで、そのままpull requestしてよいか迷っています。 > ご意見いただければ幸いです。 環境依存のものをよりポータブルな方向で修正するのはアリだと思 います! > このサンプルは変更すべきでしょうか? > (やるとしたらosssink→alsasinkもしくはpulsesinkかなと) はい!変更するべきだと思います。 autoaudiosinkで動くならそっちの方がいいかなぁと思います。そ うすれば、Mac OS XやWindowsでも動きそうな気がするので。 |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-23 16:35:56
|
中島です。 しばらく間が空きましたが、giを使ったGStreamerサンプル移植を継続中です。 サンプルフォルダlaunchにあるmp3parselaunch.cを選び、コード自体はすぐに (若干変更すれば)動いたのですが、サンプル内容がかなりの環境依存の もののようで、そのままpull requestしてよいか迷っています。 ご意見いただければ幸いです。 オリジナルのコードは"filesrc name=my_filesrc ! mad ! osssink"という パイプライン文字列をparseして再生するだけなのですが、私の環境(Fedora 18) ではosssinkのおかげで、以下のエラーが起きます。 /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:80:in `invoke': mad0 を osssink0 へリンクできません (GLib::Error) from /home/nakajima/Projects/ruby/gtk/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb:80:in `block (2 levels) in define_module_function' from mp3parselaunch.rb:58:in `<main>' そもそも私の環境では $ gst-launch filesrc ! mad ! osssink が同じエラーになり、以下の2つの問題があります。 1) mad と osssinkのフォーマットが合わない 2) そもそもossドライバがない これは 1) audioconvertエレメントをはさむか、alsasinkなどに変える 2) PulseAudio OSSラッパーのpadspを使って起動する ことで回避できることがわかりました。 サンプルプログラム内のパイプライン文字列を "filesrc name=my_filesrc ! mad ! alsasink" に変えるか、もしくは "filesrc name=my_filesrc ! mad ! audioconvert ! osssink" に変更し、padsp ruby 〜 で起動することで動きました。 なるべくオリジナルに忠実に移植したいと思っているのですが、 変更しないと動かなそうなコードを提出するのは少し気が引けています。 このサンプルは変更すべきでしょうか? (やるとしたらosssink→alsasinkもしくはpulsesinkかなと) なお、現在のコード全体はこちらです。 https://github.com/ted-n/ruby-gnome2/blob/launch/gstreamer-gi/sample/mp3parselaunch.rb |
|
From: Kouhei S. <ko...@co...> - 2013-02-13 15:00:51
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時のsignal_connectについて" on Wed, 13 Feb 2013 23:51:43 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: > 動いたので、またpull requestさせていただきました。ご覧ください。 ありがとうございます! 取り込みました! > ところで、好みの問題かもしれませんが、Gst::Caps#to_sは、 > リファレンスと同じく、Gst::Caps#to_stringのエイリアスに > なっていてほしいと思います。 > そのうち対応いただければうれしいです。 エイリアスにはせずに、#to_stringを#to_sとして定義するように しました!(Gst::Capsだけではなく、全体的に。) |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-13 14:52:19
|
中島です。 (2013年02月13日 21:29), Kouhei Sutou wrote: >> 何かおまじないが要るんでしょうか? > はい、いるんです! > GStreamerは内部でスレッドを作るんですが、RubyはRubyが初期化 > されたスレッド内でしか動けないので、GStreamer側からコールバッ > クを呼ばれたときにそのままRubyで定義されたコールバックを呼ぶ > わけにはいかないんです。そうしちゃうと、GStreamer側が作った > スレッドから呼ばれると死んじゃいます。なので、違うスレッドか > ら呼ばれてもRubyが初期化されたスレッドで実行する、というおま > じないをかけないといけません。 > > ということで、かけておきました! > git pull --rebaseして、gobject-introspection/でmakeしてから > もう一度動かしてみてもらえますか? 対応ありがとうございます! 動いたので、またpull requestさせていただきました。ご覧ください。 ところで、好みの問題かもしれませんが、Gst::Caps#to_sは、 リファレンスと同じく、Gst::Caps#to_stringのエイリアスに なっていてほしいと思います。 そのうち対応いただければうれしいです。 |
|
From: Kouhei S. <ko...@co...> - 2013-02-13 12:30:16
|
須藤です。
In <511...@ni...>
"[ruby-gnome2-devel-ja] gi使用時のsignal_connectについて" on Wed, 13 Feb 2013 00:06:12 +0900,
NAKAJIMA Takashi <nak...@ni...> wrote:
> で、今度はtypefind.cにしました。
> (ruby-gnome2-devel-enでも表明した方がいいのかな?
> metadataは取りかかられている方がいらっしゃるので
> やらないでおきます)
あぁ、かぶりそうなら表明した方がよさそうですねぇ。
今回はかぶらないと思うので大丈夫だと思います!
> こちらはsignal_connectがあるのですが、以下のコードで
> エラーになっています。
>
> # add objects to the main pipeline
> pipeline << filesrc << typefind << sink
>
> typefind.signal_connect("have-type") do |probability, caps|
> (caps情報をXML形式で吐くコード)
> end
>
> 実行時のエラーメッセージ:
> ** (typefind.rb:16761): ERROR **: Please call
> rbgutil_start_callback_dispatch_thread() to dispatch a callback from
> non-ruby thread before callbacks are requested from non-ruby thread.
>
> 何かおまじないが要るんでしょうか?
はい、いるんです!
GStreamerは内部でスレッドを作るんですが、RubyはRubyが初期化
されたスレッド内でしか動けないので、GStreamer側からコールバッ
クを呼ばれたときにそのままRubyで定義されたコールバックを呼ぶ
わけにはいかないんです。そうしちゃうと、GStreamer側が作った
スレッドから呼ばれると死んじゃいます。なので、違うスレッドか
ら呼ばれてもRubyが初期化されたスレッドで実行する、というおま
じないをかけないといけません。
ということで、かけておきました!
git pull --rebaseして、gobject-introspection/でmakeしてから
もう一度動かしてみてもらえますか?
|
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-12 15:06:49
|
中島です。
queue.rbのマージありがとうございます!
で、今度はtypefind.cにしました。
(ruby-gnome2-devel-enでも表明した方がいいのかな?
metadataは取りかかられている方がいらっしゃるので
やらないでおきます)
こちらはsignal_connectがあるのですが、以下のコードで
エラーになっています。
# add objects to the main pipeline
pipeline << filesrc << typefind << sink
typefind.signal_connect("have-type") do |probability, caps|
(caps情報をXML形式で吐くコード)
end
実行時のエラーメッセージ:
** (typefind.rb:16761): ERROR **: Please call
rbgutil_start_callback_dispatch_thread() to dispatch a callback from
non-ruby thread before callbacks are requested from non-ruby thread.
何かおまじないが要るんでしょうか?
なおコード全体は以下です。
https://github.com/ted-n/ruby-gnome2/blob/typefind/gstreamer-gi/sample/typefind.rb
|
|
From: Kouhei S. <ko...@co...> - 2013-02-12 12:33:56
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時のGst::Pipeline.add(というかBus.add)の引数について" on Tue, 12 Feb 2013 01:10:40 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: > うわぁ、速いですね! こちらでも動いたので、さっそくですがpull requestを > 出させていただきました(またエラーメッセージが取れていませんが...^^;) ありがとうございます! 取り込みました! さすがに2つめは割とすんなりいきましたね。。。よかったです。 |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-11 16:10:56
|
中島です。 (2013年02月12日 00:00), Kouhei Sutou wrote: > pipeline.add(filesrc, decode, queue, audiosink) > > というリストをとる構文が使えません。 > できるようにしておきました! > > あと、 > > pipeline << filesrc << decode << queue << audiosink > > もできるようにしておきました! >> またlinkの方も >> 同様に >> >> filesrc.link(decode, queue, audiosink) >> >> ができません。こちらはできれば API Referenceにあるような >> >> filesrc >> decode >> queue >> audiosink >> >> が使えればうれしいです。 > どっちもできるようにしておきました! うわぁ、速いですね! こちらでも動いたので、さっそくですがpull requestを 出させていただきました(またエラーメッセージが取れていませんが...^^;) >> (g_assertはどうするのがいいのかな?) > raiseか単に何もしないでいいと思います。 > Cと違ってRubyだとnilになってもSEGVはしないので。 > > raiseする場合は > > raise "queue is missing" > > みたいにメッセージをつけた方が失敗したときにわかりやすいかなぁ > と思いました! そうですね。現helloworld.rbの書き方にならって、メッセージをつけてみました。 |
|
From: Kouhei S. <ko...@co...> - 2013-02-11 15:00:33
|
須藤です。 In <511...@ni...> "[ruby-gnome2-devel-ja] gi使用時のGst::Pipeline.add(というかBus.add)の引数について" on Mon, 11 Feb 2013 23:08:52 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: > pipeline.add(filesrc) > pipeline.add(decode) > pipeline.add(queue) > pipeline.add(audiosink) > > というように1つずつaddしないと動かず、 > > pipeline.add(filesrc, decode, queue, audiosink) > > というリストをとる構文が使えません。 できるようにしておきました! あと、 pipeline << filesrc << decode << queue << audiosink もできるようにしておきました! > またlinkの方も > 同様に > > filesrc.link(decode, queue, audiosink) > > ができません。こちらはできれば API Referenceにあるような > > filesrc >> decode >> queue >> audiosink > > が使えればうれしいです。 どっちもできるようにしておきました! > まだpull requestを出せるレベルではありませんが、今のコードは > 以下のとおりです。 > > https://github.com/ted-n/ruby-gnome2/blob/queue/gstreamer-gi/sample/queue.rb おぉ。 > (g_assertはどうするのがいいのかな?) raiseか単に何もしないでいいと思います。 Cと違ってRubyだとnilになってもSEGVはしないので。 raiseする場合は raise "queue is missing" みたいにメッセージをつけた方が失敗したときにわかりやすいかなぁ と思いました! |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-11 14:09:19
|
中島です。 giを使ったGStreamerのサンプルを移植中です。 今度は(短いので)queue.cにしました。 再生はすぐにできたのですが、Gst::Pipelineにフィルタを 追加するところで、 pipeline.add(filesrc) pipeline.add(decode) pipeline.add(queue) pipeline.add(audiosink) というように1つずつaddしないと動かず、 pipeline.add(filesrc, decode, queue, audiosink) というリストをとる構文が使えません。またlinkの方も 同様に filesrc.link(decode, queue, audiosink) ができません。こちらはできれば API Referenceにあるような filesrc >> decode >> queue >> audiosink が使えればうれしいです。 まだpull requestを出せるレベルではありませんが、今のコードは 以下のとおりです。 https://github.com/ted-n/ruby-gnome2/blob/queue/gstreamer-gi/sample/queue.rb (g_assertはどうするのがいいのかな?) |
|
From: Kouhei S. <ko...@co...> - 2013-02-11 09:45:21
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時Gst::Bus.add_watchの引数" on Mon, 11 Feb 2013 00:56:01 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: >> ありがとうございます!マージしました! >> 気になったところは直接コミットしておきました! >> >> 変更点はこんな感じです。 >> https://github.com/ruby-gnome2/ruby-gnome2/commits/master > > マージありがとうございます! 修正についてはお手数おかけしました。 いえいえ!こちらこそありがとうございました! > 私もrebaseして試してみたのですが、なぜか挙動が変わりませんでした。(?) > まあ私の環境だけみたいなので、ゆっくり調べることにして、次のサンプルに > 取りかかろうと思います。 そうですね! それでいいと思います! |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-10 15:56:22
|
中島です。 (2013年02月10日 23:14), Kouhei Sutou wrote: > ありがとうございます!マージしました! > 気になったところは直接コミットしておきました! > > 変更点はこんな感じです。 > https://github.com/ruby-gnome2/ruby-gnome2/commits/master マージありがとうございます! 修正についてはお手数おかけしました。 > 手元でも試してみたらたしかに再現しました。 > で、自分の手元で試していたやつとの違いを確認してみたら > > GLib::MainLoop.new(nil, false) > と > GLib::MainLoop.new > が違いました。 > > 私は(めんどくさかったので)後者を使っていたのですが、後者だ > と > GLib::MainLoop.new(nil, true) > という意味になります。 > > で、第二引数がtrueだとどういう意味かというと、このメインルー > プはもう動いているよーという意味だったりします。 > http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-main-loop-new > > この動きから考えると、メインループが動いている状態でエラーが > 起きるとadd_watchに処理がいって、そうじゃなければloop.runし > たときにエラーが通知されるんだろうと思います。 私もrebaseして試してみたのですが、なぜか挙動が変わりませんでした。(?) まあ私の環境だけみたいなので、ゆっくり調べることにして、次のサンプルに 取りかかろうと思います。 |
|
From: Kouhei S. <ko...@co...> - 2013-02-10 14:15:03
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時Gst::Bus.add_watchの引数" on Sun, 10 Feb 2013 22:31:08 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: >> 今の状態でpull requestしてもらえますか?一旦、マージして同じ >> コードをみましょう! > > 了解しました! たった今、pull requestを出させていただきました。 > (ユーザ名ted_nです。変なところがあればご指摘ください) ありがとうございます!マージしました! 気になったところは直接コミットしておきました! 変更点はこんな感じです。 https://github.com/ruby-gnome2/ruby-gnome2/commits/master もし、変更点がメールで通知されるとうれしいなぁという場合はこ ちらをどうぞ。(私はこっちを使っています。) https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-cvs > pull request直前にrebaseさせていただき、gstreamer-giだけ再ビルド > しました。そこでGst::uri_is_validをGst::valid_uri?に修正しましたが、 > 上記エラーハンドリングは変わらなかったです。 手元でも試してみたらたしかに再現しました。 で、自分の手元で試していたやつとの違いを確認してみたら GLib::MainLoop.new(nil, false) と GLib::MainLoop.new が違いました。 私は(めんどくさかったので)後者を使っていたのですが、後者だ と GLib::MainLoop.new(nil, true) という意味になります。 で、第二引数がtrueだとどういう意味かというと、このメインルー プはもう動いているよーという意味だったりします。 http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-main-loop-new この動きから考えると、メインループが動いている状態でエラーが 起きるとadd_watchに処理がいって、そうじゃなければloop.runし たときにエラーが通知されるんだろうと思います。 あ、GitHub上のやつは後者にして手元ではmp4が再生できました! ありがとうございます! あ、あ、エラーの起こし方ですが、テキストファイルを指定する以 外にも、未サポートのメディアファイルを指定するとよさそうです。 例えば、libavのプラグインをアンインストールした状態でmp4を指 定するとか。 >> http://sourceforge.net/mailarchive/message.php?msg_id=30466384 >> >> あと、↑の人と一緒に作業していく意味でも現時点のコードを共有 >> できるようになっていた方がいいかなぁと思いました。 > > 仲間が増えましたか! 私も英語版MLを見るようにしたいと思います。 ありがとうございます! |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-10 13:31:26
|
中島です。 (2013年02月10日 21:33), Kouhei Sutou wrote: >> やってみたのですが、例外GLib::Errorが発生しているため、Busにattachした >> ハンドラでメッセージを捕捉する前に、下記のメインループ部loop.runを >> 飛び出して、例外ハンドラに行ってしまうようです。 > おぉ。。。 > 手元で試したらadd_watchの中のGst::MessageType::ERRORまでいっ > たんですけど。。。GStreamerのバージョンが違うからかしら。。。 > > 今の状態でpull requestしてもらえますか?一旦、マージして同じ > コードをみましょう! 了解しました! たった今、pull requestを出させていただきました。 (ユーザ名ted_nです。変なところがあればご指摘ください) > あと、昨日、英語のメーリングリストの方でも試してくれた人がい > て、そこでもらった問題を今のmasterで修正しています。git pull > --rebaseしてもう一度試してもらうともっとよくなっているか > も。。。 pull request直前にrebaseさせていただき、gstreamer-giだけ再ビルド しました。そこでGst::uri_is_validをGst::valid_uri?に修正しましたが、 上記エラーハンドリングは変わらなかったです。 > http://sourceforge.net/mailarchive/message.php?msg_id=30466384 > > あと、↑の人と一緒に作業していく意味でも現時点のコードを共有 > できるようになっていた方がいいかなぁと思いました。 仲間が増えましたか! 私も英語版MLを見るようにしたいと思います。 > はい、基本的にはそうしています。 > ただ、outが1つでそれがGErrorのときだけは戻り値ではなく例外を > あげるようになっています。 > >> (どこかに書いてあったらすみません) > いえ、コードにしか書いていないので聞いてください! 了解しました。毎度すみませんが、よろしくお願いいたします。 |
|
From: Kouhei S. <ko...@co...> - 2013-02-10 12:33:18
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時Gst::Bus.add_watchの引数" on Sun, 10 Feb 2013 21:03:52 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: >> gstreamer-gi/の方でおねがいします! >> GI関連は全部そっちでやりましょう! > > 了解しました。ではgstreamer-gi/sampleということで。 はい! >>> あと、元のCコードにならって、再生ループ中に飛んでくる >>> Gst::Messageを以下のようなコードで捕捉しようとしているのですが、 >>> MessageType::ERRORを起こさせる方法がわからず、parse_error部分の >>> テストができなくて困っています。 >>> どなたかご存知でしたら、教えていただければ助かります。 >> 音楽や動画のファイルではなくテキストファイルを渡すと発生する >> ようです! > > やってみたのですが、例外GLib::Errorが発生しているため、Busにattachした > ハンドラでメッセージを捕捉する前に、下記のメインループ部loop.runを > 飛び出して、例外ハンドラに行ってしまうようです。 おぉ。。。 手元で試したらadd_watchの中のGst::MessageType::ERRORまでいっ たんですけど。。。GStreamerのバージョンが違うからかしら。。。 今の状態でpull requestしてもらえますか?一旦、マージして同じ コードをみましょう! あと、昨日、英語のメーリングリストの方でも試してくれた人がい て、そこでもらった問題を今のmasterで修正しています。git pull --rebaseしてもう一度試してもらうともっとよくなっているか も。。。 http://sourceforge.net/mailarchive/message.php?msg_id=30466384 あと、↑の人と一緒に作業していく意味でも現時点のコードを共有 できるようになっていた方がいいかなぁと思いました。 > おお、ご指導ありがとうございます! このへんのしくみを理解できて > いないのですが、GIの定義でdirection="out"なパラメータがあったら > 複数の場合も含めて、すべて戻り値で返す、と考えておけばいいでしょうか。 はい、基本的にはそうしています。 ただ、outが1つでそれがGErrorのときだけは戻り値ではなく例外を あげるようになっています。 > (どこかに書いてあったらすみません) いえ、コードにしか書いていないので聞いてください! |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-10 12:04:25
|
中島です。
(2013年02月10日 12:23), Kouhei Sutou wrote:
> 確認させてほしいのですが、gstreamer-giを使ったサンプルは
> gstreamer-gi/の下にsampleディレクトリを作って置いた方が
> よろしいでしょうか。それとも、元のgstreamer/sampleで
> よかったでしょうか。
> gstreamer-gi/の方でおねがいします!
> GI関連は全部そっちでやりましょう!
了解しました。ではgstreamer-gi/sampleということで。
>> あと、元のCコードにならって、再生ループ中に飛んでくる
>> Gst::Messageを以下のようなコードで捕捉しようとしているのですが、
>> MessageType::ERRORを起こさせる方法がわからず、parse_error部分の
>> テストができなくて困っています。
>> どなたかご存知でしたら、教えていただければ助かります。
> 音楽や動画のファイルではなくテキストファイルを渡すと発生する
> ようです!
やってみたのですが、例外GLib::Errorが発生しているため、Busにattachした
ハンドラでメッセージを捕捉する前に、下記のメインループ部loop.runを
飛び出して、例外ハンドラに行ってしまうようです。
# start play back and listed to events
playbin.state = Gst::State::PLAYING
begin
loop.run
rescue Interrupt
puts "Interrupt"
rescue => error
puts "Error: #{error.message}"
ensure
playbin.state = Gst::State::NULL
end
実行結果:
Error: これはテキストファイルのようです
扱いとしては再生停止なのでこれでもOKとは思いますが、元のGst::Messageが
取れないため、parse_errorからデバッグ情報が取れないのが惜しい気がします。
たとえばGLib::ErrorをGst::Messageに入れたままraiseしないようなオプション
とか、
またはGLib::Errorなど他からGst::Messageを取得する方法はないでしょうか?
>> when Gst::MessageType::ERROR
>> err = nil
>> debug = nil
>> message.parse_error(err, debug)
>> puts "Debugging info: #{(debug) ? debug : 'none'}"
>> puts "Error: #{err.message}"
> たぶん、こう書くことになるんじゃないかなぁと思います!
>
> error, debug = message.parse_error
> puts "Debugging info: #{debug || 'none'}"
> puts "Error: #{error.message}"
おお、ご指導ありがとうございます! このへんのしくみを理解できて
いないのですが、GIの定義でdirection="out"なパラメータがあったら
複数の場合も含めて、すべて戻り値で返す、と考えておけばいいでしょうか。
(どこかに書いてあったらすみません)
|
|
From: Kouhei S. <ko...@co...> - 2013-02-10 03:23:34
|
須藤です。
In <511...@ni...>
"Re: [ruby-gnome2-devel-ja] gi使用時Gst::Bus.add_watchの引数" on Sun, 10 Feb 2013 02:13:47 +0900,
NAKAJIMA Takashi <nak...@ni...> wrote:
> 確認させてほしいのですが、gstreamer-giを使ったサンプルは
> gstreamer-gi/の下にsampleディレクトリを作って置いた方が
> よろしいでしょうか。それとも、元のgstreamer/sampleで
> よかったでしょうか。
gstreamer-gi/の方でおねがいします!
GI関連は全部そっちでやりましょう!
> あと、元のCコードにならって、再生ループ中に飛んでくる
> Gst::Messageを以下のようなコードで捕捉しようとしているのですが、
> MessageType::ERRORを起こさせる方法がわからず、parse_error部分の
> テストができなくて困っています。
> どなたかご存知でしたら、教えていただければ助かります。
音楽や動画のファイルではなくテキストファイルを渡すと発生する
ようです!
> when Gst::MessageType::ERROR
> err = nil
> debug = nil
> message.parse_error(err, debug)
> puts "Debugging info: #{(debug) ? debug : 'none'}"
> puts "Error: #{err.message}"
たぶん、こう書くことになるんじゃないかなぁと思います!
error, debug = message.parse_error
puts "Debugging info: #{debug || 'none'}"
puts "Error: #{error.message}"
|
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-09 17:14:15
|
中島です。
giを使ったGStreamerサンプルの移植中です。
確認させてほしいのですが、gstreamer-giを使ったサンプルは
gstreamer-gi/の下にsampleディレクトリを作って置いた方が
よろしいでしょうか。それとも、元のgstreamer/sampleで
よかったでしょうか。
あと、元のCコードにならって、再生ループ中に飛んでくる
Gst::Messageを以下のようなコードで捕捉しようとしているのですが、
MessageType::ERRORを起こさせる方法がわからず、parse_error部分の
テストができなくて困っています。
どなたかご存知でしたら、教えていただければ助かります。
bus.add_watch(GLib::PRIORITY_DEFAULT) do |bus, message|
case message.type
when Gst::MessageType::EOS
puts "End-of-stream"
loop.quit
when Gst::MessageType::ERROR
err = nil
debug = nil
message.parse_error(err, debug)
puts "Debugging info: #{(debug) ? debug : 'none'}"
puts "Error: #{err.message}"
loop.quit
end
true
end
|
|
From: Kouhei S. <ko...@co...> - 2013-02-08 14:31:19
|
須藤です。 In <511...@ni...> "Re: [ruby-gnome2-devel-ja] gi使用時Gst::Bus.add_watchの引数" on Fri, 08 Feb 2013 00:31:43 +0900, NAKAJIMA Takashi <nak...@ni...> wrote: > giを使ったGstreamerサンプルのhelloworldが動きました! > もう少し整理したら、pull requestを送れそうです。 わぁ!よかったです! ありがとうございます! |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-07 15:31:53
|
中島です。 giを使ったGstreamerサンプルのhelloworldが動きました! もう少し整理したら、pull requestを送れそうです。 ありがとうございました。 |
|
From: NAKAJIMA T. <nak...@ni...> - 2013-02-07 14:55:51
|
中島です。
(2013年02月06日 22:32), Kouhei Sutou wrote:
> gstreamer/以下ではうまくやっていけそうにないので、今回用に
> gstreamer-gi/というのを作りました。そこで、↑に対応させまし
> た。手元ではadd_watchできることを確認しました。以下で試せる
> はずです。
>
> ruby-gnome2% git pull --rebase
> ruby-gnome2% cd gobject-introspection
> gobject-introspection% make
> gobject-introspection% cd ../gstreamer-gi
> gstreamer-gi% ruby extconf.rb
> gstreamer-gi% make
> gstreamer-gi% ruby \
> -I lib \
> -I ext/gstreamer \
> -I ../glib2/lib \
> -I ../glib2/ext/glib2 \
> -I ../gobject-introspection/lib \
> -I ../gobject-introspection/ext/gobject-introspection \
> #{gstreamer-giを使う.rbファイル}
>
> また、
>
> require "gst-gi"
>
> ではなく
>
> require "gst"
>
> に変えてください。
ありがとうございます! こちらの環境でもadd_watchできたようです。
また、前回使えなかったenumのGst::State::PLAYINGも使えるようになっていま
した。
|