#!/bin/bash
echo "======================================================="
echo "    Test all camera(rkisp_demo)"
echo "======================================================="
if [ $# -eq 0 ];
then
	echo "If you want to test rkisp/rkaiq camera 1000 times"
	echo "CMD: camera_stresstest.sh 1000"
	exit
fi
#num is test times
TEST_NUM=0;
#cam link num
CAM_NUM=0;
#media node max
MEDIA_MAX=16;
#cif path node name
CIF_PATH="stream_cif"
#isp path node name
ISP_PATH="rkisp_mainpath"
for i in $(seq 0 $MEDIA_MAX); do
	MEDIA_DEV=/dev/media$i
	ISP_NODE=$(media-ctl -d $MEDIA_DEV -e $ISP_PATH)
	CIF_NODE=$(media-ctl -d $MEDIA_DEV -e $CIF_PATH)
	Link=$(media-ctl -d $MEDIA_DEV -p | grep "0 link")

	if echo $ISP_NODE | grep -q "^/dev/video"
	then
		CAM_NUM=$(($CAM_NUM + 1));
		eval VIDEO_NODE$i=$ISP_NODE;
		echo "     Check /dev/media$i is ISP-camera($(eval echo \$VIDEO_NODE$i))"
	elif echo $CIF_NODE | grep -q "^/dev/video"
	then
		CAM_NUM=$(($CAM_NUM + 1));
		if echo $Link | grep -q "0 link"
		then
			CAM_NUM=$(($CAM_NUM - 1));
			eval VIDEO_NODE$i="";
			echo "     Check /dev/media$i didn't link anycamera($(eval echo \$VIDEO_NODE$i)) "
		else
			eval VIDEO_NODE$i=$CIF_NODE;
			echo "     Check /dev/media$i is CIF-camera($(eval echo \$VIDEO_NODE$i))"
		fi
	else
		VID_NUM=$i;
		echo ""
		echo "     Test camera(Cam_num=$CAM_NUM) $1 times"
		echo "======================================================="
	#	break;
	fi
done
VID_NUM=$(($VID_NUM -1));

while [ $TEST_NUM -lt $1 ]
do
	#init test 
	i=0;
	for i in $(seq 0 $CAM_NUM); do
		VIDEO_DEV=$(eval echo \$VIDEO_NODE$i);
		if echo $VIDEO_DEV | grep -q "^/dev/video"
		then
			rkisp_demo --device=$VIDEO_DEV --output=/tmp/video$i.yuv --count=100;
			echo "======================================================="
			echo " camera $(eval echo \$VIDEO_NODE$i) No.($TEST_NUM) out /tmp/video$i.yuv is ok!";
			echo "======================================================="
			sleep 1;
		fi
	done;
	TEST_NUM=$(($TEST_NUM +1));
done;
