Ich arbeite an einem WebRTC-Projekt. Ich habe OpenWebRTC gewählt, um es in meinem Projekt zu implementieren.
Ich habe es geschafft, sowohl für das Web als auch für iOS zu funktionieren. Ich habe einen Signalisierungsserver in asp.net MVC entwickelt und coTurn Server als Turn-Server verwendet.
Alles funktioniert gut außer einem Problem.
Die iOS App stürzt zufällig mit der Ausnahme
abEXC_BAD_ACCESS Ausnahme: (gstglcontext (14): EXC_BAD_ACCESS (Code = 1, Adresse = 0x30))
Die Ausnahme wird von irgendwo innerhalb des SDK ausgelöst. Ich habe seit Tagen versucht, eine Lösung zu finden, ist aber bisher nicht gelungen.
Hat jemand anderes ein ähnliches Problem?
Im Folgenden finden Sie den Stack-Trace aus den Geräteprotokollen des Absturzes
%Vor%Ich habe das Problem weiter aufgespürt.
Die Ausnahme wird in der folgenden Zeile in gstglimagesink.c in der Funktion 'gst_glimage_sink_on_draw'
ausgelöst %Vor% Aktualisieren Sie die gstreamer-Bibliothek auf Version 1.10.4. Die neuere Version von gstreamer hat diesen Fehler behoben. Zum Aktualisieren ändern Sie das Skript 'update-gst.sh' wie folgt
master_commit = git ls-remote git://anongit.freedesktop.org/git/gstreamer/$i | grep "1.10.4$" | awk '{print }'
Führen Sie dann das Skript aus, danach erstellen Sie zuerst einen sauberen Build für os x und dann iOS.
Bei dieser Zeile ist gl
eine virtuelle Konvertierungstabelle vom Typ GstGLFuncs
. GstGLFuncs
ist ein Member vom Typ struct GstGLContext
, der Benutzerdaten enthält.
Sie haben also eindeutig keine Daten, auf die Sie zugreifen möchten. Sie haben einen Dangling-Zeiger . Dies könnte sein, weil
GstGLContext
) zeigt auf Speicher, der in Ordnung war, aber sein Chunk war
freigegeben. Die Codezeile, auf der Ihre App abstürzt, ist nicht die Ursache des Problems. Das Problem in # 1 ist, welche Codezeile die vorzeitige Deallokation verursachte, und das Problem in # 2 ist, welche Codezeile den Zeiger beschädigte.
Tags und Links objective-c iphone ios webrtc openwebrtc