For video calls on Badoo and Bumble apps, we use WebRTC with H.264 codec. Relying on relevant documentation, you would think that this codec should work seamlessly on any Android device, starting with Android 5.0. However, in practice, it didn’t go exactly this way. This article covers implementation features of hardware encoding for H.264 codec in WebRTC and the ways of enabling it on multiple devices.

Why H.264?

When connected through WebRTC all devices participating in the session transmit different communication parameters, including video- and audio-codecs. If a device supports multiple codecs (e.g. VP8 and H.264), the codecs with the highest priority…

I think it’s a quite common situation, when there is a lot of developers, working on the same project and all of them have different background and experience. Soon code would lose its shape and become something ugly. Code standards may help you, but there may be some third party libraries, where you should change only logic, not code style, to be able to merge main branch changes into your code.

I was in such situation with a lot of legacy code (there even was a Java code with C++ style, written by former C++ developers), a lot of patched…

Ivan Dyatlov

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store