Loading camera/CaptureResult.cpp +84 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,39 @@ status_t CaptureResultExtras::writeToParcel(android::Parcel *parcel) const { return OK; } status_t PhysicalCaptureResultInfo::readFromParcel(const android::Parcel* parcel) { status_t res; mPhysicalCameraId.remove(mPhysicalCameraId.size()); mPhysicalCameraMetadata.clear(); if ((res = parcel->readString16(&mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res); return res; } if ((res = mPhysicalCameraMetadata.readFromParcel(parcel)) != OK) { ALOGE("%s: Failed to read metadata from parcel: %d", __FUNCTION__, res); return res; } return OK; } status_t PhysicalCaptureResultInfo::writeToParcel(android::Parcel* parcel) const { status_t res; if ((res = parcel->writeString16(mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to write physical camera ID to parcel: %d", __FUNCTION__, res); return res; } if ((res = mPhysicalCameraMetadata.writeToParcel(parcel)) != OK) { ALOGE("%s: Failed to write physical camera metadata to parcel: %d", __FUNCTION__, res); return res; } return OK; } CaptureResult::CaptureResult() : mMetadata(), mResultExtras() { } Loading @@ -67,6 +100,7 @@ CaptureResult::CaptureResult() : CaptureResult::CaptureResult(const CaptureResult &otherResult) { mResultExtras = otherResult.mResultExtras; mMetadata = otherResult.mMetadata; mPhysicalMetadatas = otherResult.mPhysicalMetadatas; } status_t CaptureResult::readFromParcel(android::Parcel *parcel) { Loading @@ -79,6 +113,7 @@ status_t CaptureResult::readFromParcel(android::Parcel *parcel) { } mMetadata.clear(); mPhysicalMetadatas.clear(); status_t res = OK; res = mMetadata.readFromParcel(parcel); Loading @@ -89,6 +124,34 @@ status_t CaptureResult::readFromParcel(android::Parcel *parcel) { } ALOGV("%s: Read metadata from parcel", __FUNCTION__); int32_t physicalMetadataCount; if ((res = parcel->readInt32(&physicalMetadataCount)) != OK) { ALOGE("%s: Failed to read the physical metadata count from parcel: %d", __FUNCTION__, res); return res; } if (physicalMetadataCount < 0) { ALOGE("%s: Invalid physical metadata count from parcel: %d", __FUNCTION__, physicalMetadataCount); return BAD_VALUE; } for (int32_t i = 0; i < physicalMetadataCount; i++) { String16 cameraId; if ((res = parcel->readString16(&cameraId)) != OK) { ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res); return res; } CameraMetadata physicalMetadata; if ((res = physicalMetadata.readFromParcel(parcel)) != OK) { ALOGE("%s: Failed to read metadata from parcel: %d", __FUNCTION__, res); return res; } mPhysicalMetadatas.emplace(mPhysicalMetadatas.end(), cameraId, physicalMetadata); } ALOGV("%s: Read physical metadata from parcel", __FUNCTION__); res = mResultExtras.readFromParcel(parcel); if (res != OK) { ALOGE("%s: Failed to read result extras from parcel.", Loading Loading @@ -118,6 +181,27 @@ status_t CaptureResult::writeToParcel(android::Parcel *parcel) const { } ALOGV("%s: Wrote metadata to parcel", __FUNCTION__); int32_t physicalMetadataCount = static_cast<int32_t>(mPhysicalMetadatas.size()); res = parcel->writeInt32(physicalMetadataCount); if (res != OK) { ALOGE("%s: Failed to write physical metadata count to parcel: %d", __FUNCTION__, res); return BAD_VALUE; } for (const auto& physicalMetadata : mPhysicalMetadatas) { if ((res = parcel->writeString16(physicalMetadata.mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to write physical camera ID to parcel: %d", __FUNCTION__, res); return res; } if ((res = physicalMetadata.mPhysicalCameraMetadata.writeToParcel(parcel)) != OK) { ALOGE("%s: Failed to write physical camera metadata to parcel: %d", __FUNCTION__, res); return res; } } ALOGV("%s: Wrote physical camera metadata to parcel", __FUNCTION__); res = mResultExtras.writeToParcel(parcel); if (res != OK) { ALOGE("%s: Failed to write result extras to parcel", __FUNCTION__); Loading camera/aidl/android/hardware/ICameraServiceProxy.aidl +7 −1 Original line number Diff line number Diff line Loading @@ -45,9 +45,15 @@ interface ICameraServiceProxy const int CAMERA_FACING_FRONT = 1; const int CAMERA_FACING_EXTERNAL = 2; /** * Values for notifyCameraState api level */ const int CAMERA_API_LEVEL_1 = 1; const int CAMERA_API_LEVEL_2 = 2; /** * Update the status of a camera device. */ oneway void notifyCameraState(String cameraId, int facing, int newCameraState, String clientName); String clientName, int apiLevel); } camera/aidl/android/hardware/camera2/ICameraDeviceCallbacks.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.hardware.camera2; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.impl.CaptureResultExtras; import android.hardware.camera2.impl.PhysicalCaptureResultInfo; /** @hide */ interface ICameraDeviceCallbacks Loading @@ -30,12 +31,14 @@ interface ICameraDeviceCallbacks const int ERROR_CAMERA_REQUEST = 3; const int ERROR_CAMERA_RESULT = 4; const int ERROR_CAMERA_BUFFER = 5; const int ERROR_CAMERA_DISABLED = 6; oneway void onDeviceError(int errorCode, in CaptureResultExtras resultExtras); oneway void onDeviceIdle(); oneway void onCaptureStarted(in CaptureResultExtras resultExtras, long timestamp); oneway void onResultReceived(in CameraMetadataNative result, in CaptureResultExtras resultExtras); in CaptureResultExtras resultExtras, in PhysicalCaptureResultInfo[] physicalCaptureResultInfos); oneway void onPrepared(int streamId); /** Loading camera/aidl/android/hardware/camera2/ICameraDeviceUser.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -79,8 +79,9 @@ interface ICameraDeviceUser * <p> * @param operatingMode The kind of session to create; either NORMAL_MODE or * CONSTRAINED_HIGH_SPEED_MODE. Must be a non-negative value. * @param sessionParams Session wide camera parameters */ void endConfigure(int operatingMode); void endConfigure(int operatingMode, in CameraMetadataNative sessionParams); void deleteStream(int streamId); Loading Loading @@ -140,5 +141,7 @@ interface ICameraDeviceUser void prepare2(int maxCount, int streamId); void updateOutputConfiguration(int streamId, in OutputConfiguration outputConfiguration); void finalizeOutputConfigurations(int streamId, in OutputConfiguration outputConfiguration); } camera/aidl/android/hardware/camera2/impl/PhysicalCaptureResultInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.camera2.impl; /** @hide */ parcelable PhysicalCaptureResultInfo cpp_header "camera/CaptureResult.h"; Loading
camera/CaptureResult.cpp +84 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,39 @@ status_t CaptureResultExtras::writeToParcel(android::Parcel *parcel) const { return OK; } status_t PhysicalCaptureResultInfo::readFromParcel(const android::Parcel* parcel) { status_t res; mPhysicalCameraId.remove(mPhysicalCameraId.size()); mPhysicalCameraMetadata.clear(); if ((res = parcel->readString16(&mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res); return res; } if ((res = mPhysicalCameraMetadata.readFromParcel(parcel)) != OK) { ALOGE("%s: Failed to read metadata from parcel: %d", __FUNCTION__, res); return res; } return OK; } status_t PhysicalCaptureResultInfo::writeToParcel(android::Parcel* parcel) const { status_t res; if ((res = parcel->writeString16(mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to write physical camera ID to parcel: %d", __FUNCTION__, res); return res; } if ((res = mPhysicalCameraMetadata.writeToParcel(parcel)) != OK) { ALOGE("%s: Failed to write physical camera metadata to parcel: %d", __FUNCTION__, res); return res; } return OK; } CaptureResult::CaptureResult() : mMetadata(), mResultExtras() { } Loading @@ -67,6 +100,7 @@ CaptureResult::CaptureResult() : CaptureResult::CaptureResult(const CaptureResult &otherResult) { mResultExtras = otherResult.mResultExtras; mMetadata = otherResult.mMetadata; mPhysicalMetadatas = otherResult.mPhysicalMetadatas; } status_t CaptureResult::readFromParcel(android::Parcel *parcel) { Loading @@ -79,6 +113,7 @@ status_t CaptureResult::readFromParcel(android::Parcel *parcel) { } mMetadata.clear(); mPhysicalMetadatas.clear(); status_t res = OK; res = mMetadata.readFromParcel(parcel); Loading @@ -89,6 +124,34 @@ status_t CaptureResult::readFromParcel(android::Parcel *parcel) { } ALOGV("%s: Read metadata from parcel", __FUNCTION__); int32_t physicalMetadataCount; if ((res = parcel->readInt32(&physicalMetadataCount)) != OK) { ALOGE("%s: Failed to read the physical metadata count from parcel: %d", __FUNCTION__, res); return res; } if (physicalMetadataCount < 0) { ALOGE("%s: Invalid physical metadata count from parcel: %d", __FUNCTION__, physicalMetadataCount); return BAD_VALUE; } for (int32_t i = 0; i < physicalMetadataCount; i++) { String16 cameraId; if ((res = parcel->readString16(&cameraId)) != OK) { ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res); return res; } CameraMetadata physicalMetadata; if ((res = physicalMetadata.readFromParcel(parcel)) != OK) { ALOGE("%s: Failed to read metadata from parcel: %d", __FUNCTION__, res); return res; } mPhysicalMetadatas.emplace(mPhysicalMetadatas.end(), cameraId, physicalMetadata); } ALOGV("%s: Read physical metadata from parcel", __FUNCTION__); res = mResultExtras.readFromParcel(parcel); if (res != OK) { ALOGE("%s: Failed to read result extras from parcel.", Loading Loading @@ -118,6 +181,27 @@ status_t CaptureResult::writeToParcel(android::Parcel *parcel) const { } ALOGV("%s: Wrote metadata to parcel", __FUNCTION__); int32_t physicalMetadataCount = static_cast<int32_t>(mPhysicalMetadatas.size()); res = parcel->writeInt32(physicalMetadataCount); if (res != OK) { ALOGE("%s: Failed to write physical metadata count to parcel: %d", __FUNCTION__, res); return BAD_VALUE; } for (const auto& physicalMetadata : mPhysicalMetadatas) { if ((res = parcel->writeString16(physicalMetadata.mPhysicalCameraId)) != OK) { ALOGE("%s: Failed to write physical camera ID to parcel: %d", __FUNCTION__, res); return res; } if ((res = physicalMetadata.mPhysicalCameraMetadata.writeToParcel(parcel)) != OK) { ALOGE("%s: Failed to write physical camera metadata to parcel: %d", __FUNCTION__, res); return res; } } ALOGV("%s: Wrote physical camera metadata to parcel", __FUNCTION__); res = mResultExtras.writeToParcel(parcel); if (res != OK) { ALOGE("%s: Failed to write result extras to parcel", __FUNCTION__); Loading
camera/aidl/android/hardware/ICameraServiceProxy.aidl +7 −1 Original line number Diff line number Diff line Loading @@ -45,9 +45,15 @@ interface ICameraServiceProxy const int CAMERA_FACING_FRONT = 1; const int CAMERA_FACING_EXTERNAL = 2; /** * Values for notifyCameraState api level */ const int CAMERA_API_LEVEL_1 = 1; const int CAMERA_API_LEVEL_2 = 2; /** * Update the status of a camera device. */ oneway void notifyCameraState(String cameraId, int facing, int newCameraState, String clientName); String clientName, int apiLevel); }
camera/aidl/android/hardware/camera2/ICameraDeviceCallbacks.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.hardware.camera2; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.impl.CaptureResultExtras; import android.hardware.camera2.impl.PhysicalCaptureResultInfo; /** @hide */ interface ICameraDeviceCallbacks Loading @@ -30,12 +31,14 @@ interface ICameraDeviceCallbacks const int ERROR_CAMERA_REQUEST = 3; const int ERROR_CAMERA_RESULT = 4; const int ERROR_CAMERA_BUFFER = 5; const int ERROR_CAMERA_DISABLED = 6; oneway void onDeviceError(int errorCode, in CaptureResultExtras resultExtras); oneway void onDeviceIdle(); oneway void onCaptureStarted(in CaptureResultExtras resultExtras, long timestamp); oneway void onResultReceived(in CameraMetadataNative result, in CaptureResultExtras resultExtras); in CaptureResultExtras resultExtras, in PhysicalCaptureResultInfo[] physicalCaptureResultInfos); oneway void onPrepared(int streamId); /** Loading
camera/aidl/android/hardware/camera2/ICameraDeviceUser.aidl +4 −1 Original line number Diff line number Diff line Loading @@ -79,8 +79,9 @@ interface ICameraDeviceUser * <p> * @param operatingMode The kind of session to create; either NORMAL_MODE or * CONSTRAINED_HIGH_SPEED_MODE. Must be a non-negative value. * @param sessionParams Session wide camera parameters */ void endConfigure(int operatingMode); void endConfigure(int operatingMode, in CameraMetadataNative sessionParams); void deleteStream(int streamId); Loading Loading @@ -140,5 +141,7 @@ interface ICameraDeviceUser void prepare2(int maxCount, int streamId); void updateOutputConfiguration(int streamId, in OutputConfiguration outputConfiguration); void finalizeOutputConfigurations(int streamId, in OutputConfiguration outputConfiguration); }
camera/aidl/android/hardware/camera2/impl/PhysicalCaptureResultInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.camera2.impl; /** @hide */ parcelable PhysicalCaptureResultInfo cpp_header "camera/CaptureResult.h";