项目作者: Kurokesu

项目描述 :
Tool to set Sonix chipset based Kurokesu USB camera extension unit parameters (like h.264 compression rate, measurement mode, GPIO, ...)
高级语言: C
项目地址: git://github.com/Kurokesu/C1_SONIX_Test_AP.git
创建时间: 2020-07-28T16:22:58Z
项目社区:https://github.com/Kurokesu/C1_SONIX_Test_AP

开源协议:GNU General Public License v3.0

下载


Sonix chipset based Kurokesu C1 family USB camera extension unit parameter control toolset (like h.264 compression rate, measurement mode, GPIO, …)

C1 PRO

Compile

  1. cd C1_SONIX_Test_AP
  2. cp Makefile.x86 Makefile
  3. make

Using TestAP

Print help

  1. ./SONiX_UVC_TestAP -h
  1. v1.0.22_SONiX_UVC_TestAP_Multi
  2. kernel version 40f00
  3. optind:2 optopt:0
  4. Usage: ./SONiX_UVC_TestAP [options] device
  5. Supported options:
  6. -c, --capture[=nframes] Capture frames
  7. -d, --delay Delay (in ms) before requeuing buffers
  8. -e, enum MaxPayloadTransferSize
  9. -f, --format format Set the video format (mjpg or yuyv)
  10. -h, --help Show this help screen
  11. -i, --input input Select the video input
  12. -l, --list-controls List available controls
  13. -n, --nbufs n Set the number of video buffers
  14. -s, --size WxH Set the frame size
  15. --fr framerate Set framerate
  16. -S, --save Save captured images to disk
  17. --enum-inputs Enumerate inputs
  18. --skip n Skip the first n frames
  19. -r, --record Record H264 file
  20. --still get still image
  21. --still2 fmt w h get still image
  22. --bri-set values Set brightness values
  23. --bri-get Get brightness values
  24. --shrp-set values Set sharpness values
  25. --shrp-get Get sharpness values
  26. --dbg value Set level of debug message(bit0:usage, bit1:error, bit2:flow, bit3:frame)
  27. --vnd-get Get vender version
  28. SONiX XU supported options:
  29. -a, --add-xuctrl Add Extension Unit Ctrl into Driver
  30. --xuget id cs datasize d0 d1 ... XU Get command: xu_id control_selector data_size data_0 data_1 ...
  31. --xuset id cs datasize d0 d1 ... XU Set command: xu_id control_selector data_size data_0 data_1 ...
  32. --xuget-chip Read SONiX Chip ID
  33. --xuget-qp Get H.264 QP values
  34. --xuset-qp val Set H.264 QP values: val
  35. --xuget-br Get H.264 bit rate (bps)
  36. --xuset-br val Set H.264 bit rate (bps)
  37. --asic-r addr [Hex] Read register address data
  38. --asic-w addr data [Hex] Write register address data
  39. --sf-r addr len [Hex] Read sf address data
  40. --i2c-r ID addr data_len [Hex] i2c read(fill Zero in LSB)
  41. --i2c-w ID addr data data_len [Hex] i2c write(fill Zero in LSB)
  42. --mf val Set Multi-Stream format:[1]HD+QVGA [2]HD+180p [4]HD+360p [8]HD+VGA [10]HD+QVGA+VGA [20]HD+QVGA [40]HD+180p+360p [80]360p+180p
  43. --mgs Get Multi-Stream Status.
  44. --mgi Get Multi-Stream Info.
  45. --msqp StreamID QP Set Multi-Stream QP. StreamID = 0 ~ 2
  46. --mgqp StreamID Get Multi-Stream QP. StreamID = 0 ~ 2
  47. --msbr StreamID Bitrate Set Multi-Stream Bitrate (bps). StreamID = 0 ~ 2
  48. --mgbr StreamID Get Multi-Stream BitRate (bps). StreamID = 0 ~ 2
  49. --mscvm StreamID H264Mode Set Multi-Stream H264 Mode. StreamID = 0 ~ 2(1:CBR 2:VBR)
  50. --mgcvm StreamID Get Multi-Stream H264 Mode. StreamID = 0 ~ 2
  51. --msfr val Set Multi-Stream substream frame rate.
  52. --mgfr Get Multi-Stream substream frame rate.
  53. --msgop val Set Multi-Stream substream GOP(suggest GOP = fps-1).
  54. --mggop Get Multi-Stream substream GOP.
  55. --mse Enable Set Multi-Stream Enable : [0]Disable [1]H264 [3]H264+Mjpg.
  56. --mge Get Multi-Stream Enable.
  57. --xuset-timer Enable Set OSD Timer Counting 1:enable 0:disable
  58. --xuset-rtc year month day hour min sec Set OSD RTC
  59. --xuget-rtc Get OSD RTC
  60. --xuset-os Line Block Set OSD Line and Block Size (0~4)
  61. --xuget-os Get OSD Line and Block Size (0~4)
  62. --xuset-oc Font Border Set OSD Font and Border Color 0:Black 1:Red 2:Green 3:Blue 4:White
  63. --xuget-oc Get OSD Font and Border Color 0:Black 1:Red 2:Green 3:Blue 4:White
  64. --xuset-oe Line Block Set OSD Show 1:enable 0:disable
  65. --xuget-oe Get OSD Show 1:enable 0:disable
  66. --xuset-oas Line Block Set OSD Auto Scale 1:enable 0:disable
  67. --xuget-oas Get OSD Auto Scale 1:enable 0:disable
  68. --xuset-oms Stream0 Stream1 Stream2 Set OSD MultiStream Size (0~4)
  69. --xuget-oms Get OSD MultiStream Size (0~4)
  70. --xuset-osp Type Row Col Set OSD Start Row and Col (unit:16)
  71. --xuget-osp Get OSD Start Row and Col (unit:16)
  72. --xuset-ostr Group '.....' Set OSD 2nd String.Group from 0 to 2.8 words per 1 Group.
  73. --xuget-ostr Group Get OSD 2nd String.
  74. --xuset-omssp StreamID Row Col Set OSD Multi stream start row and col.
  75. --xuget-omssp Get OSD Multi stream start raw and col.
  76. --xuset-mde Enable Set Motion detect enable
  77. --xuget-mde Get Motion detect enable
  78. --xuset-mdt Thd Set Motion detect threshold (0~65535)
  79. --xuget-mdt Get Motion detect threshold
  80. --xuset-mdm m1 m2 ... m24 Set Motion detect mask
  81. --xuget-mdm Get Motion detect mask
  82. --xuset-mdr m1 m2 ... m24 Set Motion detect result
  83. --xuget-mdr Get Motion detect result
  84. --xuset-mjb Bitrate Set MJPG Bitrate (bps)
  85. --xuget-mjb Get MJPG Bitrate (bps)
  86. --xuset-if nframe Set H264 reset to IFrame. nframe : reset per nframe.
  87. --xuset-sei Set H264 SEI Header Enable.
  88. --xuget-sei Get H264 SEI Header Enable.
  89. --xuset-gop Set H264 GOP. (1 ~ 4095)
  90. --xuget-gop Get H264 GOP.
  91. --xuset-cvm Set H264 CBR/VBR mode(1:CBR 2:VBR)
  92. --xuget-cvm Get H264 CBR/VBR mode(1:CBR 2:VBR)
  93. --xuset-mir Set Image mirror.
  94. --xuget-mir Get Image mirror.
  95. --xuset-flip Set Image flip.
  96. --xuget-flip Get Image flip.
  97. --xuset-gpio enable out_value Set GPIO ctrl(hex).
  98. --xuget-gpio Get GPIO ctrl.
  99. --xuset-clr Set Image color.
  100. --xuget-clr Get Image color.
  101. --xuset-fde s1 s2 Set Frame drop enable.
  102. --xuget-fde Get Frame drop enable.
  103. --xuset-fdc s1 s2 Set Frame drop value.
  104. --xuget-fdc Get Frame drop value.

