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
diff --git a/test/aomdec.sh b/test/aomdec.sh
index 94e1a71..1589184 100755
--- a/test/aomdec.sh
+++ b/test/aomdec.sh
@@ -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 @@
# 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 @@
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 @@
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}"
diff --git a/test/simple_decoder.sh b/test/simple_decoder.sh
index 27b3a0e..ac3a07b 100755
--- a/test/simple_decoder.sh
+++ b/test/simple_decoder.sh
@@ -45,7 +45,7 @@
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
diff --git a/test/tools_common.sh b/test/tools_common.sh
index 97cf272..797c664 100755
--- a/test/tools_common.sh
+++ b/test/tools_common.sh
@@ -322,10 +322,10 @@
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}