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