summaryrefslogtreecommitdiff
path: root/icedax/cdda2ogg
diff options
context:
space:
mode:
Diffstat (limited to 'icedax/cdda2ogg')
-rwxr-xr-xicedax/cdda2ogg82
1 files changed, 82 insertions, 0 deletions
diff --git a/icedax/cdda2ogg b/icedax/cdda2ogg
new file mode 100755
index 0000000..0838384
--- /dev/null
+++ b/icedax/cdda2ogg
@@ -0,0 +1,82 @@
+#! /bin/sh
+# Script for processing all audio tracks with an ogg or mp3 decoder
+# based on a news article by Tom Kludy
+# This variant uses named pipes in order to save space.
+# usage: cdda2ogg <name prefix for all ogg/mp3 files>
+
+# specify the sampling program and its options
+# do not specify the track option here!
+CDDA2WAV=${CDDA2WAV:-icedax}
+CDDA2WAV_OPTS=${CDDA2WAV_OPTS:-'-H -P0 -q'}
+
+# for normal use, comment out the next line
+#DEBUG='-d1'
+
+# the post processor is fed through a pipe to avoid space waste
+# specify the post processing program and its options
+case $0 in
+ *ogg|*OGG|*Ogg)
+ # ensure the right suffix for suffixes later
+ suffix=ogg
+ missmsg="Encoder not found. Install one first! (eg. vorbis-tools)"
+ MP_CODER=${MP_CODER:-oggenc}
+ outopt="-o"
+ ;;
+ *mp3|*MP3|*mpeg3|*MPEG3|*Mp3)
+ suffix=mp3
+ missmsg="Encoder not found. Install one first! (eg. lame)"
+ MP_CODER=${MP_CODER:-lame}
+ outopt=""
+ ;;
+ *)
+ echo Unknown target file type: $suffix. Valid names for this application are: cdda2mp3, cdda2ogg.
+ exit 1
+ ;;
+esac
+
+MP_OPTIONS=${MP_OPTIONS:-''}
+
+MP_CODER=$(which $MP_CODER 2>/dev/null)
+if [ ! -x "$MP_CODER" ] ; then
+ echo $missmsg
+ exit 1
+fi
+
+CDDA_DEVICE=${CDDA_DEVICE:-/dev/cdrw}
+export CDDA_DEVICE
+
+FILEPREFIX=${1:-audiotrack}
+
+if [ -e /etc/default/cdda2$suffix ]; then
+ . /etc/default/cdda2$suffix
+fi
+
+if [ -z "$LIST" ] ; then
+ echo Looking for available tracks...
+ # could use list_audio_tracks instead but that would need an extra filter as
+ # well, and this way we do not depend on that symlink
+ LIST="$( $CDDA2WAV -J -vtoc -H 2>&1 | sed -e 's/^[^\ ].*//; s/\.([^)]*)/ /g;s/,//g;')"
+ if [ -z "$LIST" ] ; then
+ echo "ERROR: No valid audio tracks detected"
+ exit 1
+ fi
+fi
+
+echo Fetching `echo $LIST | wc -w` tracks from $CDDA_DEVICE, encoding with $MP_CODER.
+echo Cancel with Ctrl-C, watch out for error messages.
+
+for TRACK in $LIST ; do
+ NAME="`printf "%02d" $TRACK`-$FILEPREFIX.$suffix"
+ echo
+ echo "############ Starting with Track Nr. $TRACK -> $NAME ############"
+ $CDDA2WAV $CDDA2WAV_OPTS -t$TRACK $DEBUG - | \
+ $MP_CODER $MP_OPTIONS - $outopt "$NAME"
+
+ # check result code
+ RES=$?
+ if [ $RES != 0 ] ; then
+ echo File $NAME failed \(result $RES\). Aborted. >&2
+ break
+ fi
+done
+