URI:
       tfbits - scripts - random scripts
  HTML git clone https://git.parazyd.org/scripts
   DIR Log
   DIR Files
   DIR Refs
       ---
       tfbits (922B)
       ---
            1 #!/bin/bash
            2 
            3 me="${0##*/}"
            4 
            5 if [ -w "$TMPDIR" ]; then
            6         tdir="$TMPDIR"
            7 elif [ -w '/tmp' ]; then
            8         tdir='/tmp'
            9 elif [ -w "$HOME" ]; then
           10         tdir="$HOME"
           11 elif [ -w "$PWD" ]; then
           12         tdir="$PWD"
           13 else
           14         echo "$me: error: can't find a writable directory for creating the temporary file" 1>&2 ; exit 1
           15 fi
           16 
           17 tf="$( TMPDIR="$tdir" mktemp "${tdir}/${me}.XXXX" 2>/dev/null )"
           18 if [ -z "$tf" ]; then
           19         echo "$me: error: can't create temporary file" 1>&2 ; exit 1
           20 fi
           21 
           22 checkbits ()
           23 {
           24         local bps abps tbps=0 n=0
           25         bps="$( metaflac --show-bps "$1" )"
           26         flac -ac "$1" 2>/dev/null | fgrep 'wasted_bits' | cut -d '=' -f 3 | cut -f 1 > "$tf"
           27         while read wb; do
           28                 tbps=$(( tbps + ( bps - wb ) ))
           29                 ((n++))
           30         done < "$tf"
           31         abps=$(( ( ( tbps * 10 / n) + 5 ) / 10 )) # (* 10 + 5) / 10 for proper rounding
           32         printf "%2u/%2u bits\t%s\n" "$abps" "$bps" "$1"
           33 }
           34 
           35 for f in "$@"; do
           36         case "$f" in
           37                 *.flac) checkbits "$f" ;;
           38                 *) continue ;;
           39         esac
           40 done
           41 
           42 rm -f "$tf"