/* * 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. */ #ifndef ANDROID_SERVERS_CAMERA_CAMERA3_DEPTH_PROCESSOR_H #define ANDROID_SERVERS_CAMERA_CAMERA3_DEPTH_PROCESSOR_H #include #include namespace android { namespace camera3 { enum DepthPhotoOrientation { DEPTH_ORIENTATION_0_DEGREES = 0, DEPTH_ORIENTATION_90_DEGREES = 90, DEPTH_ORIENTATION_180_DEGREES = 180, DEPTH_ORIENTATION_270_DEGREES = 270, }; struct DepthPhotoInputFrame { const char* mMainJpegBuffer; size_t mMainJpegSize; size_t mMainJpegWidth, mMainJpegHeight; uint16_t* mDepthMapBuffer; size_t mDepthMapWidth, mDepthMapHeight, mDepthMapStride; size_t mMaxJpegSize; uint8_t mJpegQuality; uint8_t mIsLogical; float mIntrinsicCalibration[5]; uint8_t mIsIntrinsicCalibrationValid; float mLensDistortion[5]; uint8_t mIsLensDistortionValid; DepthPhotoOrientation mOrientation; DepthPhotoInputFrame() : mMainJpegBuffer(nullptr), mMainJpegSize(0), mMainJpegWidth(0), mMainJpegHeight(0), mDepthMapBuffer(nullptr), mDepthMapWidth(0), mDepthMapHeight(0), mDepthMapStride(0), mMaxJpegSize(0), mJpegQuality(100), mIsLogical(0), mIntrinsicCalibration{0.f}, mIsIntrinsicCalibrationValid(0), mLensDistortion{0.f}, mIsLensDistortionValid(0), mOrientation(DepthPhotoOrientation::DEPTH_ORIENTATION_0_DEGREES) {} }; int processDepthPhotoFrame(DepthPhotoInputFrame /*inputFrame*/, size_t /*depthPhotoBufferSize*/, void* /*depthPhotoBuffer out*/, size_t* /*depthPhotoActualSize out*/); }; // namespace camera3 }; // namespace android #endif