# mpp-libs — Pre-built Rockchip MPP libraries for R36S / ArkOS

These `.so` files are compiled for **aarch64 / Ubuntu focal** from:

- **librockchip-mpp** — [github.com/rockchip-linux/mpp](https://github.com/rockchip-linux/mpp) (commit c2c1ee5, 2026-03-10)
- **gst-mpp** — [github.com/JeffyCN/mirrors, branch gstreamer-rockchip](https://github.com/JeffyCN/mirrors) (RGA disabled)

Built via Docker QEMU (`arm64v8/ubuntu:focal` + `qemu-user-static`).

## Files

| File | Purpose |
|---|---|
| `librockchip_mpp.so{,.0,.1}` | Rockchip MPP runtime — hardware VPU abstraction |
| `librockchip_vpu.so{,.0,.1}` | Rockchip VPU legacy wrapper |
| `libgstrockchipmpp.so` | GStreamer plugin — exposes `mppvideodec` element |

## Install

Run the parent `setup_hw_decode.sh` as root — it picks up this directory automatically:

```bash
sudo bash deploy/arkos/setup_hw_decode.sh
```

Or manually:
```bash
sudo cp librockchip_mpp.so* librockchip_vpu.so* /usr/lib/aarch64-linux-gnu/
sudo cp libgstrockchipmpp.so /usr/lib/aarch64-linux-gnu/gstreamer-1.0/
sudo ldconfig
```

## Target

- SoC: RK3326 / PX30 (Cortex-A35)
- Kernel: 4.4 BSP with `vpu_service` device node at `/dev/vpu_service`
- ArkOS Ubuntu eoan arm64
- Requires `/dev/vpu_service` accessible to `video` group (handled by `setup_hw_decode.sh` udev rule)
