Image for post
Image for post

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 for the platform are listed first. These codecs are used in the negotiation stage in WebRTC, after which only the codecs supported by all devices are left. …


Image for post
Image for post

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 libraries and a lot of new, mostly good-looking code. …

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