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

Commit 13470a1d authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 4696032 from 584ee3b9 to pi-release

Change-Id: I714278ca21e594c0270bb9bfb302a77715678d15
parents 456a6dd9 584ee3b9
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -51,6 +51,32 @@ CameraDeviceSession::CameraDeviceSession(
            }
        }
    }

    camera_metadata_entry_t capabilities =
            mDeviceInfo.find(ANDROID_REQUEST_AVAILABLE_CAPABILITIES);
    bool isLogicalMultiCamera = false;
    for (size_t i = 0; i < capabilities.count; i++) {
        if (capabilities.data.u8[i] ==
                ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA) {
            isLogicalMultiCamera = true;
            break;
        }
    }
    if (isLogicalMultiCamera) {
        camera_metadata_entry entry =
                mDeviceInfo.find(ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS);
        const uint8_t* ids = entry.data.u8;
        size_t start = 0;
        for (size_t i = 0; i < entry.count; ++i) {
            if (ids[i] == '\0') {
                if (start != i) {
                    const char* physicalId = reinterpret_cast<const char*>(ids+start);
                    mPhysicalCameraIds.emplace(physicalId);
                }
                start = i + 1;
            }
        }
    }
}

CameraDeviceSession::~CameraDeviceSession() {
@@ -456,9 +482,19 @@ void CameraDeviceSession::sProcessCaptureResult_3_4(
        return;
    }

    if (hal_result->num_physcam_metadata > d->mPhysicalCameraIds.size()) {
        ALOGE("%s: Fatal: Invalid num_physcam_metadata %u", __FUNCTION__,
                hal_result->num_physcam_metadata);
        return;
    }
    result.physicalCameraMetadata.resize(hal_result->num_physcam_metadata);
    for (uint32_t i = 0; i < hal_result->num_physcam_metadata; i++) {
        std::string physicalId = hal_result->physcam_ids[i];
        if (d->mPhysicalCameraIds.find(physicalId) == d->mPhysicalCameraIds.end()) {
            ALOGE("%s: Fatal: Invalid physcam_ids[%u]: %s", __FUNCTION__,
                  i, hal_result->physcam_ids[i]);
            return;
        }
        V3_2::CameraMetadata physicalMetadata;
        V3_2::implementation::convertToHidl(hal_result->physcam_metadata[i], &physicalMetadata);
        PhysicalCameraMetadata physicalCameraMetadata = {
+5 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <hidl/Status.h>
#include <deque>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include "CameraMetadata.h"
#include "HandleImporter.h"
@@ -110,6 +111,10 @@ protected:

    // Whether this camera device session is created with version 3.4 callback.
    bool mHasCallback_3_4;

    // Physical camera ids for the logical multi-camera. Empty if this
    // is not a logical multi-camera.
    std::unordered_set<std::string> mPhysicalCameraIds;
private:

    struct TrampolineSessionInterface_3_4 : public ICameraDeviceSession {
+24 −0
Original line number Diff line number Diff line
@@ -23,6 +23,14 @@
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.automotive.audiocontrol</name>
        <version>1.0</version>
        <interface>
            <name>IAudioControl</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.automotive.evs</name>
        <version>1.0</version>
@@ -103,6 +111,14 @@
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.confirmationui</name>
        <version>1.0</version>
        <interface>
            <name>IConfirmationUI</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.contexthub</name>
        <version>1.0</version>
@@ -286,6 +302,14 @@
            <instance>slot1</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.radio.config</name>
        <version>1.0</version>
        <interface>
            <name>IRadioConfig</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.renderscript</name>
        <version>1.0</version>
+4 −4
Original line number Diff line number Diff line
@@ -318,14 +318,14 @@ a3ff916784dce87a56c757ab5c86433f0cdf562280999a5f978a6e8a0f3f19e7 android.hardwar
7877ff8e4c1e48b825e6e5e66d050288e5656ed535c61cc7830a92ed4a9e1990 android.hardware.drm@1.1::IDrmFactory
fef2f0ebde7704548fb203df46673ceb342272fc4fa9d0af25a980d2584a36e7 android.hardware.drm@1.1::IDrmPlugin
5047a346ecce239404b9020959f60dd467318e9c17b290a6386bc3894df62c3c android.hardware.drm@1.1::types
be794f5df97f134d6dcabb866b250d1305100e7ae07fb253b7841df890b931bb android.hardware.gnss@1.1::IGnss
a830336ac8627d6432cfafb1b884343ad9f885dee0a5323e380e6d3c519156b8 android.hardware.gnss@1.1::IGnss
8ad55bc35bb3a83e65c018bdfde7ae5ebc749ff2bf6b79412ded0bc6c89b97d8 android.hardware.gnss@1.1::IGnssCallback
3c5183d7506010be57e0f748e3640fc2ded1ba955784b6256ba427f4c399591c android.hardware.gnss@1.1::IGnssConfiguration
b054af24fbb70d54cde1fb5cba126809e7c4e863e8f9115dc492321dfbcbc993 android.hardware.gnss@1.1::IGnssMeasurement
1a07d1383e847c3deb696ec7a2c9e33b9683772945660448a010b18063da67a4 android.hardware.gnss@1.1::IGnssMeasurement
83e7a10ff3702147bd7ffa04567b20d407a3b16bbb7705644af44d919afe9103 android.hardware.gnss@1.1::IGnssMeasurementCallback
82da7e7624f72ff1927f48738913e20bee3a513adfe5dc7c4f888176e20376e6 android.hardware.graphics.common@1.1::types
0b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types
d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer
d6ce042995239712bc1d0970fa9d512c15c0b1ac9bcb048bd8b69f617b45c25e android.hardware.graphics.composer@2.2::IComposerClient
c3cd2a3e245ffefae859c9a3d31382a9421be95cfa6bc1231571eb3533049b54 android.hardware.graphics.composer@2.2::IComposerClient
dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper
675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth
434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback
+11 −9
Original line number Diff line number Diff line
@@ -46,15 +46,17 @@ interface IGnss extends @1.0::IGnss {
     * @param minIntervalMs Represents the time between fixes in milliseconds.
     * @param preferredAccuracyMeters Represents the requested fix accuracy in meters.
     * @param preferredTimeMs Represents the requested time to first fix in milliseconds.
     * @param lowPowerMode When true, HAL must make strong tradeoffs to substantially restrict power
     *     use. Specifically, in the case of a several second long minIntervalMs, the GNSS chipset
     *     must not, on average, run power hungry operations like RF and signal searches for more
     *     than one second per interval, and must make exactly one call to gnssSvStatusCb(), and
     *     either zero or one call to GnssLocationCb() at each interval. When false, HAL must
     *     operate in the nominal mode (similar to V1.0 where this flag wasn't present) and is
     *     expected to make power and performance tradoffs such as duty-cycling when signal
     *     conditions are good and more active searches to reacquire GNSS signals when no signals
     *     are present.
     * @param lowPowerMode When true, and IGnss.hal is the only client to the GNSS hardware, the
     *     GNSS hardware must make strong tradeoffs to substantially restrict power use.
     *     Specifically, in the case of a several second long minIntervalMs, the GNSS hardware must
     *     not, on average, run power hungry operations like RF and signal searches for more than
     *     one second per interval, and must make exactly one call to gnssSvStatusCb(), and either
     *     zero or one call to GnssLocationCb() at each interval. When false, HAL must operate in
     *     the nominal mode (similar to V1.0 where this flag wasn't present) and is expected to make
     *     power and performance tradoffs such as duty-cycling when signal conditions are good and
     *     more active searches to reacquire GNSS signals when no signals are present.
     *     When there are additional clients using the GNSS hardware other than IGnss.hal, the GNSS
     *     hardware may operate in a higher power mode, on behalf of those clients.
     *
     * @return success Returns true if successful.
     */
Loading