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