SakeTami
MishaalRahman
MishaalRahman

patreon


Rumor: Google is finally pushing OEMs to enable key camera features for third-party apps

While there are many Android phones with exceptional camera setups that in many ways outperform the iPhone, to get the best image quality out of them, you have to use the stock camera app. Many users snap photos through third-party apps like Instagram or Snapchat, however, which are unable to tap into many of the same post-processing algorithms that are made available to the stock camera app. That's why for years, photos shared by iPhone users on apps like Instagram or Snapchat have generally had better image quality than photos shared by Android users.

Google recognizes this problem, but it's not easy to solve. The problem arises from a multitude of factors, including hardware fragmentation (different image sensors, image signal processors, SoCs, etc.), API challenges (the native API being difficult to work with, the API lacking basic features for years, no standard way for OEMs to expose certain features to third-party apps, etc.), and a lack of foresight from Google to work with vendors ahead of time on standardization. (Explaining how we came to this mess would take forever, but I did a podcast that goes over the main issues in case you're interested.)

In any case, Google's solution to the issue of certain camera features being unavailable to third-party apps was the creation of the CameraX, and later Camera2, Vendor Extension API. CameraX, by the way, is a Jetpack support library that basically acts as a "wrapper" of sorts around the Camera2 API which is part of the Android framework itself. CameraX simplifies a lot of work around building camera functionality into an app and is recommended for apps that use the camera for secondary functionality, like scanning a barcode or document. Camera2 is intended for apps that need more control over camera functions, which is why it's used by full-fledged third-party camera apps as well as by social media apps like Instagram and Snapchat where picture-taking is core functionality.

The Vendor Extension APIs for both CameraX and Camera2 allow apps using these camera APIs to use device-specific camera extensions provided by the OEM. Currently, there are only 5 available extensions: Auto, Beauty/Face retouch, Bokeh, HDR, and Night. The problem is that it's up to OEMs to decide whether they want to provide these extensions. 

Even Google does a poor job at this, as until Android 14, not a single Pixel provided a CameraX vendor extension. Google did, however, provide a Camera2 vendor extension for Night mode, which is how Snapchat is able to utilize the Pixel's Night Sight mode. Some of you may be wondering: If CameraX is just a wrapper for Camera2, then why does it need its own set of Vendor Extensions? That's a good question. I'm not entirely sure why, but I do know that making a camera feature like Night Sight into an extension is very complex

Regardless of the reason, it's not a good look for Google that their Pixel phones don't offer the same camera experience in third-party apps. Some OEMs like Samsung fully support all Camera2 and CameraX vendor extensions, but not every OEM does this. ASUS, for example, doesn't support a single extension on the ZenFone 10.

CameraX Info on the Galaxy Z Fold 5.

So with that background info out of the way, I can finally talk about what Google's rumored to be doing. Take this with a grain of salt, as I heard about their plans through a third-party who attended their annual conference for platform developers. Apparently, Google is going to require that new devices launching with Android 14 support Bokeh and Night extensions for both the primary front and rear cameras. 

I don't know if this requirement will apply to all new devices launching with Android 14 or only a subset, such as those that declare Media Performance Class 14. I also don't know if OEMs will be required to supply both CameraX and Camera2 vendor extensions or only one set, but regardless, mandating support for Bokeh and Night extensions will go a long way in improving quality parity between third-party apps and the stock camera app. I'm hoping that Google will eventually expand this requirement to all other vendor extensions, especially HDR.

Somewhat related to this: at I/O 2022, Google said it would be providing its own fully software-based CameraX Bokeh extension for entry-level devices whose OEMs haven't implemented them. There were hints they would expand this with a software CameraX Night mode extension. I'm curious to see if Google will provide additional software-based CameraX vendor extensions for entry-level devices.

(Hey y'all, I apologize for not publishing any exclusive posts these past 2 weeks. I've been busy researching more things that have been added to my backlog, and the good news is that a lot of what I've learned will be turned into exclusive posts! Stay tuned for more news this week, and thanks for your continued support!)

Rumor: Google is finally pushing OEMs to enable key camera features for third-party apps

More Creators