xiph / xiph/opus

How to build only SILK part of Opus codec for low-level use (such as encode_pulses, decode_pulses)

Open
#276 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.