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

Commit 7dc20898 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Camera: Cache monitored tag options in service"

parents 13cb2385 bd8c5033
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@
#include "api1/Camera2Client.h"
#include "api2/CameraDeviceClient.h"
#include "utils/CameraTraces.h"
#include "utils/TagMonitor.h"

namespace {
    const char* kPermissionServiceName = "permission";
@@ -1364,7 +1365,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
        LOG_ALWAYS_FATAL_IF(client.get() == nullptr, "%s: CameraService in invalid state",
                __FUNCTION__);

        err = client->initialize(mCameraProviderManager);
        err = client->initialize(mCameraProviderManager, mMonitorTags);
        if (err != OK) {
            ALOGE("%s: Could not initialize client from HAL.", __FUNCTION__);
            // Errors could be from the HAL module open call or from AppOpsManager
@@ -2640,6 +2641,16 @@ status_t CameraService::dump(int fd, const Vector<String16>& args) {
        dprintf(fd, "CameraStates in use, may be deadlocked\n");
    }

    int argSize = args.size();
    for (int i = 0; i < argSize; i++) {
        if (args[i] == TagMonitor::kMonitorOption) {
            if (i + 1 < argSize) {
                mMonitorTags = String8(args[i + 1]);
            }
            break;
        }
    }

    for (auto& state : mCameraStates) {
        String8 cameraId = state.first;

+5 −1
Original line number Diff line number Diff line
@@ -204,7 +204,8 @@ public:

    class BasicClient : public virtual RefBase {
    public:
        virtual status_t       initialize(sp<CameraProviderManager> manager) = 0;
        virtual status_t       initialize(sp<CameraProviderManager> manager,
                const String8& monitorTags) = 0;
        virtual binder::Status disconnect();

        // because we can't virtually inherit IInterface, which breaks
@@ -606,6 +607,9 @@ private:
    RingBuffer<String8> mEventLog;
    Mutex mLogLock;

    // The last monitored tags set by client
    String8 mMonitorTags;

    // Currently allowed user IDs
    std::set<userid_t> mAllowedUsers;

+4 −4
Original line number Diff line number Diff line
@@ -69,8 +69,8 @@ Camera2Client::Camera2Client(const sp<CameraService>& cameraService,
    mLegacyMode = legacyMode;
}

status_t Camera2Client::initialize(sp<CameraProviderManager> manager) {
    return initializeImpl(manager);
status_t Camera2Client::initialize(sp<CameraProviderManager> manager, const String8& monitorTags) {
    return initializeImpl(manager, monitorTags);
}

bool Camera2Client::isZslEnabledInStillTemplate() {
@@ -88,13 +88,13 @@ bool Camera2Client::isZslEnabledInStillTemplate() {
}

template<typename TProviderPtr>
status_t Camera2Client::initializeImpl(TProviderPtr providerPtr)
status_t Camera2Client::initializeImpl(TProviderPtr providerPtr, const String8& monitorTags)
{
    ATRACE_CALL();
    ALOGV("%s: Initializing client for camera %d", __FUNCTION__, mCameraId);
    status_t res;

    res = Camera2ClientBase::initialize(providerPtr);
    res = Camera2ClientBase::initialize(providerPtr, monitorTags);
    if (res != OK) {
        return res;
    }
+3 −2
Original line number Diff line number Diff line
@@ -101,7 +101,8 @@ public:

    virtual ~Camera2Client();

    virtual status_t initialize(sp<CameraProviderManager> manager) override;
    virtual status_t initialize(sp<CameraProviderManager> manager,
            const String8& monitorTags) override;

    virtual status_t dump(int fd, const Vector<String16>& args);

@@ -224,7 +225,7 @@ private:
    status_t overrideVideoSnapshotSize(Parameters &params);

    template<typename TProviderPtr>
    status_t initializeImpl(TProviderPtr providerPtr);
    status_t initializeImpl(TProviderPtr providerPtr, const String8& monitorTags);

    bool isZslEnabledInStillTemplate();
};
+2 −1
Original line number Diff line number Diff line
@@ -62,7 +62,8 @@ CameraClient::CameraClient(const sp<CameraService>& cameraService,
    LOG1("CameraClient::CameraClient X (pid %d, id %d)", callingPid, cameraId);
}

status_t CameraClient::initialize(sp<CameraProviderManager> manager) {
status_t CameraClient::initialize(sp<CameraProviderManager> manager,
        const String8& /*monitorTags*/) {
    int callingPid = getCallingPid();
    status_t res;

Loading