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

Commit 84bc4a19 authored by Shuzhen Wang's avatar Shuzhen Wang Committed by Android (Google) Code Review
Browse files

Merge "Camera: Allow non-session parameters in SessionConfiguration" into main

parents 4236f3b0 918ecd17
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -365,16 +365,20 @@ interface ICameraDevice {
     * isStreamCombinationWithSettingsSupported:
     *
     * This is the same as isStreamCombinationSupported with below exceptions:
     *
     * 1. The input StreamConfiguration parameter may contain session parameters
     * supported by this camera device. When checking if the particular StreamConfiguration
     * is supported, the camera HAL must take the session parameters into consideration.
     * as well as additional CaptureRequest keys. See the comment
     * sections below on what additional capture request keys are passed in
     * StreamConfiguration::sessionParameters for each interface version. When checking if
     * the particular StreamConfiguration is supported, the camera HAL must take all
     * the keys in sessionParameters into consideration.
     *
     * 2. For version 3 of this interface, the camera compliance test will verify that
     * isStreamCombinationWithSettingsSupported behaves properly for all combinations of
     * below features. This function must return true for all supported combinations,
     * and return false for non-supported feature combinations. The list of features
     * required may grow in future versions.
     * required may grow in future versions. The additional metadata entries in
     * StreamConfiguration::sessionParameters are {CONTROL_AE_TARGET_FPS_RANGE,
     * CONTROL_VIDEO_STABILIZATION_MODE}.
     *
     * - Stream Combinations (a subset of LEGACY device mandatory stream combinations):
     *   {
@@ -429,7 +433,7 @@ interface ICameraDevice {
     * 4032 x 3024, the camera compliance test will verify both
     * {PRIV, 1920 x 1440, JPEG, 4032 x 3024} and {PRIV, 2560 x 1440, JPEG, 4032 x 2268}.
     *
     * @param streams The StreamConfiguration to be tested, with optional session parameters.
     * @param streams The StreamConfiguration to be tested, with optional CaptureRequest parameters.
     *
     * @return true in case the stream combination is supported, false otherwise.
     *
+8 −0
Original line number Diff line number Diff line
@@ -59,6 +59,14 @@ parcelable StreamConfiguration {
     * pipeline updates. The field is optional, clients can choose to ignore it and avoid
     * including any initial settings. If parameters are present, then hal must examine
     * their values and configure the internal camera pipeline accordingly.
     *
     * A null pointer is equivalent to a valid CameraMetadata object with zero entries.
     *
     * For a StreamConfiguration passed to ICameraDevice.isStreamCombinationWithSettingsSupported
     * or ICameraDevice.getSessionCharacteristics, this variable may also contain keys
     * that are not session parameters, but are used to specify certain features for a
     * session. For example, CONTROL_VIDEO_STABILIZATION_MODE may be included even if it's not a
     * session parameter.
     */
    CameraMetadata sessionParams;

+2 −7
Original line number Diff line number Diff line
@@ -1912,17 +1912,12 @@ void CameraAidlTest::verifyStreamCombination(const std::shared_ptr<ICameraDevice
            if (supportFeatureCombinationQuery) {
                ret = device->isStreamCombinationWithSettingsSupported(config,
                                                                       &streamCombinationSupported);
                // TODO: Do not allow OPERATION_NOT_SUPPORTED once HAL
                // implementation is in place.
                ASSERT_TRUE(ret.isOk() || static_cast<Status>(ret.getServiceSpecificError()) ==
                                                  Status::OPERATION_NOT_SUPPORTED);
                if (ret.isOk()) {
                ASSERT_TRUE(ret.isOk());
                ASSERT_EQ(expectedStatus, streamCombinationSupported);
            }
        }
    }
}
}

void CameraAidlTest::verifySessionCharacteristics(const CameraMetadata& chars) {
    if (flags::feature_combination_query()) {