150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala/* 250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * Copyright (C) 2017 The Android Open Source Project 350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * 450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * you may not use this file except in compliance with the License. 650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * You may obtain a copy of the License at 750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * 850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * 1050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 1150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 1250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * See the License for the specific language governing permissions and 1450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala * limitations under the License. 1550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala */ 1650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 1750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala#define LOG_TAG "android.hardware.camera.device@3.3-convert-impl" 1850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala#include <log/log.h> 1950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 2050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala#include "include/convert.h" 2150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 2250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace android { 2350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace hardware { 2450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace camera { 2550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace device { 2650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace V3_3 { 2750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalanamespace implementation { 2850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 2950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalausing ::android::hardware::graphics::common::V1_0::Dataspace; 3050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalausing ::android::hardware::graphics::common::V1_0::PixelFormat; 3150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalausing ::android::hardware::camera::device::V3_2::BufferUsageFlags; 3250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 3350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalavoid convertToHidl(const Camera3Stream* src, HalStream* dst) { 3450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->overrideDataSpace = src->data_space; 3550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.id = src->mId; 3650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.overrideFormat = (PixelFormat) src->format; 3750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.maxBuffers = src->max_buffers; 3850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala if (src->stream_type == CAMERA3_STREAM_OUTPUT) { 3950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.consumerUsage = (BufferUsageFlags)0; 4050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.producerUsage = (BufferUsageFlags)src->usage; 4150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala } else if (src->stream_type == CAMERA3_STREAM_INPUT) { 4250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.producerUsage = (BufferUsageFlags)0; 4350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->v3_2.consumerUsage = (BufferUsageFlags)src->usage; 4450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala } else { 4550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala //Should not reach here per current HIDL spec, but we might end up adding 4650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala // bi-directional stream to HIDL. 4750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala ALOGW("%s: Stream type %d is not currently supported!", 4850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala __FUNCTION__, src->stream_type); 4950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala } 5050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} 5150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 5250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvalavoid convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) { 5350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala dst->streams.resize(src.num_streams); 5450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala for (uint32_t i = 0; i < src.num_streams; i++) { 5550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala convertToHidl(static_cast<Camera3Stream*>(src.streams[i]), &dst->streams[i]); 5650fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala } 5750fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala return; 5850fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} 5950fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala 6050fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace implementation 6150fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace V3_3 6250fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace device 6350fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace camera 6450fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace hardware 6550fe43099495dcb388fdd7eb1ff78609aaa0cf88Eino-Ville Talvala} // namespace android 66