Ut Video Codec Suite の開発に使っている Mac の中身を Yosemite + Xcode 6.4 にしました。

Read the rest of this entry

手持ちのレポジトリの多くを git 化したわけですが、TortoiseGit で git add するけど git commit は(まだ)しない、という操作のやり方が分かりません。前々職とかで git を使っていた時は全部コマンドラインでやってたんで。

一応、エクスプローラ上でファイルを右クリックすると「Git Add all files now」というのが出てきますが、これは TortoiseGit が出しているのではなく、その下層に位置する Git for Windows が出しているもののようです。この操作をした時に、TortoiseGit の動作と矛盾が生じないかどうか心配があります。

TortoiseGit は TortoiseSVN と同じ感じで使えるようにわざとこの辺を隠ぺいしているんですかね…?

なお、直接 Git Bash 使えばいいじゃん、という話はありますが、こちらの調査はまだやっていません。

優先度とかは特になしで。

  • QuickTime インターフェースでの非効率な実装の解消
  • ワーカースレッドのスレッド優先度を設定する機能 参考
  • デコーダを特定のレンダラに接続すると動作がおかしい件の解明と解消 参考
  • UQRA/UQRG
  • UPY4? ULY4?

せっかく GitHub にもレポジトリを置いたのだから、そこの issues で管理した方がいいのではないかという気もしてきた。

友人宅に置いてある CentOS 5 の自鯖(この blog が動いている鯖ではない)の電源を切らなければいけなくなったのですが、電源ボタンを短押しした時の挙動を調べていて shutdown コマンドの man ページを見ると、

        -h     Halt or poweroff after shutdown.

と書いてあることに気が付きました(太字は梅澤による)。えっ。

Read the rest of this entry

手元の Subversion なレポジトリのうち、オープンソースであるようなものを git に変換し、さらに GitHub に載せました。ただし、マスターは依然として手元にあるものとして扱います。

対象は imck, mdsplayer, utplayer, utvideo, vctest, vclist, kotoribot, kancolle-dic です。

GitHub に載せた直接的な理由は、utvideo の fork らしきものが6個あるからです。 utvideo で検索 / libutvideo で検索

あと、git なので手元にあるレポジトリと GitHub にあるレポジトリとは完全に同じものになるはずで、HDD の障害などでレポジトリを失う可能性を低くすることができます。

Windows 10 がリリースされたので手元の VM 上で動作確認をしていたのですが、ULRA な AVI のエクスプローラー上でのサムネイルが上下反転するという症状が確認されました。

Windows Vista 以降では、エクスプローラー上でのサムネイルの生成はまず MFT (Media Foundation Transform) 版のコーデックを使ってデコードしようとする(ダメだったら DirectShow にフォールバックする)のですが、そこに問題があるようです。ざっと調べたところ、コーデックを使う側が渡してくるバッファがトップダウンかボトムアップかが Windows によって異なるらしいということは分かりましたが、何故かそれを判別できないようです。単に私の MFT に対する理解が浅いだけなんですけど。

MFT 版はバージョン 12.0.0 の時に「うっかり実装してしまった」ものなのですが、MFT 版って私の知る範囲では Windows Media Player とエクスプローラー上でのサムネイルの生成でしか使われておらず、調査に苦労して解決しても別段得しないので、MFT 版は廃止することにします。

将来、MFT 版がどうしても必要になったら、その時にまた追加するでしょう。

10.7 Lion 以降は “Mac” が取れて “OS X” らしいんですがまあそれはともかく。

今の Ut Video Codec Suite の Mac 版は Mac OS X 10.5 SDK を使ってビルドされていて、readme の表記では 10.6 以降をサポートすることになっていますが、近いうちに 10.8 以降をサポートするように変更します。

Apple は OS X は「最新の2つ前」までには重大なセキュリティフィックスをリリースするように「見える」(他の OS ベンダーと違って一切明言されていない!)ので、10.10 Yosemite が出ている現在では 10.8 Mountain Lion までということになります。10.8 でも出てないセキュリティフィックスがあるようなので、Apple としては既に最新のしかサポートしないようになってるのかもしれませんが。

ちなみに、Windows 版は Visual Studio 2013 (Visual C++ 2013) と最近の Windows SDK を使ってビルドして Vista 以降をサポートすることになっていますが、新しい Windows の機能は使っていないので、動くか動かないかという点だけで言うと XP でも動くはずです。一方 Mac の場合は、新しい SDK を使ってビルドすると、新しい OS の機能を一切使っていなくても、その SDK のターゲットバージョン以降でないと動かなくなります。

機能追加
  • 診断用ログを出力する機能を追加した。
バグ修正
  • ULRA, ULRG: 「圧縮率優先」かつインターレースでエンコードした映像を RGBA/RGB32 で出力すると壊れていた。

Read the rest of this entry

Ut Video Codec Suite をゴリゴリコーディングしていたら、Mac の方で QuickTime Player で再生できないのに気付きました。正しいサイズのウィンドウが出ており、また音声の方は正常なのですが、映像が出ません(真っ黒になる)。fprintf デバッグしてみるとデコーダに処理は回ってきているようです。

Read the rest of this entry

Ut Video Codec Suite のソースを大幅にいじりつつ、Java でいう final (C# では sealed)や C# でいう override が無いせいで無駄にハマってるなぁ、と感じていたのですが、C++11 には final と override が追加されてたんですね。

Read the rest of this entry