Ut Video Codec Suite は2018年04月18日で 最初の public release から10年になります。最初のリリースでは YUV422 だけで、VCM インターフェースだけでした。

Read the rest of this entry

機能追加
  • UMxx: フレーム間圧縮を実装した。
  • UMxx: 全体的に高速化した。

Read the rest of this entry

flock(1) というコマンドがあります。flock(2) を使い、コマンドを排他制御して実行します。

$ flock /path/to/lockfile command...

これで lockfile をロックファイルとしてコマンドを排他制御実行します。

Read the rest of this entry

(This article is English translation of Japanese version)

I am working on adding simple interframe compression to UMxx. Because this interframe compression is not effective for the clips that are made in part 1 and part 2, we need other clips.

Read the rest of this entry

現在 Ut Video Codec Suite の UMxx に簡単なフレーム間圧縮を追加する作業をしています。その1とその2で作ったクリップはこのフレーム間圧縮は効果が無いので、フレーム間圧縮が効くようなクリップを作ります。

Read the rest of this entry

Jenkins のジョブで、vcpkg が MSBuild に integrate されている前提のプロジェクトをビルドしようとしました。しかし、一般ユーザで vcpkg integrate install しただけではダメです。これは当該のユーザが実行した MSBuild で有効にする設定であり、Jenkins slave が(当該のユーザ以外で)サービスとして動いている場合は有効ではありません。そしてシステム全体で有効にする設定は(おそらく)存在しません。

サービスとして動くときのユーザで vcpkg integrate install すればいいのですが、そのユーザのコマンドプロンプトを開く方法がパッとは思いつかなかったので、とりあえず1回だけジョブの設定を変更して先頭で実行しておきました。

もうちょっとスマートな方法があればいいんですが、まあ1回だけだし…

何も考えずに std::make_shared を std::bind するとエラーになります。

Read the rest of this entry

C++11 には仮想関数をそれ以上オーバーライドできないようにする final という指定が書けますが、final が付いていると呼ぶときに vtable を参照して間接callするのではなく直接呼ぶようになります。(とりあえず GCC の場合)

Read the rest of this entry

C++ でも最近はスマートポインタが使えるわけですが、 std::shared_ptr を作る関数である std::make_shared が IDE の静的解析と相性が悪くて辛みを感じています。(とりあえず CLion での挙動ですが、 VS でも同じような感じじゃないかなぁ…)

  • std::make_shared<Hoge>( とまで打った時に出てくる引数サジェストが Args&&... になってて全く役に立たない。 Hoge クラスのコンストラクタから情報を引っ張ってきてほしい。ついでに言うと引数間違えてても IDE からは警告が出ない(コンパイルして初めて間違っていることが分かる)。
  • Hoge クラスのコンストラクタを右クリックして呼び出し元を検索しても出てこず、よくよく考えたら make_shared 経由なので自分で書いたコードからは直接呼ばれてなかった。make_shared を書いた位置がヒットしてほしい。

make_shared に限らないし、根本的にはスマートポインタにも限らないし標準ライブラリにも限らないわけですが、何とかならんのですかねこれ。

Read the rest of this entry

macOS 10.13 High Sierra の次のベータで 32bit アプリ起動時に警告が出るようになったそうで。以前から「High Sierra は 32bit アプリを『妥協無しに (without compromise)』サポートする最後の macOS である」とはアナウンスされていましたが、実際にそういう挙動になってきたということになります。

『妥協無しに』がどういう意味合いなのか分からないので 10.14 以降でどうなるのか(完全に動かなくなるのか、最適化レベルが下がる程度なのか、とか)判然としないのですが、私としては QuickTime がどうなるのか気になります。QuickTime は 32bit のフレームワークだからです。64bit のプロセスからはプロセス間通信を経由して使うようになっています。

まさか QuickTime のためだけに 32bit プロセスを動かす機能を維持するとも思えない(そもそも QuickTime は macOS SDK から削除されている)ので、10.14 か遅くとも 10.15 あたりで 32bit サポートと一緒に QuickTime も消滅するのでしょう。