xref: /OK3568_Linux_fs/debian/overlay-debug/rockchip-test/audio/check_wavs.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/bash
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunWAVS_PATH=$1
4*4882a593SmuzhiyunERR_CNT=0
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunPREFIX_LOG="/tmp/check_logs"
7*4882a593SmuzhiyunTMP_STAT_LOG="tmp_stat.log"
8*4882a593SmuzhiyunTMP_STATS_LOG="tmp_stats.log"
9*4882a593SmuzhiyunSTAT_LOG="stat.log"
10*4882a593SmuzhiyunSTATS_LOG="stats.log"
11*4882a593SmuzhiyunRESULT_LOG="result.log"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunecho "WAVS_PATH: $WAVS_PATH"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyuncheck_prepare()
16*4882a593Smuzhiyun{
17*4882a593Smuzhiyun	if [ -n "$PREFIX_LOG" ]; then
18*4882a593Smuzhiyun		TMP_STAT_LOG="$PREFIX_LOG/$TMP_STAT_LOG"
19*4882a593Smuzhiyun		TMP_STATS_LOG="$PREFIX_LOG/$TMP_STATS_LOG"
20*4882a593Smuzhiyun		STAT_LOG="$PREFIX_LOG/$STAT_LOG"
21*4882a593Smuzhiyun		STATS_LOG="$PREFIX_LOG/$STATS_LOG"
22*4882a593Smuzhiyun		RESULT_LOG="$PREFIX_LOG/$RESULT_LOG"
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun		mkdir -p $PREFIX_LOG
25*4882a593Smuzhiyun	else
26*4882a593Smuzhiyun		echo "PREFIX_LOG is empty"
27*4882a593Smuzhiyun	fi
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	rm $TMP_STAT_LOG -f
30*4882a593Smuzhiyun	rm $TMP_STATS_LOG -f
31*4882a593Smuzhiyun	rm $STAT_LOG -f
32*4882a593Smuzhiyun	rm $STATS_LOG -f
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	echo "there is no error on test loopback" > $RESULT_LOG
35*4882a593Smuzhiyun}
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun# There is don't need to add function keyword on busybox shell
38*4882a593Smuzhiyuncheck_wav()
39*4882a593Smuzhiyun{
40*4882a593Smuzhiyun	wav=$1
41*4882a593Smuzhiyun	threshold_db=-15
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	echo "will check wav: $wav with threshold_db: $threshold_db"
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	sox $wav -n stat 2> $TMP_STAT_LOG
46*4882a593Smuzhiyun	sox $wav -n stats 2> $TMP_STATS_LOG
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	echo "======== $wav stat info: ========" >> $STAT_LOG
49*4882a593Smuzhiyun	cat $TMP_STAT_LOG >> $STAT_LOG
50*4882a593Smuzhiyun	echo >> $STAT_LOG
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun	echo "======== $wav stats info: ========" >> $STATS_LOG
53*4882a593Smuzhiyun	cat $TMP_STATS_LOG >> $STATS_LOG
54*4882a593Smuzhiyun	echo >> $STATS_LOG
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	l_pk=`awk 'NR==5{ printf "%.2f", $5 }' $TMP_STATS_LOG`
57*4882a593Smuzhiyun	r_pk=`awk 'NR==5{ printf "%.2f", $6 }' $TMP_STATS_LOG`
58*4882a593Smuzhiyun	echo "l_pk: $l_pk, r_pk: $r_pk"
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun	last_err=$ERR_CNT
61*4882a593Smuzhiyun	ERR_CNT=$(echo $l_pk $threshold_db $ERR_CNT | awk '{
62*4882a593Smuzhiyun		if ($1 > $2) {
63*4882a593Smuzhiyun			$3+=1;
64*4882a593Smuzhiyun		}
65*4882a593Smuzhiyun	} END {
66*4882a593Smuzhiyun		printf "%d", $3;
67*4882a593Smuzhiyun	}')
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun	if [ $last_err != $ERR_CNT ]; then
70*4882a593Smuzhiyun		echo "ERROR! $wav Left Pk lev dB: $l_pk > $threshold_db" >> $RESULT_LOG
71*4882a593Smuzhiyun	else
72*4882a593Smuzhiyun		echo "OK! $wav Left Pk lev dB: $l_pk < $threshold_db" >> $RESULT_LOG
73*4882a593Smuzhiyun	fi
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	last_err=$ERR_CNT
76*4882a593Smuzhiyun	ERR_CNT=$(echo $r_pk $threshold_db $ERR_CNT | awk '{
77*4882a593Smuzhiyun		if ($1 > $2) {
78*4882a593Smuzhiyun			$3+=1;
79*4882a593Smuzhiyun		}
80*4882a593Smuzhiyun	} END {
81*4882a593Smuzhiyun		printf "%d", $3;
82*4882a593Smuzhiyun	}')
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun	if [ $last_err != $ERR_CNT ]; then
85*4882a593Smuzhiyun		echo "ERROR! $wav Right Pk lev dB: $r_pk > $threshold_db" >> $RESULT_LOG
86*4882a593Smuzhiyun	else
87*4882a593Smuzhiyun		echo "OK! $wav Right Pk lev dB: $r_pk < $threshold_db" >> $RESULT_LOG
88*4882a593Smuzhiyun	fi
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	echo "total ERR_CNT: $ERR_CNT"
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun	#cat $TMP_STATS_LOG | while read line
93*4882a593Smuzhiyun	#do
94*4882a593Smuzhiyun		# echo "line: $line"
95*4882a593Smuzhiyun	#	label=`echo $line | awk '{ print $1 }'`
96*4882a593Smuzhiyun	#	echo "label: $label"
97*4882a593Smuzhiyun	#done
98*4882a593Smuzhiyun}
99*4882a593Smuzhiyun
100*4882a593Smuzhiyuncheck_start()
101*4882a593Smuzhiyun{
102*4882a593Smuzhiyun	cd $WAVS_PATH
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	check_prepare
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	for file in `ls $WAVS_PATH`
107*4882a593Smuzhiyun	do
108*4882a593Smuzhiyun		if [ -f $file ]; then
109*4882a593Smuzhiyun			# echo "found file: $file"
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun			suffix=$(echo "$file" | cut -d . -f2)
112*4882a593Smuzhiyun			# echo "found suffix: $suffix"
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun			if [ $suffix == "wav" ]; then
115*4882a593Smuzhiyun				# echo "found wav file: $file"
116*4882a593Smuzhiyun				check_wav $file
117*4882a593Smuzhiyun			fi
118*4882a593Smuzhiyun		fi
119*4882a593Smuzhiyun	done
120*4882a593Smuzhiyun}
121*4882a593Smuzhiyun
122*4882a593Smuzhiyuncheck_start
123