Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
9c41e28
transcoder: enable copy mode only the 'copy' is selected
JackLau1222 Nov 11, 2025
51707ba
AI Processing Support: Real-ESRGAN model powered by BMF
JackLau1222 Nov 12, 2025
fc86e5a
feat: Add Python bundling and simplify library bundling workflow
JackLau1222 Nov 20, 2025
c4ec768
cicd: add support bmf build for mac
JackLau1222 Nov 20, 2025
0e8667e
ui: only compile AI related component when bmf and gui enabled
JackLau1222 Nov 22, 2025
5fa08ed
cicd: remove the binutils and ncurses package
JackLau1222 Nov 22, 2025
fbd41e6
transcoder_bmf: add default codec
JackLau1222 Nov 22, 2025
053b31d
transcoder_bmf: fix the abnormal progress show when ai processing
JackLau1222 Nov 22, 2025
51da2cd
ai_processing_page: add auto format selector
JackLau1222 Nov 22, 2025
ac49b27
cmakelists: delete unneccessary install code
JackLau1222 Nov 22, 2025
a8f84bb
cicd: remove bintutils and ncurses libs
JackLau1222 Nov 22, 2025
fe47633
python_manager: add python package for linux platform
JackLau1222 Nov 23, 2025
f0ea4fb
f
JackLau1222 Nov 23, 2025
c832e55
ai_processing_page: only set codec when user specific
JackLau1222 Nov 24, 2025
4caffe9
enhance_module: fix the torch backend mps can't found on other platform
JackLau1222 Nov 24, 2025
71256e3
requirements: simplify the package
JackLau1222 Nov 27, 2025
5ca836e
f
JackLau1222 Nov 28, 2025
1648bcd
cd: use macos-14 runner for compatibility
JackLau1222 Nov 28, 2025
1bed533
enable bmf
JackLau1222 Nov 28, 2025
695aad0
cd: specific the python 3.9 for mac build
JackLau1222 Dec 13, 2025
05b5119
cd: remove the bmf cache temporarily
JackLau1222 Dec 13, 2025
fa21e82
cd: add linux arm build
JackLau1222 Dec 16, 2025
22f217e
cd: remove bmf cache for linux
JackLau1222 Dec 16, 2025
f503554
cd: fix the linux build with bmf
JackLau1222 Dec 16, 2025
9a00652
python_manager: install python into app data path rather than bundle
JackLau1222 Nov 28, 2025
4bad436
python_manager: set PATH and *_LIBRARY_PATH for python
JackLau1222 Dec 16, 2025
091ebd6
cd: build python3.9 for linux
JackLau1222 Dec 16, 2025
a77d224
cd: remove python3.10
JackLau1222 Dec 16, 2025
558e139
cd: get bmf rather than build it for linux platform
JackLau1222 Dec 16, 2025
a6b380f
force require App Python for linux platform(release or not)
JackLau1222 Dec 16, 2025
acf9af9
cd: finish the run.sh for linux build
JackLau1222 Dec 16, 2025
cc99d80
cd: change the start entry to OpenConverter from AppRun
JackLau1222 Dec 16, 2025
c0f4e9a
transcoder_bmf: get module path from BMF_MODULE_PATH env
JackLau1222 Dec 17, 2025
d896371
cd: add libavdevices.so.59 for linux build
JackLau1222 Dec 17, 2025
5717020
cd: add build-linglong workflow job
JackLau1222 Dec 18, 2025
1f21b9c
debug for build-linglong
JackLau1222 Dec 18, 2025
c68f1c3
cd: install ll-box for build-linglong
JackLau1222 Dec 18, 2025
17a5560
cd: get ll cache from docker
JackLau1222 Dec 18, 2025
ff81fda
cd: fix the chown of ll-cache
JackLau1222 Dec 18, 2025
b0a97eb
cd: remove unnecssary files
JackLau1222 Dec 19, 2025
35cd8dc
cd: give the cache file permissions
JackLau1222 Dec 19, 2025
3937105
python_manager: install cpu-only support torch
JackLau1222 Dec 20, 2025
1f63627
cd: bundle the weight file for linux build
JackLau1222 Dec 20, 2025
852e161
cd: debug the build-linglong before uploading
JackLau1222 Dec 20, 2025
891c6c1
python_manager: install bmf package from github for linux build
JackLau1222 Dec 22, 2025
94e5d53
modify the ll output
JackLau1222 Dec 23, 2025
51832d6
cd: cp template_app/* to ${PREFIX}/share
JackLau1222 Jan 6, 2026
e503e59
default.desktop: update the software id
JackLau1222 Jan 6, 2026
229c445
cd: add icon for linglong build
JackLau1222 Jan 6, 2026
59615cd
cd: dynamically build the desktop file for ll
JackLau1222 Jan 6, 2026
22ff844
cd: fix the logo png path
JackLau1222 Jan 6, 2026
831ad28
cd: fix the logo path
JackLau1222 Jan 6, 2026
9b53249
cd: use defualt icon for ll build
JackLau1222 Jan 6, 2026
b83b95a
python_install_dialog: require user to restart app after python suppo…
JackLau1222 Jan 6, 2026
bd32558
ui: dynamically build the page list
JackLau1222 Jan 6, 2026
e2c6b38
ai_processing_page: add chinese translation
JackLau1222 Jan 6, 2026
ca07b9d
cd: merge review.yaml and release.yaml into build.yaml
JackLau1222 Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 93 additions & 4 deletions .augment-guidelines
Original file line number Diff line number Diff line change
Expand Up @@ -254,21 +254,110 @@ All source files (doesn't inlcude FFmpeg code) should include Apache 2.0 license

### Building the Project

OpenConverter supports two build modes:

#### **Debug Mode (Development)**
Fast builds for development, uses system libraries:

```bash
# Create build directory
mkdir build && cd build

# Configure with CMake
cmake ../src -DENABLE_GUI=ON
# Configure (Debug is default)
cmake ../src -DENABLE_GUI=ON -DBMF_TRANSCODER=ON

# Build
make -j4

# Run
./OpenConverter # GUI mode
./OpenConverter --help # CLI mode
./OpenConverter.app/Contents/MacOS/OpenConverter # macOS
./OpenConverter # Linux
```

**What's bundled:**
- ✅ Python modules (`enhance_module.py`)
- ✅ AI model weights (2.4 MB)
- ❌ BMF libraries (uses system BMF from CMake path)
- ❌ Qt frameworks (uses system Qt)
- ❌ Python runtime (uses system Python)

**Requirements:**
- Python 3.9+ with PyTorch, Real-ESRGAN, OpenCV, NumPy
- BMF framework (path configured in CMake)
- Qt 5.15+ (for GUI)

**Environment:** No environment variables needed! BMF path is detected from CMake configuration.

#### **Release Mode (Distribution)**
Standalone builds for distribution, bundles everything:

```bash
# Create separate build directory
mkdir build-release && cd build-release

# Configure with Release mode
cmake ../src -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=ON -DBMF_TRANSCODER=ON

# Build (takes longer due to bundling)
make -j4

# Run - NO environment variables needed!
open OpenConverter.app # macOS
./OpenConverter # Linux
```

**What's bundled:**
- ✅ Python modules
- ✅ AI model weights (2.4 MB)
- ✅ BMF libraries (25+ libraries, ~30 MB)
- ✅ Qt frameworks (10+ frameworks, ~150 MB)
- ✅ Python runtime with PyTorch, Real-ESRGAN, OpenCV, NumPy (~30 MB)
- ✅ FFmpeg libraries (~25 MB)

**Total Size:** ~800 MB - 1.2 GB (fully standalone)

**Advantages:**
- ✅ Fully standalone (no dependencies)
- ✅ Works on any Mac (macOS 11+)
- ✅ No environment variables needed
- ✅ Ready for distribution (zip/DMG)

### Library Bundling (macOS Release Mode)

**Important:** All library bundling (Qt, FFmpeg, BMF) is handled by **`tool/fix_macos_libs.sh`**, NOT by CMake.

#### **Workflow**

1. **Build**: `cmake -B build-release -DCMAKE_BUILD_TYPE=Release && cd build-release && make -j4`
2. **Bundle**: `cd .. && tool/fix_macos_libs.sh`

The script auto-detects build directory, bundles Qt/FFmpeg/BMF libraries, fixes paths, and code signs.

#### **BMF Library Structure**

```
OpenConverter.app/Contents/
├── Frameworks/
│ ├── lib/ # Builtin modules (BMF hardcoded path)
│ │ ├── libbuiltin_modules.dylib
│ │ ├── libcopy_module.dylib
│ │ └── libcvtcolor.dylib
│ ├── libbmf_module_sdk.dylib # Core BMF libraries
│ ├── libhmp.dylib
│ ├── _bmf.cpython-39-darwin.so
│ └── BUILTIN_CONFIG.json
└── Resources/bmf_python/ # BMF Python package
```

**Why `Frameworks/lib/`?** BMF expects builtin modules in `lib/` subdirectory relative to `BMF_MODULE_CONFIG_PATH`.

**Script Logic:**
- Auto-appends `/output/bmf` to `$BMF_ROOT_PATH` if needed (same as CMake)
- Copies builtin modules to `Frameworks/lib/`
- Copies core libraries to `Frameworks/`
- Processes both `.dylib` and `.so` files
- Fixes all paths to use `@executable_path`

### Translation Workflow

OpenConverter uses Qt Linguist tools for internationalization (i18n). Translation files are located in `src/resources/`.
Expand Down
Loading
Loading