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

Commit 7df7a296 authored by Changyeon Jo's avatar Changyeon Jo Committed by Android (Google) Code Review
Browse files

Merge "Extend EVS interfaces and data types"

parents 14530f4d e6976fce
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -10,13 +10,15 @@ hidl_interface {
        "types.hal",
        "types.hal",
        "IEvsCamera.hal",
        "IEvsCamera.hal",
        "IEvsCameraStream.hal",
        "IEvsCameraStream.hal",
        "IEvsEnumerator.hal",
    ],
    ],
    interfaces: [
    interfaces: [
        "android.hardware.automotive.evs@1.0",
        "android.hardware.automotive.evs@1.0",
        "android.hardware.camera.device@3.2",
        "android.hardware.graphics.common@1.0",
        "android.hardware.graphics.common@1.0",
        "android.hardware.graphics.common@1.1",
        "android.hardware.graphics.common@1.1",
        "android.hardware.graphics.common@1.2",
        "android.hardware.graphics.common@1.2",
        "android.hidl.base@1.0",
        "android.hidl.base@1.0",
    ],
    ],
    gen_java: true,
    gen_java: false,
}
}
+31 −3
Original line number Original line Diff line number Diff line
@@ -25,6 +25,14 @@ import IEvsCameraStream;
 * Represents a single camera and is the primary interface for capturing images.
 * Represents a single camera and is the primary interface for capturing images.
 */
 */
interface IEvsCamera extends @1.0::IEvsCamera {
interface IEvsCamera extends @1.0::IEvsCamera {
    /**
     * Returns the description of this camera.
     *
     * @return info The description of this camera.  This must be the same value as
     *              reported by EvsEnumerator::getCameraList_1_1().
     */
    getCameraInfo_1_1() generates (CameraDesc info);

    /**
    /**
     * Requests to pause EVS camera stream events.
     * Requests to pause EVS camera stream events.
     *
     *
@@ -100,7 +108,27 @@ interface IEvsCamera extends @1.0::IEvsCamera {
    unsetMaster() generates (EvsResult result);
    unsetMaster() generates (EvsResult result);


    /**
    /**
     * Requests to set a camera parameter.
     * Retrieves a list of parameters this camera supports.
     *
     * @return params A list of CameraParam that this camera supports.
     */
    getParameterList() generates (vec<CameraParam> params);

    /**
     * Requests a valid value range of a camera parameter
     *
     * @param  id    The identifier of camera parameter, CameraParam enum.
     *
     * @return min   The lower bound of valid parameter value range.
     * @return max   The upper bound of valid parameter value range.
     * @return step  The resolution of values in valid range.
     */
    getIntParameterRange(CameraParam id)
        generates (int32_t min, int32_t max, int32_t step);

    /**
     * Requests to set a camera parameter.  Only a request from the master
     * client will be processed successfully.
     *
     *
     * @param  id             The identifier of camera parameter, CameraParam enum.
     * @param  id             The identifier of camera parameter, CameraParam enum.
     *         value          A desired parameter value.
     *         value          A desired parameter value.
@@ -114,7 +142,7 @@ interface IEvsCamera extends @1.0::IEvsCamera {
     *                        from what the client gives if, for example, the
     *                        from what the client gives if, for example, the
     *                        driver does not support a target parameter.
     *                        driver does not support a target parameter.
     */
     */
    setParameter(CameraParam id, int32_t value)
    setIntParameter(CameraParam id, int32_t value)
        generates (EvsResult result, int32_t effectiveValue);
        generates (EvsResult result, int32_t effectiveValue);


    /**
    /**
@@ -126,5 +154,5 @@ interface IEvsCamera extends @1.0::IEvsCamera {
     *                not supported.
     *                not supported.
     *         value  A value of requested camera parameter.
     *         value  A value of requested camera parameter.
     */
     */
    getParameter(CameraParam id) generates(EvsResult result, int32_t value);
    getIntParameter(CameraParam id) generates(EvsResult result, int32_t value);
};
};
+18 −1
Original line number Original line Diff line number Diff line
@@ -17,15 +17,32 @@
package android.hardware.automotive.evs@1.1;
package android.hardware.automotive.evs@1.1;


import @1.0::IEvsCameraStream;
import @1.0::IEvsCameraStream;
import @1.1::BufferDesc;
import @1.1::EvsEvent;


