This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I have written a gstreamer pipeline in C that records video and microphone data and streams it out to UDP. It uses an interpipe (RidgeRun/gst-interpipe: GStreamer plug-in for interpipeline communication (github.com)) to split things into multiple pipelines (one for capturing microphone and video, one for streaming audio, and one for streaming video).
After recording from the microphone for some time, I get a continuous davinci-mcasp 2b20000.audio-controller: Receive buffer overflow error, causing CPU0 to be flooded with interrupts.
The only way to recover is to stop my pipeline by stopping the program.
I am trying to reproduce with the following gst-launch pipeline:
gst-launch-1.0 alsasrc \ ! audio/x-raw, format=S32LE, rate=48000, channels=2 \ ! audioconvert \ ! vorbisenc \ ! rtpvorbispay pt=97 \ ! udpsink host=224.1.1.1 auto-multicast=true port=5001
I have a video capture to udp stream running at the same time.
Any idea how to solve this problem?
Regards,
Bas Vermeulen
Hi Bas,
We have fixed the overrun/underrun issues with ALSA and some of the patches might have gone in 9.2 SDK release and the other might be part of 10.x release scheduled for in July 2024.
I have attached the patch if you would want to port it on your end if it helps in the below thread and here as well. The Patch also addresses to improve the ALSA latency on AM62/AM62Ax processors. More background you can find in both the below threads.
Hope this helps.
Best Regards,
This solved my issues, I haven't seen it again. It also solves the dma tear down messages when you stop recording.
Hi Bas,
Glad to be of help. Closing this thread. Feel free to reach out for any further assistance.
Best Regards,
Suren