音声ファイルから動画ファイルを作成する(11) – 環境の整備

公開:2013-12-08 06:20
更新:2020-02-15 04:37
カテゴリ:directx,desktop,音声動画出力プログラム,windows,c++,audio,javascript,音楽・動画,windows api

環境の整備

デスクトップアプリとして作り直すためにまずは環境をアップデートすることにした。

ベースとなるプロジェクトを作る

過去作りかけて放置しているプロジェクトを再利用することにした。VS2012プロジェクトであればそのまま読み込める。当然ながらコンパイルは通らないし、リンクも然り。スタティック・ライブラリなどはすべてリビルドし直さないといけないし、多少の手直しは必要となってくる。

ベースとしたのはseqxというプロジェクトファイル。これは私が今まで作ってきたコード類が一番まとまっているプロジェクトなのである。一応DirectXやWASAPI対応コードも入っている。これに今まで作りかけてきたMedia Foundationによる動画生成コードを加えて作っていくことにする。過去のコードを時期をおいて見直すとなかなか客観的に見れて面白い。当時は早く動かしてみたいから端折って作ったコードが糞コードだったりして、なんでこんな変なことしてんだろう?とか自分のコードに文句つけたりししている。

DirectXTKのリビルド

DirectXTKはすでにアップデートしているものの、デスクトップ用にスタティックライブラリをビルドし直さなくてはいけないが、VS2013 Desktop用のプロジェクトファイルが用意されているので難なくできた。

Boost 1.55へのアップデート

VS2012以降のC++コンパイラは不完全ながらC++11に対応しているので、Boostへの依存度はかなり下がっている。特にスマポの類はもう使っていない。それ以外のformat、serialization、lockfree、signalは使用していてこのライブラリを使用するにはビルドが必要である。なのだがBoost 1.55はVS2013より前にリリースされているので若干未対応な部分が残っていてビルドできない(#9332,#9333,#9196,) 。いずれも回避策があるのでなんとかビルドはできた。

コンパイル・リンクしてみる

コンパイル・リンクしてみると配置newでシンタックスエラーとなる部分が出てきた。これで2-3日唸っていたが過去にもハマっていたようで回避策が自分のブログに書いてあった。 このエラーは過去のコンパイラでもエラーとなるはずなのになぜいままでコンパイルが通っていたのか不思議だが、まあよしとする。あとは別段ハマるところなくビルドして実行できた。プロジェクトファイルはWinRTも使えるようになっているので適宜使っていくことにする。

ソースコード