@@ -43,14 +43,6 @@ extern v4_config_impl v4_config;
43
43
static enum ConfigError v4_parse_config_lvds (
44
44
struct IniConfig * ini , const char * section , v4_snr_lvds * lvds ) {
45
45
enum ConfigError err ;
46
- err = parse_int (
47
- ini , section , "img_size_w" , INT_MIN , INT_MAX , & lvds -> capt .width );
48
- if (err != CONFIG_OK )
49
- return err ;
50
- err = parse_int (
51
- ini , section , "img_size_h" , INT_MIN , INT_MAX , & lvds -> capt .height );
52
- if (err != CONFIG_OK )
53
- return err ;
54
46
{
55
47
const char * possible_values [] = {
56
48
"HI_WDR_MODE_NONE" , "HI_WDR_MODE_2F" , "HI_WDR_MODE_3F" ,
@@ -75,8 +67,9 @@ static enum ConfigError v4_parse_config_lvds(
75
67
}
76
68
{
77
69
const char * possible_values [] = {
78
- "RAW_DATA_8BIT" , "RAW_DATA_10BIT" , "RAW_DATA_12BIT" ,
79
- "RAW_DATA_14BIT" };
70
+ "RAW_DATA_8BIT" , "RAW_DATA_10BIT" , "RAW_DATA_12BIT" ,
71
+ "RAW_DATA_14BIT" , "RAW_DATA_16BIT" , "RAW_DATA_YUV420_8BIT_NORMAL" ,
72
+ "RAW_DATA_YUV420_8BIT_LEGACY" , "RAW_DATA_YUV422_8BIT" };
80
73
const int count = sizeof (possible_values ) / sizeof (const char * );
81
74
err = parse_enum (
82
75
ini , section , "raw_data_type" , (void * )& lvds -> prec ,
@@ -99,34 +92,29 @@ static enum ConfigError v4_parse_config_lvds(
99
92
if (err != CONFIG_OK )
100
93
return err ;
101
94
}
102
- err = parse_array (ini , section , "lane_id" , lvds -> laneId , 8 );
103
- if (err != CONFIG_OK )
104
- return err ;
105
- err = parse_int (
106
- ini , section , "lvds_lane_num" , INT_MIN , INT_MAX , & lvds -> laneNum );
107
- if (err != CONFIG_OK )
108
- return err ;
109
- err = parse_int (
110
- ini , section , "wdr_vc_num" , INT_MIN , INT_MAX , & lvds -> wdrVcNum );
111
- if (err != CONFIG_OK )
112
- return err ;
113
- err = parse_int (
114
- ini , section , "sync_code_num" , INT_MIN , INT_MAX , & lvds -> syncCodeNum );
95
+ int laneId [4 ];
96
+ err = parse_array (ini , section , "lane_id" , laneId , 4 );
115
97
if (err != CONFIG_OK )
116
98
return err ;
99
+ else for (char i = 0 ; i < 4 ; i ++ )
100
+ lvds -> laneId [i ] = (short )laneId [i ];
117
101
char syncname [16 ];
102
+ int synccode [128 ];
118
103
for (int i = 0 ; i < 8 ; i ++ ) {
119
104
sprintf (syncname , "sync_code_%d" , i );
120
- err = parse_array (ini , section , syncname , lvds -> syncCode [ i ] , 16 );
105
+ err = parse_array (ini , section , syncname , synccode + i * 16 , 16 );
121
106
if (err != CONFIG_OK )
122
107
return err ;
123
108
}
109
+ for (int j = 0 ; j < 32 ; j ++ )
110
+ lvds -> syncCode [j ] = (unsigned short )synccode [j ];
124
111
return CONFIG_OK ;
125
112
}
126
113
127
114
static enum ConfigError v4_parse_config_videv (
128
115
struct IniConfig * ini , const char * section , v4_vi_dev * device ) {
129
116
enum ConfigError err ;
117
+ memset (device , 0 , sizeof (* device ));
130
118
{
131
119
const char * possible_values [] = {
132
120
"VI_MODE_BT656" , "VI_MODE_BT656_PACKED_YUV" ,
@@ -152,37 +140,7 @@ static enum ConfigError v4_parse_config_videv(
152
140
ini , section , "work_mod" , (void * )& device -> work , possible_values ,
153
141
count , 0 );
154
142
if (err != CONFIG_OK )
155
- return err ;
156
- }
157
- {
158
- const char * possible_values [] = {
159
- "VI_COMBINE_COMPOSITE" , "VI_COMBINE_SEPARATE" };
160
- const int count = sizeof (possible_values ) / sizeof (const char * );
161
- err = parse_enum (
162
- ini , section , "combine_mode" , (void * )& device -> separateOn ,
163
- possible_values , count , 0 );
164
- if (err != CONFIG_OK )
165
- return err ;
166
- }
167
- {
168
- const char * possible_values [] = {
169
- "VI_COMP_MODE_SINGLE" , "VI_COMP_MODE_DOUBLE" };
170
- const int count = sizeof (possible_values ) / sizeof (const char * );
171
- err = parse_enum (
172
- ini , section , "comp_mode" , (void * )& device -> doubleCompOn ,
173
- possible_values , count , 0 );
174
- if (err != CONFIG_OK )
175
- return err ;
176
- }
177
- {
178
- const char * possible_values [] = {
179
- "VI_CLK_EDGE_SINGLE_UP" , "VI_CLK_EDGE_SINGLE_DOWN" };
180
- const int count = sizeof (possible_values ) / sizeof (const char * );
181
- err = parse_enum (
182
- ini , section , "clock_edge" , (void * )& device -> clkDownOn ,
183
- possible_values , count , 0 );
184
- if (err != CONFIG_OK )
185
- return err ;
143
+ device -> work = V4_VI_WORK_1MULTIPLEX ;
186
144
}
187
145
err = parse_uint32 (ini , section , "mask_0" , 0 , UINT_MAX - 1 , & device -> cmpntMask [0 ]);
188
146
if (err != CONFIG_OK )
@@ -208,22 +166,15 @@ static enum ConfigError v4_parse_config_videv(
208
166
}
209
167
{
210
168
const char * possible_values [] = {
211
- "VI_DATA_SEQ_VUVU" , "VI_DATA_SEQ_UVUV" };
212
- const int count = sizeof (possible_values ) / sizeof (const char * );
213
- err = parse_enum (
214
- ini , section , "data_seq" , (void * )& device -> input , possible_values ,
215
- count , 0 );
216
- if (err != CONFIG_OK ) {
217
- const char * possible_values [] = {
218
- "VI_DATA_SEQ_UYVY" , "VI_DATA_SEQ_VYUY" ,
219
- "VI_DATA_SEQ_YUYV" , "VI_DATA_SEQ_YVYU" };
169
+ "VI_DATA_SEQ_VUVU" , "VI_DATA_SEQ_UVUV" ,
170
+ "VI_DATA_SEQ_UYVY" , "VI_DATA_SEQ_VYUY" ,
171
+ "VI_DATA_SEQ_YUYV" , "VI_DATA_SEQ_YVYU" };
220
172
const int count = sizeof (possible_values ) / sizeof (const char * );
221
173
err = parse_enum (
222
174
ini , section , "data_seq" , (void * )& device -> input ,
223
175
possible_values , count , 0 );
224
176
if (err != CONFIG_OK )
225
177
return err ;
226
- }
227
178
}
228
179
{
229
180
const char * possible_values [] = {"VI_VSYNC_FIELD" , "VI_VSYNC_PULSE" };
@@ -246,7 +197,7 @@ static enum ConfigError v4_parse_config_videv(
246
197
}
247
198
{
248
199
const char * possible_values [] = {
249
- "VI_HSYNC_VALID_SINGNAL " , "VI_HSYNC_PULSE" };
200
+ "VI_HSYNC_VALID_SIGNAL " , "VI_HSYNC_PULSE" };
250
201
const int count = sizeof (possible_values ) / sizeof (const char * );
251
202
err = parse_enum (
252
203
ini , section , "hsync" , (void * )& device -> sync .hsyncPulse , possible_values ,
@@ -266,7 +217,7 @@ static enum ConfigError v4_parse_config_videv(
266
217
}
267
218
{
268
219
const char * possible_values [] = {
269
- "VI_VSYNC_NORM_PULSE" , "VI_VSYNC_VALID_SINGAL " };
220
+ "VI_VSYNC_NORM_PULSE" , "VI_VSYNC_VALID_SIGNAL " };
270
221
const int count = sizeof (possible_values ) / sizeof (const char * );
271
222
err = parse_enum (
272
223
ini , section , "vsyncvalid" , (void * )& device -> sync .vsyncValid ,
@@ -329,60 +280,26 @@ static enum ConfigError v4_parse_config_videv(
329
280
& device -> sync .timing .vsyncIntrlBack );
330
281
if (err != CONFIG_OK )
331
282
return err ;
332
- {
333
- const char * possible_values [] = {"BT656_FIXCODE_1" , "BT656_FIXCODE_0" };
334
- const int count = sizeof (possible_values ) / sizeof (const char * );
335
- parse_enum (
336
- ini , section , "fixcode" , (void * )& device -> codeZeroOn , possible_values ,
337
- count , 0 );
338
- if (err != CONFIG_OK )
339
- device -> codeZeroOn = 0 ;
340
- }
341
- {
342
- const char * possible_values [] = {
343
- "BT656_FIELD_POLAR_STD" , "BT656_FIELD_POLAR_NSTD" };
344
- const int count = sizeof (possible_values ) / sizeof (const char * );
345
- err = parse_enum (
346
- ini , section , "fieldpolar" , (void * )& device -> polarNstdOn ,
347
- possible_values , count , 0 );
348
- if (err != CONFIG_OK )
349
- device -> polarNstdOn = 0 ;
350
- }
351
- {
352
- const char * possible_values [] = {
353
- "VI_PATH_BYPASS" , "VI_PATH_ISP" , "VI_PATH_RAW" };
354
- const int count = sizeof (possible_values ) / sizeof (const char * );
355
- err = parse_enum (
356
- ini , section , "datapath" , (void * )& device -> dataPath ,
357
- possible_values , count , 0 );
358
- if (err != CONFIG_OK )
359
- device -> dataPath = 0 ;
360
- }
361
- {
362
- const char * possible_values [] = {
363
- "VI_DATA_TYPE_YUV" , "VI_DATA_TYPE_RGB" };
364
- const int count = sizeof (possible_values ) / sizeof (const char * );
365
- err = parse_enum (
366
- ini , section , "inputdatatype" , & device -> rgbModeOn ,
367
- possible_values , count , 0 );
368
- if (err != CONFIG_OK )
369
- device -> rgbModeOn = 0 ;
370
- }
371
- err = parse_int (ini , section , "datarev" , 0 , INT_MAX , & device -> dataRev );
283
+ err = parse_int (ini , section , "datarev" , 0 , INT_MAX , & device -> dataRevOn );
372
284
if (err != CONFIG_OK )
373
285
return err ;
374
- err = parse_int (ini , section , "devrect_x" , 0 , INT_MAX , & device -> capt .x );
286
+ err = parse_int (ini , section , "devrect_x" , 0 , INT_MAX , & v4_config . vichn . capt .x );
375
287
if (err != CONFIG_OK )
376
288
return err ;
377
- err = parse_int (ini , section , "devrect_y" , 0 , INT_MAX , & device -> capt .y );
289
+ err = parse_int (ini , section , "devrect_y" , 0 , INT_MAX , & v4_config . vichn . capt .y );
378
290
if (err != CONFIG_OK )
379
291
return err ;
380
- err = parse_int (ini , section , "devrect_w" , 0 , INT_MAX , & device -> capt .width );
292
+ err = parse_int (ini , section , "devrect_w" , 0 , INT_MAX , & v4_config . vichn . capt .width );
381
293
if (err != CONFIG_OK )
382
294
return err ;
383
- err = parse_int (ini , section , "devrect_h" , 0 , INT_MAX , & device -> capt .height );
295
+ err = parse_int (ini , section , "devrect_h" , 0 , INT_MAX , & v4_config . vichn . capt .height );
384
296
if (err != CONFIG_OK )
385
297
return err ;
298
+
299
+ for (char i = 0 ; i < 4 ; i ++ )
300
+ device -> adChn [i ] = -1 ;
301
+ device -> wdrCacheLine = v4_config .vichn .capt .width ;
302
+
386
303
return CONFIG_OK ;
387
304
}
388
305
@@ -393,24 +310,14 @@ static enum ConfigError v4_parse_config_vichn(
393
310
if (err != CONFIG_OK )
394
311
channel -> capt .x = 0 ;
395
312
parse_int (ini , section , "caprect_y" , 0 , INT_MAX , & channel -> capt .y );
396
- if (err != CONFIG_OK )
397
- channel -> capt .y = 0 ;
398
313
parse_int (
399
314
ini , section , "caprect_width" , 0 , INT_MAX , & channel -> capt .width );
400
- if (err != CONFIG_OK )
401
- channel -> capt .width = 0 ;
402
315
parse_int (
403
316
ini , section , "caprect_height" , 0 , INT_MAX , & channel -> capt .height );
404
- if (err != CONFIG_OK )
405
- channel -> capt .height = 0 ;
406
317
parse_int (
407
318
ini , section , "destsize_width" , 0 , INT_MAX , & channel -> dest .width );
408
- if (err != CONFIG_OK )
409
- channel -> dest .width = 0 ;
410
319
parse_int (
411
320
ini , section , "destsize_height" , 0 , INT_MAX , & channel -> dest .height );
412
- if (err != CONFIG_OK )
413
- channel -> dest .height = 0 ;
414
321
{
415
322
const char * possible_values [] = {
416
323
"VI_CAPSEL_TOP" , "VI_CAPSEL_BOTTOM" , "VI_CAPSEL_BOTH" };
@@ -490,7 +397,7 @@ static enum ConfigError v4_parse_config_vichn(
490
397
}
491
398
{
492
399
const char * possible_values [] = {
493
- "COMPRESS_MODE_NONE" , "COMPRESS_MODE_SEG" , "COMPRESS_MODE_SEG128 " ,
400
+ "COMPRESS_MODE_NONE" , "COMPRESS_MODE_SEG" , "COMPRESS_MODE_TILE " ,
494
401
"COMPRESS_MODE_LINE" , "COMPRESS_MODE_FRAME" };
495
402
const int count = sizeof (possible_values ) / sizeof (const char * );
496
403
err = parse_enum (
@@ -588,6 +495,7 @@ static enum ConfigError v4_parse_sensor_config(char *path, v4_config_impl *confi
588
495
const char * possible_values [] = {
589
496
"WDR_MODE_NONE" ,
590
497
"WDR_MODE_BUILT_IN" ,
498
+ "WDR_MODE_QUDRA" ,
591
499
"WDR_MODE_2To1_LINE" ,
592
500
"WDR_MODE_2To1_FRAME" ,
593
501
"WDR_MODE_2To1_FRAME_FULL_RATE" ,
@@ -602,7 +510,7 @@ static enum ConfigError v4_parse_sensor_config(char *path, v4_config_impl *confi
602
510
& ini , "sensor" , "mode" , (void * )& config -> mode , possible_values ,
603
511
count , 0 );
604
512
if (err != CONFIG_OK )
605
- goto RET_ERR ;
513
+ config -> mode = V4_WDR_NONE ;
606
514
}
607
515
err = parse_param_value (& ini , "sensor" , "dllfile" , config -> dll_file );
608
516
if (err != CONFIG_OK )
@@ -619,19 +527,19 @@ static enum ConfigError v4_parse_sensor_config(char *path, v4_config_impl *confi
619
527
& ini , "mode" , "input_mode" , (void * )& config -> input_mode ,
620
528
possible_values , count , 0 );
621
529
if (err != CONFIG_OK )
622
- goto RET_ERR ;
530
+ config -> input_mode = V4_SNR_INPUT_MIPI ;
623
531
}
624
532
625
533
if (config -> input_mode == V4_VI_INTF_MIPI ) {
626
534
// [mipi]
627
535
{
628
536
const char * possible_values [] = {
629
- "RAW_DATA_8BIT" , "RAW_DATA_10BIT" , "RAW_DATA_12BIT" ,
630
- "RAW_DATA_14BIT" , "RAW_DATA_16BIT" , "RAW_DATA_YUV420_8BIT_NORMAL" ,
631
- "RAW_DATA_YUV420_8BIT_LEGACY" , "RAW_DATA_YUV422_8BIT" };
537
+ "RAW_DATA_8BIT" , "RAW_DATA_10BIT" , "RAW_DATA_12BIT" ,
538
+ "RAW_DATA_14BIT" , "RAW_DATA_16BIT" , "RAW_DATA_YUV420_8BIT_NORMAL" ,
539
+ "RAW_DATA_YUV420_8BIT_LEGACY" , "RAW_DATA_YUV422_8BIT" };
632
540
const int count = sizeof (possible_values ) / sizeof (const char * );
633
541
err = parse_enum (
634
- & ini , "mipi " , "data_type " , (void * )& config -> mipi .prec ,
542
+ & ini , "mode " , "raw_bitness " , (void * )& config -> mipi .prec ,
635
543
possible_values , count , 0 );
636
544
if (err != CONFIG_OK )
637
545
goto RET_ERR ;
@@ -651,23 +559,15 @@ static enum ConfigError v4_parse_sensor_config(char *path, v4_config_impl *confi
651
559
if (err != CONFIG_OK )
652
560
goto RET_ERR ;
653
561
562
+ // [vi_chn]
563
+ v4_parse_config_vichn (& ini , "vi_chn" , & config -> vichn );
564
+
654
565
// [vi_dev]
655
566
err = v4_parse_config_videv (& ini , "vi_dev" , & config -> videv );
656
567
if (err != CONFIG_OK )
657
568
goto RET_ERR ;
658
- // [vi_chn]
659
- v4_parse_config_vichn (& ini , "vi_chn" , & config -> vichn );
660
569
661
570
// Fallbacks for default sensor configuration files
662
- if (!config -> vichn .capt .x )
663
- config -> vichn .capt .x = config -> videv .capt .x ;
664
- if (!config -> vichn .capt .y )
665
- config -> vichn .capt .y = config -> videv .capt .y ;
666
- if (!config -> vichn .capt .width )
667
- config -> vichn .capt .width = config -> videv .capt .width ;
668
- if (!config -> vichn .capt .height )
669
- config -> vichn .capt .height = config -> videv .capt .height ;
670
-
671
571
if (!config -> isp .capt .x )
672
572
config -> isp .capt .x = config -> vichn .capt .x ;
673
573
if (!config -> isp .capt .y )
@@ -677,6 +577,14 @@ static enum ConfigError v4_parse_sensor_config(char *path, v4_config_impl *confi
677
577
if (!config -> isp .capt .height )
678
578
config -> isp .capt .height = config -> vichn .capt .height ;
679
579
580
+ if (!config -> isp .size .width )
581
+ config -> isp .size .width = config -> vichn .capt .width ;
582
+ if (!config -> isp .size .height )
583
+ config -> isp .size .height = config -> vichn .capt .height ;
584
+
585
+ if (!config -> isp .wdr )
586
+ config -> isp .wdr = config -> mode ;
587
+
680
588
v4_config = * config ;
681
589
free (ini .str );
682
590
return CONFIG_OK ;
0 commit comments