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