How to build only SILK part of Opus codec for low-level use (such as encode_pulses, decode_pulses)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 808
- PR merge metrics
- No merged PRs in 30d
Description
Hello. I'm trying to implement a certain scheme that requires a low level use of the Opus codec, specifically the SILK part of it. Even more specifically, it requires use of encode_pulses.c and decode_pulses.c. In addition, I need this part to be compiled into a shared object file (.so file), so that I can call these functions from my Python script. When I follow the build instructions given in the Opus GitHub, I get the shared file "libopus.so", and when I view the list of functions in it, it doesn't contain the desired low-level functionaliy I need. My question is, is there an option to build a specific part of the Opus codec, so that low-level functionality can be used directly from a Python script using ctypes? Thanks in advance
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Opus build instructions and inspect encode_pulses.c, decode_pulses.c, and the symbols exposed by libopus.so. Determine whether a supported build path can make these SILK functions callable through Python ctypes, and document the resulting build and usage requirements or the project limitation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- audio-video-rtc, build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100