Skip to content

KnugiHK/libaacs-libbdplus-windows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows Libraries of libaacs & libbdplus

This repository provides pre-built libraries for libaacs and libbdplus, essential components for playing Blu-ray discs with popular software like FFmpeg, VLC, and MPC-HC.

This repository provides an automated build process and ready-to-use binaries as a transparent alternative to manual uploads shared online. To supplement existing community resources, we use GitHub Actions and cross-compilation with mingw64 on Ubuntu to offer a verifiable path from source to executable. This 'clean-room' compilation ensures a consistent, auditable result, and we encourage users to review the build scripts for full transparency.

How to Use libaacs & libbdplus

Using Installer

Simply download, run, select your architecture, and install, you'll be up and running in seconds.

Manual

Once downloaded, you'll find both 64-bit and 32-bit Windows versions of the libraries. Follow these steps to get started:

  1. Download the libraries from the Releases page.
  2. Place the DLL files (libaacs.dll and libbdplus.dll) into C:\Windows\System32 or C:\Windows\SysWOW64. This will make them accessible to all your applications.

Unlike the libraries provided in external sources (like Mega.nz), these libraries have all dependencies statically linked, so you won't need any additional DLLs (like libgpg-error6-0.dll or libgcrypt-20.dll).

For detailed instruction, refer to this forum post from Doom9.

Building libaacs & libbdplus Locally

To build libaacs & libbdplus for Windows on WSL 1 or 2 (Debian/Ubuntu), follow these steps:

sudo apt-get install -y autoconf fig2dev mingw-w64 mingw-w64-tools mingw-w64-i686-dev gcc make m4 pkg-config gettext lbzip2 flex bison
git clone https://github.com/KnugiHK/libaacs-libbdplus-windows && cd libaacs-libbdplus-windows
make

To build 32-bit or 64-bit only:

make 32
make 64

If the Makefile does not work for you, try to use the build.sh script instead.

Building the Installer

The installer is built using NSIS. To build the installer, place the DLLs to the win86 and win64 directories accordingly and run the following command:

makensis installer.nsi

Testing

This repository includes a testing utility, dll_loader.c. To use it, compile the source using x86_64-w64-mingw32-gcc (for 64-bit) or i686-w64-mingw32-gcc (for 32-bit). Once built, run the executable on Windows, ensuring the library files are organized in the following directory structure:

.
├── dll_loader_x64.exe
├── dll_loader_x86.exe
├── win64
│   ├── aacs_info.exe
│   ├── libaacs.dll
│   └── libbdplus.dll
└── win86
    ├── aacs_info.exe
    ├── libaacs.dll
    └── libbdplus.dll

Verifying Build Integrity

To ensure that the binaries provided in the releases were built directly from this source code via GitHub Actions and have not been tampered with, GitHub Artifact Attestations is used. You can verify the authenticity of any .exe or .dll file using the GitHub CLI.

Using Bash (Linux/WSL/macOS)

for file in *.exe ./win64/* ./win86/*; do; gh attestation verify "$file" -R KnugiHK/libaacs-libbdplus-windows ; done

Using PowerShell (Windows)

gci "*.exe", "./win64/*", "./win86/*" | % { gh attestation verify $_.FullName -R KnugiHK/libaacs-libbdplus-windows }

Credit

This project is inspired by wget-windows, originally created by @webfolderio.

Development also referenced the Cross-compile libaacs for Windows (64bit) gist.