
README - 2019年1月31日
WebM VP8/VP9 コーデック SDK へようこそ!
アプリケーション/ライブラリのコンパイル: 使用するビルドシステムは autotools に似ています。通常、ビルドは希望するビルドオプションで「設定」し、GNU make を使用してアプリケーションをビルドします。
* すべての x86 ターゲットには Yasm[1] アセンブラがインストールされている必要があります[2]。
* すべての Windows ビルドには Cygwin[3] がインストールされている必要があります。
* ドキュメントのビルドには Doxygen[4] が必要です。このパッケージがない場合、install-docs オプションは無効になります。
* 単体テスト用データのダウンロードには curl[5] と sha1sum が必要です。
sha1sum は GNU coreutils を介して提供され、多くの *nix プラットフォーム、MinGW、Cygwin にデフォルトでインストールされています。coreutils が利用できない場合は、互換性のある sha1sum のバージョンをソースからビルドできます[6]。これらの要件は、単体テストを実行しない場合はオプションです。
[1]: http://www.tortall.net/projects/yasm
[2]: Visual Studio の場合、ベースの yasm バイナリ(vsyasm ではない)を Visual Studio の PATH に配置する必要があります。VS2017 の場合は、yasm-<バージョン>-<アーキテクチャ>.exe を yasm.exe にリネームし、次の場所に配置するだけで十分です:
Program Files (x86)/Microsoft Visual Studio/2017/<レベル>/Common7/Tools/
[3]: http://www.cygwin.com
[4]: http://www.doxygen.org
[5]: http://curl.haxx.se
[6]: http://www.microbrew.org/tools/md5sha1sum/
2. アウトオブツリービルド アウトオブツリービルドは、アプリケーションをビルドするためのサポートされている方法の1つです。アウトオブツリービルドでは、ソースツリーはコンパイル中に生成されるオブジェクトファイルとは別に保持されます。例:
$ mkdir build
$ cd build
$ ../libvpx/configure <オプション>
$ make
3. 設定オプション 'configure' スクリプトは多くのオプションをサポートしています。--help オプションを使用してサポートされているオプションのリストを取得できます: $ ../libvpx/configure --help
コンパイラアナライザ コンパイラには、アドレス計算、メモリ使用、スレッド、未定義動作、およびその他の一般的なエラーに関する情報でバイナリを計測するサニタイザが追加されました。これらの機能の一部を使用して libvpx を簡単にビルドするには、configure を実行する前に tools/set_analyzer_env.sh を使用します。これにより、コンパイラとビルドに必要なフラグ、およびバイナリテスト時にアナライザが読み取る環境変数が設定されます。 $ source ../libvpx/tools/set_analyzer_env.sh address
クロス開発 クロス開発の場合、最も注目すべきオプションは --target オプションです。サポートされているターゲットの最新リストは configure スクリプトの --help 出力の下部にあります。この記事の執筆時点で利用可能なターゲットのリストは次のとおりです:
arm64-android-gcc
arm64-darwin-gcc
arm64-linux-gcc
arm64-win64-gcc
arm64-win64-vs15
armv7-android-gcc
armv7-darwin-gcc
armv7-linux-rvct
armv7-linux-gcc
armv7-none-rvct
armv7-win32-gcc
armv7-win32-vs14
armv7-win32-vs15
armv7s-darwin-gcc
armv8-linux-gcc
mips32-linux-gcc
mips64-linux-gcc
ppc64le-linux-gcc
sparc-solaris-gcc
x86-android-gcc
x86-darwin8-gcc
x86-darwin8-icc
x86-darwin9-gcc
x86-darwin9-icc
x86-darwin10-gcc
x86-darwin11-gcc
x86-darwin12-gcc
x86-darwin13-gcc
x86-darwin14-gcc
x86-darwin15-gcc
x86-darwin16-gcc
x86-darwin17-gcc
x86-iphonesimulator-gcc
x86-linux-gcc
x86-linux-icc
x86-os2-gcc
x86-solaris-gcc
x86-win32-gcc
x86-win32-vs14
x86-win32-vs15
x86_64-android-gcc
x86_64-darwin9-gcc
x86_64-darwin10-gcc
x86_64-darwin11-gcc
x86_64-darwin12-gcc
x86_64-darwin13-gcc
x86_64-darwin14-gcc
x86_64-darwin15-gcc
x86_64-darwin16-gcc
x86_64-darwin17-gcc
x86_64-iphonesimulator-gcc
x86_64-linux-gcc
x86_64-linux-icc
x86_64-solaris-gcc
x86_64-win64-gcc
x86_64-win64-vs14
x86_64-win64-vs15
generic-gnu
generic-gnu ターゲットは、CROSS 環境変数と組み合わせて、ツールチェーンがクロス GNU (gcc/binutils) ツールチェーンである場合に明示的にリストされていないアーキテクチャのクロスコンパイルに使用できます。他の POSIX ツールチェーンでもおそらく動作します。たとえば、mipsel-linux-uclibc ツールチェーンを使用してビルドするには、次のコマンドを使用できます(注意: POSIX SH 構文、必要に応じてシェルに合わせて調整してください):
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
さらに、呼び出す実行可能ファイルは、環境変数 CC、AR、LD、AS、STRIP、NM を指定することでオーバーライドできます。追加のフラグは、CFLAGS、LDFLAGS、ASFLAGS を使用してこれらの実行可能ファイルに渡すことができます。
VP8/VP9 テストベクター: テストベクターは、configure を実行した後、ビルドシステムを使用してダウンロードおよび検証できます。別のディレクトリを指定するには、LIBVPX_TEST_DATA_PATH 環境変数を使用できます。
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
コードスタイル: このプロジェクトで使用されるコーディングスタイルは、リポジトリのルートにある .clang-format ファイルに含まれる設定を使用して clang-format で強制されます。
レビューのために変更をプッシュする前に、次の方法でコードをフォーマットできます:
$ clang-format -i --style=file
$(git diff --name-only --diff-filter=ACMR '.[hc]' '.cc')
ローカルのフォーマットとレビューシステムの間に違いがある場合は、.clang-format ファイルを確認して、それを生成するために使用されたバージョンを確認してください。
参照: http://clang.llvm.org/docs/ClangFormat.html
サポート このライブラリはコミュニティによってサポートされているオープンソースプロジェクトです。ヘルプが必要な場合は、[email protected] にメールを送信してください。