3年後にはラスター画像が XML フォーマットで扱われているような気がする今日この頃。某所経由で OpenEXR とかいうフォーマット名を見たときには、既に本気でそれ(ラスター画像の XML 表記)をやってる奴らがいたのかと怯えてしまったけど、詳しく読んで見ると違ったので一安心。
ただ、OpenEXR 自体は、C++ の class 風インタフェースで扱えるフォーマットとかいう触れ込みで、ピクセルデータを単精度浮動小数点で持つらしいから、あともう一歩踏み出せば XML になってしまいそうな悪寒。いや Intel も当面安泰だね、CPU が 100G 超えてもマダマダ性能が足りない世界があるんだから。
メガテン話。プレイ時間が 70 を超えて現在 LV 85 の悪魔全書 70% でユウラクチョウ坑道。先週末で終わらせる予定だったけど、もう 20 時間ぐらいかかりそうな予感。攻略系ページでは 2 周目もあるという話なので、今週は仕事に差し支えない程度に遊ぼうかと。先週はさっぱり仕事がすすまなかったので色々と問題が発生しそうだし。
忙しいのに忙しいのに忙しいのに。
MPEG-2 VIDEO VFAPI Plug-In を 0.6.25 に更新しています。一部のファイルでオーディオのシークを行う際に無限ループに落ちることがあったため、その修正を行いました。
オーディオのシークと書いてはいますが、ファイルを開く際にオーディオの先頭へシークしているので、実質ファイルを開く瞬間に無限ループに落ちます。0.6.24 で修正したバグは、ファイルの終端が正常でない場合の問題でしたが、今回修正したバグはファイルの先頭が正常でない場合に発生する問題ですので、一部の USB キャプチャ系ハードウェアを使用していない人には影響しません。
sendmail のセキュリティホール対策で、パッチ当ててコンパイルと虚しい作業を積み重ね、当座の穴塞ぎは完了。つーか FreeBSD 4.5-RELEASE-p2 に ports 無視して OpenSSL/OpenSSH/Apache/bind を突っ込んでしまってるので既に収拾がつかない感じ。
いい加減 ports 等を無視するのは止めて CVSup 系で幸せになろうとか考えてはいるのだけど、今回の修正でも FreeBSD 4.7-RELEASE の /usr/src/contrib/sendmail をコピーして sendmail.patch を当ててとやってしまったので、更に訳がわからない環境になってしまったかも。この状況から /stand/sysinstall で upgrade とかやって 4-STABLE に問題なくいけるとか……そんな甘い考えは捨てた方がいいのだろうなぁ。
MPEG-2 VIDEO VFAPI Plug-In の 0.6.22 から英語版の readme を追加した訳で、その反響とか。つたない英語でも読んでくれる人はいるようで、バグが発生するサンプルを提供してくれる方や、MME.EXE の英語版やドイツ語版を作ってくれないかという方からメールを頂いたりするようになりました。
実際、0.6.24 および 0.6.25 で修正したバグは、海外の方から頂いたサンプルで判明したものだったりします。あちらが「バグが発生する短いサンプルを見つけたらアップロードしとくよ」と書いてるのに、こちらが「ごめん、間違ってサンプル消しちゃったみたいだからもう一度アップしてくれないか」とかメールするという微笑ましいエピソードまであったり。
それとは無関係に MPEG-2 VIDEO VFAPI Plug-In 0.6.26 を公開しています。今回修正したバグは toolame でエンコードした intensity stereo が使われている音声で「不正アクセス」を発生させる件です。
コード確認したら intensity stereo の対応が駄目駄目でした。未初期化領域参照したり、配列の範囲外を書き換えたりで。とりあえず落ちなくなるレベルまでは修正しましたが、まだ何かバグが眠っている可能性があるので妙な挙動を示すことがあったらサンプルを送ってください。
うー手が届くところに機械があれば迷わずクリーンインストールしちゃうんですけどね。流石に実物が大阪で間を繋ぐのが ssh 一本だけという状態ではちと躊躇してしまうわけですよ。
それでも一応再インストール覚悟でちまちまとバックアップを取ったり、手元のマシン一台潰して古い FreeBSD から ssh 経由で新しい FreeBSD に更新するテストとかやってます。不安要素はなるべく減らしてから作業しようかなというところでして。
本当は今日も MPEG-2 VIDEO VFAPI Plug-In 更新するつもりだったのですけど、intensity stereo に残っていたバグを潰すのに 1:00 までかかって、その後 mme.exe の多言語化とかやってら 3:00 過ぎに力尽きてしまいました。
残ってるのは readme に mme.exe に関しての注意事項(未サポートの機能がたくさん残ってるまま開発が頓挫してる。機能が追加されるのはパッチが送られてきた時になるだろう)を追加して、返事のメールを書くだけなんですが、それが一番面倒なんですよね。
MPEG-2 VIDEO VFAPI Plug-In 0.6.27 に更新しています。0.6.26 で修正しきれていなかった Intensity Stereo 関連のバグ修正と、MME.EXE の非日本語環境対応を行いました。
MP2 関連のバグ修正はこれで完了したと思いたいのですけど、多分まだ残ってるんでしょうね。問題が発生したらサンプルをお願いします。
週末に www.marumo.ne.jp のメンテナンスをするつもりだったけど、今の仕事の調子だとちょっと時間が取れそうにないな。来週末に延ばそう。
頑張って英語でメール書いたのに、user unknown error で帰ってくるととってもへこむね。メールの内容からすると topfield.de board の方っぽいのだけど、ドイツ語は読めないしな〜。
とりあえず書いたメールを To: jwitzsch@gmx.de ということで晒してみる。
昨日深夜のメンテナンスは結局失敗。/usr/src/* を一度消去していたのが悪かったのか /usr/src/sys/crypto が CVSup では作成されず、make buildkernel に失敗。流石にその状態で make installworld する勇気はなかったので作業中断。止めてた apache を再起動して就寝。
敗因、準備不足。もう少し情報収集して 30 日に再挑戦の予定。それまでには 4.8 が出ているかもしれないし。
先週は作業見積もりを間違った為にひどく苦労をしたけど、何とかそれも片付きそう。後は動作確認を取って問題がなければ、今日から次の DirectShow でのスプリッタフィルタの調査に着手できる。こっちはどれくらい時間がかかるかな〜。
仕事で必要になってしまったので仕方なく、DirectX Media 6 の MPEG parser サンプルソースと DirectX 9.0 SDK の日本語ドキュメントで DirectShow フィルタの作り方を勉強中。サンプルソースは AVI Splitter フィルタがあればもっと良かったのだけど、存在しないようなので仕方なく MPEG Parser を参考にしている。
DirectX のドキュメントがもう少し詳細なら嬉しいのになぁと思いながら、必要そうな部分を拾い読み。とりあえず、パーサフィルタでは CBaseFilter と CBasePin から直接継承してクラスを実装するしかなくて、フィルタ内部にストリーミングスレッドを持つ必要があり、FileSource フィルタからのデータは IAsyncReader インタフェース経由で受け取る必要があるというところまでは理解することができた。
後は CBasePin での接続手順とか IAsyncReader の取得方法とか出力ピンの追加作成方法とかだけどそれはソースを読んだ方が速そう。本当はこのレベルの情報もサンプル無しで理解できるようなドキュメントがあれば嬉しいのだけど、それは言っても仕方がないことなんだろうな。
カレンダーを確認してみたところ、パーサに費やせるのは来週一杯が限界の予感。この後ビデオデコーダとオーディオデコーダもフィルタ化しなきゃいけないし、最後にテスト期間も必要だから。南無。
http://www.iso.ch/iso/en/ittf/PubliclyAvailableStandards/ から 11172-5 も 13818-5 も 14496-5 も入手できるんじゃん。去年の8月に 11172-5 の PDF 版を購入して、解説だけでソースは付属してないのかとか思ってたのに、実はソースだけなら金を払う必要なかったというオチ?
とりあえずここで上げたファイルに関しては入手完了。一応解説しておくと 11172-5 は MPEG-1 の 13818-5 は MPEG-2 の 14496-5 は MPEG-4 のシミュレーションソフトウェア。MPEG 関連のソフトウェア作ってる人にとっては非常に参考になるもの。出来ればコレを読むのは最後の手段にしたいところではあるのだけど、それでもドキュメントでは不明なところを確認する役には立つ。
メガテン一週目クリア。105 時間というのは時間を掛けすぎたかも。一応悪魔全書 100% は完了してしまったけど、混沌王にはなれず。そちらは二周目にまわすことにした。
3/18 付けで VTune 7.0 がリリースされていた模様。さて、メジャーバージョンアップされたことだし、また一ヶ月使わせてもらうかと思ったのに。
We're sorry, each user may only obtain one 30-day evaluation for each version of Intel software development product.
との表示でライセンスファイルが入手できない。each version って事はバージョンアップしたらもう一度試用しても OK ってことじゃないのと思いつつ、問い合わせるのも面倒なのでいっそ買ってしまおうかとも思った。
のだけど、相不変 WEB から直接購入しようと思ったら US/CANADA のみとの表示。license only とか electronic なら worldwide で対応してくれてもいいんじゃないかな。しくしく。
XLSoft も NAG もまだ VTune 7.0 の注文は受け付けてないみたいだし、いっそ VTune 6.1 の試用ユーザだったが VTune 7.0 も試用させてくれとメールを書いてしまおうか……。
パーサフィルタって、Run() で動作開始するんじゃないのね。Pause() で動き始めなきゃいけないのね。お願いだから、そーゆー混乱しそうなことは SDK ドキュメントに書いてて欲しい。
先週後半パーサフィルタに Run() が来なくて動かないと悩み続け、結局こういうオチになると……何もする気がなくなってしまう。ドキュメントの不充分なフレームワークって最っ低ー。基底クラスのソース読んで、自力でサンプルアプリ組んで……。
sendmail またかよ……
あー VTune の試用ライセンス入手できなくて正解なのかもしれない。当分なにもできそうにない。ひたすらに悲しい。