Собственный WebRTC (C ++) с пользовательским VideoCapturer не проходит проверку main_thread_.CalledOnValidThread ()

Я скомпилировал собственный код WebRTC (C ++) и играю с примерами серверов peerconnection и клиентов (в разделе src\talk\examples\peerconnection). В частности, я пытаюсь изменить образец клиента для потоковой передачи пользовательской последовательности изображений, а не видео с веб-камеры. Я использовал что-то похожее на http://sourcey.com/webrtc-custom-opencv-video-capture/ в качестве отправной точки, где пользовательский VideoCapturerFactory возвращает пользовательский VideoCapturer, который я могу использовать для создания пользовательских рамок изображения. Каждый раз, когда у меня появляется новое изображение для потоковой передачи, я вызываю SignalFrameCaptured(this, &frame) для VideoCapturer.

Моя проблема в том, что в режиме отладки я получаю этот сбой:

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

И я понимаю, что это как-то связано с несоответствием между потоком, который запустил видеопоток, и потоком, который выдвигает эти отдельные кадры. Кажется, что первый является внутренним потоком WebRTC, а последний в настоящее время является основным потоком приложения.

В режиме Release все работает, потому что эта проверка потока отключена.

Есть идеи, как это исправить? Благодаря

7 голосов | спросил eran 19 J000000Sunday15 2015, 20:15:50

1 ответ


0

Просто наткнулся на это сам, и я надеюсь, что ты уже решил это. Обычно вы должны вызывать SignalFrameCaptured в начальном потоке - см. Пример в коде Google:

""> chromium.googlesource.com/external/webrtc/+/edd8fefa9b31f903eefe1e9fcabb09a5d6fc1ad1/talk/app/webrtc/objc/avfoundationvideocapturer.mm#419 (строка 419)

Как видите, это недавнее изменение .

ответил Ilya 21 J000000Tuesday15 2015, 22:00:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132