1 /* 2 * RkAiqConfigTranslatorV3x.h 3 * 4 * Copyright (c) 2021 Rockchip Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 */ 19 20 #ifndef _RK_AIQ_RESOURCE_TRANSLATOR_V3X_H_ 21 #define _RK_AIQ_RESOURCE_TRANSLATOR_V3X_H_ 22 23 #include "RkAiqResourceTranslatorV21.h" 24 25 #define ISP3X_DHAZ_HIST_IIR_MAX (1023) 26 27 28 namespace RkCam { 29 30 class RkAiqResourceTranslatorV3x 31 : public RkAiqResourceTranslatorV21 32 { 33 public: 34 struct Rectangle { 35 uint32_t x; 36 uint32_t y; 37 uint32_t w; 38 uint32_t h; 39 }; 40 41 RkAiqResourceTranslatorV3x (); 42 virtual ~RkAiqResourceTranslatorV3x () = default; 43 44 RkAiqResourceTranslatorV3x& SetMultiIspMode(bool isMultiIsp); 45 RkAiqResourceTranslatorV3x& SetPicInfo(RkAiqResourceTranslatorV3x::Rectangle& pic_rect); 46 RkAiqResourceTranslatorV3x& SetLeftIspRect(RkAiqResourceTranslatorV3x::Rectangle& left_isp_rect); 47 RkAiqResourceTranslatorV3x& SetRightIspRect(RkAiqResourceTranslatorV3x::Rectangle& right_isp_rect); 48 RkAiqResourceTranslatorV3x& SetPicInfo(RkAiqResourceTranslatorV3x::Rectangle&& pic_rect); 49 RkAiqResourceTranslatorV3x& SetLeftIspRect(RkAiqResourceTranslatorV3x::Rectangle&& left_isp_rect); 50 RkAiqResourceTranslatorV3x& SetRightIspRect(RkAiqResourceTranslatorV3x::Rectangle&& right_isp_rect); 51 bool IsMultiIspMode() const; 52 RkAiqResourceTranslatorV3x::Rectangle GetPicInfo(); 53 RkAiqResourceTranslatorV3x::Rectangle GetLeftIspRect(); 54 RkAiqResourceTranslatorV3x::Rectangle GetRightIspRect(); 55 56 virtual XCamReturn translateAecStats (const SmartPtr<VideoBuffer> &from, 57 SmartPtr<RkAiqAecStatsProxy> &to); 58 virtual XCamReturn translateAwbStats (const SmartPtr<VideoBuffer> &from, 59 SmartPtr<RkAiqAwbStatsProxy> &to); 60 virtual XCamReturn translateAfStats (const SmartPtr<VideoBuffer> &from, 61 SmartPtr<RkAiqAfStatsProxy> &to); 62 #if RKAIQ_HAVE_DEHAZE_V11_DUO 63 virtual XCamReturn translateAdehazeStats (const SmartPtr<VideoBuffer> &from, 64 SmartPtr<RkAiqAdehazeStatsProxy> &to); 65 #endif 66 67 #if defined(RKAIQ_HAVE_MULTIISP) translateMultiIspStats(const SmartPtr<VideoBuffer> & from,SmartPtr<RkAiqIspStatsIntProxy> & to)68 XCamReturn translateMultiIspStats(const SmartPtr<VideoBuffer>& from, 69 SmartPtr<RkAiqIspStatsIntProxy>& to) { 70 return XCAM_RETURN_NO_ERROR; 71 } 72 XCamReturn translateMultiAecStats(const SmartPtr<VideoBuffer>& from, 73 SmartPtr<RkAiqAecStatsProxy>& to); 74 XCamReturn translateMultiAwbStats(const SmartPtr<VideoBuffer>& from, 75 SmartPtr<RkAiqAwbStatsProxy>& to); 76 XCamReturn translateMultiAfStats(const SmartPtr<VideoBuffer>& from, 77 SmartPtr<RkAiqAfStatsProxy>& to); 78 XCamReturn translateMultiAdehazeStats(const SmartPtr<VideoBuffer>& from, 79 SmartPtr<RkAiqAdehazeStatsProxy>& to); 80 #endif 81 82 private: 83 XCAM_DEAD_COPY (RkAiqResourceTranslatorV3x); 84 85 bool mIsMultiIsp; 86 Rectangle pic_rect_; 87 Rectangle left_isp_rect_; 88 Rectangle right_isp_rect_; 89 }; 90 91 } 92 93 #endif //_RK_AIQ_CONFIG_TRANSLATOR_H_ 94