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 81 82 83 84 85 86 87 88 89 90 91
|
#!/bin/bash
ADDOPT=""
. "${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
cat "$1" > /dev/null
outvar=`./metadata "$1" | fgrep = | sort -u | sed -r 's/^encoder=.*//I'`
}
# Detect FFmpeg or Libav 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`
LIBAVVERSION=`./metadata -v | sed -n 's/^Libav[^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`
LIBAVVERSION=`./metadata -v | sed -n 's/^Libav \(.*\)$/\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
elif (( $(echo "${FFMPEGVERSION} > 3.2" | bc -l) )); then
echo "FFmpeg > 3.2.x"
VERSION=3.2+
else
echo "FFmpeg <= 3.2.x"
VERSION=3.2-
fi
elif [ ! -z "${LIBAVVERSION}" ];
then
echo "Libav version is ${LIBAVVERSION}"
# Using Libav, no known version differences
LIBRARY=libav
VERSION=
else
echo "Internal error: FFmpeg/Libav version unknown."
exit 99
fi
if [ "${VIDEO}" == "1" ];
then
FILELIST="raven_e raven_d snowboard"
else
FILELIST="raven_e raven_d"
fi
for FILE in ${FILELIST}
do
TAGFILE=tags/${LIBRARY}${VERSION}/${FILE}.${DESTTYPE}.tag
get_metadata "${DIRNAME}/${FILE}.${FILEEXT}" TAGS
echo "${TAGS}" > "${FILE}.${DESTTYPE}.tag"
echo "Compare file: ${TAGFILE}"
echo "Tags found:"
echo "${TAGS}"
cmp -c ${TAGFILE} "${FILE}.${DESTTYPE}.tag"
printf "*** PASS ***\n\n"
rm -f "${FILE}.${DESTTYPE}.tag"
done
echo "OK"
|