1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/bin/bash
ADDOPT=""
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
. "${BASH_SOURCE%/*}/funcs.sh" "$1"
VIDEO=$2
# Fixes to make these checks work with Libav 12
#
# Change...
# ^TXXX=DESCRIPTION -> TXXX=comment
# ^TDRL -> TDRC
# ^desc -> ?cmt (but keep ^description=)
#
get_metadata() {
local -n outvar=$2 # -n makes it a nameref.
echo Checking $1
cp "$1" /dev/null
outvar=`./metadata "$1" | fgrep = | sort -u | sed -r 's/^encoder=.*//I' | sed -r '/^vendor_id=.*$/Id'`
}
# Detect FFmpeg version
# FFmpeg versions prior to 3.2.x store a title in the file and the encoder version, nothing else...
FFMPEGVERSION=`./metadata -v | sed -n 's/^FFmpeg[^0-9]\([0-9]*\.[0-9]*\).*$/\1/p' | head -n 1`
if [ -z "${FFMPEGVERSION}" ] && [ -z "${LIBAVVERSION}" ];
then
FFMPEGVERSION=`./metadata -v | sed -n 's/^FFmpeg \(.*\)$/\1/p' | head -n 1`
fi
if [ ! -z "${FFMPEGVERSION}" ];
then
echo "FFmpeg version is ${FFMPEGVERSION}"
LIBRARY=ffmpeg
if [[ "${FFMPEGVERSION}" == N* ]];
then
echo "FFmpeg Nightly Build"
VERSION=N
elif (( $(echo "${FFMPEGVERSION} >= 4.3" | bc -l) )); then
echo "FFmpeg > 4.3"
VERSION=4.3
elif (( $(echo "${FFMPEGVERSION} >= 4.2" | bc -l) )); then
echo "FFmpeg > 4.2"
VERSION=4.2
elif (( $(echo "${FFMPEGVERSION} >= 4.0" | bc -l) )); then
echo "FFmpeg > 4.0"
VERSION=4.0
fi
else
echo "Internal error: FFmpeg/Libav version unknown."
exit 99
fi
if [ "${VIDEO}" == "1" ];
then
FILELIST="raven_e.flac raven_d.ogg snowboard.mp4"
else
FILELIST="raven_e.flac raven_d.ogg"
fi
for FILE in ${FILELIST}
do
TAGFILENAME=${FILE%.*}.${DESTTYPE}.tag
TAGFILEPATH=${__dir}/tags/${LIBRARY}${VERSION}/${TAGFILENAME}
TAGFILEPATH=${__dir}/tags/${LIBRARY}${VERSION}/${TAGFILENAME}
get_metadata "${DIRNAME}/${FILE}.${FILEEXT}" TAGS
echo "${TAGS}" > "${TAGFILENAME}"
echo "Compare file: ${TAGFILEPATH}"
echo "Tags found:"
echo "${TAGS}"
cmp -c "${TAGFILEPATH}" "${TAGFILENAME}"
printf "*** PASS ***\n\n"
rm -f "${TAGFILENAME}"
done
echo "OK"
|