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

バグ修正
  • Mac 版で、アセンブラルーチンが使用されるように構成されていなかった。

Read the rest of this entry

その他
  • ウイルス対策ソフトの誤検知への対策のため、多少構成を変えた。

Read the rest of this entry

その他
  • ウイルス対策ソフトの誤検知への対策のため、リビルドして再パッケージした。

Read the rest of this entry

機能追加
  • QuickTime for Windows 用コンポーネントを追加した。
  • ULY2, ULH2, ULY0, ULH0: QuickTime コンポーネントで、YUV422 で入出力できるようにした。
  • UQY2: QuickTime コンポーネントを追加した。

Read the rest of this entry

以前、SDK バグってんじゃねーの、と書きましたが。

オープンソースで QuickTime for Windows にも対応しているコンポーネントのソース(たとえば XiphQT)を読むと、どうやら <Carbon.h> や <QuickTime.h> は include するものではなく、<QuickTimeComponents.h> や <ImageCondec.h> を include するもののようです。ドキュメントも見つからんのにそんなん分からんて(´・ω・`)

なんで今更また調べたのかって? いや寝てる時になんか急に調べなきゃいけない気がしてきたんですよ。天啓を受けたとでも言えばいいんでしょうか。

前述のとおり開発環境を Visual Studio 2013 に移行したわけですが、せっかくなのでざっくりとベンチマークを取って比較してみます。Ut Video Codec Suite は主要部分はほぼアセンブラ化されているためコンパイラを変えても影響はありませんが、アセンブラ化されていない ULY0/ULH0 での RGB との色空間変換と UQY2 でのほとんどの処理でどう変化するかが気になるところです。

Read the rest of this entry

Ut Video Codec Suite の Windows での開発環境は Visual Studio 2005 だったのですが、Visual Studio 2013 に移行を完了しました。なるべくなら新しいものを使いたいよね、というのもありますが、VS2005 を Windows 7 で使うと時々固まる、特にファイルの保存に2秒ぐらいかかるという謎の挙動があって、これともおさらばです。

普通なら、古い Visual Studio で作った古い形式のプロジェクトやソリューションを新しい Visual Studio で開くと新しい形式に変換してくれるのですが、Ut Video Codec Suite の場合は何故かうまく変換できずに失敗します。仕方ないので、空のソリューションに新規プロジェクトを追加していく、という方法で移行しました。 NKT

Read the rest of this entry