Skip to content

Commit a8076d4

Browse files
committed
Ported program to hi3518ev200 sdk
1 parent d36b791 commit a8076d4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+7029
-8607
lines changed

Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,26 @@ CC = arm-hisiv300-linux-gcc
22
STRIP = arm-hisiv300-linux-strip
33
PLATFORM=HiSilicon_3518E_v200
44
#PLATFORM=HiSilicon_3516A_v100
5+
PWD=$(shell pwd)
56
INCLUDE=-I./include/ -I./rebuilds/rtmpdump/librtmp/
67
LIBS=./lib/$(PLATFORM)/libmpi.a ./lib/$(PLATFORM)/libVoiceEngine.a \
78
./lib/$(PLATFORM)/libupvqe.a ./lib/$(PLATFORM)/libdnvqe.a ./lib/$(PLATFORM)/libisp.a \
89
./lib/$(PLATFORM)/lib_cmoscfg.a \
9-
./lib/$(PLATFORM)/lib_iniparser.a ./lib/$(PLATFORM)/lib_hiae.a \
10+
./lib/$(PLATFORM)/lib_iniparser.a\
1011
./lib/$(PLATFORM)/lib_hiawb.a ./lib/$(PLATFORM)/lib_hiaf.a \
1112
./lib/$(PLATFORM)/lib_hidefog.a \
13+
./lib/$(PLATFORM)/libive.a \
1214
./rebuilds/rtmpdump/librtmp/librtmp.a ./rebuilds/zlib-1.2.11/libz.a \
1315
./rebuilds/openssl-OpenSSL_1_0_2u/libssl.a ./rebuilds/openssl-OpenSSL_1_0_2u/libcrypto.a \
14-
-lpthread -lm -ldl -lsns_gc1024
16+
-lpthread -lm -ldl -lsns_gc1024 -L ./lib/HiSilicon_3518E_v200 \
17+
-Wl,--whole-archive $(PWD)/lib/$(PLATFORM)/lib_hiae.a -Wl,--no-whole-archive
1518

1619
#ifeq ($(PLATFORM),HiSilicon_3518E_v200)
1720
#LIBS += ./lib/$(PLATFORM)/libhi3518e_base.a ./lib/$(PLATFORM)/libhi_osal.a
1821
#endif
1922

2023

21-
CFLAGS += -Wall -g -ggdb -O0 -march=armv5te -mcpu=arm926ej-s -DHICHIP=0x3518E200 -Dhi3518e -DSENSOR_TYPE=OMNIVISION_OV9732_DC_720P_30FPS -DHI_DEBUG -DHI_XXXX -DISP_V2 -DHI_MIPI_ENABLE -DHI_ACODEC_TYPE_INNER -ffunction-sections
24+
CFLAGS += -Wl,--whole-archive /home/lula/Documents/rtmpEncoder_Linux/lib/HiSilicon_3518E_v200/lib_hiae.a -Wall -g -ggdb -O0 -march=armv5te -mcpu=arm926ej-s -DHICHIP=0x3518E200 -DCHIP_ID=CHIP_HI3518E_V200 -Dhi3518e -Dhi3518ev200 -DSENSOR_TYPE=OMNIVISION_OV9732_DC_720P_30FPS -DHI_DEBUG -DHI_XXXX -DISP_V2 -DHI_MIPI_ENABLE -DHI_ACODEC_TYPE_INNER -ffunction-sections
2225

2326

2427

include/acodec.h

Lines changed: 7 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ typedef enum hiACODEC_FS_E {
1616
ACODEC_FS_16000 = 0x19,
1717
ACODEC_FS_8000 = 0x18,
1818

19-
ACODEC_FS_64000 = 0x19,
19+
ACODEC_FS_64000 = 0x1b,
2020

21-
ACODEC_FS_96000 = 0x19,
21+
ACODEC_FS_96000 = 0x1b,
2222

23-
ACODEC_FS_BUTT = 0x1b,
23+
ACODEC_FS_BUTT = 0x1c,
2424
} ACODEC_FS_E;
2525

2626
typedef enum hiACODEC_MIXER_E {
27-
/*select MICIN or LINEIN*/
28-
ACODEC_MIXER_LINEIN = 0x0,
29-
ACODEC_MIXER_MICIN = 0x1,
27+
/*select IN or IN_D*/
28+
ACODEC_MIXER_IN = 0x3,
29+
ACODEC_MIXER_IN_D = 0x4,
3030
ACODEC_MIXER_BUTT,
3131
} ACODEC_MIXER_E;
3232

