appsrc -> opusparse -> opusdec getting stuck after audio pause

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

appsrc -> opusparse -> opusdec getting stuck after audio pause

Robby Zampino
Hello,

I'm currently using gstreamer to decode and playback opus audio that is being received from the network (from a Mumble server). I'm currently only working with one audio stream (one other user on the server). The pipeline I'm currently using is setup as follows:
appsrc -> opusparse -> opusdec -> audiomixer -> autoaudiosink (which is resolving to pulseaudio).

This pipeline initially decodes and outputs the opus audio data correctly.  The pipeline will function correctly as long as audio is sent continuously. As soon as audio stops being received (the other user on the Mumble server stops talking), the pipeline will not playback audio the next time the other user starts speaking. Note that opus data is still being recieved from the network and being pushed into the appsrc, it just never comes out the other end of the pipeline

The only way I've found to fix this is to restart the entire pipeline everytime there is a break in speech (set to NULL and then back to PLAYING). This is not ideal as it causes some choppyness and I don't think this will be possible once there are multiple people talking simultaneously. The Mumble protocol encodes a "Termination bit" in the audio packets so I am aware when the audio is stopping, but I'm not sure if the problem is that I need to pass this information to the opus decoder, that my opus decoder is just configured incorrectly, or something else that I am overlooking entirely.

--
Thanks,
Robozman




_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel