xref: /OK3568_Linux_fs/debian/overlay-debug/rockchip-test/camera/camera_stresstest_v4l2.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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