Size: a a a

Конкурсы Telegram

2020 March 31

MF

Max Fomichev in Конкурсы Telegram
блин, да, похоже, записывать начинаю до получения 1-го пакета :(
источник

MF

Max Fomichev in Конкурсы Telegram
не 5 сек, но секунда-полторы на установление соединения - лишние
источник

AE

Andrey Egorov in Конкурсы Telegram
Max Fomichev
Submission to the VoIP Contest, Round 3

NOTES to the current submission (Round 3 vs Round 2)
- audio quality improved on all connection types and outperforms
stable/unstable/unstable-2.6 libraries on local tests
- updated tgvoipcall is supported (issue #10339 -
https://contest.com/voip-contest-2/entry1281#issue10339)
- preprocessed callback is supported (issue #10597 -
https://contest.com/voip-contest-2/entry1281#issue10597)
- 5 second timeout removed (issue #10337 -
https://contest.com/voip-contest-2/entry1281#issue10337)
- fixed issue #10737
https://contest.com/voip-contest-2/entry1281#issue10737)
- android build. There is no any problem to build the library for any android
supported platform. The library depends on WebRTC and libwebsockets, both
libraries are android friendly and on rapidjson which is header-only C++
library and can be used with any NDK project.

INTRO
litgvoip is a VoIP library based on WebRTC framework (release version M81).
The library interface is declared at the TgVoip class (TgVoip.h file) provided
by Contest organizers.

SERVERS
Signaling and TURN servers must be running prior libtgvoip depended applications
execution.
Signaling server runs on 35.214.230.40:8080 for a few next weeks. This URL is
hardcoded at src/tgvoip/tgvoip/TgVoip.cpp, line 73.
Signaling server's source code can be found here - src/tgwss
TURN server (coturn, version 4.5.0.7) runs on 35.214.230.40:3478 for a few next
weeks. This URL as well as user's name and password are hardcoded at
src/tgvoip/tgvoip/webRTCPeer.cpp, lines 211 - 214.

BUILD INSTRUCTION
libtgvoip build instruction can be found at src/tgvoip/README.md file.
- preprocessed callback is supported (issue #10597 -
https://contest.com/voip-contest-2/entry1281#issue10597)
https://contest.com/voip-contest-2/entry1281#issue10597)

Интересно, а это как починил? Я из кода пока не очень понял.
источник

AE

Andrey Egorov in Конкурсы Telegram
Max Fomichev
не 5 сек, но секунда-полторы на установление соединения - лишние
Ну да, не 5, но на слух было заметно.
источник

AE

Andrey Egorov in Конкурсы Telegram
Мне вот очень интересно было бы подменить библиотеку в apk своей и сделать реальный звонок. Но переподписать apk, чтобы он установился — не осилил. А пересобирать всё приложение что-то пока не захотелось.
источник

MF

Max Fomichev in Конкурсы Telegram
Andrey Egorov
- preprocessed callback is supported (issue #10597 -
https://contest.com/voip-contest-2/entry1281#issue10597)
https://contest.com/voip-contest-2/entry1281#issue10597)

Интересно, а это как починил? Я из кода пока не очень понял.
void preprocessedCallback(const int16_t *_data, size_t _size)
источник

AE

Andrey Egorov in Конкурсы Telegram
Max Fomichev
void preprocessedCallback(const int16_t *_data, size_t _size)
А кто его вызывает?
источник

MF

Max Fomichev in Конкурсы Telegram
Andrey Egorov
А кто его вызывает?
webrtc/src/audio/audio_transport_impl.cc
источник

MF

Max Fomichev in Конкурсы Telegram
пришлось вставлять костыль в webrtc
источник

MF

Max Fomichev in Конкурсы Telegram
снасала
extern void preprocessedCallback(const int16_t *, size_t);
потом
 // Copy frame and push to each sending stream. The copy is required since an
 // encoding task will be posted internally to each stream.
 {
   rtc::CritScope lock(&capture_lock_);
   typing_noise_detected_ = typing_detected;

   RTC_DCHECK_GT(audio_frame->samples_per_channel_, 0);
   if (!audio_senders_.empty()) {
     auto it = audio_senders_.begin();
     while (++it != audio_senders_.end()) {
       std::unique_ptr<AudioFrame> audio_frame_copy(new AudioFrame());
       audio_frame_copy->CopyFrom(*audio_frame);
       (*it)->SendAudioData(std::move(audio_frame_copy));
     }

       uint64_t len = audio_frame->samples_per_channel_ * audio_frame->num_channels_;
       preprocessedCallback(reinterpret_cast<const int16_t *>(audio_frame->data()), len);

       // Send the original frame to the first stream w/o copying.
       (*audio_senders_.begin())->SendAudioData(std::move(audio_frame));
   }
 }
источник

AE

Andrey Egorov in Конкурсы Telegram
А, ну это реально жёстко. Потому что нигде явного вызова preprocessedCallback я не увидел. Хотя, правильного решения для твоего случая у меня тоже нет.
источник

MF

Max Fomichev in Конкурсы Telegram
ну да, спасибо тебе :)
источник
2020 April 01

MF

Max Fomichev in Конкурсы Telegram
Не перестаю удивляться :) -
$ cat ./1367_sample16_28b7af27b8464f83f547e385893de318.pcm_WiFi_3622760.pcm.Rate.Full
4.14393 4.93695
источник

YS

Yurii Semeniuk in Конкурсы Telegram
кто-то знает как жури в JS контесте оценивает производительность? На глаз?)
источник

AE

Andrey Egorov in Конкурсы Telegram
Max Fomichev
Не перестаю удивляться :) -
$ cat ./1367_sample16_28b7af27b8464f83f547e385893de318.pcm_WiFi_3622760.pcm.Rate.Full
4.14393 4.93695
Что не так?

@admin, я писал по теме конкурса и не нужно было удалять моё сообщение.
источник

MF

Max Fomichev in Конкурсы Telegram
Andrey Egorov
Что не так?

@admin, я писал по теме конкурса и не нужно было удалять моё сообщение.
все в порядке, надо было уже спать идти, а не тесты запускать. удивился такому значительному улучшению качества
источник

AE

Andrey Egorov in Конкурсы Telegram
Max Fomichev
все в порядке, надо было уже спать идти, а не тесты запускать. удивился такому значительному улучшению качества
Так а финальные результаты с тобой сильно отличаются? 😊
источник

MF

Max Fomichev in Конкурсы Telegram
Andrey Egorov
Так а финальные результаты с тобой сильно отличаются? 😊
с тобой - не сильно, всех рвет 1365
источник

MF

Max Fomichev in Конкурсы Telegram
1369 не тестировал - лень настраивать было
источник

AE

Andrey Egorov in Конкурсы Telegram
О как!
источник