@@ -40,7 +40,6 @@ typedef struct {
4040

4141
typedef enum hiACODEC_IOCTL_E {
4242
IOC_NR_SOFT_RESET_CTRL = 0x0,
43-
IOC_NR_POWER_DOWN_CTRL,
4443
/******************************************************************************************
4544
The input volume range is [-87, +86]. Both the analog gain and digital gain are adjusted.
4645
A larger value indicates higher volume.
@@ -78,8 +77,6 @@ typedef enum hiACODEC_IOCTL_E {
7877
IOC_NR_SET_MICR_MUTE,
7978
IOC_NR_SET_DACL_MUTE,
8079
IOC_NR_SET_DACR_MUTE,
81-
IOC_NR_DAC_SOFT_MUTE,
82-
IOC_NR_DAC_SOFT_UNMUTE,
8380

8481
IOC_NR_GET_GAIN_MICL,
8582
IOC_NR_GET_GAIN_MICR,
@@ -93,33 +90,15 @@ typedef enum hiACODEC_IOCTL_E {
9390
IOC_NR_SET_PD_ADCL,
9491
IOC_NR_SET_PD_ADCR,
9592

96-
IOC_NR_DACL_SEL_TRACK,
97-
IOC_NR_DACR_SEL_TRACK,
98-
IOC_NR_ADCL_SEL_TRACK,
99-
IOC_NR_ADCR_SEL_TRACK,
10093
IOC_NR_SET_DAC_DE_EMPHASIS,
10194
IOC_NR_SET_ADC_HP_FILTER,
102-
IOC_NR_DAC_POP_FREE,
103-
IOC_NR_DAC_SOFT_MUTE_RATE,
10495

105-
IOC_NR_DAC_SEL_I2S,
106-
IOC_NR_ADC_SEL_I2S,
10796
IOC_NR_SET_I2S1_DATAWIDTH,
108-
IOC_NR_SET_I2S2_DATAWIDTH,
109-
IOC_NR_SET_I2S2_FS,
110-
IOC_NR_SET_DACR2DACL_VOL,
111-
IOC_NR_SET_DACL2DACR_VOL,
112-
IOC_NR_SET_ADCR2DACL_VOL,
113-
IOC_NR_SET_ADCL2DACR_VOL,
114-
IOC_NR_SET_ADCR2DACR_VOL,
115-
IOC_NR_SET_ADCL2DACL_VOL,
11697
} ACODEC_IOCTL_E;
11798

11899
/*reset the audio code to the default config*/
119100
#define ACODEC_SOFT_RESET_CTRL \
120-
_IO(IOC_TYPE_ACODEC, IOC_NR_SOFT_RESET_CTRL)
121-
#define ACODEC_POWER_DOWN_CTRL \
122-
_IO(IOC_TYPE_ACODEC, IOC_NR_POWER_DOWN_CTRL)
101+
_IO(IOC_TYPE_ACODEC, IOC_NR_SOFT_RESET_CTRL)
123102
/*ACODEC_FS_E*/
124103
#define ACODEC_SET_I2S1_FS \
125104
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_I2S1_FS, unsigned int)
@@ -157,11 +136,6 @@ typedef enum hiACODEC_IOCTL_E {
157136
#define ACODEC_SET_DACR_MUTE \
158137
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_DACR_MUTE, unsigned int)
159138
/*Audio Fade Out Control, 1:on, 0:off*/
160-
#define ACODEC_DAC_SOFT_MUTE \
161-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DAC_SOFT_MUTE, unsigned int)
162-
/*Audio Fade In Control, 1:on, 0:off*/
163-
#define ACODEC_DAC_SOFT_UNMUTE \
164-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DAC_SOFT_UNMUTE, unsigned int)
165139

