Утечка памяти в WebRtc CreatePeerConnectionFactory в примере кода - PullRequest
0 голосов
/ 17 декабря 2018

У меня проблемы с использованием библиотеки WebRtc.Все работает, но я вижу утечку памяти со временем.В процессе устранения я нашел основной источник проблемы в следующем примере, который при многократном запуске приводит к увеличению объема памяти, который никогда не выделяется.

rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> peer_connection_factory_ = webrtc::CreatePeerConnectionFactory(
        nullptr /* network_thread */,
        nullptr /* worker_thread */,
        nullptr /* signaling_thread */,
        nullptr /* default_adm */,
        webrtc::CreateBuiltinAudioEncoderFactory(),
        webrtc::CreateBuiltinAudioDecoderFactory(),
        webrtc::CreateBuiltinVideoEncoderFactory(),
        webrtc::CreateBuiltinVideoDecoderFactory(), 
        nullptr /* audio_mixer */,
        nullptr /* audio_processing */);

    peer_connection_factory_.release();

Код инициализации фактически взятиз примера webrtc нетронутым ( см. строка 91).Я не делаю ничего необычного.В настоящее время используется версия webrtc branch-head / 72, которая, как я понимаю, должна быть стабильной.Я также вижу рост памяти в других версиях, хотя мне еще предстоит проверить, является ли это точно такой же проблемой.

Из того, что я понимаю, scoped_refptr должен удалять и освобождать свои ресурсы всякий раз, когда очищается последняя ссылка,что должно происходить, потому что есть только одна его копия.Я неправильно понимаю, как это должно работать?Я также попытался передать nullptr для фабрик кодировщика / декодера, но проблема все еще сохраняется.

Большое спасибо

...