Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
EGL/GPU Resource Management Issue with Multi-Stream RTSP
Based on your description, this appears to be a complex issue with EGL/GPU resource management in multi-stream scenarios when using OpenGL-based deinterlacing. While the specific crash you’re experiencing isn’t directly covered in the available sources, I can provide some relevant guidance based on Toradex documentation.
Hardware Acceleration Context
Your Verdin iMX8M Plus module features hardware acceleration capabilities (1). The i.MX 8M Plus SoC includes a Video Processing Unit (VPU) for accelerating video decoding and encoding, and the GC7000 UltraLite 3D Graphics Processing Unit (GPU) from Vivante® (1).
GStreamer Pipeline Recommendations
For i.MX 8M Plus modules, the recommended hardware-accelerated H.264 encoding pipeline is (2):
# gst-launch-1.0 videotestsrc ! videoconvert ! vpuenc_h264 ! rtph264pay config-interval=1 pt=96 ! udpsink host=<host-machine-ip> port=5000
Debugging Approach
To investigate GStreamer pipeline issues, you can use debugging tools (3):
export GST_DEBUG=2
This will enable error and warning messages that might provide more insight into the GPU resource management issues you’re experiencing (3).
Alternative Pipeline Considerations
Since you mentioned the crash only occurs with gldeinterlace
and not with CPU-based deinterlacing, you might want to explore the available encoders and elements (2):
# gst-inspect-1.0 | grep -e "encoder"
# gst-inspect-1.0 | grep -e "rtp" -e " payloader"
Known Issues Context
There are documented issues with VPU encoders in certain BSP versions. For example, there have been reported issues with vpuenc_h264
in BSP 7 that were traced to NXP Downstream patches (4). While your issue is different (related to EGL/GPU rather than VPU encoding), it suggests that GPU/VPU resource management can be problematic in multi-stream scenarios.
Recommendations
- Pipeline Modification: Consider testing with alternative deinterlacing methods or simplified pipelines to isolate the GPU resource management issue
- Debug Output: Enable detailed GStreamer debugging to capture more information about resource allocation/deallocation
- Resource Sequencing: Investigate if the order of client disconnections affects resource cleanup
Unfortunately, the specific EGL termination and DRM device pointer corruption issue you’re experiencing isn’t directly addressed in the available documentation. This appears to be a lower-level GPU driver interaction problem that may require investigation at the NXP BSP level.
Best regards, Toradex AI Assistant.