166140
#define ACODEC_GET_GAIN_MICL \
167141
_IOWR(IOC_TYPE_ACODEC, IOC_NR_GET_GAIN_MICL, unsigned int)
@@ -196,22 +170,10 @@ typedef enum hiACODEC_IOCTL_E {
196170
/*clock of analog part and digital part is reverse or obverse*/
197171
#define ACODEC_SEL_ANA_MCLK \
198172
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SEL_ANA_MCLK, unsigned int)
199-
#define ACODEC_DACL_SEL_TRACK \
200-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DACL_SEL_TRACK, unsigned int)
201-
#define ACODEC_DACR_SEL_TRACK \
202-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DACR_SEL_TRACK, unsigned int)
203-
#define ACODEC_ADCL_SEL_TRACK \
204-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_ADCL_SEL_TRACK, unsigned int)
205-
#define ACODEC_ADCR_SEL_TRACK \
206-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_ADCR_SEL_TRACK, unsigned int)
207173
#define ACODEC_SET_DAC_DE_EMPHASIS \
208174
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_DAC_DE_EMPHASIS, unsigned int)
209175
#define ACODEC_SET_ADC_HP_FILTER \
210176
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_ADC_HP_FILTER, unsigned int)
211-
#define ACODEC_DAC_POP_FREE \
212-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DAC_POP_FREE, unsigned int)
213-
#define ACODEC_DAC_SOFT_MUTE_RATE \
214-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DAC_SOFT_MUTE_RATE, unsigned int)
215177
#define ACODEC_SET_INPUT_VOL \
216178
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_INPUT_VOL, unsigned int)
217179
#define ACODEC_SET_OUTPUT_VOL \
@@ -222,27 +184,7 @@ typedef enum hiACODEC_IOCTL_E {
222184
_IOWR(IOC_TYPE_ACODEC, IOC_NR_GET_OUTPUT_VOL, unsigned int)
223185

224186
/* Reserved ioctl cmd */
225-
#define ACODEC_DAC_SEL_I2S \
226-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_DAC_SEL_I2S, unsigned int)
227-
#define ACODEC_ADC_SEL_I2S \
228-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_ADC_SEL_I2S, unsigned int)
229187
#define ACODEC_SET_I2S1_DATAWIDTH \
230188
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_I2S1_DATAWIDTH, unsigned int)
231-
#define ACODEC_SET_I2S2_DATAWIDTH \
232-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_I2S2_DATAWIDTH, unsigned int)
233-
#define ACODEC_SET_I2S2_FS \
234-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_I2S2_FS, unsigned int)
235-
#define ACODEC_SET_DACR2DACL_VOL \
236-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_DACR2DACL_VOL, ACODEC_VOL_CTRL)
237-
#define ACODEC_SET_DACL2DACR_VOL \
238-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_DACL2DACR_VOL, ACODEC_VOL_CTRL)
239-
#define ACODEC_SET_ADCL2DACL_VOL \
240-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_ADCL2DACL_VOL, ACODEC_VOL_CTRL)
241-
#define ACODEC_SET_ADCR2DACL_VOL \
242-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_ADCR2DACL_VOL, ACODEC_VOL_CTRL)
243-
#define ACODEC_SET_ADCL2DACR_VOL \
244-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_ADCL2DACR_VOL, ACODEC_VOL_CTRL)
245-
#define ACODEC_SET_ADCR2DACR_VOL \
246-
_IOWR(IOC_TYPE_ACODEC, IOC_NR_SET_ADCR2DACR_VOL, ACODEC_VOL_CTRL)
247189

248190
#endif /* End of #ifndef _ACODEC_H_ */

include/dictionary.h

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
/*--------------------------------------------------------------------------*/
1515

1616
/*
17-
18-
19-
20-
17+
18+
19+
20+
2121
*/
2222

2323
#ifndef _DICTIONARY_H_
2424
#define _DICTIONARY_H_
2525

2626
/*---------------------------------------------------------------------------
27-
Includes
27+
Includes
2828
---------------------------------------------------------------------------*/
2929

