OPUS audio woes

I’m not expecting much help here but I figure I’ll try anyway. I’m trying to end OPUS audio to a Quest 3 headset and I have these 2 pipelines

Sender

pipewiresrc path={path} ! opusenc bitrate=128000 ! opusparse ! rtpopuspay ! udpsink host={ip} port={port} sync=true

Receiver

udpsrc port=%d caps=“application/x-rtp, media=audio, clock-rate=48000, encoding-name=OPUS, payload=96” ! rtpopusdepay ! opusparse ! amcauddec-c2androidopusdecoder ! openslessink

Once the streams initialize and the first packet comes in my app crashes. If I swap the port so packets don’t flow it’s fine and if I swap out the android decoder for

udpsrc port=%d caps=“application/x-rtp, media=audio, clock-rate=48000, encoding-name=OPUS, payload=96” ! rtpopusdepay ! opusparse ! fakesink

It doesn’t crash.

All I get in logcat is a very unhelpful error

04-04 12:06:22.688 26293 26604 I LumaXR : [GStreamer] Waiting for available output buffer
04-04 12:06:22.640 0 0 I : potentially unexpected fatal signal 6.
04-04 12:06:22.640 0 0 I : CPU: 3 PID: 26584 Comm: amcaudiodec-c2a Tainted: G C 5.10.236-gf94cd3dbd5d2 #1
04-04 12:06:22.640 0 0 I Hardware name: Eureka (PVT1.1) (DT)
04-04 12:06:22.640 0 0 I pstate : 00001000 (nzcv daif -PAN -UAO -TCO BTYPE=–)
04-04 12:06:22.640 0 0 I pc : 0000007ed04b2668
04-04 12:06:22.640 0 0 I lr : 0000007ed04b2638
04-04 12:06:22.640 0 0 I sp : 0000007c30118510
04-04 12:06:22.640 0 0 I : x29: 0000007c301185b0 x28: 0000007bde76c80c
04-04 12:06:22.640 0 0 I : x27: 0000007bddbce0ef x26: 0000007c30118d40
04-04 12:06:22.640 0 0 I : x25: 0000007bddc82718 x24: 0000007bddc72a4e
04-04 12:06:22.640 0 0 I : x23: b400007e213d7ba0 x22: 0000007c30118d40
04-04 12:06:22.640 0 0 I : x21: 00000000ffffffff x20: 00000000000067d8
04-04 12:06:22.640 0 0 I : x19: 00000000000066b5 x18: 0000007bd5904000
04-04 12:06:22.640 0 0 I : x17: 0000007ed0506ce0 x16: 0000007ed052c9f8
04-04 12:06:22.640 0 0 I : x15: 0000000017aef525 x14: 0000000044a5a8be
04-04 12:06:22.640 0 0 I : x13: 0000000000000001 x12: 0000000000000003
04-04 12:06:22.640 0 0 I : x11: 0000000000000000 x10: ffffff80fffffbdf
04-04 12:06:22.640 0 0 I : x9 : 00000000000066b5 x8 : 00000000000000f0
04-04 12:06:22.640 0 0 I : x7 : 7f7f7f7f7f7f7f7f x6 : 626c607372662e60
04-04 12:06:22.640 0 0 I : x5 : 626c607372662e60 x4 : 626c607372662e60
04-04 12:06:22.640 0 0 I : x3 : 0000007c30118530 x2 : 0000000000000006
04-04 12:06:22.640 0 0 I : x1 : 00000000000067d8 x0 : 0000000000000000
04-04 12:06:22.695 1468 1607 I DropBoxManagerService: add tag=SYSTEM_TOMBSTONE_PROTO_WITH_HEADERS isTagEnabled=true flags=0x4
04-04 12:06:22.642 0 0 I init : Untracked pid 26597 exited with status 0
04-04 12:06:22.642 0 0 I init : Untracked pid 26597 did not have an associated service entry and will not be reaped
04-04 12:06:22.642 0 0 I init : waitpid(26597) returned 26597
04-04 12:06:22.701 2525 2562 D crash-reporter: Detected a new tombstone file: /data/tombstones/tombstone_01.pb

Which doesn’t mean anything to me. I figure if my caps were wrong the pipeline simply wouldn’t link but maybe I’m missing something obvious here?

Probably unrelated to your crash, but opusparse is not needed in these pipelines, you should just remove it (Opus is always parsed/framed in a GStreamer context).

Good to know but it doesn’t fix it no. The AAC decoders (amcauddec-c2androidaacdecoder) don’t crash and I’ve been trying to work with them but I’d rather use OPUS.

Have you tried opusdec or avdec_opus?