Loud static noise generated by decoder when encoding using Auto signal type and DTX mode for Opus 1.3.1.
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 808
- PR merge metrics
- No merged PRs in 30d
Description
Loud static noise is generated after certain type of audio content followed by (digital) silence is being encoded. I've attached the image of the input and output waveforms. Debugging shows the encoder transitions from hybrid to CELT mode during DTX. Upon 20th frame, the encoder encodes in CELT mode. The decoder receives the CELT packet and decodes subsequently causing a reset of the CELT state (https://github.com/xiph/opus/blob/master/src/opus_decoder.c#L516) and then generates noise (https://github.com/xiph/opus/blob/master/celt/celt_decoder.c#L538) while in PLC mode.
The encoder parameters are the following:
signal type = auto
dtx = enabled
frame length/size = 60
sample rate = 48000
max playback rate = 24000
vbr = enabled
bitrate = 32000
complexity = 10
Compiled in fixed point.
I've attached the audio wave files for reproduction: noise.zip
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
Reproduce the report with the attached noise.zip using the listed encoder settings, then inspect the hybrid-to-CELT transition during DTX. Start at src/opus_decoder.c around line 516 and celt/celt_decoder.c around line 538, where the reported state reset and PLC noise occur. Done means the supplied audio no longer produces loud static noise and the behavior is covered by a regression check.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100