blob: 4167a6336c439303e433c62ae3a05a118985546a [file] [log] [blame]
/*
* Copyright (C) 2016-2017 Intel Corporation.
*
* 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.
*/
#define LOG_TAG "IPU3ISPPipe"
#include "IPU3ISPPipe.h"
#include "LogHelper.h"
#include <string.h>
namespace cros {
namespace intel {
IPU3ISPPipe::IPU3ISPPipe()
{
CLEAR(mAicOutput);
CLEAR(mAicConfig);
}
IPU3ISPPipe::~IPU3ISPPipe()
{
}
void IPU3ISPPipe::SetPipeConfig(const aic_output_t pipe_config)
{
HAL_TRACE_CALL(CAMERA_DEBUG_LOG_LEVEL2, LOG_TAG);
mAicOutput = pipe_config;
if (mAicOutput.lin_2500_config)
mAicConfig.lin_2500_config = *mAicOutput.lin_2500_config;
if (mAicOutput.obgrid_2500_config)
mAicConfig.obgrid_2500_config = *mAicOutput.obgrid_2500_config;
if (mAicOutput.bnr_2500_config)
mAicConfig.bnr_2500_config = *mAicOutput.bnr_2500_config;
if (mAicOutput.shd_2500_config)
mAicConfig.shd_2500_config = *mAicOutput.shd_2500_config;
if (mAicOutput.dm_2500_config)
mAicConfig.dm_2500_config = *mAicOutput.dm_2500_config;
if (mAicOutput.rgbpp_2500_config)
mAicConfig.rgbpp_2500_config = *mAicOutput.rgbpp_2500_config;
if (mAicOutput.yuvp1_2500_config)
mAicConfig.yuvp1_2500_config = *mAicOutput.yuvp1_2500_config;
if (mAicOutput.yuvp1_c0_2500_config)
mAicConfig.yuvp1_c0_2500_config = *mAicOutput.yuvp1_c0_2500_config;
if (mAicOutput.yuvp2_2500_config)
mAicConfig.yuvp2_2500_config = *mAicOutput.yuvp2_2500_config;
if (mAicOutput.tnr3_2500_config)
mAicConfig.tnr3_2500_config = *mAicOutput.tnr3_2500_config;
if (mAicOutput.dpc_2500_config)
mAicConfig.dpc_2500_config = *mAicOutput.dpc_2500_config;
if (mAicOutput.awb_2500_config)
mAicConfig.awb_2500_config = *mAicOutput.awb_2500_config;
if (mAicOutput.awb_fr_2500_config)
mAicConfig.awb_fr_2500_config = *mAicOutput.awb_fr_2500_config;
if (mAicOutput.anr_2500_config)
mAicConfig.anr_2500_config = *mAicOutput.anr_2500_config;
if (mAicOutput.af_2500_config)
mAicConfig.af_2500_config = *mAicOutput.af_2500_config;
if (mAicOutput.ae_2500_config)
mAicConfig.ae_2500_config = *mAicOutput.ae_2500_config;
if (mAicOutput.xnr_2500_config)
mAicConfig.xnr_2500_config = *mAicOutput.xnr_2500_config;
if (mAicOutput.rgbir_2500_config)
mAicConfig.rgbir_2500_config = *mAicOutput.rgbir_2500_config;
}
void IPU3ISPPipe::dump()
{
if (mAicOutput.ae_2500_config) {
LOG1("mAicOutput.ae_2500_config->ae.ae_grid_config.ae_en %d", mAicOutput.ae_2500_config->ae.ae_grid_config.ae_en);
LOG1("mAicOutput.ae_2500_config->ae.ae_grid_config.block_height %d", mAicOutput.ae_2500_config->ae.ae_grid_config.block_height);
}
if (mAicOutput.af_2500_config) {
LOG1("mAicOutput.af_2500_config->af.grid.grid_height %d", mAicOutput.af_2500_config->af.grid.grid_height);
LOG1("mAicOutput.af_2500_config->af.grid.grid_width %d", mAicOutput.af_2500_config->af.grid.grid_width);
}
if (mAicOutput.anr_2500_config) {
LOG1("mAicOutput.anr_2500_config %p", mAicOutput.anr_2500_config);
}
if (mAicOutput.awb_2500_config) {
LOG1("mAicOutput.awb_2500_config->awb.grid.grid_block_height: %d", mAicOutput.awb_2500_config->awb.grid.grid_block_height);
LOG1("mAicOutput.awb_2500_config->awb.grid.grid_block_width: %d", mAicOutput.awb_2500_config->awb.grid.grid_block_width);
}
if (mAicOutput.awb_fr_2500_config) {
LOG1("mAicOutput.awb_fr_2500_config %p", mAicOutput.awb_fr_2500_config);
}
if (mAicOutput.bnr_2500_config) {
LOG1("mAicOutput.bnr_2500_config %p", mAicOutput.bnr_2500_config);
}
if (mAicOutput.dm_2500_config) {
LOG1("mAicOutput.dm_2500_config %p", mAicOutput.dm_2500_config);
}
if (mAicOutput.dpc_2500_config) {
LOG1("mAicOutput.dpc_2500_config %p", mAicOutput.dpc_2500_config);
}
if (mAicOutput.lin_2500_config) {
LOG1("mAicOutput.lin_2500_config %p", mAicOutput.lin_2500_config);
}
if (mAicOutput.obgrid_2500_config) {
LOG1("mAicOutput.obgrid_2500_config %p", mAicOutput.obgrid_2500_config);
}
if (mAicOutput.rgbir_2500_config) {
LOG1("mAicOutput.rgbir_2500_config %p", mAicOutput.rgbir_2500_config);
}
if (mAicOutput.rgbpp_2500_config) {
LOG1("mAicOutput.rgbpp_2500_config %p", mAicOutput.rgbpp_2500_config);
}
if (mAicOutput.shd_2500_config) {
LOG1("mAicOutput.shd_2500_config %p", mAicOutput.shd_2500_config);
}
if (mAicOutput.tnr3_2500_config) {
LOG1("mAicOutput.tnr3_2500_config %p", mAicOutput.tnr3_2500_config);
}
if (mAicOutput.xnr_2500_config) {
LOG1("mAicOutput.xnr_2500_config %p", mAicOutput.xnr_2500_config);
}
if (mAicOutput.yuvp1_2500_config) {
LOG1("mAicOutput.yuvp1_2500_config %p", mAicOutput.yuvp1_2500_config);
}
if (mAicOutput.yuvp1_c0_2500_config) {
LOG1("mAicOutput.yuvp1_c0_2500_config %p", mAicOutput.yuvp1_c0_2500_config);
}
if (mAicOutput.yuvp2_2500_config) {
LOG1("mAicOutput.yuvp2_2500_config %p", mAicOutput.yuvp2_2500_config);
}
}
const ia_aiq_rgbs_grid* IPU3ISPPipe::GetAWBStats()
{
return nullptr;
}
const ia_aiq_af_grid* IPU3ISPPipe::GetAFStats()
{
return nullptr;
}
const ia_aiq_histogram* IPU3ISPPipe::GetAEStats()
{
return nullptr;
}
aic_config* IPU3ISPPipe::GetAicConfig()
{
return &mAicConfig;
}
} /* namespace intel */
} /* namespace cros */