友善之臂视频监控方案源码学习(5) - 输入控制(7)
时间:2026-01-26
时间:2026-01-26
90. led = IN_CMD_LED_ON;
91. } else if ( strcmp("off", optarg) == 0 ) {
92. led = IN_CMD_LED_OFF;
93. } else if ( strcmp("auto", optarg) == 0 ) {
94. led = IN_CMD_LED_AUTO;
95. } else if ( strcmp("blink", optarg) == 0 ) {
96. led = IN_CMD_LED_BLINK;
97. }
98. break;
99.
100. default:
101. DBG("default case\n");
102. help();
103. return 1;
104. }
注:步骤(c)和(d)是在while(1)循环内检测的。
第四,使全局指针指向param->param->global
[html] view plaincopy
1.
2. /* keep a pointer to the global variables */ pglobal = param->global;
这一步非常重要,视频数据信息就存储在global结构的buf变量中。
第五,构建videoIn结构
[html] view plaincopy
1.
2.
3.
4.
5.
6. videoIn = malloc(sizeof(struct vdIn)); if ( videoIn == NULL ) { IPRINT("not enough memory for videoIn\n"); exit(EXIT_FAILURE); } memset(videoIn, 0, sizeof(struct vdIn));
该结构描述如下:
[html] view plaincopy
1. struct vdIn {