友善之臂视频监控方案源码学习(5) - 输入控制(3)
时间:2026-01-26
时间:2026-01-26
2.
3.
4. int argc=1, width=640, height=480, fps=5, format=V4L2_PIX_FMT_MJPEG, i; in_cmd_type led = IN_CMD_LED_AUTO; char fourcc[5]={0,0,0,0,0};
第二,初始化互斥锁:
[html] view plaincopy
1.
2.
3.
4.
5. /* initialize the mutes variable */ if( pthread_mutex_init(&controls_mutex, NULL) != 0 ) { IPRINT("could not initialize mutex variable\n"); exit(EXIT_FAILURE); }
第三,参数解析。参数解析又分为下面几个步骤:
(a) 读取参数
[html] view plaincopy 1. 2.
3.
4.
5. argv[0] = INPUT_PLUGIN_NAME; if ( param->parameter_string != NULL && strlen(param->parameter_string) != 0 ) { char *arg=NULL, *saveptr=NULL, *token=NULL; arg=(char *)strdup(param->parameter_string);
(b) 将字符串形式的参数分解为字符串数组
[html] view plaincopy 1. if ( strchr(arg, ' ') != NULL ) {
2. token=strtok_r(arg, " ", &saveptr);
3. if ( token != NULL ) {
4. argv[argc] = strdup(token);
5. argc++;
6. while ( (token=strtok_r(NULL, " ", &saveptr)) != NULL ) { 7. argv[argc] = strdup(token);
8. argc++;
9. if (argc >= MAX_ARGUMENTS) {
10. IPRINT("ERROR: too many arguments to input plugin\n"); 11. return 1;
12. }