|
@@ -295,39 +295,47 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
295
|
295
|
}
|
296
|
296
|
|
297
|
297
|
check_audiostream() {
|
298
|
|
- # Uses mplayer to fetch 128Kb of stream
|
|
298
|
+ # Uses one of mplayer or mpv to retrieve a small amount of stream
|
|
299
|
+ # and attempt to decode it.
|
299
|
300
|
# $1 Stream URL
|
300
|
|
- # $2 size
|
301
|
|
- MPLAYER=$(whereis mplayer|cut -d' ' -f2)
|
302
|
|
- MPV=$(whereis mpv|cut -d' ' -f2)
|
|
301
|
+
|
|
302
|
+ MPLAYER="`which mplayer`"
|
|
303
|
+ MPV="`which mpv`"
|
303
|
304
|
if [ -x $MPLAYER ]
|
304
|
305
|
then
|
305
|
|
- check_audiostream_mplayer "$1" "$2"
|
|
306
|
+ check_audiostream_mplayer "$1"
|
306
|
307
|
elif [ -x $MPV ]
|
307
|
308
|
then
|
308
|
|
- check_audiostream_mpv "$1" "$2"
|
|
309
|
+ check_audiostream_mpv "$1"
|
309
|
310
|
else
|
310
|
311
|
fail "Unable to find mplayer nor mpv"
|
311
|
312
|
fi
|
312
|
313
|
}
|
313
|
314
|
|
314
|
315
|
check_audiostream_mplayer() {
|
315
|
|
- # Uses mplayer to fetch 128Kb of stream
|
|
316
|
+ # Uses mplayer to fetch 128Kb (by default) of stream
|
316
|
317
|
# $1 Stream URL
|
317
|
|
- # $2 size
|
|
318
|
+ # $2 size in kb without the kb suffix
|
|
319
|
+ # $3 mplayer path
|
|
320
|
+
|
318
|
321
|
tmpfile=$(mktemp -t check_audiostream.XXXXXXXXX)
|
319
|
322
|
sz="$2"
|
320
|
323
|
if [ -z "$sz" ]
|
321
|
324
|
then
|
322
|
325
|
sz="128"
|
323
|
326
|
fi
|
|
327
|
+ MPLAYER="$3"
|
|
328
|
+ if [ -z "$MPLAYER" ]
|
|
329
|
+ then
|
|
330
|
+ MPLAYER="`which mplayer`"
|
|
331
|
+ fi
|
324
|
332
|
|
325
|
333
|
sz_kb="${sz}kb"
|
326
|
334
|
expt_sz="`expr $sz \* 8`"
|
327
|
335
|
|
328
|
336
|
if [ "$verbose" -gt 1 ]
|
329
|
337
|
then
|
330
|
|
- logdate INFO "$tc_name: Running mplayer on '$1' for $sz" 3
|
|
338
|
+ logdate INFO "$tc_name: Running mplayer on '$1' for $sz_kb" 3
|
331
|
339
|
fi
|
332
|
340
|
|
333
|
341
|
$MPLAYER -endpos $sz_kb -ao pcm:file=$tmpfile "$1" 1>/dev/null 2>/dev/null
|
|
@@ -335,14 +343,11 @@ check_audiostream_mplayer() {
|
335
|
343
|
bytes=$(du $tmpfile | cut -f1)
|
336
|
344
|
rm $tmpfile 2>/dev/null
|
337
|
345
|
|
338
|
|
-
|
339
|
|
- logdate INFO "$bytes $sz" 3
|
340
|
346
|
if [ "$bytes" -lt $expt_sz ]
|
341
|
347
|
then
|
342
|
|
- fail "mplayer retrieved ${bytes}B of stream instead of expected $sz"
|
|
348
|
+ fail "mplayer retrieved ${bytes}B of stream instead of expected $sz_kb"
|
343
|
349
|
return
|
344
|
350
|
fi
|
345
|
|
- echo "$bytes / $sz"
|
346
|
351
|
if [ "$res" -eq 0 ]
|
347
|
352
|
then
|
348
|
353
|
success "mplayer retrieved $sz of stream on $1"
|
|
@@ -352,30 +357,44 @@ check_audiostream_mplayer() {
|
352
|
357
|
}
|
353
|
358
|
|
354
|
359
|
check_audiostream_mpv() {
|
355
|
|
- # Uses mpv to fetch 128Kb of stream
|
|
360
|
+ # Uses mpv to fetch 4s of audio stream
|
356
|
361
|
# $1 Stream URL
|
357
|
|
- # $2 size
|
|
362
|
+ # $2 time of stream to fetch
|
|
363
|
+ # $3 mpv path
|
358
|
364
|
|
359
|
|
- tmpfile=$(mktemp -t check_audiostream.XXXXXXXXX)
|
360
|
|
- sz="$2"
|
361
|
|
- if [ -z "$sz" ]
|
|
365
|
+ time="$2"
|
|
366
|
+ if [ -z "$time" ]
|
|
367
|
+ then
|
|
368
|
+ time="4"
|
|
369
|
+ fi
|
|
370
|
+ MPV="$3"
|
|
371
|
+ if [ -z "$MPV" ]
|
362
|
372
|
then
|
363
|
|
- sz="128kb"
|
|
373
|
+ MPV="`which mpv`"
|
364
|
374
|
fi
|
365
|
375
|
|
|
376
|
+
|
366
|
377
|
if [ "$verbose" -gt 1 ]
|
367
|
378
|
then
|
368
|
|
- logdate INFO "$tc_name: Running mpv on '$1' for $sz" 3
|
|
379
|
+ logdate INFO "$tc_name: Running mpv on '$1' for ${time}s" 3
|
369
|
380
|
fi
|
370
|
|
- $MPV --vo=null --ao=null --o=$tmpfile --of=wav --length 1 "$1" &> /dev/null
|
371
|
|
- bytes=$(du $tmpfile | cut -f1)
|
372
|
|
- rm $tmpfile 2>/dev/null
|
|
381
|
+ start_time=`date "+%s"`
|
|
382
|
+ $MPV --vo=null --ao=null --o=/dev/null --of=wav --length $time "$1" 1> /dev/null 2>/dev/null
|
|
383
|
+ res=$?
|
|
384
|
+ stop_time=`date "+%s"`
|
|
385
|
+ run_time=`expr $stop_time - $start_time`
|
373
|
386
|
|
374
|
|
- if [ "$bytes" -ge 1 ]
|
|
387
|
+ if [ $run_time -lt $time ]
|
|
388
|
+ then
|
|
389
|
+ fail "mpv stopped running ${run_time} after launch but ${time}s should be received"
|
|
390
|
+ return
|
|
391
|
+ fi
|
|
392
|
+
|
|
393
|
+ if [ $res -eq 0 ]
|
375
|
394
|
then
|
376
|
|
- success "mpv read successfully $1"
|
|
395
|
+ success "mpv retrieved ${time}s of stream on $1"
|
377
|
396
|
else
|
378
|
|
- fail "mpv could not read $1"
|
|
397
|
+ fail "mpv failed to retrieve ${time}s of stream on $1"
|
379
|
398
|
fi
|
380
|
399
|
}
|
381
|
400
|
|