CVF_ImageUnit。(追記) [開発系とか]
追記)CoreVF全体をコンパイルし直しました。(リンク)
//
昨日コメントをくれた78さんへ。速度低下の対処を試みました。
(リンク削除)
こちらを試していただけますか。よろしくお願いします。
//
拙作CoreVFのプラグインの一つ、CVF_ImageUnit。エンコード時にCoreImageフィルタをかけることが出来るのですが、長時間エンコードで不安定であるという指摘を受けていました。
いろいろ調べたのですが、
1)NSConnection -connectionWithRegisteredName:host:を呼び
2)connectionのrootProxyを得て
3)setProtocolForProxy:を呼ぶ
という処理を何度も繰り返すと、proxy経由の呼び出しが徐々にスローダウンする、という現象を突き止めました。(MacOS X 10.6.8で確認)
最初は上記の処理も、proxy呼び出しのオーバーヘッドも、1/1000もかからなかいのです。が、これを数万という単位で繰り返し呼び出すと、上記の処理、さらにはproxy経由のオーバーヘッドが、どんどん増大する、という悪循環に陥るようです。
一時間も処理をまわすとconnectionのinvalidateでハングアップのような状態に陥る現象が発生し、使い物にならなくなります。
プロセス間通信のエラー処理が面倒だから、簡単に使えるNSDistributedObjectを使っているのに、こういう落とし穴があると結構困ります。
・・・こういう連続呼び出しにDOを使う方が間違っているような気もしますが・・・
//
昨日コメントをくれた78さんへ。速度低下の対処を試みました。
(リンク削除)
こちらを試していただけますか。よろしくお願いします。
//
拙作CoreVFのプラグインの一つ、CVF_ImageUnit。エンコード時にCoreImageフィルタをかけることが出来るのですが、長時間エンコードで不安定であるという指摘を受けていました。
いろいろ調べたのですが、
1)NSConnection -connectionWithRegisteredName:host:を呼び
2)connectionのrootProxyを得て
3)setProtocolForProxy:を呼ぶ
という処理を何度も繰り返すと、proxy経由の呼び出しが徐々にスローダウンする、という現象を突き止めました。(MacOS X 10.6.8で確認)
最初は上記の処理も、proxy呼び出しのオーバーヘッドも、1/1000もかからなかいのです。が、これを数万という単位で繰り返し呼び出すと、上記の処理、さらにはproxy経由のオーバーヘッドが、どんどん増大する、という悪循環に陥るようです。
一時間も処理をまわすとconnectionのinvalidateでハングアップのような状態に陥る現象が発生し、使い物にならなくなります。
プロセス間通信のエラー処理が面倒だから、簡単に使えるNSDistributedObjectを使っているのに、こういう落とし穴があると結構困ります。
・・・こういう連続呼び出しにDOを使う方が間違っているような気もしますが・・・






すばらいい!
スローダウン、エンコ終了時のCVF_ImageUnitの問題ともに改善されていました。
GPUによるフィルターで速度低下回避いいですね。
いいフィルターの提供、感謝です。
by 78 (2011-08-21 18:24)
言い忘れがありました。
当方の環境(OSX10.6.8、MSClip最新、x264Encoder 1.2.24、このCVF_ImageUnit)でほぼ100%落ちる操作が見つかりました。
エンコ中にstopを押すことです。
by 78 (2011-08-21 19:12)
もう少しいじった物をビルドしましたので、再度試してみてください。(本日の記事です)
by MyCometG3 (2011-08-21 21:58)