Opus issueshttps://gitlab.xiph.org/xiph/opus/-/issues2017-10-21T19:37:04Zhttps://gitlab.xiph.org/xiph/opus/-/issues/2241Memory leaks in the test suite2017-10-21T19:37:04ZbugmenotMemory leaks in the test suiteI run make check on the latest libopus release and got it fail with
LeakSanitizer errors.
```
==================================
opus 1.1.1: ./test-suite.log
==================================
# TOTAL: 12
# PASS: 9
# SKIP: 0
# XFA...I run make check on the latest libopus release and got it fail with
LeakSanitizer errors.
```
==================================
opus 1.1.1: ./test-suite.log
==================================
# TOTAL: 12
# PASS: 9
# SKIP: 0
# XFAIL: 0
# FAIL: 3
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: celt/tests/test_unit_laplace
==================================
=================================================================
==4912==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 40000 byte(s) in 1 object(s) allocated from:
#0 0x4b8600 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_laplace+0x4b8600)
#1 0x4eade5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_laplace+0x4eade5)
#2 0x2adaf6f0ceac (/lib/x86_64-linux-gnu/libc.so.6+0x1eeac)
SUMMARY: AddressSanitizer: 40000 byte(s) leaked in 1 allocation(s).
FAIL celt/tests/test_unit_laplace (exit status: 23)
FAIL: celt/tests/test_unit_dft
==============================
=================================================================
==4943==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 22432 byte(s) in 18 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_dft+0x4b86d0)
#1 0x4e3e85 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_dft+0x4e3e85)
Direct leak of 5608 byte(s) in 18 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_dft+0x4b86d0)
#1 0x4e4dc7 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_dft+0x4e4dc7)
SUMMARY: AddressSanitizer: 28040 byte(s) leaked in 36 allocation(s).
FAIL celt/tests/test_unit_dft (exit status: 23)
FAIL: celt/tests/test_unit_mdct
===============================
=================================================================
==5024==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 8192 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05fa (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05fa)
Direct leak of 8192 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f060b (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f060b)
Direct leak of 7680 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0703 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0703)
Direct leak of 7680 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06f2 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06f2)
Direct leak of 4096 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05db)
Direct leak of 4096 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05fa (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05fa)
Direct leak of 4096 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f060b (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f060b)
Direct leak of 4096 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05ec (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05ec)
Direct leak of 3840 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0703 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0703)
Direct leak of 3840 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06d3 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06d3)
Direct leak of 3840 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06e4 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06e4)
Direct leak of 3840 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06f2 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06f2)
Direct leak of 2048 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05bc (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05bc)
Direct leak of 2048 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05cd (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05cd)
Direct leak of 2048 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05db)
Direct leak of 2048 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05ec (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05ec)
Direct leak of 1920 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06c5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06c5)
Direct leak of 1920 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06b4 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06b4)
Direct leak of 1920 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06d3 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06d3)
Direct leak of 1920 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06e4 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06e4)
Direct leak of 1024 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f05ae (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05ae)
Direct leak of 1024 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05bc (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05bc)
Direct leak of 1024 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05cd (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05cd)
Direct leak of 1024 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f059d (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f059d)
Direct leak of 960 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06b4 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06b4)
Direct leak of 960 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06c5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06c5)
Direct leak of 960 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0695 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0695)
Direct leak of 960 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f06a6 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06a6)
Direct leak of 512 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f059d (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f059d)
Direct leak of 512 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f05ae (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f05ae)
Direct leak of 480 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0676 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0676)
Direct leak of 480 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0687 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0687)
Direct leak of 480 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0695 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0695)
Direct leak of 480 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f06a6 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f06a6)
Direct leak of 240 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0687 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0687)
Direct leak of 240 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0657 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0657)
Direct leak of 240 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0668 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0668)
Direct leak of 240 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0676 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0676)
Direct leak of 160 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0638 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0638)
Direct leak of 160 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0649 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0649)
Direct leak of 144 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f0619 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0619)
Direct leak of 144 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f062a (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f062a)
Direct leak of 128 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f057e (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f057e)
Direct leak of 128 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6b5 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6b5)
#2 0x4f058f (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f058f)
Direct leak of 120 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0668 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0668)
Direct leak of 120 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0657 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0657)
Direct leak of 80 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0649 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0649)
Direct leak of 80 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0638 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0638)
Direct leak of 72 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f0619 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f0619)
Direct leak of 72 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f062a (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f062a)
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f057e (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f057e)
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x4b86d0 (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4b86d0)
#1 0x4ef6db (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4ef6db)
#2 0x4f058f (/home/madamczyk/afl-1.94b/opus-tools-0.1.9/opus-1.1.1/celt/tests/test_unit_mdct+0x4f058f)
SUMMARY: AddressSanitizer: 92736 byte(s) leaked in 52 allocation(s).
FAIL celt/tests/test_unit_mdct (exit status: 23)
```
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2240Division by zero in opus_demo2017-10-21T19:37:04ZbugmenotDivision by zero in opus_demoWhile fuzzing opus compression I get a lot of crashes like that:
```
katmacadapc% ~/afl-1.94b/opus-1.1.1/.libs-notrap/opus_demo -e voip 48000 2 8000 -cbr -bandwidth NB -complexity 0 -forcemono id:000000,sig:04,src:000020,op:havoc,rep:32...While fuzzing opus compression I get a lot of crashes like that:
```
katmacadapc% ~/afl-1.94b/opus-1.1.1/.libs-notrap/opus_demo -e voip 48000 2 8000 -cbr -bandwidth NB -complexity 0 -forcemono id:000000,sig:04,src:000020,op:havoc,rep:32 /tmp/1
libopus 0.9.14
Encoding 48000 Hz input at 8.000 kb/s in narrowband with 960-sample frames.
average bitrate: 8.000 kb/s
maximum bitrate: 8.000 kb/s
src/opus_demo.c:869:43: runtime error: division by zero
SUMMARY: AddressSanitizer: undefined-behavior src/opus_demo.c:869:43 in
active bitrate: -nan kb/s
bitrate standard deviation: 0.000 kb/s
```
I have found it on many files, the smallest one is a single byte 0x80.
BTW, notice the print:
libopus 0.9.14
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2224Encoding gives different result on x86(Mac) and Arm(iPhone)2017-10-21T19:37:05ZDaniel ArmyrEncoding gives different result on x86(Mac) and Arm(iPhone)For some reason, my standard test vector does not encode to the same data on my Mac(x86) as on my iPhone(Arm). Specifically, the results are almost the same except for a few bytes in the middle of the second frame.
I have (or rather wil...For some reason, my standard test vector does not encode to the same data on my Mac(x86) as on my iPhone(Arm). Specifically, the results are almost the same except for a few bytes in the middle of the second frame.
I have (or rather will) attach a self-contained C file that illustrates the issue and the script I used to build the opus lib.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2215Opus encoder blends both audio channels in each audio channel in low bitrates2017-10-21T19:37:05ZPavel ChrpaOpus encoder blends both audio channels in each audio channel in low bitratesIn low bitrate encoding of a stereo file (WAV), the Opus codec seems to blend both audio channel in each audio channel. From my initial testing it seems that the border is around ~38-40kbps and the lower the bitrate is, the more signific...In low bitrate encoding of a stereo file (WAV), the Opus codec seems to blend both audio channel in each audio channel. From my initial testing it seems that the border is around ~38-40kbps and the lower the bitrate is, the more significant this seems. This may be a problem in recording of two speakers, where each of the speaker represent one of the audio channel.
*Steps*:
1. Install opus-tools 0.1.9-1 (e.g. _sudo apt-get install opus-tools_)
2. Encode stereo file by running _opusenc --bitrate 24 --hard-cbr --framesize 60_
3. Play the file and listen to each of the channels separately
*Expected*:
- both channels will retain only their audio footage
*Environment*:
- Ubuntu MATE 15.04 running on Dell Latitude E5430
- WAV info (file available at: [https://drive.google.com/folderview?id=0B_W_T_CohbhsfnNaOGZkb0NzekhKeDZDV2FnbFJTeUV4QzdBaDFPalpGQUdIVkJoTUpIVEk&usp=sharing]):
```
$ mediainfo ~/Desktop/1352389720037_5516_5517_31870.wav
General
Complete name : /home/pavel/Desktop/1352389720037_5516_5517_31870.wav
Format : Wave
File size : 2.81 MiB
Duration : 1mn 32s
Overall bit rate mode : Constant
Overall bit rate : 256 Kbps
Audio
Format : PCM
Format settings, Endianness : Little
Format settings, Sign : Signed
Codec ID : 1
Duration : 1mn 32s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Sampling rate : 8 000 Hz
Bit depth : 16 bits
Stream size : 2.81 MiB (100%)
```
- Opus codec:
```
$ dpkg -l | grep opus
ii libopus0:amd64 1.1-0ubuntu2 amd64 Opus codec runtime library
ii opus-tools 0.1.9-1 amd64 Opus codec command line tools
```Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2186opus_demo.c encodes void data at end of file2017-10-21T19:37:05Zgrahamrsopus_demo.c encodes void data at end of fileWhen the input file of samples is entirely consumed, yet another loop iteration encodes a packet from all zero data.
Is there any reason for that?
I was inclined to stop when the data is found void.
At line 695:
if (curr_read...When the input file of samples is entirely consumed, yet another loop iteration encodes a packet from all zero data.
Is there any reason for that?
I was inclined to stop when the data is found void.
At line 695:
if (curr_read+remaining == 0) break; // 20150314 Why continue with void data
if (curr_read+remaining < frame_size)
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2163Memory Leak in Opus V 1.1 and 1.1.12017-10-21T19:37:05ZpipesifMemory Leak in Opus V 1.1 and 1.1.1Hello,
i have see who is present memory leak in the Opus library, in Codifing section, this problem not is present if i use the library to decoding an Opus steam.
RegardHello,
i have see who is present memory leak in the Opus library, in Codifing section, this problem not is present if i use the library to decoding an Opus steam.
RegardJean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2161The libopus 1.1.1-beta tarball is missing the new MIPS files2017-10-21T19:37:05ZWan-Teh ChangThe libopus 1.1.1-beta tarball is missing the new MIPS filesThe libopus 1.1.1-beta tarball at http://downloads.xiph.org/releases/opus/opus-1.1.1-beta.tar.gz is missing all the new files for MIPS optimizations.
Specifically, these files are missing:
celt/mips/celt_mipsr1.h
celt/mips/fixed_ge...The libopus 1.1.1-beta tarball at http://downloads.xiph.org/releases/opus/opus-1.1.1-beta.tar.gz is missing all the new files for MIPS optimizations.
Specifically, these files are missing:
celt/mips/celt_mipsr1.h
celt/mips/fixed_generic_mipsr1.h
celt/mips/kiss_fft_mipsr1.h
celt/mips/mdct_mipsr1.h
celt/mips/pitch_mipsr1.h
celt/mips/vq_mipsr1.h
Makefile.mips
silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h
silk/fixed/mips/prefilter_FIX_mipsr1.h
silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
silk/mips/macros_mipsr1.h
silk/mips/NSQ_del_dec_mipsr1.h
silk/mips/sigproc_fix_mipsr1.hJean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2160Temporarily disable -Wnonnull around an opus_decode() call in test_opus_decode.c2017-10-21T19:37:05ZWan-Teh ChangTemporarily disable -Wnonnull around an opus_decode() call in test_opus_decode.cOne of the opus_decode() calls in test_opus_decode.c passes 0 as the fourth argument. But that argument is marked as nonnull. So if we compile opus using an alternative build system that enables both -Werror and -Wnonnull, the compilatio...One of the opus_decode() calls in test_opus_decode.c passes 0 as the fourth argument. But that argument is marked as nonnull. So if we compile opus using an alternative build system that enables both -Werror and -Wnonnull, the compilation will fail.
Here is an example of the compilation error in the Chromium build system on Mac:
wtc-macpro:src wtc$ ninja -C out/Default test_opus_decode
ninja: Entering directory `out/Default'
[1/2] CC obj/third_party/opus/src/tests/test_opus_decode.test_opus_decode.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/third_party/opus/src/tests/test_opus_decode.test_opus_decode.o.d -DCHROMIUM_BUILD -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_OPENSSL=1 -DNO_TCMALLOC -DDISABLE_NACL -DENABLE_EXTENSIONS=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_WIFI_BOOTSTRAPPING=1 -DENABLE_REMOTING=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_HIDPI=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DCR_CLANG_REVISION=223108 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../.. -Igen -I../../third_party/opus/src/celt -I../../third_party/opus/src/silk -I../../third_party/opus/src/include -fno-strict-aliasing -fstack-protector-all -arch x86_64 -fcolor-diagnostics -Wendif-labels -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wnewline-eof -Wno-c++11-narrowing -Wno-char-subscripts -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-reserved-user-defined-literal -Wno-inconsistent-missing-override -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.6 -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -O0 -g2 -Wno-absolute-value -std=c99 -c ../../third_party/opus/src/tests/test_opus_decode.c -o obj/third_party/opus/src/tests/test_opus_decode.test_opus_decode.o
../../third_party/opus/src/tests/test_opus_decode.c:138:64: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull]
out_samples = opus_decode(dec[t], packet, 0, 0, 0, fec);
~ ^
1 error generated.
ninja: build stopped: subcommand failed.
One way to fix this is to use a GCC pragma to ignore -Wnonnull for that opus_decode() call.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2048Compiling without optimization produces a warning2017-10-21T19:37:05ZDave MichaelCompiling without optimization produces a warningI work on Chromium, and in my debug build, I always get this warning:
src/src/opus_decoder.c:37:10: warning: You appear to be compiling without optimization, if so opus will be very slow. [-W#pragma-messages]
# pragma message "You appear...I work on Chromium, and in my debug build, I always get this warning:
src/src/opus_decoder.c:37:10: warning: You appear to be compiling without optimization, if so opus will be very slow. [-W#pragma-messages]
# pragma message "You appear to be compiling without optimization, if so opus will be very slow."
^
I personally want my build output to be clean, and I'm perfectly aware when doing a debug build that it's debug and might be slow. So I would prefer if this warning was not there.
If it's not acceptable to simply remove this warning, it seems like it ought to be possible to turn this off with a precompile define so that embedders like Chromium can turn it off. We have a large code base and noise in our build output can be very annoying.
I'm willing to do the patch if there's an acceptable solution to this.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2027multistream_encode(_float) fails on hard cbr encodes in libopus v1.12017-10-21T19:37:05Zthinktinkmultistream_encode(_float) fails on hard cbr encodes in libopus v1.1Using either an uncoupled stereo signal or any other singal type that lends itself to utilizing the multistream APIs, when setting the bitrate to Auto (-1000) or Max (-1) by the multistream_ctl function or by setting a very low bitrate, ...Using either an uncoupled stereo signal or any other singal type that lends itself to utilizing the multistream APIs, when setting the bitrate to Auto (-1000) or Max (-1) by the multistream_ctl function or by setting a very low bitrate, relative to the number of channels. This error only happens with libopus v1.1 but not any version before, including libopus v1.1-beta. This can be replicated with the opus tools 0.1.8-win32 encoder with the following example commands:
```
C:\opus-tools-0.1.8-win32>opusenc --set-ctl-int 4002=-1000 --hard-cbr Quadraphonic.wav Quadraphonic.opus
Encoding using libopus 1.1 (audio)
-----------------------------------------------------
Input: 48kHz 4 channels
Output: 4 channels (4 coupled)
20ms packets, 192kbit/sec CBR
Preskip: 312
Encoding failed: invalid argument. Aborting.
Encoding complete
-----------------------------------------------------
Encoded:
Runtime: 1e-006 seconds
(0x realtime)
Wrote: 847 bytes, 1 packets, 2 pages
Bitrate: -1.#INDkbit/s (without overhead)
Instant rates: 3065.6kbit/s to 0kbit/s
(7664 to 0 bytes per packet)
Overhead: 100% (container+metadata)
C:\opus-tools-0.1.8-win32>opusenc --set-ctl-int 4002=-1 --hard-cbr Quadraphonic.wav Quadraphonic.opus
Encoding using libopus 1.1 (audio)
-----------------------------------------------------
Input: 48kHz 4 channels
Output: 4 channels (4 coupled)
20ms packets, 192kbit/sec CBR
Preskip: 312
Encoding failed: invalid argument. Aborting.
Encoding complete
-----------------------------------------------------
Encoded:
Runtime: 1e-006 seconds
(0x realtime)
Wrote: 847 bytes, 1 packets, 2 pages
Bitrate: -1.#INDkbit/s (without overhead)
Instant rates: 3065.6kbit/s to 0kbit/s
(7664 to 0 bytes per packet)
Overhead: 100% (container+metadata)
C:\opus-tools-0.1.8-win32>opusenc --set-ctl-int 4002=1599 --hard-cbr Quadraphonic.wav Quadraphonic.opus
Encoding using libopus 1.1 (audio)
-----------------------------------------------------
Input: 48kHz 4 channels
Output: 4 channels (4 coupled)
20ms packets, 192kbit/sec CBR
Preskip: 312
Encoding failed: invalid argument. Aborting.
Encoding complete
-----------------------------------------------------
Encoded:
Runtime: 1e-006 seconds
(0x realtime)
Wrote: 847 bytes, 1 packets, 2 pages
Bitrate: -1.#INDkbit/s (without overhead)
Instant rates: 3065.6kbit/s to 0kbit/s
(7664 to 0 bytes per packet)
Overhead: 100% (container+metadata)
C:\opus-tools-0.1.8-win32>
```
The above commands do not show encoding errors with previous versions of the tools.
Attached quadraphonic sample audio file for testing.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2026Opus DTX issue report2017-10-21T19:37:03ZgmarianoOpus DTX issue reportHello:
We noticed that opus reconstructed noise is pulsing with a 400ms pattern when dtx is enabled in silk mode. This is independent of the background noise level and is found with speech + non-speech period test files, as well as vari...Hello:
We noticed that opus reconstructed noise is pulsing with a 400ms pattern when dtx is enabled in silk mode. This is independent of the background noise level and is found with speech + non-speech period test files, as well as variable level noise-only test files. This issue can be easirly reproduced with opus v1.1 using this command:
./opus_demo voip 16000 1 25000 –dtx input.bin output.bin
We have attached a .wav file with the first channel as the input reference noise signal and the second channel as the opus codec output using the opus_demo application. It does not look like this has been reported already. We would like your feedback.
Thank you,
Gonzalo Mariano and Pascal Huart
Cisco Systems
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2001Opus encoder produces 40/60ms CBR packets with excess padding2017-10-21T19:37:03ZMark HarrisOpus encoder produces 40/60ms CBR packets with excess paddingThe packets produced by `opus_multistream_encode()` when encoding 40ms or 60ms CELT or Hybrid packets for a single stream contain 4 to 6 bytes of padding, which could have been used to add 1 or 2 bytes to each frame.
For example:
```
$ ...The packets produced by `opus_multistream_encode()` when encoding 40ms or 60ms CELT or Hybrid packets for a single stream contain 4 to 6 bytes of padding, which could have been used to add 1 or 2 bytes to each frame.
For example:
```
$ opusenc --hard-cbr --bitrate 31.5 --framesize 60 comp48s.wav out.opus
Encoding using libopus 1.1-42-ge1f8462 (audio)
-----------------------------------------------------
Input: 48kHz 2 channels
Output: 2 channels (2 coupled)
60ms packets, 31.5kbit/sec CBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 1 minute and 30.84 seconds
Runtime: 2 seconds
(45.42x realtime)
Wrote: 362224 bytes, 1514 packets, 97 pages
Bitrate: 31.4667kbit/s (without overhead)
Instant rates: 31.4667kbit/s to 31.4667kbit/s
(236 to 236 bytes per packet)
Overhead: 1.36% (container+metadata)
$
```
The above command produces 236-byte packets (31.467 kb/s), each containing the 2 bytes required for a code 3 packet, three 76-byte frames, and 6 bytes of padding (including the padding length byte). Instead of the 6 bytes of padding, each frame could have contained 78 bytes of data.
If the multistream API is not used, `opus_encode()` does produce packets containing three 78-byte frames for this same bitrate and frame size. However, for some reason it also adds 1 byte of padding to each packet, which causes it to slightly exceed the target bitrate.
```
$ opus_demo audio 48000 2 31500 -cbr -framesize 60 comp48s.pcm out.pcm
libopus 1.1-42-ge1f8462
Encoding 48000 Hz input at 31.500 kb/s in auto mode with 2880-sample frames.
average bitrate: 31.613 kb/s
maximum bitrate: 31.600 kb/s
active bitrate: 31.600 kb/s
bitrate standard deviation: 0.000 kb/s
$
```Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2000Opus decoder produces signed arithmetic overflow undefined behavior2017-10-21T19:37:05ZMark HarrisOpus decoder produces signed arithmetic overflow undefined behaviorThe libopus Opus decoder can produce signed multiplication overflows and signed addition overflows decoding Opus packets. This is undefined behavior according to ISO C.
When this happens, it is usually accompanied by loud, exceptionall...The libopus Opus decoder can produce signed multiplication overflows and signed addition overflows decoding Opus packets. This is undefined behavior according to ISO C.
When this happens, it is usually accompanied by loud, exceptionally poor quality clipped audio output.
The libopus README file claims that the implementation does not rely on any undefined behavior.
Attached is an example PCM input file that can be used with `opus_demo` to reproduce the issue. The packets produced by the Opus encoder produce overflows when decoded. The issue can be reproduced with either the floating point or fixed point implementation using the command below:
```
$ opus_demo audio 48000 1 9000 -cbr ticket2000.pcm out.pcm
libopus 1.1-42-ge1f8462
Encoding 48000 Hz input at 9.000 kb/s in auto mode with 960-sample frames.
```
Numerous occurrences of the following operations are encountered (with varying values for the operands):
```
CLANG ARITHMETIC UNDEFINED at <silk/NSQ_del_dec.c, (234:64)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): -284186 right (int32): 8512
CLANG ARITHMETIC UNDEFINED at <silk/decode_core.c, (224:36)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 47718480 right (int32): 52
CLANG ARITHMETIC UNDEFINED at <silk/decode_core.c, (224:36)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 44894665 right (int32): 2140023376
```
The output audio also sounds nothing like the input.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1998Opus 1.1: 64 bit windows compilation generates conversion warnings2017-10-21T19:37:06ZJ. MarkiewiczOpus 1.1: 64 bit windows compilation generates conversion warningsUsing the 2010 projects to compile opus 1.1 and generate the following warnings compiling x64 Release.
opus_compare.c
..\..\src\opus_compare.c(78): warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
..\..\src...Using the 2010 projects to compile opus 1.1 and generate the following warnings compiling x64 Release.
opus_compare.c
..\..\src\opus_compare.c(78): warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
..\..\src\opus_compare.c(233): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
..\..\src\opus_compare.c(349): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
..\..\src\opus_compare.c(367): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
opus_decoder.c
opus_encoder.c
..\..\src\opus_encoder.c(588): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(589): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(608): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(615): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(620): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(623): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(625): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
..\..\src\opus_encoder.c(714): warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
repacketizer.c
..\..\src\repacketizer.c(222): warning C4244: '=' : conversion from '__int64' to 'int', possible loss of data
Maybe they are harmless, but they look scary especially when dealing we're talking about a codec. I didn't see a open issue filed on this so I thought I'd let you know.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1997Opus trunk/1.1 fails to build - 'export' is a GNU make-ism2020-04-22T04:16:23ZBrad SmithOpus trunk/1.1 fails to build - 'export' is a GNU make-ismOpus trunk/1.1 has had someregressions over 1.0.x and fails to build..
checking for C99 variable-size arrays... yes
checking for cos in -lm... (cached) yes
/home/ports/pobj/opus-1.1/opus-1.1/configure[12816]:
${inline_optimization:0:3}...Opus trunk/1.1 has had someregressions over 1.0.x and fails to build..
checking for C99 variable-size arrays... yes
checking for cos in -lm... (cached) yes
/home/ports/pobj/opus-1.1/opus-1.1/configure[12816]:
${inline_optimization:0:3}": bad substitution
AM_CONDITIONAL([OPUS_ARM_INLINE_ASM],
[test x"${inline_optimization:0:3}" = x"ARM"])
AM_CONDITIONAL([OPUS_ARM_EXTERNAL_ASM],
[test x"${asm_optimization:0:3}" = x"ARM"])
*** Parse error in /home/ports/pobj/opus-1.1/build-amd64: Need an
operator in 'yes' (Makefile:2756)
# Provide the full test output for failed tests when using the parallel
# test suite (which is enabled by default with automake 1.13+).
export VERBOSE = yes
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1991llvm crashes when building pitch.c for iOS (opus 1.1rc2) with optimisation en...2017-10-21T19:37:06Zmcguinnllvm crashes when building pitch.c for iOS (opus 1.1rc2) with optimisation enabled and floating pointI am trying to build the latest opus 1.1rc2 within webrtc for iOS using the chromium gyp build framework.
The build flag OPUS_ARM_MAY_HAVE_NEON is defined to get access to any neon optimisations
Without minimal compiler optimisations ...I am trying to build the latest opus 1.1rc2 within webrtc for iOS using the chromium gyp build framework.
The build flag OPUS_ARM_MAY_HAVE_NEON is defined to get access to any neon optimisations
Without minimal compiler optimisations (-O0) I see a message stating that opus will be very slow, but things build just fine.
With any optimisation set for iOS in the file trunk/build/common.gypi (i.e.., 'mac_debug_optimization%': 's', instead of '0') and building for FIXED_POINT (toggled 'use_opus_fixed_point%': 1, in trunk/third_party/opus/opus.gyp) then the compiler crashes and reports a problem similar to what is described here: http://lists.cs.uiuc.edu/pipermail/llvmbugs/2013-August/029853.html
The file that building stops at is celt/pitch.c
However building with fixed point and optimisation is not a problem.
More information about the llvm crash dump:
ninja: Entering directory `trunk/out_ios/Debug-iphoneos'
[74/2136] CC obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o.d -DANGLE_DX11 -DDISABLE_NACL -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DENABLE_INPUT_SPEECH -DENABLE_EGLIMAGE=1 -DCLD_VERSION=1 -DENABLE_SPELLCHECK=1 -DDISABLE_FTP_SUPPORT=1 -DOPUS_BUILD -DOPUS_EXPORT= -DHAVE_LRINT -DHAVE_LRINTF -DVAR_ARRAYS -DOPUS_ARM_MAY_HAVE_NEON -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/opus-1.1-rc2/src/celt -I../../third_party/opus-1.1-rc2/src/include -I../../third_party/opus-1.1-rc2/src/silk -I../../third_party/opus-1.1-rc2/src/silk/float -isysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -O1 -gdwarf-2 -fvisibility=hidden -Wnewline-eof -miphoneos-version-min=6.0 -arch armv7 -Wendif-labels -Wno-unused-parameter -Wno-missing-field-initializers -Wheader-hygiene -Wno-c++11-narrowing -Wno-char-subscripts -Wno-unused-function -Wno-covered-switch-default -Wstring-conversion -Wno-deprecated-register -Wno-deprecated-declarations -Wheader-hygiene -Wno-char-subscripts -Wno-unused-function -Wno-unnamed-type-template-args -Wno-c++11-narrowing -std=c99 -Xclang -load -Xclang /Users/tommcguinness/webrtc2/trunk/tools/clang/scripts/../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -c ../../third_party/opus-1.1-rc2/src/celt/pitch.c -o obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o
Assertion failed: (MLoc.isReg() && !Indirect && "This doesn't support offset/indirection - implement it if needed"), function EmitDwarfRegOp, file /work/chromium/src/third_party/llvm/lib/Target/ARM/ARMAsmPrinter.cpp, line 225.
0 clang 0x0000000101b5b138 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 clang 0x0000000101b5b684 abort + 692
2 libsystem_platform.dylib 0x00007fff896ff5aa _sigtramp + 26
3 libsystem_platform.dylib 000000000000000000 _sigtramp + 1989151344
4 clang 0x0000000101b5b3e6 abort + 22
5 clang 0x0000000101b5b3c1 __assert_rtn + 81
6 clang 0x000000010103b135 std::_Rb_tree<llvm::MachineInstr*, std::pair<llvm::MachineInstr* const, unsigned int>, std::_Select1st<std::pair<llvm::MachineInstr* const, unsigned int> >, std::less<llvm::MachineInstr*>, std::allocator<std::pair<llvm::MachineInstr* const, unsigned int> > >::_M_erase(std::_Rb_tree_node<std::pair<llvm::MachineInstr* const, unsigned int> >*) + 805
7 clang 0x000000010152ee8e llvm::DwarfDebug::emitDebugLoc() + 878
8 clang 0x000000010152e748 llvm::DwarfDebug::endModule() + 648
9 clang 0x00000001015082c3 llvm::AsmPrinter::doFinalization(llvm::Module&) + 563
10 clang 0x0000000101af24de llvm::FPPassManager::doFinalization(llvm::Module&) + 94
11 clang 0x0000000101af2816 llvm::MPPassManager::runOnModule(llvm::Module&) + 710
12 clang 0x0000000101af314f llvm::PassManagerImpl::run(llvm::Module&) + 543
13 clang 0x00000001001c5b4e clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) + 5694
14 clang 0x00000001002cc813 clang::EmitObjAction::EmitObjAction(llvm::LLVMContext*) + 1555
15 clang 0x0000000100084b44 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 68
16 clang 0x000000010031fc54 clang::ParseAST(clang::Sema&, bool, bool) + 484
17 clang 0x00000001002cb801 clang::CodeGenAction::ExecuteAction() + 545
18 clang 0x0000000100069174 clang::FrontendAction::Execute() + 116
19 clang 0x00000001000422bd clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 973
20 clang 0x0000000100009064 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3348
21 clang 0x0000000100001179 cc1_main(char const**, char const**, char const*, void*) + 793
22 clang 0x00000001000072b5 main + 8901
23 clang 0x0000000100000e34 start + 52
24 clang 0x000000000000007b start + 4294963835
Stack dump:
0. Program arguments: /Users/tommcguinness/webrtc2/trunk/third_party/llvm-build/Release+Asserts/bin/clang -cc1 -triple thumbv7-apple-ios6.0.0 -emit-obj -disable-free -main-file-name pitch.c -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -target-cpu cortex-a8 -target-feature +soft-float-abi -target-abi apcs-gnu -mfloat-abi soft -target-linker-version 133.3 -gdwarf-2 -coverage-file /Users/tommcguinness/webrtc2/trunk/out_ios/Debug-iphoneos/obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o -resource-dir /Users/tommcguinness/webrtc2/trunk/third_party/llvm-build/Release+Asserts/bin/../lib/clang/3.4 -dependency-file obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o.d -MT obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o -isysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -D ANGLE_DX11 -D DISABLE_NACL -D CHROMIUM_BUILD -D USE_LIBJPEG_TURBO=1 -D ENABLE_INPUT_SPEECH -D ENABLE_EGLIMAGE=1 -D CLD_VERSION=1 -D ENABLE_SPELLCHECK=1 -D DISABLE_FTP_SUPPORT=1 -D OPUS_BUILD -D OPUS_EXPORT= -D HAVE_LRINT -D HAVE_LRINTF -D VAR_ARRAYS -D OPUS_ARM_MAY_HAVE_NEON -D DYNAMIC_ANNOTATIONS_ENABLED=1 -D WTF_USE_DYNAMIC_ANNOTATIONS=1 -I ../../third_party/opus-1.1-rc2/src/celt -I ../../third_party/opus-1.1-rc2/src/include -I ../../third_party/opus-1.1-rc2/src/silk -I ../../third_party/opus-1.1-rc2/src/silk/float -O1 -Wnewline-eof -Wendif-labels -Wno-unused-parameter -Wno-missing-field-initializers -Wheader-hygiene -Wno-c++11-narrowing -Wno-char-subscripts -Wno-unused-function -Wno-covered-switch-default -Wstring-conversion -Wno-deprecated-register -Wno-deprecated-declarations -Wheader-hygiene -Wno-char-subscripts -Wno-unused-function -Wno-unnamed-type-template-args -Wno-c++11-narrowing -std=c99 -fdebug-compilation-dir /Users/tommcguinness/webrtc2/trunk/out_ios/Debug-iphoneos -ferror-limit 19 -fmessage-length 0 -fvisibility hidden -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=ios-6.0.0 -fencode-extended-block-signature -fsjlj-exceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-slp -load /Users/tommcguinness/webrtc2/trunk/tools/clang/scripts/../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -add-plugin find-bad-constructs -o obj/third_party/opus-1.1-rc2/src/celt/opus.pitch.o -x c ../../third_party/opus-1.1-rc2/src/celt/pitch.c
1. <eof> parser at end of file
2. Code generation
clang: error: unable to execute command: Illegal instruction: 4
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.4 (trunk 192635)
Target: arm-apple-darwin13.0.0
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/h1/51w8ct3j2mq60f_y9djxbhxh04m7j1/T/pitch-c74fe5.c
clang: note: diagnostic msg: /var/folders/h1/51w8ct3j2mq60f_y9djxbhxh04m7j1/T/pitch-c74fe5.sh
clang: note: diagnostic msg:
********************
[74/2136] CC obj/third_party/opus-1.1-rc2/src/silk/opus.enc_API.o
ninja: build stopped: subcommand failed.
Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1984opus_multistream_encoder_ctl(st, OPUS_RESET_STATE) unimplemented2018-11-26T18:44:39ZMark Harrisopus_multistream_encoder_ctl(st, OPUS_RESET_STATE) unimplementedUnder `opus_multistream_encoder_init()`, the [Opus Multistream API](https://mf4.xiph.org/jenkins/view/opus/job/opus/ws/doc/html/group__opus__multistream.html#gae7586aa54c322fd9599de24b5c8b8c01) documentation states:
> To reset a previou...Under `opus_multistream_encoder_init()`, the [Opus Multistream API](https://mf4.xiph.org/jenkins/view/opus/job/opus/ws/doc/html/group__opus__multistream.html#gae7586aa54c322fd9599de24b5c8b8c01) documentation states:
> To reset a previously initialized state, use the `OPUS_RESET_STATE` CTL.
However, `opus_multistream_encoder_ctl(st, OPUS_RESET_STATE)` returns `OPUS_UNIMPLEMENTED`.
Workaround: Destroy encoder and create a new one.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1981opus_multistream_decode read beyond end of payload2018-11-26T18:44:40ZMark Harrisopus_multistream_decode read beyond end of payloadUp to 2 bytes beyond the end of the payload may be read when decoding a specially-crafted self-delimited code 2 or code 3 vbr multistream packet.Up to 2 bytes beyond the end of the payload may be read when decoding a specially-crafted self-delimited code 2 or code 3 vbr multistream packet.Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1980opus_decode undefined behavior decoding FEC from invalid packet2018-11-26T18:44:40ZMark Harrisopus_decode undefined behavior decoding FEC from invalid packetAttempting to decode FEC from an invalid packet can cause the opus decoder to use uninitialized data from the stack, and potentially dereference out-of-bounds memory addresses or crash depending on the contents of the uninitialized data....Attempting to decode FEC from an invalid packet can cause the opus decoder to use uninitialized data from the stack, and potentially dereference out-of-bounds memory addresses or crash depending on the contents of the uninitialized data.
Decoding the attached opus_demo bitstream under valgrind demonstrates the issue.
```
opus_demo -d 48000 1 -inbandfec opus-fec-uninit.opusdemo out.pcm
```Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/1979opus_decode LP PLC fails to accommodate frame size change during packet loss2018-11-26T18:44:40ZMark Harrisopus_decode LP PLC fails to accommodate frame size change during packet lossSuppose opus packets are being received over an unreliable network with a frame size and packet size of 40ms. There is some packet loss, and during that time the sender switches to 10ms packets, as shown below:
Received packets:
|= tim...Suppose opus packets are being received over an unreliable network with a frame size and packet size of 40ms. There is some packet loss, and during that time the sender switches to 10ms packets, as shown below:
Received packets:
|= timestamp =|= content =|
|-------------|------------|
| //t// | 40ms frame |
| //t//+80ms | 10ms frame |
`opus_decode()` is called in the usual manner for the time //t// packet. When the next packet is received for time //t//+80ms, `opus_decode()` is called with that packet using `decode_fec`=1 and `frame_size`=1920 (40ms), to fill in the gap from //t//+40ms to //t//+80ms.
If libopus assertions are enabled, an assertion failure is produced:
```
Fatal (internal) error in silk/dec_API.c, line 142: assertion failed: 0
Abort trap
```
If libopus assertions are disabled it does not abort, but the pcm output contains 30ms of digital silence from //t//+40ms to //t//+70ms before the PLC (or FEC if available) activates. This is shown in the attached picture, in which //t//=0 and the audio is a continuous 880 Hz sine wave with constant amplitude.
It expected that the entire gap from //t//+40ms to //t//+80ms will be filled in with interpolated PLC data and any available FEC data, as it does with no frame size change, without producing an assertion failure.
Note that the same type of failure also occurs for other times and frame sizes, e.g. if the second packet contains a 2.5ms MDCT frame for time //t//+55ms.
The issue can be reproduced by decoding the attached opus_demo bitstream.
```
opus_demo -d 48000 1 -inbandfec opus-lp-plc-fail.opusdemo out.pcm
```Jean-Marc ValinJean-Marc Valin