Save MJPG frames (/dev/video0 is MJPG interface)

  1. ./SONiX_UVC_TestAP /dev/video0 -c -f mjpg -S

Save H.264 video data (/dev/video1 is H.264 interface, need SONiX UVC Like Driver support)

  1. ./SONiX_UVC_TestAP /dev/video1 -c -f H264 -r

Extension Unit (XU) controls

Add XU ctrls to uvc driver (if uvc driver doesn’t support)

  1. ./SONiX_UVC_TestAP /dev/video1 -a

Get & Set H.264 resolutions & framerates (1280x720, 24fps), Insure getting format before setting format !

  1. ./SONiX_UVC_TestAP /dev/video1 --xuget-fmt --xuset-fmt 1-1

Get & Set H.264 QP/Bitrates(Kbps)

  1. ./SONiX_UVC_TestAP /dev/video1 --xuget-qp --xuset-qp 31 --xuget-br --xuset-br 6882

Get and set bitrate

  1. ./SONiX_UVC_TestAP --xuget-br /dev/video1
  2. ./SONiX_UVC_TestAP --xuset-br 1000 /dev/video1
  3. ./SONiX_UVC_TestAP --xuset-br 1000000 /dev/video1
  4. ./SONiX_UVC_TestAP --xuset-br 10000000 /dev/video1
  5. ./SONiX_UVC_TestAP --xuset-gop 100 /dev/video1

Set framerate

  1. ./SONiX_UVC_TestAP --fr 30 /dev/video1
  2. ./SONiX_UVC_TestAP --msfr 30 /dev/video1

Other settings

  1. ./SONiX_UVC_TestAP --xuset-gop 5 /dev/video1
  2. ./SONiX_UVC_TestAP --xuset-cvm 1 /dev/video1
  3. ./SONiX_UVC_TestAP --xuset-mir 1 /dev/video1
  4. ./SONiX_UVC_TestAP --xuset-flip 1 /dev/video1
  5. ./SONiX_UVC_TestAP --bri-get /dev/video1
  6. ./SONiX_UVC_TestAP --xuget-clr /dev/video1
  7. ./SONiX_UVC_TestAP --xuset-sei /dev/video1
  8. ./SONiX_UVC_TestAP --xuset-if 5 /dev/video1
  9. ./SONiX_UVC_TestAP --xuget-qp /dev/video1
  10. ./SONiX_UVC_TestAP --xuget-gop /dev/video1
  11. ./SONiX_UVC_TestAP --xuget-gop /dev/video1