1#!/bin/bash
2(set -o igncr) 2>/dev/null && set -o igncr; # force bash to ignore \r character
3
4
5
6if  [ "$1" = "x64" ] || [ "$2" = "x64" ] || [ "$#" -eq 0 ]
7    then
8    PLATFORM=_X64
9    ISAC=../x64/Release/ReleaseTest-API_2005.exe
10elif [ "$1" = "LINUX" ] || [ "$2" = "LINUX" ]
11    then
12    PLATFORM=_linux
13    ISAC=../ReleaseTest-API/isacswtest
14else
15    PLATFORM=_2005
16    ISAC=../win32/Release/ReleaseTest-API_2005.exe
17fi
18
19if  [ "$#" -eq 0 ] || [ "$1" = "all" ] || [ "$1" = "wb" ]
20    then
21    LOGFILE=logNormal"$PLATFORM".txt
22    echo "START ISAC WB TEST" > $LOGFILE
23    echo >> $LOGFILE
24
25    INFILES=$(cat InputFiles.txt)
26    SUBSET=$(cat InputFilesFew.txt)
27    CHANNELFILES=$(cat ChannelFiles.txt)
28    CHANNELLIST=($(cat ChannelFiles.txt))
29    INDIR=../data/orig
30    OUTDIR=../dataqa"$PLATFORM"
31    mkdir -p $OUTDIR
32    rm -f $OUTDIR/*
33    
34    idx=0
35    RATE=10000
36    FRAMESIZE=30
37    
38
39    for file in $INFILES # loop over all input files
40      do
41      
42      echo "Input file: " $file
43      echo "-----------------------------------"
44      echo "Instantaneous with RATE " $RATE ", and Frame-size " $FRAMESIZE
45      $ISAC -I -B $RATE -FL $FRAMESIZE -FS 16 $INDIR/"$file" $OUTDIR/i_"$FRAMESIZE"_"$RATE"_"$file" >> $LOGFILE
46      echo
47      
48      name="${CHANNELLIST[$idx]}"
49      echo "Adaptive with channel file: " $name 
50      
51      $ISAC -B $INDIR/${CHANNELLIST[$idx]} -FS 16 $INDIR/"$file" $OUTDIR/a_${name%.*}_"$file" >> $LOGFILE
52      
53      echo
54      echo
55      
56#     alternate between 30 & 60 ms.
57      if [ $FRAMESIZE -eq 30 ]
58	  then
59	  FRAMESIZE=60
60      else
61	  FRAMESIZE=30
62      fi
63      
64#     rate between 10000 to 32000 bits/sec
65      if [ $RATE -le 30000 ]
66	  then
67	  let "RATE=RATE+2000"
68      else
69	  let "RATE=10000"
70      fi
71      
72#     there are only three channel file
73      if [ $idx -ge 2 ]; then
74	  idx=0
75      else
76	  let "idx=idx+1"
77      fi
78      
79    done
80
81    idx=0
82    
83#   loop over the subset of input files
84    for file in $SUBSET 
85      do
86      
87      if [ $idx -eq 0 ]; then
88	  $ISAC -B $INDIR/${CHANNELLIST[0]} -FL 30 -FIXED_FL -FS 16 $INDIR/"$file" $OUTDIR/a30_"$file" >> $LOGFILE
89	  idx=1
90      else
91	  $ISAC -B $INDIR/${CHANNELLIST[0]} -FL 60 -FIXED_FL -FS 16 $INDIR/"$file" $OUTDIR/a60_"$file" >> $LOGFILE
92	  idx=0
93      fi
94    done
95
96    $ISAC -B $INDIR/${CHANNELLIST[0]} -INITRATE 25000 -FL 30 -FS 16 $INDIR/"$file" $OUTDIR/a60_Init25kbps_"$file" >> $LOGFILE
97
98    echo
99    echo WIDEBAND DONE!
100    echo
101    echo
102fi
103
104if  [ "$#" -eq 0 ] || [ "$1" = "all" ] || [ "$1" = "swb" ]
105    then
106
107    LOGFILE=logNormal_SWB"$PLATFORM".txt
108    echo "START ISAC SWB TEST" > $LOGFILE
109    echo >> $LOGFILE
110
111    echo STARTING TO TEST SUPER-WIDEBAND
112    
113    INFILES=$(cat InputFilesSWB.txt)
114    INDIR=../data/origswb
115    OUTDIR=../dataqaswb"$PLATFORM"
116    mkdir -p $OUTDIR
117    rm -f $OUTDIR/*
118    
119    for file in $INFILES
120      do
121      echo
122      echo "Input file: " $file
123      echo "--------------------------------"
124      for RATE in 12000 20000 32000 38000 45000 50000 56000  
125	do
126	
127	echo "Rate " $RATE
128	$ISAC -I -B $RATE -FL 30 -FS 32 $INDIR/"$file" $OUTDIR/swb_"$RATE"_"$file" >> $LOGFILE
129	echo
130	
131      done
132  
133    done
134fi
135
136if  [ "$#" -eq 0 ] || [ "$1" = "all" ] || [ "$1" = "API" ]
137    then
138
139    LOGFILE_API=logNormal_API"$PLATFORM".txt
140    echo
141    echo
142    echo "START ISAC API TEST" > $LOGFILE_API
143    echo >> $LOGFILE_API
144    idx=1
145    echo "                            Test Enforcement of frame-size"
146    echo "========================================================================================"
147    mkdir -p ../FrameSizeLim"$PLATFORM"
148    rm -f ../FrameSizeLim"$PLATFORM"/*
149    echo
150    echo "-- No enforcement; BN 10000"
151    echo
152    $ISAC -B 10000 -FS 16 ../data/orig/speech_and_misc_WB.pcm \
153	../FrameSizeLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
154    let "idx=idx+1"
155    echo
156    echo
157    echo "-- Now Enforce 30 ms frame size with the same bottleneck"
158    echo "There should not be any 60 ms frame"
159    echo
160    $ISAC -B 10000 -FL 30 -FIXED_FL -FS 16 ../data/orig/speech_and_misc_WB.pcm \
161	../FrameSizeLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
162    let "idx=idx+1"
163    echo
164    echo
165    echo "-- No enforcement; BN 32000"
166    echo
167    $ISAC -B 32000 -FS 16 ../data/orig/speech_and_misc_WB.pcm \
168	../FrameSizeLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
169    let "idx=idx+1"
170    echo
171    echo
172    echo "-- Now Enforce 60 ms frame size with the same bottleneck"
173    echo "There should not be any 30 ms frame"
174    echo 
175    $ISAC -B 32000 -FL 60 -FIXED_FL -FS 16 ../data/orig/speech_and_misc_WB.pcm \
176	../FrameSizeLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
177    let "idx=idx+1"
178    echo
179    echo
180    echo
181    echo
182    echo
183
184    echo "                           Test Limiting of Payload Size and Rate"
185    echo "========================================================================================"
186    mkdir -p ../PayloadLim"$PLATFORM"
187    rm -f ../PayloadLim"$PLATFORM"/*
188    echo
189    echo
190    echo "-- No Limit, frame-size 60 ms, WIDEBAND"
191    echo 
192    $ISAC -I -B 32000 -FL 60 -FS 16                ../data/orig/speech_and_misc_WB.pcm \
193	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
194    let "idx=idx+1"
195    echo
196    echo
197    echo "-- Payload-size limit of 250, frame-size 60 ms, WIDEBAND"
198    echo 
199    $ISAC -I -B 32000 -FL 60 -FS 16 -MAX 250       ../data/orig/speech_and_misc_WB.pcm \
200	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
201    let "idx=idx+1"
202    echo
203    echo
204    echo "-- Rate limit of 33 kbps for 60 ms frame-size"
205    echo
206    $ISAC -I -B 32000 -FL 60 -FS 16 -MAXRATE 33000 ../data/orig/speech_and_misc_WB.pcm \
207	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
208    let "idx=idx+1"
209    echo 
210    echo "________________________________________________________"
211    echo
212    echo
213
214    echo "-- No Limit, frame-size 30 ms, WIDEBAND"
215    echo 
216    $ISAC -I -B 32000 -FL 30 -FS 16                ../data/orig/speech_and_misc_WB.pcm \
217	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
218    let "idx=idx+1"
219    echo
220    echo    
221    echo "-- Payload-size limit of 130, frame-size 30 ms, WIDEBAND"
222    echo 
223    $ISAC -I -B 32000 -FL 30 -FS 16 -MAX 130       ../data/orig/speech_and_misc_WB.pcm \
224	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
225    let "idx=idx+1"
226    echo
227    echo
228    echo "-- Rate limit of 33 kbps for 30 ms frame-size, wideband"
229    echo
230    $ISAC -I -B 32000 -FL 30 -FS 16 -MAXRATE 33000 ../data/orig/speech_and_misc_WB.pcm \
231	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
232    let "idx=idx+1"
233    echo
234    echo "________________________________________________________"
235    echo
236    echo
237
238    echo "-- No limit for 32 kbps, 30 ms, SUPER-WIDEBAND"
239    echo
240    $ISAC -I -B 32000 -FL 30 -FS 32          ../data/origswb/jstest_32.pcm \
241	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
242    let "idx=idx+1"
243    echo
244    echo
245    echo "-- Payload limit of 130 bytes for 32 kbps, 30 ms, SUPER-WIDEBAND"
246    echo
247    $ISAC -I -B 32000 -FL 30 -FS 32 -MAX 130 ../data/origswb/jstest_32.pcm \
248	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
249    let "idx=idx+1"
250    echo
251    echo "________________________________________________________"
252    echo
253    echo
254
255    echo "-- No limit, Rate 45 kbps, 30 ms, SUPER-WIDEBAND, 12 kHz"
256    echo
257    $ISAC -I -B 45000 -FL 30 -FS 32               ../data/origswb/jstest_32.pcm \
258	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
259    let "idx=idx+1"
260    echo
261    echo
262    echo "-- Rate limit of 46 kbps for 42 kbps, 30 ms, SUPER-WIDEBAND, 12 kHz"
263    echo
264    $ISAC -I -B 45000 -FL 30 -FS 32 -MAXRATE 46000 ../data/origswb/jstest_32.pcm \
265	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
266    let "idx=idx+1"
267    echo
268    echo
269    echo "-- Payload limit of 170 bytes for 45 kbps, 30 ms, SUPER-WIDEBAND, 12 kHz"
270    echo
271    $ISAC -I -B 45000 -FL 30 -FS 32 -MAX 170       ../data/origswb/jstest_32.pcm \
272	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
273    let "idx=idx+1"
274    echo
275    echo "________________________________________________________"
276    echo
277    echo
278  
279    echo "-- No limit for 56 kbps, 30 ms, SUPER-WIDEBAND, 16 kHz"
280    echo
281    $ISAC -I -B 56000 -FL 30 -FS 32                ../data/origswb/jstest_32.pcm \
282	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
283    let "idx=idx+1"
284    echo
285    echo
286    echo "-- Payload limit of 200 bytes for 56 kbps 30 ms, SUPER-WIDEBAND, 16 kHz"
287    echo
288    $ISAC -I -B 56000 -FL 30 -FS 32 -MAX 200       ../data/origswb/jstest_32.pcm \
289	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
290    let "idx=idx+1"
291    echo
292    echo
293    echo "-- Rate limit of 57 kbps for 56 kbps 30 ms, SUPER-WIDEBAND, 16 kHz"
294    echo
295    $ISAC -I -B 56000 -FL 30 -FS 32 -MAXRATE 57000 ../data/origswb/jstest_32.pcm \
296	../PayloadLim"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
297    let "idx=idx+1"
298    echo
299    echo "________________________________________________________"
300    echo
301    echo
302    echo
303    echo
304    echo
305    
306    echo "                                    Test Trans-Coding"
307    echo "========================================================================================"
308    mkdir -p ../Transcoding"$PLATFORM"
309    rm -f ../Transcoding"$PLATFORM"/*
310    echo
311    echo
312    echo "-- 20 kbps, 30 ms, WIDEBAND"
313    echo
314    $ISAC -I -B 20000 -FL 30 -FS 16          ../data/orig/speech_and_misc_WB.pcm \
315	../Transcoding"$PLATFORM"/APITest_refTrans20WB.pcm >> $LOGFILE_API
316    let "idx=idx+1"
317    echo
318    echo
319    
320    echo "-- 32 kbps trans-coding to 20 kbps, 30 ms, WIDEBAND"
321    echo
322    $ISAC -I -B 32000 -FL 30 -FS 16  -T 20000  ../Transcoding"$PLATFORM"/APITest_32T20.pcm \
323	../data/orig/speech_and_misc_WB.pcm ../Transcoding"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
324    let "idx=idx+1"
325    echo
326    echo "________________________________________________________"
327
328    echo
329    echo
330    echo "-- 38 kbps, 30 ms, SUPER-WIDEBAND"
331    echo
332    $ISAC -I -B 38000 -FL 30 -FS 32          ../data/origswb/jstest_32.pcm \
333	../Transcoding"$PLATFORM"/APITest_refTrans38.pcm >> $LOGFILE_API
334    let "idx=idx+1"
335    echo
336    echo
337    
338    echo "-- 45 kbps trans-coding to 38 kbps, 30 ms, SUPER-WIDEBAND"
339    echo
340    $ISAC -I -B 45000 -FL 30 -FS 32  -T 38000  ../Transcoding"$PLATFORM"/APITest_45T38.pcm \
341	../data/origswb/jstest_32.pcm ../Transcoding"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
342    let "idx=idx+1"
343 
344    echo
345    echo
346    echo "-- 20 kbps, 30 ms, SUPER-WIDEBAND"
347    echo
348    $ISAC -I -B 20000 -FL 30 -FS 32          ../data/origswb/jstest_32.pcm \
349	../Transcoding"$PLATFORM"/APITest_refTrans20SWB.pcm >> $LOGFILE_API
350    let "idx=idx+1"
351
352    echo
353    echo
354    
355    echo "-- 45 kbps trans-coding to 20 kbps, 30 ms, SUPER-WIDEBAND"
356    echo
357    $ISAC -I -B 45000 -FL 30 -FS 32  -T 20000  ../Transcoding"$PLATFORM"/APITest_45T20.pcm \
358	../data/origswb/jstest_32.pcm ../Transcoding"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
359    let "idx=idx+1"
360    echo
361    echo "________________________________________________________"
362    echo
363    echo
364    echo "-- 50 kbps, 30 ms, SUPER-WIDEBAND"
365    echo
366    $ISAC -I -B 50000 -FL 30 -FS 32          ../data/origswb/jstest_32.pcm \
367	../Transcoding"$PLATFORM"/APITest_refTrans50.pcm >> $LOGFILE_API
368    let "idx=idx+1"
369    echo
370    echo
371    
372    echo "-- 56 kbps trans-coding to 50 kbps, 30 ms, SUPER-WIDEBAND"
373    echo
374    $ISAC -I -B 56000 -FL 30 -FS 32  -T 50000  ../Transcoding"$PLATFORM"/APITest_56T50.pcm \
375	../data/origswb/jstest_32.pcm ../Transcoding"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
376    let "idx=idx+1"
377    echo
378    echo
379    
380    echo "-- 56 kbps trans-coding to 20 kbps, 30 ms, SUPER-WIDEBAND"
381    echo
382    $ISAC -I -B 56000 -FL 30 -FS 32  -T 20000 ../Transcoding"$PLATFORM"/APITest_56T20.pcm \
383	../data/origswb/jstest_32.pcm ../Transcoding"$PLATFORM"/APITest_"$idx".pcm >> $LOGFILE_API
384    let "idx=idx+1"
385    echo
386    echo "________________________________________________________"
387    echo
388    echo
389    echo 
390    echo
391    echo
392    
393    echo "                                         Test FEC"
394    echo "========================================================================================"
395    mkdir -p ../FEC"$PLATFORM"
396    rm -f ../FEC"$PLATFORM"/*
397    echo
398    echo
399    echo "-- 32 kbps with transcoding to 20kbps, 30 ms, WIDEBAND, 10% packet loss"
400    $ISAC -I -B 32000 -FL 30 -FS 16 -PL 10 -T 20000 ../FEC"$PLATFORM"/APITest_PL10_WB30_T20.pcm \
401	../data/orig/speech_and_misc_WB.pcm ../FEC"$PLATFORM"/APITest_PL10_WB30.pcm >> $LOGFILE_API
402    let "idx=idx+1"
403    echo
404    echo
405    
406    echo "-- 32 kbps, 60 ms, WIDEBAND, 10% packet loss"
407    $ISAC -I -B 32000 -FL 60 -FS 16 -PL 10 ../data/orig/speech_and_misc_WB.pcm \
408	../FEC"$PLATFORM"/APITest_PL10_WB60.pcm >> $LOGFILE_API
409    let "idx=idx+1"
410    echo
411    echo
412    
413    echo "-- 32 kbps with transcoding to 20 kbps, 30 ms, SUPER-WIDEBAND, 10% packet loss"
414    $ISAC -I -B 32000 -FL 30 -FS 32 -PL 10 -T 20000 ../FEC"$PLATFORM"/APITest_PL10_SWB_8kHz_T20.pcm \
415	../data/origswb/jstest_32.pcm ../FEC"$PLATFORM"/APITest_PL10_SWB_8kHz.pcm >> $LOGFILE_API
416    let "idx=idx+1"
417    echo
418    echo
419
420    echo "-- 45 kbps with Trascoding to 38 kbps, 30 ms, SUPER-WIDEBAND, 10% packet loss"
421    $ISAC -I -B 45000 -FL 30 -FS 32 -PL 10 -T 38000 ../FEC"$PLATFORM"/APITest_PL10_SWB_12kHz_T38.pcm \
422	../data/origswb/jstest_32.pcm ../FEC"$PLATFORM"/APITest_PL10_SWB_12kHz.pcm >> $LOGFILE_API
423    let "idx=idx+1"
424    echo
425    echo
426
427    echo "-- 56 kbps with transcoding to 50 kbps, 30 ms, SUPER-WIDEBAND, 10% packet loss"
428    $ISAC -I -B 56000 -FL 30 -FS 32 -PL 10 -T 50000 ../FEC"$PLATFORM"/APITest_PL10_SWB_16kHz_T50.pcm \
429	../data/origswb/jstest_32.pcm ../FEC"$PLATFORM"/APITest_PL10_SWB_16kHz.pcm >> $LOGFILE_API
430    let "idx=idx+1"
431    echo
432    echo
433fi
434