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 '/cif/{getline a;print a}' /tmp/.v4l2_list | grep video)) 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 14if [ ${#ISP_VIDEO[@]} -eq 0 -a ${#CIF_VIDEO[@]} -eq 0 -a ${#USB_VIDEO[@]} -eq 0 ]; then 15 exit 1 16fi 17 18while true;do 19 NOW=`date` 20 TIME_LABEL="====== Count:$COUNT Time: $NOW ======" 21 echo $TIME_LABEL 22 COUNT=$(expr $COUNT + 1 ) 23 24 for j in ${USB_VIDEO[*]} 25 do 26 echo "====== Capture USB Camera Path $j By v4l2 ======" 27 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 28 29 size=`ls -l /tmp/camera.yuyv | awk '{print $5}'` 30 if [ $size -eq 3072000 ] ;then 31 rm -rf /tmp/camera.yuyv 32 else 33 echo "Exit Capture USB Camera: Capture Wrong Size$size" 34 exit 1 35 fi 36 done 37 38 for i in ISP_VIDEO CIF_VIDEO 39 do 40 eval value=\${${i}[@]} 41 for j in $value 42 do 43 echo "====== Capture ISP or CIF Camera Path $j By ======" 44 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 45 size=`ls -l /tmp/camera.nv12 | awk '{print $5}'` 46 47 if [ $size -eq 2304000 ] ;then 48 rm -rf /tmp/camera.nv12 49 else 50 echo "Exit Capture ISP or CIF Camera: Capture Wrong Size$size" 51 exit 1 52 fi 53 done 54 done 55 56done 57 echo END $TIME_LABEL 58