Advertisement
Guest User

format_tester.pl

a guest
Feb 23rd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.55 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use feature qw(say);
  5.  
  6. my @devices = (
  7.     #'null',
  8.     #'default',
  9.     #'plughw:HDMI,3'
  10.     #'hw:0,3',
  11.     #'hw:2,0',
  12.     'hw:0,0',
  13.     'plughw:0,0',
  14. );
  15. my @rates = (
  16.     '48000',
  17.     '44100',
  18. );
  19. my @formats = (
  20.     'S8',
  21.     'U8',
  22.     'S16_LE',
  23.     'S16_BE',
  24.     'U16_LE',
  25.     'U16_BE',
  26.     'S24_LE',
  27.     'S24_BE',
  28.     'U24_LE',
  29.     'U24_BE',
  30.     'S32_LE',
  31.     'S32_BE',
  32.     'U32_LE',
  33.     'U32_BE',
  34.     'FLOAT_LE',
  35.     'FLOAT_BE',
  36.     'FLOAT64_LE',
  37.     'FLOAT64_BE',
  38.     'IEC958_SUBFRAME_LE',
  39.     'IEC958_SUBFRAME_BE',
  40.     'MU_LAW',
  41.     'A_LAW',
  42.     'IMA_ADPCM',
  43.     'MPEG',
  44.     'GSM',
  45.     'SPECIAL',
  46.     'S24_3LE',
  47.     'S24_3BE',
  48.     'U24_3LE',
  49.     'U24_3BE',
  50.     'S20_3LE',
  51.     'S20_3BE',
  52.     'U20_3LE',
  53.     'U20_3BE',
  54.     'S18_3LE',
  55.     'S18_3BE',
  56.     'U18_3LE',
  57.     'U18_3BE',
  58.     'G723_24',
  59.     'G723_24_1B',
  60.     'G723_40',
  61.     'G723_40_1B',
  62.     'DSD_U8',
  63.     'DSD_U16_LE',
  64. );
  65. foreach my $device (@devices) {
  66.     foreach my $rate (@rates) {
  67.         foreach my $format (@formats) {
  68.             my $cmd = "aplay";
  69.             $cmd .= " --duration=1";
  70.             $cmd .= " --channels=2";
  71.             $cmd .= " --device=$device";
  72.             $cmd .= " --rate=$rate";
  73.             $cmd .= " --format=$format";
  74.             #$cmd .= " --disable-format";
  75.             $cmd .= " --quiet";
  76.             $cmd .= " /dev/zero";
  77.             $cmd .= " 2>&1";
  78.             my $lines = `$cmd`;
  79.             my @lines = split(/\n/, $lines);
  80.             my $result = 'PASS';
  81.             if(@lines > 0) {
  82.                 $result = 'FAIL';
  83.                 print("$result device='$device' rate='$rate' format='$format' $lines[0]\n");
  84.                 #foreach my $line (@lines) {
  85.                     #print("$line\n");
  86.                 #}
  87.             } else {
  88.                 print("$result device='$device' rate='$rate' format='$format'\n");
  89.             }
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement