jamulussoftware / jamulussoftware/jamulus
Investigate opus build optimizations for ARM non-FP (Raspberry, Android, iOS)
- Dominant language
- C
- Stars
- 1.1k
- Forks
- 248
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 9
Description
**What is the current behaviour and why should it be changed?**
There are hints that it might make sense to set specific opus build flags to improve performance on low-spec arm builds (Raspberry, Android, iPhone):
- [openwebrtc issue](https://github.com/EricssonResearch/openwebrtc/issues/558)
- https://github.com/jamulussoftware/jamulus/blob/master/distributions/raspijamulus.sh#L53
**Describe possible approaches**
- [ ] Find out if it's worth it (run benchmarks, do research, e.g. https://raspberrypi.stackexchange.com/questions/545/does-the-raspberry-pi-have-hardware-floating-point-support/546#546)
- [x] Find out how to make `qmake` enable those flags (maybe some defines?): [-D FIXED_POINT](https://github.com/jamulussoftware/jamulus/blob/9d32a72ad67740c82901498b49d16f995a4f56ba/libs/opus/configure.ac#L126)
- [ ] Implement
- [ ] Consider dropping manual opus installation in `raspijamulus.sh`?
**Has this feature been discussed and generally agreed?**
No.
Contributor guide
Research direction
Start by comparing the Opus configuration in libs/opus/configure.ac with the qmake build and the manual installation in distributions/raspijamulus.sh. Run benchmarks or research the ARM non-floating-point targets listed in the issue to determine whether the flags improve performance. Done means documenting the result, implementing justified flags, and deciding whether the manual Raspberry Pi installation can be removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc, build-system, embedded-iot, mobile-dev, performance
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100