Loading automotive/evs/1.1/Android.bp +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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, } } automotive/evs/1.1/IEvsCamera.hal +31 −3 Original line number Original line Diff line number Diff line Loading @@ -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. * * Loading Loading @@ -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. Loading @@ -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); /** /** Loading @@ -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); }; }; automotive/evs/1.1/IEvsCameraStream.hal +18 −1 Original line number Original line Diff line number Diff line Loading @@ -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); }; }; automotive/evs/1.1/IEvsEnumerator.hal 0 → 100644 +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); }; automotive/evs/1.1/default/Android.bp +18 −2 Original line number Original line Diff line number Diff line Loading @@ -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
automotive/evs/1.1/Android.bp +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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, } }
automotive/evs/1.1/IEvsCamera.hal +31 −3 Original line number Original line Diff line number Diff line Loading @@ -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. * * Loading Loading @@ -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. Loading @@ -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); /** /** Loading @@ -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); }; };
automotive/evs/1.1/IEvsCameraStream.hal +18 −1 Original line number Original line Diff line number Diff line Loading @@ -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); }; };
automotive/evs/1.1/IEvsEnumerator.hal 0 → 100644 +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); };
automotive/evs/1.1/default/Android.bp +18 −2 Original line number Original line Diff line number Diff line Loading @@ -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", } }