echo "-n No lookup. Don't query CDDB, just create and use template"
echo "-N Noninteractive. Never prompt for anything"
echo "-o <type1[,type2]...>"
-echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,wv). Defaults to vorbis"
+echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,wv,ape). Defaults to vorbis"
echo "-p Pad track numbers with 0's (if less than 10 tracks)"
echo "-P Use UNIX pipes to read+encode without wav files"
echo "-r <host1[,host2]...>"
run_command replaygain-mp3 nice $ENCNICE $MP3GAIN $MP3GAINOPTS "${OUTPUTFILES[@]}"
;;
mpc)
- run_command replaygain-mpc nice $ENCNICE $MPPGAIN --auto "${OUTPUTFILES[@]}"
+ run_command replaygain-mpc nice $ENCNICE $MPCGAIN "${OUTPUTFILES[@]}"
+ ;;
+ wv)
+ run_command replaygain-wv nice $ENCNICE $WVGAIN $WVGAINOPTS "${OUTPUTFILES[@]}"
;;
*);;
esac
wv)
run_command tagtrack-$OUTPUT-$1 true
;;
+ ape) # This tagging syntax is suitable for Robert Muth's application 'apetag', the Monkey's Audio
+ # Console port (mac) used for encoding does not have the ability to tag. Andrew.
+ run_command tagtrack-$OUTPUT-$1 nice $ENCNICE "$APETAG" -i "$ABCDETEMPDIR/track$1.ape" -m overwrite \
+ -p artist="$TRACKARTIST" -p album="$DALBUM" -p title="$TRACKNAME" -p track=${TRACKNUM:-$1} \
+ -p year="$CDYEAR" -p genre="$CDGENRE" ${COMMENTOUTPUT:+-p comment="$COMMENTOUTPUT"}
+ ;;
aac)
run_command tagtrack-$OUTPUT-$1 true
;;
# do_encode [tracknumber] [hostname]
# If no hostname is specified, encode locally
# variables used:
-# TRACKS, TRACKNAME, TRACKARTIST, DISTMP3, DISTMP3OPTS, {FOO}ENCODERSYNTAX, OUTPUTTYPE, ENCODEROPTS, DALBUM, DARTIST, ENCNICE, CDYEAR, CDGENRE, COMMENT
+# TRACKS, TRACKNAME, TRACKARTIST, DISTMP3, DISTMP3OPTS, {FOO}ENCODERSYNTAX, OUTPUTTYPE, ENCODEROPTS,
+# DALBUM, DARTIST, ENCNICE, CDYEAR, CDGENRE, COMMENT
do_encode ()
{
if [ "$USEPIPES" = "y" ]; then
TEMPARG="PIPE_$MPCENCODER"
;;
wv)
- TEMPARG="PIPE_$WVCENCODERSYNTAX"
+ TEMPARG="PIPE_$WVENCODERSYNTAX"
;;
aac)
TEMPARG="PIPE_$AACENCODERSYNTAX"
IN="$( eval echo "\$$TEMPARG" )"
else
IN="$ABCDETEMPDIR/track$1.wav"
- case "$OUTPUT" in
- mp3)
- case "$MP3ENCODERSYNTAX" in
- # FIXME # check if mp3enc needs -if for pipes
- # FIXME # I have not been able to find a working mp3enc binary
- mp3enc)
- FILEARG="-if $IN"
- ;;
- *)
- FILEARG="$IN"
- ;;
- esac
- ;;
- *)
- FILEARG="$IN"
- ;;
- esac
fi
# We need IN to proceed, if we are not using pipes.
if [ -s "$IN" -o X"$USEPIPES" = "Xy" ] ; then
RUN_COMMAND=""
# We need a way to store the creation of the files when using PIPES
RUN_COMMAND_PIPES="run_command encodetrack-$OUTPUT-$1 true"
- # When pipping it does not make sense to have a higher nice for
+ # When piping it does not make sense to have a higher nice for
# reading than for encoding, since it will be hold by the
# encoding process. Setting an effective nice, to calm down a
# bit the reading process.
lame|toolame|gogo) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER $MP3ENCODEROPTS "$IN" "$OUT" ;;
bladeenc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER $MP3ENCODEROPTS -quit "$IN" ;;
l3enc|xingmp3enc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER "$IN" "$OUT" $MP3ENCODEROPTS ;;
- # FIXME # Relates to the previous FIXME since it might need the "-if" removed.
mp3enc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER -if "$IN" -of "$OUT" $MP3ENCODEROPTS ;;
esac
;;
%local*%)
case "$OPUSENCODERSYNTAX" in
opusenc)
-
- if [ "$(eval echo ${COMMENT})" != "" ]; then
- case "$COMMENT" in
- *=*) ;;
- *) COMMENT="COMMENT=$COMMENT" ;;
- esac
- fi
- # Tag the file at encode time, as it can't be done after encoding.
- if [ "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --genre "$CDGENRE" --date "$CDYEAR" --comment TRACKNUMBER="$1" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
- else
- $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS "$IN" "$OUT"
- fi
- ;;
+ # Tag the file at encode time, as it can't be done after encoding.
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS --artist "$TRACKARTIST" \
+ --album "$DALBUM" --title "$TRACKNAME" --genre "$CDGENRE" --date "$CDYEAR" --comment TRACKNUMBER="$1" \
+ ${COMMENT:+--comment COMMENT="$COMMENT"} "$IN" "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $OPUSENCODER $OPUSENCODEROPTS "$IN" "$OUT"
+ fi
+ ;;
esac
;;
*)
fi
# Tag the file at encode time, as it can't be done after encoding.
if [ "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
+ $RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" \
+ ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
else
$RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS "$IN" "$OUT"
fi
;;
mpc)
- # MPP/MP+(Musepack) format (.mpc) is done locally, with inline
- # tagging. Uses mpcenc for Musepack SV8 encoding, changed from
- # Musepack SV7 which used mppenc....
- $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" "$IN" "$OUT"
+ # Tag the file inline at encode time.
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" \
+ --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" ${COMMENT:+--comment "$COMMENT"} "$IN" "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MPCENCODER $MPCENCODEROPTS "$IN" "$OUT"
+ fi
;;
wv)
- if [ "$DOTAG" = "y" ]; then
- # wavpack tagging is done inline using Apev2 tags:
- $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS -w Artist="$TRACKARTIST" -w Album="$DALBUM" -w Title="$TRACKNAME" \
- -w Track="$1" -w Genre="$CDGENRE" -w Year="$CDYEAR" -w Comment="$COMMENT" "$IN" -o "$OUT"
- else
- $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS "$IN" -o "$OUT"
- fi
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS -w Artist="$TRACKARTIST" -w Album="$DALBUM" \
+ -w Title="$TRACKNAME" -w Track="$1" -w Genre="$CDGENRE" -w Year="$CDYEAR" ${COMMENT:+-w Comment="$COMMENT"} "$IN" -o "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS "$IN" -o "$OUT"
+ fi
+ ;;
+ ape)
+ $RUN_COMMAND nice $EFFECTIVE_NICE $APENCODER "$IN" "$OUT" $APENCODEROPTS
;;
aac)
- # aac container is only used to catch faac encoded files where faac
- # is compiled without mp4 support (with libmp4v2). Andrew.
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
- ;;
+ # aac container is only used to catch faac encoded files where faac
+ # is compiled without mp4 support (with libmp4v2).
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
+ ;;
m4a)
- case "$AACENCODERSYNTAX" in
- faac)
- if [ "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" \
- --album "$DALBUM" --title "$TRACKNAME" --track ${TRACKNUM:-$1} --year "$CDYEAR" \
- --genre "$CDGENRE" --comment "$COMMENT" -o "$OUT" "$IN"
- else
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
- fi
- ;;
- neroAacEnc)
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -if "$IN" -of "$OUT"
- ;;
- fdkaac)
- if [ "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" \
- --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --date "$CDYEAR" --comment "$COMMENT" "$IN" -o "$OUT"
- else
- $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS "$IN" -o "$OUT"
- fi
- ;;
- esac
+ case "$AACENCODERSYNTAX" in
+ faac)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" \
+ --title "$TRACKNAME" --track ${TRACKNUM:-$1} --year "$CDYEAR" --genre "$CDGENRE" --comment "$COMMENT" -o "$OUT" "$IN"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
+ fi
+ ;;
+ neroAacEnc)
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS -if "$IN" -of "$OUT"
+ ;;
+ fdkaac)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" \
+ --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --date "$CDYEAR" --comment "$COMMENT" "$IN" -o "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS "$IN" -o "$OUT"
+ fi
+ ;;
+ esac
;;
wav)
# In case of wav output we need nothing. Just keep the wavs.
+ # But we need the following to allow full logging and subsequent
+ # successful cleaning of $ABCDETEMPDIR.
+ echo "encodetrack-$OUTPUT-$UTRACKNUM" >> "$ABCDETEMPDIR/status"
;;
esac
$RUN_COMMAND_PIPES
# do_batch_gain
# variables used:
-# MP3GAIN, MP3GAINOPTS, VORBISGAIN, VORBISGAINOPTS, MPPGAIN, MPPGAINOPTS
+# MP3GAIN, MP3GAINOPTS, VORBISGAIN, VORBISGAINOPTS, MPCGAIN
# FIXME #
do_batch_gain ()
{
if [ "$USEPIPES" = "y" ]; then
TEMPARG="PIPERIPPER_$CDROMREADERSYNTAX"
FILEARG="$( eval echo "\$$TEMPARG" )"
- REDIR="y"
+ REDIR=""
PIPE_MESSAGE="and encoding "
else
WAVDATA="$ABCDETEMPDIR/track$UTRACKNUM.wav"
FILEARG="$WAVDATA"
;;
esac
- REDIR="n"
+ REDIR=">&2"
fi
if [ "$1" = "onetrack" ]; then
echo "Grabbing ${PIPE_MESSAGE}tracks $UTRACKNUM - $LASTTRACK as one track ..." >&2
### FIXME ### use an exception for flac, since it uses -o
### FIXME ### Shall we just use -o $FILEARG ??
flac)
- # Avoid problems wit math expressions by unpadding the given UTRACKNUM
+ # Avoid problems with math expressions by unpadding the given UTRACKNUM
STRIPTRACKNUM=$(expr $UTRACKNUM + 0)
nice $READNICE $FLAC -d -f --cue=${READTRACKNUMS:-$STRIPTRACKNUM.1-$(($STRIPTRACKNUM + 1)).0} "$FILEARG" "$CDROM" ;;
cdparanoia)
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" >&2
- else
- nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG"
- fi;;
-
+ nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
cdda2wav | icedax)
if [ "$OSFLAVOUR" = "OSX" ] ; then
# Hei, we have to unmount the device before running anything like cdda2wav/icedax in OSX
CDDA2WAVCDROM="$CDROMID"
fi
fi
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER -D $CDDA2WAVCDROM -t ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" >&2
- else
- nice $READNICE $CDROMREADER -D $CDDA2WAVCDROM -t ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG"
- fi ;;
+ nice $READNICE $CDROMREADER -D $CDDA2WAVCDROM -t ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
## FIXME ## We have an exception for dagrab, since it uses -f
## FIXME ## Shall we just use -f $FILEARG ??
- dagrab)
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER -d "$CDROM" -v $UTRACKNUM "$FILEARG" >&2
- else
- nice $READNICE $CDROMREADER -d "$CDROM" -v $UTRACKNUM "$FILEARG"
- fi ;;
- pird)
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER -j ${READTRACKNUMS:-$UTRACKNUM} "$CDROM" "$FILEARG"
- else
- nice $READNICE $CDROMREADER -j ${READTRACKNUMS:-$UTRACKNUM} "$CDROM" "$PIPERIPPER_pird" > "$FILEARG"
- fi ;;
+ dagrab) nice $READNICE $CDROMREADER -d "$CDROM" -v $UTRACKNUM "$FILEARG" $REDIR;;
+ pird) nice $READNICE $CDROMREADER -j ${READTRACKNUMS:-$UTRACKNUM} "$CDROM" "$FILEARG" $REDIR ;;
cddafs)
# Find the track's mounted path
REALTRACKNUM=$(expr $UTRACKNUM + 0)
FILEPATH=$(find "$FILEPATH" | grep "/$REALTRACKNUM ");
# If the file exists, copy it
if [ -e "$FILEPATH" ] ; then
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER "$FILEPATH" "$FILEARG" >&2
- else
- nice $READNICE $CDROMREADER "$FILEPATH" "$FILEARG"
- fi
+ nice $READNICE $CDROMREADER "$FILEPATH" "$FILEARG" $REDIR
else
false
fi ;;
- debug)
- if [ "$REDIR" = "y" ]; then
- nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -w $UTRACKNUM-[:1] "$FILEARG" >&2
- else
- nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -w $UTRACKNUM-[:1] "$FILEARG"
- fi ;;
+ debug) nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -w $UTRACKNUM-[:1] "$FILEARG" $REDIR ;;
esac
RETURN=$?
# If we get some error or we get some missing wav
SPEEXENCODERSYNTAX=default
MPCENCODERSYNTAX=default
WVENCODERSYNTAX=default
+APENCODERSYNTAX=default
AACENCODERSYNTAX=default
NORMALIZERSYNTAX=default
CUEREADERSYNTAX=default
FLAC=flac
# speex
SPEEXENC=speexenc
-# mpp (Musepack)
+# mpc (Musepack)
MPCENC=mpcenc
# wv (wavpack)
WVENC=wavpack
+# ape
+APENC=mac
+APETAG=apetag
# m4a
-AACENC=faac
+FAAC=faac
+NEROAACENC=neroAacEnc
+FDKAAC=fdkaac
ID3=id3
ID3V2=id3v2
EYED3=eyeD3
VORBISCOMMENT=vorbiscomment
METAFLAC=metaflac
-AACTAG=faac
NEROAACTAG=neroAacTag
-FDKAAC=fdkaac
CDPARANOIA=cdparanoia
CDDA2WAV=icedax
CDSPEED=eject
VORBISGAIN=vorbisgain
MP3GAIN=mp3gain
-MPPGAIN=replaygain
+MPCGAIN=mpcgain
+WVGAIN=wvgain
+# For Wavpack replay gain we set both the default of 'track gain'
+# as well as this option for 'album gain'. Better media players
+# such as vlc can select either or neither. Andrew.
+WVGAINOPTS='-a'
MKCUE=mkcue
MKTOC=cdrdao
DIFF=diff
MPCENCOPTS=
# wv
WVENCOPTS=
+# ape
+# Monkey's Audio Console (mac) chokes without a mode setting
+# so we set one here. Andrew.
+APENCOPTS='-c4000'
# m4a
-AACENCOPTS=
+FAACENCOPTS=
+NEROACENCOPTS=
+FDKAACENCOPTS=
ID3OPTS=
EYED3OPTS=""
spx:*) SPEEXENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
mpc:*) MPCENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
wv:*) WVENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
+ ape:*) APENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
m4a:*|aac:*) AACENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
esac
done
- for OUTPUT in "$(echo "$OUTPUTTYPE" | tr , \ )"; do
- TEMPOUTPUT=$( echo "$OUTPUT" | cut -d: -f1 )
+ # Allows commandline selection of options while using multiple outputs.
+ # Example: abcde -o 'flac:-8,mp3:-b 320' Patch by Matthias Andree.
+ for OUTPUT in $(echo "$OUTPUTTYPE" | tr -d ' ' | tr , ' '); do
+ TEMPOUTPUT=${OUTPUT%%:*}
TEMPOUTPUTTYPE="${TEMPOUTPUTTYPE:+$TEMPOUTPUTTYPE,}$TEMPOUTPUT"
done
OUTPUTTYPE="$TEMPOUTPUTTYPE"
;;
mpc)
[ "$MPCENCODERSYNTAX" = "default" ] && MPCENCODERSYNTAX=mpcenc
- [ "$DOREPLAYGAIN" = "y" ] && NEEDMPPGAIN=y
+ [ "$DOREPLAYGAIN" = "y" ] && NEEDMPCGAIN=y
;;
wv)
[ "$WVENCODERSYNTAX" = "default" ] && WVENCODERSYNTAX=wavpack
[ "$DOTAG" = "y" ]
+ [ "$DOREPLAYGAIN" = "y" ] && NEEDWVGAIN=y
+ ;;
+ ape)
+ [ "$APENCODERSYNTAX" = "default" ] && APENCODERSYNTAX=mac
+ [ "$DOTAG" = "y" ] && NEEDAPETAG=y
;;
aac)
[ "$AACENCODERSYNTAX" = "default" ] && AACENCODERSYNTAX=faac
m4a)
[ "$AACENCODERSYNTAX" = "default" ] && AACENCODERSYNTAX=faac
[ "$DOTAG" = "y" ] && CHECKFAACBUILD=y
+ [ "$AACENCODERSYNTAX" = "neroAacEnc" ] && NEEDNEROAACTAG=y
;;
wav)
if [ "$KEEPWAVS" = "y" ]; then
esac
case "$WVENCODERSYNTAX" in
wavpack)
- WVCENCODEROPTS="${WVENCODEROPTSCLI:-$WVENCOPTS}"
+ WVENCODEROPTS="${WVENCODEROPTSCLI:-$WVENCOPTS}"
WVENCODER="$WVENC"
;;
esac
+case "$APENCODERSYNTAX" in
+ mac)
+ APENCODEROPTS="${APENCODEROPTSCLI:-$APENCOPTS}"
+ APENCODER="$APENC"
+ ;;
+esac
case "$AACENCODERSYNTAX" in
- faac|neroAacEnc|fdkaac)
- AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
- AACENCODER="$AACENC"
+ # Some elaborate 'if' work to keep backward compatability for those
+ # who don't realise that AACENCOPTS does not work with abcde from
+ # version 2.6.1 onwards.
+ faac)
+ if [ -z "$FAACENCOPTS" ] && [ -n "$AACENCOPTS" ]; then
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
+ AACENCODER="$FAAC"
+ else
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$FAACENCOPTS}"
+ AACENCODER="$FAAC"
+ fi
+ ;;
+ neroAacEnc)
+ if [ -z "$NEROAACENCOPTS" ] && [ -n "$AACENCOPTS" ]; then
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
+ AACENCODER="$NEROAACENC"
+ else
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$NEROAACENCOPTS}"
+ AACENCODER="$NEROAACENC"
+ fi
+ ;;
+ fdkaac)
+ if [ -z "$FDKAACENCOPTS" ] && [ -n "$AACENCOPTS" ]; then
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
+ AACENCODER="$FDKAAC"
+ else
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$FDKAACENCOPTS}"
+ AACENCODER="$FDKAAC"
+ fi
;;
esac
###USEPIPESSUPPORT###
# Rippers with USEPIPE support
-# FIXME # Include here all the rippers we can figure out support pipes
PIPERIPPER_cdparanoia="-"
+# Note that by default in abcde cdda2wav redirects to icedax.
+PIPERIPPER_cdda2wav="-"
PIPERIPPER_debug="-"
PIPERIPPER_flac="-c "
PIPERIPPER_pird="-"
# Encoders with USEPIPE support
-# FIXME # Include here all the encoders we can figure out support pipes
+PIPE_mp3enc="-sti"
PIPE_lame="-"
PIPE_bladeenc="-"
PIPE_oggenc="-"
PIPE_opusenc="-"
PIPE_flac="-"
+PIPE_speexenc="-"
+PIPE_mpcenc="-"
+PIPE_wavpack="-"
+PIPE_faac="-"
+# Both neroAacEnc and fdkaac seem to manage without the addition of
+# the 'ignorelength' option in PIPE_$AACENCODERSYNTAX when piping
+# in this manner. Andrew.
+PIPE_neroAacEnc="-"
+PIPE_fdkaac="-"
# Figure out if we can use pipes with the ripper/encoder combination
# exit otherwise
flac)
PIPEENCODERSVARCHECK="PIPE_$FLACENCODERSYNTAX" ;;
spx)
- PIPEENCODERSVARCHECK="PIPE_$SPEEXENCODER" ;;
+ PIPEENCODERSVARCHECK="PIPE_$SPEEXENCODERSYNTAX" ;;
mpc)
- PIPEENCODERSVARCHECK="PIPE_$MPCENCODER" ;;
+ PIPEENCODERSVARCHECK="PIPE_$MPCENCODERSYNTAX" ;;
wv)
- PIPEENCODERSVARCHECK="PIPE_$WVENCODER" ;;
+ PIPEENCODERSVARCHECK="PIPE_$WVENCODERSYNTAX" ;;
+ m4a)
+ PIPEENCODERSVARCHECK="PIPE_$AACENCODERSYNTAX" ;;
+ aac)
+ PIPEENCODERSVARCHECK="PIPE_$AACENCODERSYNTAX" ;;
esac
decho "PIPERIPPERSVARCHECK: $( eval echo "\$$PIPERIPPERSVARCHECK" )"
if [ "$( eval echo "\$$PIPERIPPERSVARCHECK" )" = "$" ] || \
# Make sure a buncha things exist
for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
$OGGENCODER $OPUSENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
- $AACENCODER $WVENCODER $CDDBTOOL \
+ $AACENCODER $WVENCODER $CDDBTOOL $APENCODER \
${NEEDHTTPGET+$HTTPGET} ${NEEDDISTMP3+$DISTMP3} \
${NEEDCOMMENTER+$VORBISCOMMENT} ${NEEDMETAFLAC+$METAFLAC} \
${NEEDNORMALIZER+$NORMALIZER} ${NEEDEJECT+$EJECT} \
${NEEDDISKUTIL+diskutil} ${NEEDCDSPEED+$CDSPEED} \
${NEEDVORBISGAIN+$VORBISGAIN} ${NEEDMP3GAIN+$MP3GAIN} \
- ${NEEDMPPGAIN+$MPPGAIN} ${NEEDCUEREADER+$CUEREADER} \
- ${NEEDCUE2DISCID+$CUE2DISCID}
+ ${NEEDMPCGAIN+$MPCGAIN} ${NEEDCUEREADER+$CUEREADER} \
+ ${NEEDWVGAIN+WVGAIN} ${NEEDAPETAG+$APETAG} \
+ ${NEEDCUE2DISCID+$CUE2DISCID} ${NEEDNEROAACTAG+$NEROAACTAG}
do
checkexec "$X"
done