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

Commit 5e154097 authored by Devin Moore's avatar Devin Moore
Browse files

Convert from HIDL mapper to libui GraphicBufferMapper

HIDL mapper HAL is deprecated and instead of adding more support for the
new replacement explicitly, we can move the GraphicBufferMapper which
handles all of the backwards compatbility with the HIDL HALs for us.

Test: atest CtsCameraTestCases CtsAppOpsTestCases
Bug: 285605852
Bug: 300115646

Change-Id: Ib97e429a0f3dd1c66ec008fbf3860c9c5667bddd
parent a2c3e988
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -30,13 +30,12 @@ cc_library_static {
        "libgralloctypes",
        "libhardware",
        "libcamera_metadata",
        "android.hardware.graphics.mapper@2.0",
        "android.hardware.graphics.mapper@3.0",
        "android.hardware.graphics.mapper@4.0",
        "libexif",
        "libui",
    ],
    include_dirs: ["system/media/private/camera/include"],
    export_include_dirs: ["include"],
    export_shared_lib_headers: ["libui"],
}

// NOTE: Deprecated module kept for compatibility reasons.
+65 −334

File changed.

Preview size limit exceeded, changes collapsed.

+7 −19
Original line number Diff line number Diff line
@@ -17,15 +17,11 @@
#ifndef CAMERA_COMMON_1_0_HANDLEIMPORTED_H
#define CAMERA_COMMON_1_0_HANDLEIMPORTED_H

#include <android/hardware/graphics/mapper/2.0/IMapper.h>
#include <android/hardware/graphics/mapper/3.0/IMapper.h>
#include <android/hardware/graphics/mapper/4.0/IMapper.h>
#include <cutils/native_handle.h>
#include <system/graphics.h>
#include <ui/Rect.h>
#include <utils/Mutex.h>

using android::hardware::graphics::mapper::V2_0::IMapper;
using android::hardware::graphics::mapper::V2_0::YCbCrLayout;

namespace android {
namespace hardware {
namespace camera {
@@ -49,11 +45,11 @@ class HandleImporter {
    void* lock(buffer_handle_t& buf, uint64_t cpuUsage, size_t size);

    // Locks 2-D buffer. Assumes caller has waited for acquire fences.
    void* lock(buffer_handle_t& buf, uint64_t cpuUsage, const IMapper::Rect& accessRegion);
    void* lock(buffer_handle_t& buf, uint64_t cpuUsage, const android::Rect& accessRegion);

    // Assumes caller has waited for acquire fences.
    YCbCrLayout lockYCbCr(buffer_handle_t& buf, uint64_t cpuUsage,
                          const IMapper::Rect& accessRegion);
    android_ycbcr lockYCbCr(buffer_handle_t& buf, uint64_t cpuUsage,
                            const android::Rect& accessRegion);

    // Query the stride of the first plane in bytes.
    status_t getMonoPlanarStrideBytes(buffer_handle_t& buf, uint32_t* stride /*out*/);
@@ -69,19 +65,11 @@ class HandleImporter {
    void initializeLocked();
    void cleanup();

    template <class M, class E>
    bool importBufferInternal(const sp<M> mapper, buffer_handle_t& handle);
    template <class M, class E>
    YCbCrLayout lockYCbCrInternal(const sp<M> mapper, buffer_handle_t& buf, uint64_t cpuUsage,
                                  const IMapper::Rect& accessRegion);
    template <class M, class E>
    int unlockInternal(const sp<M> mapper, buffer_handle_t& buf);
    bool importBufferInternal(buffer_handle_t& handle);
    int unlockInternal(buffer_handle_t& buf);

    Mutex mLock;
    bool mInitialized;
    sp<IMapper> mMapperV2;
    sp<graphics::mapper::V3_0::IMapper> mMapperV3;
    sp<graphics::mapper::V4_0::IMapper> mMapperV4;
};

}  // namespace helper
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ cc_library_shared {
        "libgralloctypes",
        "libhardware",
        "libcamera_metadata",
        "libui",
    ],
    static_libs: [
        "android.hardware.camera.common@1.0-helper",
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ cc_library_shared {
        "libhardware",
        "libcamera_metadata",
        "libfmq",
        "libui",
    ],
    static_libs: [
        "android.hardware.camera.common@1.0-helper",
Loading