1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunCOUNT=1 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunv4l2-ctl --list-devices > /tmp/.v4l2_list 6*4882a593SmuzhiyunISP_VIDEO=($(awk '/rkisp_mainpath/{getline a;print a}' /tmp/.v4l2_list)) 7*4882a593SmuzhiyunCIF_VIDEO=($(awk '/stream_cif/{getline a;print a}' /tmp/.v4l2_list)) 8*4882a593SmuzhiyunUSB_VIDEO=($(awk '/usb/{getline a;print a}' /tmp/.v4l2_list)) 9*4882a593Smuzhiyunecho "=======================================================" 10*4882a593Smuzhiyunecho " Test all Cameras (By v4l2) " 11*4882a593Smuzhiyunecho "=======================================================" 12*4882a593Smuzhiyunecho "Found ${#ISP_VIDEO[@]} isp cameras, ${#CIF_VIDEO[@]} cif cameras, ${#USB_VIDEO[@]} usb cameras" 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunwhile true;do 16*4882a593Smuzhiyun NOW=`date` 17*4882a593Smuzhiyun TIME_LABEL="====== Count:$COUNT Time: $NOW ======" 18*4882a593Smuzhiyun echo $TIME_LABEL 19*4882a593Smuzhiyun COUNT=$(expr $COUNT + 1 ) 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun for j in ${USB_VIDEO[*]} 22*4882a593Smuzhiyun do 23*4882a593Smuzhiyun echo "====== Capture USB Camera Path $j By v4l2 ======" 24*4882a593Smuzhiyun v4l2-ctl -d "$j" --set-fmt-video=width=640,height=480,pixelformat=YUYV --stream-mmap=3 --stream-count=5 --stream-poll --stream-to=/tmp/camera.yuyv 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun size=`ls -l /tmp/camera.yuyv | awk '{print $5}'` 27*4882a593Smuzhiyun if [ $size -eq 3072000 ] ;then 28*4882a593Smuzhiyun rm -rf /tmp/camera.yuyv 29*4882a593Smuzhiyun else 30*4882a593Smuzhiyun echo "Exit Capture USB Camera: Capture Wrong Size$size" 31*4882a593Smuzhiyun exit 1 32*4882a593Smuzhiyun fi 33*4882a593Smuzhiyun done 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun for i in ISP_VIDEO CIF_VIDEO 36*4882a593Smuzhiyun do 37*4882a593Smuzhiyun eval value=\${${i}[@]} 38*4882a593Smuzhiyun for j in $value 39*4882a593Smuzhiyun do 40*4882a593Smuzhiyun echo "====== Capture ISP or CIF Camera Path $j By ======" 41*4882a593Smuzhiyun v4l2-ctl -d "$j" --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap=3 --stream-count=5 --stream-poll --stream-to=/tmp/camera.nv12 42*4882a593Smuzhiyun size=`ls -l /tmp/camera.nv12 | awk '{print $5}'` 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun if [ $size -eq 2304000 ] ;then 45*4882a593Smuzhiyun rm -rf /tmp/camera.nv12 46*4882a593Smuzhiyun else 47*4882a593Smuzhiyun echo "Exit Capture ISP or CIF Camera: Capture Wrong Size$size" 48*4882a593Smuzhiyun exit 1 49*4882a593Smuzhiyun fi 50*4882a593Smuzhiyun done 51*4882a593Smuzhiyun done 52*4882a593Smuzhiyun 53*4882a593Smuzhiyundone 54*4882a593Smuzhiyun echo END $TIME_LABEL 55