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

Visual Studio の C++ プロジェクト設定には「出力の登録」という項目があって、「はい」にするとビルドしてできた DLL を regsvr32 で登録してくれます。しかし、プラットフォームが x64 の場合には Windows が x64 であっても登録してくれないように見えます。

Read the rest of this entry

Windows (Win32/Win64) の DLL において変数をインポートする場合、__declspec(dllimport) を正しく書く必要があります。関数の場合はインポートする側でも __declspec(dllexport) と書いても正しく動いてしまいます(不適切ではありますが)。

Read the rest of this entry

手元のビデオカードは RADEON HD5750 で DP, DL-DVI-I, DL-DVI-D, HDMI なんですが、DVI と HDMI だけで3画面にすることはできない(クロックジェネレータが2セットしかないらしい)らしく、せっかくなので DP の挙動をちょっと調べることにしました。いや実験したのは10日ほど前なんですが。

聞くところによると、DP は「モニタの電源を切ったり別の入力に切り替えたりするとモニタのケーブルを外したのと同じ挙動になる」という話なのですが、モニタによってはそういう挙動にならない(DVI などと同様につながったままに見える)らしいので、実験してみないと分からないところです。

Read the rest of this entry

先ほど Play ストアにアップロードしました。数時間後には公開されるはずです。

バグ修正
  • 数値の表示形式の選択が機能していなかった。

Read the rest of this entry

その1 その2 の続き。

今のバージョンの vctest は VCM コーデック(だけ)を対象にしています。

Read the rest of this entry