1ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org#!/bin/sh 2ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 3ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## Copyright (c) 2014 The WebM project authors. All Rights Reserved. 4ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 5ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## Use of this source code is governed by a BSD-style license 6ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## that can be found in the LICENSE file in the root of the source 7ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## tree. An additional intellectual property rights grant can be found 8ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## in the file PATENTS. All contributing project authors may 9ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## be found in the AUTHORS file in the root of the source tree. 10ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 11ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## This file tests the libvpx set_maps example. To add new tests to this file, 12ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## do the following: 13ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 1. Write a shell function (this is your test). 14ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 2. Add the function to set_maps_tests (on a new line). 15ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org## 16ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org. $(dirname $0)/tools_common.sh 17ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 18ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org# Environment check: $YUV_RAW_INPUT is required, and set_maps must exist in 19ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org# $LIBVPX_BIN_PATH. 20ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgset_maps_verify_environment() { 21ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ ! -e "${YUV_RAW_INPUT}" ]; then 22ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org echo "Libvpx test data must exist in LIBVPX_TEST_DATA_PATH." 23ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 24ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 25ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ -z "$(vpx_tool_path set_maps)" ]; then 26ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "set_maps not found. It must exist in LIBVPX_BIN_PATH or its parent." 27ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 28ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 29ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 30ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 31ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org# Runs set_maps using the codec specified by $1. 32ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgset_maps() { 33ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local encoder="$(vpx_tool_path set_maps)" 34ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local codec="$1" 35ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local output_file="${VPX_TEST_OUTPUT_DIR}/set_maps_${codec}.ivf" 36ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 37ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org eval "${VPX_TEST_PREFIX}" "${encoder}" "${codec}" "${YUV_RAW_INPUT_WIDTH}" \ 38ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org "${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" \ 39ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org ${devnull} 40ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 41ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ -e "${output_file}" ] || return 1 42ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 43ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 44ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgset_maps_vp8() { 45ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vp8_encode_available)" = "yes" ]; then 46ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org set_maps vp8 || return 1 47ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 48ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 49ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 50ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgset_maps_vp9() { 51ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vp9_encode_available)" = "yes" ]; then 52ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org set_maps vp9 || return 1 53ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 54ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 55ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 56ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgset_maps_tests="set_maps_vp8 57ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org set_maps_vp9" 58ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 59ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgrun_tests set_maps_verify_environment "${set_maps_tests}" 60