# 音質比較ツールの対応ソース

このディレクトリには、`vendor/ffmpeg-core.js` と `vendor/ffmpeg-core.wasm` のビルドに使用したソース、ならびに Opus 用 libav.js 配布物に添付されていたソースを置いています。ライセンスの案内はサイトの `/open-source-licenses.html#audio-codec-comparison-licenses` にあります。

## LGPL 構成の FFmpeg core

- FFmpeg: `FFmpeg-n5.1.4.tar.gz`（[FFmpeg n5.1.4](https://github.com/FFmpeg/FFmpeg/tree/4729204c17f756e186d622060088371d10b34f7e)）。FFmpeg のライセンスは LGPL 2.1 以降。
- LAME: `lame-2badea19.tar.gz`（[ffmpegwasm/lame 2badea19](https://github.com/ffmpegwasm/lame/tree/2badea1974ae36cb8312afe99cff1e6b3b5decee)）。`--disable-decoder` により GPL の MPGLIB デコーダーを除外。主要部分は GNU Library GPL v2 以降で、ライセンス文は `LAME-COPYING.txt`。個々のファイルの表示はソース書庫を参照。
- ffmpeg.wasm バインディング: `ffmpeg-wasm-v12.15.tar.gz`（[v12.15](https://github.com/ffmpegwasm/ffmpeg.wasm/tree/71aa99d37c02a7b4c435275ca9ef50e612f6efa1)）。ラッパーのライセンス文は `FFMPEG-WASM-LICENSE.txt`。
- Emscripten: 3.1.40、SDK リリース `c3122846bb040798aab975f61008c37eb19476de`。ツールチェーンの[ソース](https://github.com/emscripten-core/emscripten/tree/3.1.40)と `EMSCRIPTEN-LICENSE.txt` を参照。

FFmpeg は `--disable-gpl --disable-nonfree --disable-postproc --enable-libmp3lame` で構成しました。生成した `config.h` は `CONFIG_GPL=0`、`CONFIG_NONFREE=0`、`FFMPEG_LICENSE="LGPL version 2.1 or later"` です。x264、x265、libfdk_aac は組み込んでいません。AAC は FFmpeg 標準のエンコーダー、MP3 は LAME を使用します。

同梱ソースと Emscripten 3.1.40 から、次のコマンドで JavaScript と WASM を再ビルドできます。ビルド時の一時ディレクトリのパスによりバイナリのハッシュは変わることがあります。

```sh
EMSDK_ENV=/path/to/emsdk_env.sh bash app/audio-codec-comparison/build-lgpl-core.sh /path/to/output
```

現在の配布ファイルとソース書庫の SHA-256 は `SHA256SUMS` に記録しています。

## Opus 用 libav.js

`vendor/libav/` の `libav.js 6.10.9.0 default-cli` は従来の配布物を維持しています。添付されていたソース書庫をこのディレクトリの `libav-*` と `libav.js-6.10.9.0.tar.xz` に移しました。内訳は libav.js、FFmpeg 9.0、libopus 1.6.1、zlib 1.3.2、emfiberthreads 1.3 です。各ライセンス文は書庫内に含まれます。