3030
#include <stdio.h>
@@ -42,13 +42,13 @@ extern "C"{
4242

4343

4444
/*---------------------------------------------------------------------------
45-
New types
45+
New types
4646
---------------------------------------------------------------------------*/
4747

4848

4949
/*-------------------------------------------------------------------------*/
5050
/**
51-
@brief Dictionary object
51+
@brief Dictionary object
5252
5353
This object contains a list of string/string associations. Each
5454
association is identified by a unique string key. Looking up values
@@ -63,28 +63,28 @@ extern "C"{
6363
#define CL_SLINE 4 /** 4,Space Line; example;|\r\n*/
6464

6565
typedef struct _dictionary_ {
66-
int n ; /** Number of entries in dictionary */
67-
int size ; /** Storage size of entries*/
68-
char ** val ; /** List of string values */
69-
char ** key ; /** List of string keys */
70-
unsigned * hash ; /** List of hash values for keys */
71-
72-
/*2006/03/11 blair add : save comment and space Line*/
73-
int commN; /** Number of comment in dictionary */
74-
int commSize; /** Storage size of comment*/
75-
char ** comment; /** List of string comment and space Line*/
76-
unsigned * commHash; /** List of hash values for keys ,signed the comment line is the key has the comment */
77-
unsigned char * commPlace; /** remember the comment at where the key keyhash signed.
78-
0,the line has no comment;
79-
1,no space before comment;
80-
2,at the key line's right;
81-
3,Line of commnet or at the key line's behind;
82-
4,Space Line;*/
66+
int n ; /** Number of entries in dictionary */
67+
int size ; /** Storage size of entries*/
68+
char ** val ; /** List of string values */
69+
char ** key ; /** List of string keys */
70+
unsigned * hash ; /** List of hash values for keys */
71+
72+
/*2006/03/11 blair add : save comment and space Line*/
73+
int commN; /** Number of comment in dictionary */
74+
int commSize; /** Storage size of comment*/
75+
char ** comment; /** List of string comment and space Line*/
76+
unsigned * commHash; /** List of hash values for keys ,signed the comment line is the key has the comment */
77+
unsigned char * commPlace; /** remember the comment at where the key keyhash signed.
78+
0,the line has no comment;
79+
1,no space before comment;
80+
2,at the key line's right;
81+
3,Line of commnet or at the key line's behind;
82+
4,Space Line;*/
8383
} dictionary ;
8484

8585

8686
/*---------------------------------------------------------------------------
87-
Function prototypes
87+
Function prototypes
8888
---------------------------------------------------------------------------*/
8989
void * mem_double(void * ptr, int size);
9090
/*-------------------------------------------------------------------------*/

include/hi_ae_comm.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ typedef struct hiAE_SENSOR_DEFAULT_S
112112
HI_FLOAT f32Fps;
113113
HI_U32 u32InitExposure;
114114
HI_U32 u32InitAESpeed;
115-
HI_U32 u32InitAETolerance;
116115

117116
HI_U32 u32FullLinesStd;
118117
HI_U32 u32FullLinesMax;
@@ -150,6 +149,8 @@ typedef struct hiAE_SENSOR_DEFAULT_S
150149
ISP_PIRIS_ATTR_S stPirisAttr;
151150
ISP_IRIS_F_NO_E enMaxIrisFNO; /*RW, Range:[F32.0, F1.0], Max F number of Piris's aperture, it's related to the specific iris */
152151
ISP_IRIS_F_NO_E enMinIrisFNO; /*RW, Range:[F32.0, F1.0], Min F number of Piris's aperture, it's related to the specific iris */
152+
153+
HI_U8 u8AERunInterval;
153154
} AE_SENSOR_DEFAULT_S;
154155

155156
typedef struct hiAE_FSWDR_ATTR_S

include/hi_awb_comm.h

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,26 @@ typedef enum hiAWB_CTRL_CMD_E
4141

