Caught a segmentation fault while loading plugin file: /usr/local/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstsrtp.so
ERROR: Caught a segmentation fault while loading plugin file:
/usr/local/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstsrtp.so
Please either:
- remove it and restart.
- run with --gst-disable-segtrap --gst-disable-registry-fork and debug.
Happens pretty often to me while trying to start a WebRTC session with generating an offer in Python:
What I'm doing to provoke this is (using GStreamer 1.17, compiled from source on a Raspberry PI)
def start_pipeline(self):
''' Start local media pipeline '''
global PIPELINES
self.pipe = Gst.parse_launch(PIPELINES[self.pipeline])
self.webrtc = self.pipe.get_by_name('webrtcbin')
trans = self.webrtc.emit('get-transceiver', 0)
if self.direction == 'sendonly':
trans.set_property('direction', GstWebRTC.WebRTCRTPTransceiverDirection.SENDONLY)
elif self.direction == 'recvonly':
trans.set_property('direction', GstWebRTC.WebRTCRTPTransceiverDirection.RECVONLY)
else:
trans.set_property('direction', GstWebRTC.WebRTCRTPTransceiverDirection.SENDRECV)
self.webrtc.connect('on-negotiation-needed', self.on_negotiation_needed)
self.webrtc.connect('on-ice-candidate', self.on_ice_candidate)
self.webrtc.connect('pad-added', self.on_pad_added)
self.pipe.set_state(Gst.State.PLAYING)
PIPELINES contains a number of working pipeline definitions. If it matters, the one which is used in that case (although I haven't investigated yet, if it happens with the others too) is this:
PIPELINE_PI_VP8 = '''
webrtcbin name=webrtcbin bundle-policy=max-bundle stun-server=stun://stun.l.google.com:19302
rpicamsrc bitrate=1000000 preview=false ! videoconvert ! video/x-raw, framerate=30/1, width=640, height=480 ! vp8enc cpu-used=4 deadline=1 !
queue ! rtpvp8pay !queue ! application/x-rtp,media=video,encoding-name=VP8,payload=97! webrtcbin.
'''
None of the callbacks is triggered before the SIGSEV is happening.
Any idea, how I could pass the required parameters to the plugin via Gst?
TIA Regards