Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be683dba authored by Chengfei Tao's avatar Chengfei Tao
Browse files

Force slowJpegMode on certain camera1 apps

Turn off the large JPEG stream on camera1 apps
that experience high power consumption during
video call

Bug: 254350466
Test: Manual testing with Messenger app video call
Change-Id: I8bc4088cf9bb454a3e948cab60819ee41a1eda49
parent 5dbe4264
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -71,10 +71,11 @@ Camera::~Camera()
}

sp<Camera> Camera::connect(int cameraId, const String16& clientPackageName,
        int clientUid, int clientPid, int targetSdkVersion, bool overrideToPortrait)
        int clientUid, int clientPid, int targetSdkVersion, bool overrideToPortrait,
        bool forceSlowJpegMode)
{
    return CameraBaseT::connect(cameraId, clientPackageName, clientUid,
            clientPid, targetSdkVersion, overrideToPortrait);
            clientPid, targetSdkVersion, overrideToPortrait, forceSlowJpegMode);
}

status_t Camera::reconnect()
+5 −3
Original line number Diff line number Diff line
@@ -163,7 +163,7 @@ template <typename TCam, typename TCamTraits>
sp<TCam> CameraBase<TCam, TCamTraits>::connect(int cameraId,
                                               const String16& clientPackageName,
                                               int clientUid, int clientPid, int targetSdkVersion,
                                               bool overrideToPortrait)
                                               bool overrideToPortrait, bool forceSlowJpegMode)
{
    ALOGV("%s: connect", __FUNCTION__);
    sp<TCam> c = new TCam(cameraId);
@@ -173,9 +173,11 @@ sp<TCam> CameraBase<TCam, TCamTraits>::connect(int cameraId,
    binder::Status ret;
    if (cs != nullptr) {
        TCamConnectService fnConnectService = TCamTraits::fnConnectService;
        ALOGI("Connect camera (legacy API) - overrideToPortrait %d", overrideToPortrait);
        ALOGI("Connect camera (legacy API) - overrideToPortrait %d, forceSlowJpegMode %d",
                overrideToPortrait, forceSlowJpegMode);
        ret = (cs.get()->*fnConnectService)(cl, cameraId, clientPackageName, clientUid,
                clientPid, targetSdkVersion, overrideToPortrait, /*out*/ &c->mCamera);
                clientPid, targetSdkVersion, overrideToPortrait, forceSlowJpegMode,
                 /*out*/ &c->mCamera);
    }
    if (ret.isOk() && c->mCamera != nullptr) {
        IInterface::asBinder(c->mCamera)->linkToDeath(c);
+2 −1
Original line number Diff line number Diff line
@@ -84,7 +84,8 @@ interface ICameraService
            String opPackageName,
            int clientUid, int clientPid,
            int targetSdkVersion,
            boolean overrideToPortrait);
            boolean overrideToPortrait,
            boolean forceSlowJpegMode);

    /**
     * Open a camera device through the new camera API
+2 −2
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ struct CameraTraits<Camera>
    typedef ::android::hardware::ICameraClient TCamCallbacks;
    typedef ::android::binder::Status(::android::hardware::ICameraService::*TCamConnectService)
        (const sp<::android::hardware::ICameraClient>&,
        int, const String16&, int, int, int, bool,
        int, const String16&, int, int, int, bool, bool,
        /*out*/
        sp<::android::hardware::ICamera>*);
    static TCamConnectService     fnConnectService;
@@ -82,7 +82,7 @@ public:
    static  sp<Camera>  connect(int cameraId,
                                const String16& clientPackageName,
                                int clientUid, int clientPid, int targetSdkVersion,
                                bool overrideToPortrait);
                                bool overrideToPortrait, bool forceSlowJpegMode);

            virtual     ~Camera();

+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ public:
    static sp<TCam>      connect(int cameraId,
                                 const String16& clientPackageName,
                                 int clientUid, int clientPid, int targetSdkVersion,
                                 bool overrideToPortrait);
                                 bool overrideToPortrait, bool forceSlowJpegMode);
    virtual void         disconnect();

    void                 setListener(const sp<TCamListener>& listener);
Loading