2015-07-19 7 views
6

Skompilowałem kod macierzysty WebRTC (C++) i odtwarzam z przykładami serwerów i klientów peerconnection (poniżej src\talk\examples\peerconnection). W szczególności próbuję zmienić próbkę klienta, aby przesyłać strumieniowo niestandardową sekwencję obrazów, a nie wideo z kamery internetowej. Kiedyś coś podobnego do http://sourcey.com/webrtc-custom-opencv-video-capture/ jako punkt wyjścia, gdzie zwyczaj VideoCapturerFactory powraca zwyczaj VideoCapturer które można używać do generowania własnych klatek obrazu. Za każdym razem, gdy mam nowy obraz do przesłania, zadzwonię pod numer SignalFrameCaptured(this, &frame) na VideoCapturer.Natywny kod WebRTC (C++) z niestandardowym VideoCapturer main_thread_.CalledOnValidThread() check

Moim problemem jest to, że w trybie debugowania, otrzymuję tę katastrofę:

# 
# Fatal error in e:\webrtc\webrtc checkout\src\webrtc\modules\video_coding\main\source\video_sender.cc, line 90 
# Check failed: main_thread_.CalledOnValidThread() 
# 

A mój zrozumienia jest to, że ma coś wspólnego z niespójności pomiędzy gwintem, który rozpoczął strumienia wideo i wątku przesuwa te poszczególne klatki. Wydaje się, że ten pierwszy jest wewnętrznym wątkiem WebRTC, podczas gdy drugi jest obecnie głównym wątkiem aplikacji.

miejsca pracy w trybie Release ponieważ kontrola ta nitka jest wyłączona.

Każdy pomysł, jak prawidłowo rozwiązać ten problem? Dzięki

Odpowiedz

Powiązane problemy