Commit f7f04377 authored by Jim Bankoski's avatar Jim Bankoski Committed by Yaowu Xu

aomdec.sh : Make this test create files if needed to test decoder.

If test files don't already exist it calls aomenc to create them.

cherry-picked #ee9ac321 from aom/master

Change-Id: I0e0f33cb60b3492e9106d6c9e2c51f64f71ebb63
parent 5d105b40
......@@ -16,11 +16,13 @@
# Environment check: Make sure input is available.
aomdec_verify_environment() {
if [ ! -e "${VP8_IVF_FILE}" ] || [ ! -e "${AV1_WEBM_FILE}" ] || \
[ ! -e "${AV1_FPM_WEBM_FILE}" ] || \
[ ! -e "${AV1_LT_50_FRAMES_WEBM_FILE}" ] ; then
elog "Libaom test data must exist in LIBVPX_TEST_DATA_PATH."
return 1
if [ "$(av1_encode_available)" != "yes" ] ; then
if [ ! -e "${AV1_WEBM_FILE}" ] || \
[ ! -e "${AV1_FPM_WEBM_FILE}" ] || \
[ ! -e "${AV1_LT_50_FRAMES_WEBM_FILE}" ] ; then
elog "Libaom test data must exist in LIBVPX_TEST_DATA_PATH."
return 1
fi
fi
if [ -z "$(aom_tool_path aomdec)" ]; then
elog "aomdec not found. It must exist in LIBAOM_BIN_PATH or its parent."
......@@ -33,12 +35,18 @@ aomdec_verify_environment() {
# input file path and shifted away. All remaining parameters are passed through
# to aomdec.
aomdec_pipe() {
local readonly decoder="$(aom_tool_path aomdec)"
local readonly input="$1"
shift
cat "${input}" | eval "${AOM_TEST_PREFIX}" "${decoder}" - "$@" ${devnull}
if [ ! -e "${input}" ]; then
local file="${AOM_TEST_OUTPUT_DIR}/test_encode.ivf"
encode_yuv_raw_input_av1 "${file}" --ivf
else
local file="${input}"
fi
cat "${file}" | aomdec - "$@" ${devnull}
}
# Wrapper function for running aomdec. Requires that LIBAOM_BIN_PATH points to
# the directory containing aomdec. $1 one is used as the input file path and
# shifted away. All remaining parameters are passed through to aomdec.
......@@ -49,48 +57,49 @@ aomdec() {
eval "${AOM_TEST_PREFIX}" "${decoder}" "$input" "$@" ${devnull}
}
aomdec_can_decode_vp8() {
if [ "$(vp8_decode_available)" = "yes" ]; then
echo yes
fi
}
aomdec_can_decode_av1() {
if [ "$(av1_decode_available)" = "yes" ]; then
echo yes
fi
}
aomdec_vp8_ivf() {
if [ "$(aomdec_can_decode_vp8)" = "yes" ]; then
aomdec "${VP8_IVF_FILE}" --summary --noblit
fi
}
aomdec_vp8_ivf_pipe_input() {
if [ "$(aomdec_can_decode_vp8)" = "yes" ]; then
aomdec_pipe "${VP8_IVF_FILE}" --summary --noblit
aomdec_aom_ivf_pipe_input() {
if [ "$(aomdec_can_decode_av1)" = "yes" ]; then
aomdec_pipe "${AOM_IVF_FILE}" --summary --noblit
fi
}
aomdec_av1_webm() {
if [ "$(aomdec_can_decode_av1)" = "yes" ] && \
[ "$(webm_io_available)" = "yes" ]; then
aomdec "${AV1_WEBM_FILE}" --summary --noblit
if [ ! -e "${AV1_WEBM_FILE}" ]; then
local file="${AOM_TEST_OUTPUT_DIR}/test_encode.webm"
encode_yuv_raw_input_av1 "${file}"
else
aomdec "${AV1_WEBM_FILE}" --summary --noblit
fi
fi
}
aomdec_av1_webm_frame_parallel() {
if [ "$(aomdec_can_decode_av1)" = "yes" ] && \
[ "$(webm_io_available)" = "yes" ]; then
local file
if [ ! -e "${AV1_WEBM_FILE}" ]; then
file="${AOM_TEST_OUTPUT_DIR}/test_encode.webm"
encode_yuv_raw_input_av1 "${file}" "--ivf --error-resilient=1 "
else
file="${AV1_FPM_WEBM_FILE}"
fi
for threads in 2 3 4 5 6 7 8; do
aomdec "${AV1_FPM_WEBM_FILE}" --summary --noblit --threads=$threads \
aomdec "${file}" --summary --noblit --threads=$threads \
--frame-parallel
done
fi
}
aomdec_av1_webm_less_than_50_frames() {
# TODO(vigneshv): Enable or remove this test and associated code.
DISABLED_aomdec_av1_webm_less_than_50_frames() {
# ensure that reaching eof in webm_guess_framerate doesn't result in invalid
# frames in actual webm_read_frame calls.
if [ "$(aomdec_can_decode_av1)" = "yes" ] && \
......@@ -107,10 +116,9 @@ aomdec_av1_webm_less_than_50_frames() {
fi
}
aomdec_tests="aomdec_vp8_ivf
aomdec_vp8_ivf_pipe_input
aomdec_av1_webm
aomdec_tests="aomdec_av1_webm
aomdec_av1_webm_frame_parallel
aomdec_av1_webm_less_than_50_frames"
aomdec_aom_ivf_pipe_input
DISABLED_aomdec_av1_webm_less_than_50_frames"
run_tests aomdec_verify_environment "${aomdec_tests}"
......@@ -45,7 +45,7 @@ simple_decoder_av1() {
if [ "$(av1_decode_available)" = "yes" ]; then
if [ ! -e "${AV1_IVF_FILE}" ]; then
local file="${AOM_TEST_OUTPUT_DIR}/test_encode.ivf"
encode_yuv_raw_input_av1 "${file}"
encode_yuv_raw_input_av1 "${file}" --ivf
simple_decoder "${file}" av1 || return 1
else
simple_decoder "${AV1_IVF_FILE}" av1 || return 1
......
......@@ -322,10 +322,10 @@ encode_yuv_raw_input_av1() {
if [ "$(av1_encode_available)" = "yes" ]; then
local readonly output="$1"
local readonly encoder="$(aom_tool_path aomenc)"
shift
eval "${encoder}" $(yuv_raw_input) \
--codec=av1 \
--ivf \
$@ \
--limit=5 \
--output="${output}" \
${devnull}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment