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

Commit ed1e893a authored by Jayant Chowdhary's avatar Jayant Chowdhary Committed by Android (Google) Code Review
Browse files

Merge "Filter out metadata out of version tags from hidl cameraservice interface." into tm-dev

parents f09d60b0 2f68652a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -92,9 +92,9 @@ cc_library_shared {
        "gui/RingBufferConsumer.cpp",
        "hidl/AidlCameraDeviceCallbacks.cpp",
        "hidl/AidlCameraServiceListener.cpp",
        "hidl/Convert.cpp",
        "hidl/HidlCameraDeviceUser.cpp",
        "hidl/HidlCameraService.cpp",
        "hidl/Utils.cpp",
        "utils/CameraServiceProxyWrapper.cpp",
        "utils/CameraThreadState.cpp",
        "utils/CameraTraces.cpp",
+9 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
#include <hardware/camera.h>

#include <hidl/AidlCameraDeviceCallbacks.h>
#include <hidl/Convert.h>
#include <hidl/Utils.h>

namespace android {
namespace frameworks {
@@ -34,7 +34,7 @@ const char *H2BCameraDeviceCallbacks::kResultKey = "CaptureResult";

H2BCameraDeviceCallbacks::H2BCameraDeviceCallbacks(const sp<HalInterface>& base) : CBase(base) { }

bool H2BCameraDeviceCallbacks::initializeLooper() {
bool H2BCameraDeviceCallbacks::initializeLooper(int vndkVersion) {
    mCbLooper = new ALooper;
    mCbLooper->setName("cs-looper");
    status_t err = mCbLooper->start(/*runOnCallingThread*/ false, /*canCallJava*/ false,
@@ -43,7 +43,7 @@ bool H2BCameraDeviceCallbacks::initializeLooper() {
        ALOGE("Unable to start camera device callback looper");
        return false;
    }
    mHandler = new CallbackHandler(this);
    mHandler = new CallbackHandler(this, vndkVersion);
    mCbLooper->registerHandler(mHandler);
    return true;
}
@@ -144,6 +144,12 @@ void H2BCameraDeviceCallbacks::CallbackHandler::processResultMessage(

    // Convert Metadata into HCameraMetadata;
    FmqSizeOrMetadata hResult;
    using hardware::cameraservice::utils::conversion::filterVndkKeys;
    if (filterVndkKeys(mVndkVersion, result, /*isStatic*/false) != OK) {
        ALOGE("%s: filtering vndk keys from result failed, not sending onResultReceived callback",
                __FUNCTION__);
        return;
    }
    const camera_metadata_t *rawMetadata = result.getAndLock();
    converter->convertResultMetadataToHidl(rawMetadata, &hResult);
    result.unlock(rawMetadata);
+4 −2
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ struct H2BCameraDeviceCallbacks :

    ~H2BCameraDeviceCallbacks();

    bool initializeLooper();
    bool initializeLooper(int vndkVersion);

    virtual binder::Status onDeviceError(int32_t errorCode,
                                         const CaptureResultExtras& resultExtras) override;
@@ -103,10 +103,12 @@ struct H2BCameraDeviceCallbacks :
    struct CallbackHandler : public AHandler {
        public:
            void onMessageReceived(const sp<AMessage> &msg) override;
            CallbackHandler(H2BCameraDeviceCallbacks *converter) : mConverter(converter) { }
            CallbackHandler(H2BCameraDeviceCallbacks *converter, int vndkVersion) :
                    mConverter(converter), mVndkVersion(vndkVersion) { }
        private:
            void processResultMessage(sp<ResultWrapper> &resultWrapper);
            wp<H2BCameraDeviceCallbacks> mConverter = nullptr;
            int mVndkVersion = -1;
            Mutex mMetadataQueueLock;
    };

+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
 */

#include <hidl/AidlCameraServiceListener.h>
#include <hidl/Convert.h>
#include <hidl/Utils.h>

namespace android {
namespace frameworks {
+1 −1
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@
#include <gui/bufferqueue/1.0/H2BGraphicBufferProducer.h>

#include <hidl/AidlCameraDeviceCallbacks.h>
#include <hidl/Convert.h>
#include <hidl/HidlCameraDeviceUser.h>
#include <hidl/Utils.h>
#include <android/hardware/camera/device/3.2/types.h>

namespace android {
Loading