友善之臂视频监控方案源码学习(5) - 输入控制(9)

时间:2026-01-26

2. {

3. if (vd == NULL || device == NULL)

4. return -1;

5. if (width == 0 || height == 0)

6. return -1;

7. if (grabmethod < 0 || grabmethod > 1)

8. grabmethod = 1; //mmap by default;

9. vd->videodevice = NULL;

10. vd->status = NULL;

11. vd->pictName = NULL;

12. vd->videodevice = (char *) calloc (1, 16 * sizeof (char)); 13. vd->status = (char *) calloc (1, 100 * sizeof (char));

14. vd->pictName = (char *) calloc (1, 80 * sizeof (char));

15. snprintf (vd->videodevice, 12, "%s", device);

16. vd->toggleAvi = 0;

17. vd->getPict = 0;

18. vd->signalquit = 1;

19. vd->width = width;

20. vd->height = height;

21. vd->fps = fps;

22. vd->formatIn = format;

23. vd->grabmethod = grabmethod;

24. if (init_v4l2 (vd) < 0) {

25. fprintf (stderr, " Init v4L2 failed !! exit fatal \n"); 26. goto error;;

27. }

28. /* alloc a temp buffer to reconstruct the pict */

29. vd->framesizeIn = (vd->width * vd->height << 1);

30. switch (vd->formatIn) {

31. case V4L2_PIX_FMT_MJPEG:

32. vd->tmpbuffer = (unsigned char *) calloc(1, (size_t) vd->framesizeIn); 33. if (!vd->tmpbuffer)

34. goto error;

35. vd->framebuffer =

36. (unsigned char *) calloc(1, (size_t) vd->width * (vd->height + 8) *

2);

37. break;

38. case V4L2_PIX_FMT_YUYV:

39. default:

40. vd->framebuffer =

41. (unsigned char *) calloc(1, (size_t) vd->framesizeIn); 42. break;

43. //fprintf(stderr, " should never arrive exit fatal !!\n"); 44. //goto error;

友善之臂视频监控方案源码学习(5) - 输入控制(9).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219