Google is switching to libdav1d for AV1 video decoding on Android. The new development was officially confirmed by Arif Dikici, a member of the Android Video and Image Codecs team. The company even “forced” the change on the YouTube app for all eligible Android devices. However, this brought up certain issues during video playback.
Currently, the default AV1 decoder on Android is libgav1. This Google-developed decoder is an alternative to libdav1d and is integrated into the Android SDK. Following the arrival of libdav1d on Android, libgav1 will remain the default AV1 software decoder. However, this will be temporary, as libdav1d will soon take its place.
Meanwhile, Android app developers will have to adapt their apps to support libdav1d. As long as they don’t, their apps will continue using libgav1 for AV1 decoding.
What is the libgav1 AV1 decoder that Android is getting?
The libdav1d AV1 software decoder was developed by the VideoLAN (VLC) team and is open-source. It is noticeably more efficient than libgav1 for decoding AV1 videos. So, if that’s the case, why didn’t Google implement libdav1d on Android from the beginning? Arif Dikici replied to this question by saying that “competition is good for our customers 😉“.
So, Google’s goal was apparently to try to create a decoder that would aspire to catch up with libdav1d, while at the same time pushing libdav1d to continue improving.
Google forced libgav1 on the YouTube app, with problematic results
When it comes to decoding software, it is always better to have native hardware acceleration support. This helps not only with more efficient processing but also to avoid possible problems associated with decoding the codec “not natively supported” by the chipset. This is exactly what recently happened with the YouTube app, where Google forced the use of libdav1d for AV1 decoding for everyone.
Mishaal Rahman did a test on their Nothing Phone (2), whose hardware does not support native acceleration for AV1 decoding. In this case, there was no problem playing 1080p/60fps AV1 videos on YouTube. However, according to reports from other users, the issues appear when trying to play high resolution HDR videos (2K onwards). In these situations, annoying lag and frame drops appear during playback.
Due to the problems, Google backtracked on its decision to force the libdav1d decoder on the YouTube app for everyone. Now, only those devices with hardware that offers native support for AV1 decoding will use it. Models without native support will resort to libgav1 to play videos on YouTube. It is unknown if this will be the case forever or if Google is working to fix the reported issues before attempting another massive rollout.
How widespread is hardware-level AV1 decoding on Android?
In the Android world, Qualcomm is usually the most reputable name when it comes to chipsets. But, interestingly, it is the third-party provider that offers the fewest models with native support for AV1 decoding. Only its high-end chips, starting with the Snapdragon 8 Gen 2, can boast of it. On the other hand, MediaTek dominates the segment with at least 13 chipset models.
The libdav1d codec is coming to devices running Android 12 and up. Google started the rollout with the March 2024 Play System Update. So, several models have already received it, since the April 2024 Play System Update has been available for a while.
2024-04-22 15:06:45