4242
typedef struct hiAWB_DBG_ATTR_S
4343
{
44-
HI_U16 u16WhiteLevel;
45-
HI_U16 u16BlackLevel;
46-
HI_U16 u16CrMax;
47-
HI_U16 u16CrMin;
48-
HI_U16 u16CbMax;
49-
HI_U16 u16CbMin;
50-
HI_U16 u16CrHigh;
51-
HI_U16 u16CrLow;
52-
HI_U16 u16CbHigh;
53-
HI_U16 u16CbLow;
44+
HI_U16 u16WhiteLevel; /*Hi3518EV200 does't support, fixed to 0*/
45+
HI_U16 u16BlackLevel; /*Hi3518EV200 does't support, fixed to 0*/
46+
HI_U16 u16CrMax; /*Hi3518EV200 does't support, fixed to 0*/
47+
HI_U16 u16CrMin; /*Hi3518EV200 does't support, fixed to 0*/
48+
HI_U16 u16CbMax; /*Hi3518EV200 does't support, fixed to 0*/
49+
HI_U16 u16CbMin; /*Hi3518EV200 does't support, fixed to 0*/
50+
HI_U16 u16CrHigh; /*Hi3518EV200 does't support, fixed to 0*/
51+
HI_U16 u16CrLow; /*Hi3518EV200 does't support, fixed to 0*/
52+
HI_U16 u16CbHigh; /*Hi3518EV200 does't support, fixed to 0*/
53+
HI_U16 u16CbLow; /*Hi3518EV200 does't support, fixed to 0*/
5454
HI_U16 u16RawWhiteLevel;
5555
HI_U16 u16RawBlackLevel;
5656
HI_U16 u16RawCrMax;
5757
HI_U16 u16RawCrMin;
5858
HI_U16 u16RawCbMax;
5959
HI_U16 u16RawCbMin;
60-
HI_U16 u16RawCrHigh;
61-
HI_U16 u16RawCrLow;
62-
HI_U16 u16RawCbHigh;
63-
HI_U16 u16RawCbLow;
60+
HI_U16 u16RawCrHigh; /*Hi3518EV200 does't support, fixed to 0*/
61+
HI_U16 u16RawCrLow; /*Hi3518EV200 does't support, fixed to 0*/
62+
HI_U16 u16RawCbHigh; /*Hi3518EV200 does't support, fixed to 0*/
63+
HI_U16 u16RawCbLow; /*Hi3518EV200 does't support, fixed to 0*/
6464

6565
HI_U16 u16WDRMode;
6666
HI_U16 u16Enable;
@@ -84,9 +84,9 @@ typedef struct hiAWB_DBG_ATTR_S
8484

8585
typedef struct hiAWB_ZONE_DBG_S
8686
{
87-
HI_U16 u16Sum;
88-
HI_U16 u16Rg;
89-
HI_U16 u16Bg;
87+
HI_U16 u16Sum; /*Hi3518EV200 does't support, fixed to 0*/
88+
HI_U16 u16Rg; /*Hi3518EV200 does't support, fixed to 0*/
89+
HI_U16 u16Bg; /*Hi3518EV200 does't support, fixed to 0*/
9090
HI_U16 u16CountAll;
9191
HI_U16 u16CountMin;
9292
HI_U16 u16CountMax;
@@ -101,9 +101,9 @@ typedef struct hiAWB_ZONE_DBG_S
101101
typedef struct hiAWB_DBG_STATUS_S
102102
{
103103
HI_U32 u32FrmNumBgn;
104-
HI_U32 u32GlobalSum;
105-
HI_U16 u16GlobalRgSta;
106-
HI_U16 u16GlobalBgSta;
104+
HI_U32 u32GlobalSum; /*Hi3518EV200 does't support, fixed to 0*/
105+
HI_U16 u16GlobalRgSta; /*Hi3518EV200 does't support, fixed to 0*/
106+
HI_U16 u16GlobalBgSta; /*Hi3518EV200 does't support, fixed to 0*/
107107
HI_U16 u16GlobalCountAll;
108108
HI_U16 u16GlobalCountMin;
109109
HI_U16 u16GlobalCountMax;

include/hi_comm_3a.h

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ typedef enum hiISP_ALG_MOD_E
6262
ISP_ALG_FPN,
6363
ISP_ALG_DEHAZE,
6464
ISP_ALG_ACM,
65+
ISP_ALG_CAC,
66+
ISP_ALG_CSC,
67+
ISP_ALG_COMPANDER,
68+
ISP_ALG_UVNR,
69+
ISP_ALG_LSC,
70+
ISP_ALG_RGBIR,
71+
ISP_ALG_COMM,
6572
ISP_ALG_BUTT,
6673
} ISP_ALG_MOD_E;
6774

@@ -113,7 +120,9 @@ typedef struct hiISP_AE_STAT_2_S
113120
} ISP_AE_STAT_2_S;
114121

115122
typedef struct hiISP_AE_STAT_3_S
116-
{
123+
{
124+
HI_U32 u32PixelCount;
125+
HI_U32 u32PixelWeight;
117126
HI_U32 au32HistogramMemArray[256];
118127
} ISP_AE_STAT_3_S;
119128

@@ -135,8 +144,8 @@ typedef struct hiISP_AE_INFO_S
135144
{
136145
HI_U32 u32FrameCnt; /* the counting of frame */
137146

138-
ISP_AE_STAT_1_S *pstAeStat1;
139-
ISP_AE_STAT_2_S *pstAeStat2;
147+
ISP_AE_STAT_1_S *pstAeStat1; /* not support */
148+
ISP_AE_STAT_2_S *pstAeStat2; /* not support */
140149
ISP_AE_STAT_3_S *pstAeStat3;
141150
ISP_AE_STAT_4_S *pstAeStat4;
142151
ISP_AE_STAT_5_S *pstAeStat5;

0 commit comments

Comments
 (0)