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