xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/aiq_core/RkAiqResourceTranslatorV3x.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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