From 2cdb1cef98fdaec1b5f297ed92f7a26a8654c38c Mon Sep 17 00:00:00 2001 From: Hendrik Langer Date: Fri, 31 Jul 2020 23:10:53 +0200 Subject: [PATCH] debug --- raspberry/roberto/camera/camera_gstreamer_webrtc.py | 11 +++++++---- raspberry/roberto/views/websocket/routes.py | 11 ++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/raspberry/roberto/camera/camera_gstreamer_webrtc.py b/raspberry/roberto/camera/camera_gstreamer_webrtc.py index 173db10..decc972 100644 --- a/raspberry/roberto/camera/camera_gstreamer_webrtc.py +++ b/raspberry/roberto/camera/camera_gstreamer_webrtc.py @@ -62,6 +62,7 @@ class WebRTCCamera: self.webrtc = None def handle_sdp_answer(self, sdp): + print("handle_sdp_answer") print ('Received answer:\n%s' % sdp) res, sdpmsg = GstSdp.SDPMessage.new() GstSdp.sdp_message_parse_buffer(bytes(sdp.encode()), sdpmsg) @@ -71,19 +72,23 @@ class WebRTCCamera: promise.interrupt() def handle_ice(self, ice): + print("handle_ice") candidate = ice['candidate'] sdpmlineindex = ice['sdpMLineIndex'] self.webrtc.emit('add-ice-candidate', sdpmlineindex, candidate) def on_negotiation_needed(self, element): + print("on_negotiation_needed") promise = Gst.Promise.new_with_change_func(self.on_offer_created, element, None) element.emit('create-offer', None, promise) def send_ice_candidate_message(self, _, mlineindex, candidate): + print("send_ice_candidate_message") icemsg = json.dumps({'type': 'candidate', 'candidate': {'candidate': candidate, 'sdpMLineIndex': mlineindex}}) self.socketio.emit('data', type='candidate', data=icemsg, room=self.room, namespace='/webrtc', skip_sid=self.sid) def on_incoming_stream(self, _, pad): + print("on_incoming_stream") if pad.direction != Gst.PadDirection.SRC: return @@ -94,6 +99,7 @@ class WebRTCCamera: self.webrtc.link(decodebin) def on_incoming_decodebin_stream(self, _, pad): + print("on_incoming_decodebin_stream") if not pad.has_current_caps(): print (pad, 'has no caps, ignoring') return @@ -124,6 +130,7 @@ class WebRTCCamera: resample.link(sink) def on_offer_created(self, promise, _, __): + print("on_offer_created") promise.wait() reply = promise.get_reply() offer = reply['offer'] @@ -136,10 +143,6 @@ class WebRTCCamera: self.socketio.emit('data', type='offer', data=msg, room=self.room, namespace='/webrtc', skip_sid=self.sid) - - - - def check_plugins(): needed = ["opus", "vpx", "nice", "webrtc", "dtls", "srtp", "rtp", "rtpmanager", "videotestsrc", "audiotestsrc"] diff --git a/raspberry/roberto/views/websocket/routes.py b/raspberry/roberto/views/websocket/routes.py index 49a7277..6c91e8d 100644 --- a/raspberry/roberto/views/websocket/routes.py +++ b/raspberry/roberto/views/websocket/routes.py @@ -80,19 +80,28 @@ def webrtc_message(data): print("CANDIDATE") if 'candidiate' in data: webrtccamera.handle_ice(data) + else: + print("got unknown data message!") @socketio.on('disconnect', namespace='/webrtc') def disconnect(): sid = request.sid print("Received Disconnect message from %s" % sid) leave_room(ROOM) +# if webrtccamera.connected: +# webrtccamera.disconnect() @socketio.on('connect', namespace='/webrtc') def connect(): sid = request.sid print("Received Connect message from %s" % sid) + join_room(ROOM) if not webrtccamera.connected: webrtccamera.connect(socketio, ROOM, 'gstwebrtc1000') #socketio.emit('ready', room=ROOM, namespace='/webrtc', skip_sid=sid) socketio.emit('ready', room=ROOM, namespace='/webrtc') - join_room(ROOM) + +@socketio.on_error_default +def default_error_handler(e): + print(request.event["message"]) # "my error event" + print(request.event["args"]) # (data,)