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

Commit 1c5de87a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "evs_next"

* changes:
  Explictly cast size_t into a long data type
  Revert "Revert "Revert "Revert "Extend EVS interfaces and data types""""
parents 5bd809c5 63cddfc1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -10,13 +10,15 @@ hidl_interface {
        "types.hal",
        "IEvsCamera.hal",
        "IEvsCameraStream.hal",
        "IEvsEnumerator.hal",
    ],
    interfaces: [
        "android.hardware.automotive.evs@1.0",
        "android.hardware.camera.device@3.2",
        "android.hardware.graphics.common@1.0",
        "android.hardware.graphics.common@1.1",
        "android.hardware.graphics.common@1.2",
        "android.hidl.base@1.0",
    ],
    gen_java: true,
    gen_java: false,
}
+31 −3
Original line number Diff line number Diff line
@@ -25,6 +25,14 @@ import IEvsCameraStream;
 * Represents a single camera and is the primary interface for capturing images.
 */
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.
     *
@@ -100,7 +108,27 @@ interface IEvsCamera extends @1.0::IEvsCamera {
    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.
     *         value          A desired parameter value.
@@ -114,7 +142,7 @@ interface IEvsCamera extends @1.0::IEvsCamera {
     *                        from what the client gives if, for example, the
     *                        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);

    /**
@@ -126,5 +154,5 @@ interface IEvsCamera extends @1.0::IEvsCamera {
     *                not supported.
     *         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 Diff line number Diff line
@@ -17,15 +17,32 @@
package android.hardware.automotive.evs@1.1;

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

/**
 * Implemented on client side to receive asynchronous streaming event deliveries.
 */
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.
     *
     * @param  event EVS event with possible event information.
     */
    oneway notifyEvent(EvsEvent event);
    oneway notify(EvsEvent event);
};
+50 −0
Original line number 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 Diff line number Diff line
@@ -7,25 +7,41 @@ cc_binary {
        "service.cpp",
        "EvsCamera.cpp",
        "EvsEnumerator.cpp",
        "EvsDisplay.cpp"
        "EvsDisplay.cpp",
        "ConfigManager.cpp",
        "ConfigManagerUtil.cpp",
    ],
    init_rc: ["android.hardware.automotive.evs@1.1-service.rc"],

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

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

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

prebuilt_etc {
    name: "evs_default_configuration.xml",

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