/**
/**
 * Implemented on client side to receive asynchronous streaming event deliveries.
 * Implemented on client side to receive asynchronous streaming event deliveries.
 */
 */
interface IEvsCameraStream extends @1.0::IEvsCameraStream {
interface IEvsCameraStream extends @1.0::IEvsCameraStream {

    /**
     * Receives calls from the HAL each time a video frame is ready for inspection.
     * Buffer handles received by this method must be returned via calls to
     * IEvsCamera::doneWithFrame_1_1(). When the video stream is stopped via a call
     * to IEvsCamera::stopVideoStream(), this callback may continue to happen for
     * some time as the pipeline drains. Each frame must still be returned.
     * When the last frame in the stream has been delivered, STREAM_STOPPED
     * event must be delivered.  No further frame deliveries may happen
     * thereafter.
     *
     * @param buffer a buffer descriptor of a delivered image frame.
     */
    oneway deliverFrame_1_1(BufferDesc buffer);

    /**
    /**
     * Receives calls from the HAL each time an event happens.
     * Receives calls from the HAL each time an event happens.
     *
     *
     * @param  event EVS event with possible event information.
     * @param  event EVS event with possible event information.
     */
     */
    oneway notifyEvent(EvsEvent event);
    oneway notify(EvsEvent event);
};
};
+50 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.automotive.evs@1.1;

import IEvsCamera;
import @1.0::IEvsEnumerator;
import @1.0::EvsResult;
import android.hardware.camera.device@3.2::Stream;

/**
 * Provides the mechanism for EVS camera discovery
 */
interface IEvsEnumerator extends @1.0::IEvsEnumerator {
    /**
     * Returns a list of all EVS cameras available to the system
     *
     * @return cameras A list of cameras availale for EVS service.
     */
    getCameraList_1_1() generates (vec<CameraDesc> cameras);

    /**
     * Gets the IEvsCamera associated with a cameraId from a CameraDesc
     *
     * Given a camera's unique cameraId from CameraDesc, returns the
     * IEvsCamera interface associated with the specified camera. When
     * done using the camera, the caller may release it by calling closeCamera().
     *
     * @param  cameraId  A unique identifier of the camera.
     * @param  streamCfg A stream configuration the client wants to use.
     * @return evsCamera EvsCamera object associated with a given cameraId.
     *                   Returned object would be null if a camera device does
     *                   not support a given stream configuration or is already
     *                   configured differently by another client.
     */
    openCamera_1_1(string cameraId, Stream streamCfg) generates (IEvsCamera evsCamera);
};
+18 −2
Original line number Original line Diff line number Diff line
@@ -7,25 +7,41 @@ cc_binary {
        "service.cpp",
        "service.cpp",
        "EvsCamera.cpp",
        "EvsCamera.cpp",
        "EvsEnumerator.cpp",
        "EvsEnumerator.cpp",
        "EvsDisplay.cpp"
        "EvsDisplay.cpp",
        "ConfigManager.cpp",
        "ConfigManagerUtil.cpp",
    ],
    ],
    init_rc: ["android.hardware.automotive.evs@1.1-service.rc"],
    init_rc: ["android.hardware.automotive.evs@1.1-service.rc"],


    shared_libs: [
    shared_libs: [
        "android.hardware.automotive.evs@1.0",
        "android.hardware.automotive.evs@1.0",
        "android.hardware.automotive.evs@1.1",
        "android.hardware.automotive.evs@1.1",
        "android.hardware.camera.device@3.2",
        "libbase",
        "libbase",
        "libbinder",
        "libbinder",
        "libcutils",
        "liblog",
        "libhardware",
        "libhardware",
        "libhidlbase",
        "libhidlbase",
        "liblog",
        "liblog",
        "libui",
        "libui",
        "libutils",
        "libutils",
        "libcamera_metadata",
        "libtinyxml2",
    ],
    ],


    cflags: [
    cflags: [
        "-O0",
        "-O0",
        "-g",
        "-g",
    ],
    ],

    required: [
        "evs_default_configuration.xml",
    ],
}

prebuilt_etc {
    name: "evs_default_configuration.xml",

    src: "resources/evs_default_configuration.xml",
    sub_dir: "automotive/evs",
}
}
Loading