You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.9 KiB
87 lines
2.9 KiB
/*
|
|
* IspParamsSplitter.h - Split ISP params to Left/Right ISP params
|
|
*
|
|
* Copyright (c) 2021 Rockchip Electronics Co., Ltd
|
|
*
|
|
* 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.
|
|
*
|
|
* Author: Cody Xie <cody.xie@rock-chips.com>
|
|
*/
|
|
#ifndef __COMMON_HWI_ISP_PARAMS_SPLITTER_H__
|
|
#define __COMMON_HWI_ISP_PARAMS_SPLITTER_H__
|
|
|
|
#include "xcam_common.h"
|
|
#include "xcam_log.h"
|
|
|
|
|
|
namespace RkCam {
|
|
|
|
class IspParamsSplitter {
|
|
public:
|
|
struct Rectangle {
|
|
uint32_t x;
|
|
uint32_t y;
|
|
uint32_t w;
|
|
uint32_t h;
|
|
};
|
|
|
|
IspParamsSplitter() = default;
|
|
~IspParamsSplitter() = default;
|
|
IspParamsSplitter(const IspParamsSplitter&) = delete;
|
|
IspParamsSplitter& operator=(const IspParamsSplitter&) = delete;
|
|
|
|
IspParamsSplitter& SetPicInfo(IspParamsSplitter::Rectangle&& pic_rect);
|
|
IspParamsSplitter& SetLeftIspRect(IspParamsSplitter::Rectangle&& left_isp_rect);
|
|
IspParamsSplitter& SetRightIspRect(IspParamsSplitter::Rectangle&& right_isp_rect);
|
|
IspParamsSplitter& SetPicInfo(IspParamsSplitter::Rectangle& pic_rect);
|
|
IspParamsSplitter& SetLeftIspRect(IspParamsSplitter::Rectangle& left_isp_rect);
|
|
IspParamsSplitter& SetRightIspRect(IspParamsSplitter::Rectangle& right_isp_rect);
|
|
const IspParamsSplitter::Rectangle& GetPicInfo() const;
|
|
const IspParamsSplitter::Rectangle& GetLeftIspRect() const;
|
|
const IspParamsSplitter::Rectangle& GetRightIspRect() const;
|
|
|
|
template <typename U>
|
|
XCamReturn SplitIspParams(U* orig_isp_params, U* isp_params);
|
|
|
|
private:
|
|
//ae
|
|
template <typename U>
|
|
XCamReturn SplitAecParams(U* ori, U* left, U* right);
|
|
template <typename U>
|
|
XCamReturn SplitRawHistLiteParams(U* ori, U* left, U* right);
|
|
template <typename U>
|
|
XCamReturn SplitRawHistBigParams(U* ori, U* left, U* right);
|
|
template <typename U>
|
|
XCamReturn SplitRawAeLiteParams(U* ori, U* left, U* right);
|
|
template <typename U>
|
|
XCamReturn SplitRawAeBigParams(U* ori, U* left, U* right);
|
|
|
|
//awb
|
|
template <typename U>
|
|
XCamReturn SplitAwbParams(U* ori, U* left, U* right);
|
|
template <typename U>
|
|
XCamReturn SplitAfParams(U* ori, U* left, U* right);
|
|
// LSC
|
|
template <typename U>
|
|
XCamReturn SplitAlscParams(U* ori, U* left, U* right);
|
|
|
|
|
|
Rectangle pic_rect_;
|
|
Rectangle left_isp_rect_;
|
|
Rectangle right_isp_rect_;
|
|
};
|
|
|
|
} // namespace RkCam
|
|
|
|
#endif // __COMMON_HWI_ISP_PARAMS_SPLITTER_H__
|