openh264/test/encoder_binary_comparison/run_PrepareAllTestData.sh

175 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
#*******************************************************************************
# Encoder binary comparison test model
# -- Compared with benchmark version using SHA-1 string
# -- Test bit stream under folder openh264/res
# -- SHA-1 string of benchmark version for all cases of all bit streams
# under folder openh264/test/encoder_binary_comparion/SHA1Table
# -- For more detail,please refer to file AboutTest.
#
#brief:
# -- Prepare test space for all test bit streams
# 1) update codec
# 2) update configure files
# 3) create test space for all test bit streams
# -- Usage: run_PrepareAllTestFolder.sh \
# $AllTestDataFolder \
# $TestBitStreamFolder \
# $CodecFolder \
# $ScriptFolder \
# $SHA1TableFolder#
# -- WorkingDir=openh264/test/encoder_binary_comparison
# -- Before using this script, need to
# cd $WorkingDir
#
# date: 10/06/2014 Created
#*******************************************************************************
#build codec
runBuildCodec()
{
local MakeFileDir="../.."
local CurrentDir=`pwd`
echo "bit type is ${BitType}"
#***************************
#build codec
cd ${MakeFileDir}
if [ "${BitType}" -eq 64 ]
then
make clean
make -B ENABLE64BIT=Yes h264dec h264enc
elif [ "${BitType}" -eq 32 ]
then
make clean
make -B ENABLE64BIT=No h264dec h264enc
else
echo "usage: runBuildCodec \64/32 #bits"
exit 1
fi
cd ${CurrentDir}
echo ""
if [ ! -e ${MakeFileDir}/h264enc ]
then
echo "h264 Encoder build failed"
return 1
elif [ ! -e ${MakeFileDir}/h264dec ]
then
echo "h264 Decoder build failed"
return 1
else
echo "codec build succeed!"
return 0
fi
}
#copy codec related files to TestSpace's codec folder
runCopyFiles()
{
local MakeFileDir="../.."
local ConfigureFileDir="../../testbin"
#copy codec and configure files
cp -p ${MakeFileDir}/h264enc ${CodecFolder}/
cp -p ${MakeFileDir}/h264dec ${CodecFolder}/
cp -p ${ConfigureFileDir}/layer2.cfg ${CodecFolder}/layer0.cfg
cp -p ${ConfigureFileDir}/layer2.cfg ${CodecFolder}/layer1.cfg
cp -p ${ConfigureFileDir}/layer2.cfg ${CodecFolder}/layer2.cfg
cp -p ${ConfigureFileDir}/layer2.cfg ${CodecFolder}/layer3.cfg
cp -p ${ConfigureFileDir}/welsenc.cfg ${CodecFolder}/welsenc.cfg
return 0
}
runPrepareAllFolder()
{
local SHA1TableName=""
local SubFolder=""
local IssueFolder="issue"
local TempDataFolder="TempData"
local ResultFolder="result"
if [ -d $AllTestDataFolder ]
then
./${ScriptFolder}/run_SafeDelete.sh $AllTestDataFolder
fi
for Bitsream in ${SHA1TableFolder}/*.csv
do
StreamName=`echo ${Bitsream} | awk 'BEGIN {FS="/"} {print $NF} ' `
StreamName=`echo ${StreamName} | awk 'BEGIN {FS=".264"} {print $1} ' `
StreamName="${StreamName}.264"
SubFolder="${AllTestDataFolder}/${StreamName}"
SHA1TableName="${StreamName}_AllCases_SHA1_Table.csv"
echo "BitSream is ${StreamName}"
echo "sub folder is ${SubFolder}"
echo ""
mkdir -p ${SubFolder}
mkdir -p ${SubFolder}/${IssueFolder}
mkdir -p ${SubFolder}/${TempDataFolder}
mkdir -p ${SubFolder}/${ResultFolder}
cp ${CodecFolder}/* ${SubFolder}
cp ${ScriptFolder}/* ${SubFolder}
if [ -e ${SHA1TableFolder}/${SHA1TableName} ]
then
cp ${SHA1TableFolder}/${SHA1TableName} ${SubFolder}
fi
done
}
#usage: run_PrepareAllTestFolder.sh ${BitType}
runMain()
{
#parameter check!
if [ ! $# -eq 1 ]
then
echo "usage: run_PrepareAllTestFolder.sh \${BitType}"
exit 1
fi
BitType=$1
AllTestDataFolder="./AllTestData"
CodecFolder="./Codec"
ScriptFolder="./Scripts"
SHA1TableFolder="./SHA1Table"
if [ -d ./Codec ]
then
./Scripts/run_SafeDelete.sh ./Codec
fi
if [ -d ./FinalResult ]
then
./Scripts/run_SafeDelete.sh ./FinalResult
fi
mkdir Codec
mkdir FinalResult
echo ""
echo "building codec.........."
runBuildCodec ${BitType}>build.log
if [ ! $? -eq 0 ]
then
echo "codec build failed ..."
exit 1
fi
echo ""
runCopyFiles
echo ""
echo "preparing All test data folders...."
echo ""
runPrepareAllFolder $AllTestDataFolder $CodecFolder $ScriptFolder $SHA1TableFolder
echo ""
return 0
}
BitType=$1
runMain ${BitType}