このリポジトリは、http://www2.wazoku.net/2sen/dtvup/ で公開されている、
Multi2Dec v2.10 に同梱されているソースコードのミラーです。
Axfc で公開されている Multi2Dec_0210_Patch.tar.gz (Pass: DTV) 内の B25Decoder 向けのパッチを適用し、オリジナルから下記の改良を加えています。
- B25Decoder.dll 単体のみを VS2019 でビルドできる B25Decoder_VC17.sln を追加
- 大元のパッチのビルドターゲット指定は VS2022 (v143) だが、個人的に VS2019 に統一していることもあり、意図的に VS2019 (v142) にダウングレードしている
- Linux 版 EDCB 向けの B25Decoder.so (Linux 版 B25Decoder) をビルドできるように改良
/usr/local/lib/edcb/B25Decoder.so
に配置すると、EDCB の B25 デコード機能が有効化される
- B25Decoder には不要な処理を減らしてコンパクトにビルドできる
MINIMIZE_FOR_B25DECODER
マクロを追加Release-MIN
でビルドするとファイルサイズを削減できる
- B25Decoder 関連ソースコードの文字コードを Shift-JIS から UTF-8 with BOM に変換
- 常に JST (UTC+9) 基準で処理を行うように修正
- オリジナルの開発時期 (最終更新: 2009年) 由来の古い記述のメンテナンス・モダナイズ
適用したパッチは Patches 以下に配置しています。
Note
上記のパッチは、主に Linux 版 EDCB で直接 B25 デコード処理を行うためのものです。
そのためオリジナルの B25Decoder 実装(libaribb25 の B25Decoder インターフェイス実装 とは異なる)の維持のみが行われており、Multi2Dec のソースコードに含まれるそのほかのツール群はメンテナンスされていません。
Tip
2024年現在では「ARIB STD-B25 仕様確認テストプログラム」を源流とする libaribb25 / libarib25 を、B25Decoder インターフェイスに部分的に適合させた B25Decoder.dll を使う手法が主流です。
他方 libaribb25 は TS ファイル全体を完璧にデコードするために設計されており、デコード失敗時などのエラーハンドリングや機能の豊富さでは、Multi2Dec 内のオリジナルの B25Decoder 実装の方が優れているようです。
C++ で記述されており、libaribb25 よりコードが読みやすい点もメリット。
ビルドを実行すると、B25Decoder.dll / B25Decoder.so が生成されます。
Note
Multi2Dec に含まれるツール群全体のビルドを行う Multi2Dec.sln はオリジナルの最終バージョンから一切メンテナンスされておらず、約20年前に公開された VS2005 向けの sln ファイルのままです。
msbuild B25Decoder_VC17.sln /t:Build /p:Configuration=Release /p:Platform=Win32 /p:PlatformToolset=v142
msbuild B25Decoder_VC17.sln /t:Build /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v142
msbuild B25Decoder_VC17.sln /t:Build /p:Configuration=Release-MIN /p:Platform=Win32 /p:PlatformToolset=v142
msbuild B25Decoder_VC17.sln /t:Build /p:Configuration=Release-MIN /p:Platform=x64 /p:PlatformToolset=v142
sudo apt install g++ libpcsclite-dev make pkg-config
cd B25Decoder
make USE_SIMD=y
以下のオリジナルの Readme も参照してください。
- Readme.txt : Multi2Dec v2.10 内に含まれている、オリジナルの Multi2Dec の Readme
- Readme-B25Decoder.txt : Multi2Dec v2.10 内に含まれている、オリジナルの B25Decoder の Readme
- Readme-Patches.txt : Multi2Dec_0210_Patch.tar.gz 内に含まれている、パッチの Readme
Note
上記 Readme の内容は公開当時から一切更新されておらず、情報が古くなっている箇所があります。
Multi2Dec やその改良パッチの作者の方々に感謝します。