193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org#!/bin/sh 293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## Copyright (c) 2014 The WebM project authors. All Rights Reserved. 493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## Use of this source code is governed by a BSD-style license 693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## that can be found in the LICENSE file in the root of the source 793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## tree. An additional intellectual property rights grant can be found 893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## in the file PATENTS. All contributing project authors may 993a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## be found in the AUTHORS file in the root of the source tree. 1093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 1193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## This file tests vpxenc using hantro_collage_w352h288.yuv as input. To add 1293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## new tests to this file, do the following: 1393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 1. Write a shell function (this is your test). 1493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 2. Add the function to vpxenc_tests (on a new line). 1593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org## 1693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org. $(dirname $0)/tools_common.sh 1793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 1841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgreadonly TEST_FRAMES=10 1993a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 2093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org# Environment check: Make sure input is available. 2193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgvpxenc_verify_environment() { 2293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org if [ ! -e "${YUV_RAW_INPUT}" ]; then 23ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "The file ${YUV_RAW_INPUT##*/} must exist in LIBVPX_TEST_DATA_PATH." 2493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org return 1 2593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 2641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ -z "$(vpx_tool_path vpxenc)" ]; then 2741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "vpxenc not found. It must exist in LIBVPX_BIN_PATH or its parent." 2841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 2941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 3093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 3193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 3293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgvpxenc_can_encode_vp8() { 3341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ "$(vp8_encode_available)" = "yes" ]; then 3493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org echo yes 3593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 3693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 3793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 3893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgvpxenc_can_encode_vp9() { 3941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ "$(vp9_encode_available)" = "yes" ]; then 4093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org echo yes 4193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 4293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 4393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 44d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org# Echo vpxenc command line parameters allowing use of 45d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org# hantro_collage_w352h288.yuv as input. 46d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.orgyuv_input_hantro_collage() { 47d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org echo ""${YUV_RAW_INPUT}" 48d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --width="${YUV_RAW_INPUT_WIDTH}" 49d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --height="${YUV_RAW_INPUT_HEIGHT}"" 50d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org} 51d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org 52d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org# Echo default vpxenc real time encoding params. $1 is the codec, which defaults 53d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org# to vp8 if unspecified. 54d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.orgvpxenc_rt_params() { 55d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org local readonly codec="${1:-vp8}" 56d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org echo "--codec=${codec} 57d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --buf-initial-sz=500 58d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --buf-optimal-sz=600 59d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --buf-sz=1000 60d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --cpu-used=-5 61d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --end-usage=cbr 62d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --error-resilient=1 63d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --kf-max-dist=90000 64d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --lag-in-frames=0 65d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --max-intra-rate=300 66d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --max-q=56 67d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --min-q=2 68d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --noise-sensitivity=0 69d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --overshoot-pct=50 70d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --passes=1 71d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --profile=0 72d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --resize-allowed=0 73d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --rt 74d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --static-thresh=0 75d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --undershoot-pct=50" 76d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org} 77d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org 7841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# Wrapper function for running vpxenc with pipe input. Requires that 7941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# LIBVPX_BIN_PATH points to the directory containing vpxenc. $1 is used as the 8041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# input file path and shifted away. All remaining parameters are passed through 8141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# to vpxenc. 8241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgvpxenc_pipe() { 8341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly encoder="$(vpx_tool_path vpxenc)" 8441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly input="$1" 8541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org shift 86ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org cat "${input}" | eval "${VPX_TEST_PREFIX}" "${encoder}" - \ 87ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --test-decode=fatal \ 88ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org "$@" ${devnull} 8941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} 9041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 9141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# Wrapper function for running vpxenc. Requires that LIBVPX_BIN_PATH points to 9241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# the directory containing vpxenc. $1 one is used as the input file path and 9341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org# shifted away. All remaining parameters are passed through to vpxenc. 9441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgvpxenc() { 9541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly encoder="$(vpx_tool_path vpxenc)" 96d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org local readonly input="$1" 9741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org shift 98d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org eval "${VPX_TEST_PREFIX}" "${encoder}" "${input}" \ 99ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --test-decode=fatal \ 100ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org "$@" ${devnull} 10141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} 10241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 10393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgvpxenc_vp8_ivf() { 10493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ]; then 10541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8.ivf" 106d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 107d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp8 \ 10841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 10941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --ivf \ 110d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 11141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 11241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 11341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 11441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 11541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 11693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 11793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 11893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 119ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp8_webm() { 120ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ] && \ 121ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 122ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8.webm" 123d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 124d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp8 \ 125ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 126d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 127ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 128ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ ! -e "${output}" ]; then 129ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "Output file does not exist." 130ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 131ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 132ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 133ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 134ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 135d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.orgvpxenc_vp8_webm_rt() { 136d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ] && \ 137d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 138d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8_rt.webm" 139d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 140d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org $(vpxenc_rt_params vp8) \ 141d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 142d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 143d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org elog "Output file does not exist." 144d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org return 1 145d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org fi 146d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org fi 147d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org} 148d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org 149ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp8_webm_2pass() { 150ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ] && \ 151ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 152ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8.webm" 153d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 154d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp8 \ 155ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 156ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --output="${output}" \ 157d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --passes=2 158ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 159ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ ! -e "${output}" ]; then 160ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "Output file does not exist." 161ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 162ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 163ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 164ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 165ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 166ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp8_webm_lag10_frames20() { 167ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ] && \ 168ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 169ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly lag_total_frames=20 170ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly lag_frames=10 171ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8_lag10_frames20.webm" 172d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 173d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp8 \ 174ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --limit="${lag_total_frames}" \ 175ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --lag-in-frames="${lag_frames}" \ 176ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --output="${output}" \ 177ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --auto-alt-ref=1 \ 178d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --passes=2 179ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 180ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ ! -e "${output}" ]; then 181ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "Output file does not exist." 182ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 183ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 184ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 185ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 186ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 18741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgvpxenc_vp8_ivf_piped_input() { 18893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp8)" = "yes" ]; then 18941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp8_piped_input.ivf" 190d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc_pipe $(yuv_input_hantro_collage) \ 191d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp8 \ 192d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 193d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --ivf \ 194d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 19541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 19641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 19741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 19841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 19941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 20093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 20193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 20293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 203ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp9_ivf() { 204ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ]; then 205ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9.ivf" 206d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 207d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 20841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 209ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --ivf \ 210d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 21141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 21241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 21341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 21441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 21541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 21693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 21793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 21893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 219ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp9_webm() { 220ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \ 221ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 222ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9.webm" 223d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 224d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 22541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 226d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 227d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org 228d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 229d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org elog "Output file does not exist." 230d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org return 1 231d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org fi 232d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org fi 233d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org} 234d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org 235d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.orgvpxenc_vp9_webm_rt() { 236d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \ 237d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 238d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9_rt.webm" 239d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 240d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org $(vpxenc_rt_params vp9) \ 241d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --output="${output}" 24241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 24341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 24441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 24541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 24641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 24793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 24893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 24993a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 250ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp9_webm_2pass() { 25141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \ 25241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 25341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9.webm" 254d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 255d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 25641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 25741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --output="${output}" \ 258d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --passes=2 25941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 26041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 26141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 26241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 26341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 26441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 26541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} 26641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 26741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgvpxenc_vp9_ivf_lossless() { 26841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ]; then 26941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9_lossless.ivf" 270d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 271d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 27241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 27341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --ivf \ 27441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --output="${output}" \ 275d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --lossless=1 27641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 27741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 27841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 27941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 28041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 28193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 28293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 28393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 28441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgvpxenc_vp9_ivf_minq0_maxq0() { 28593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ]; then 28641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9_lossless_minq0_maxq0.ivf" 287d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 288d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 28941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --limit="${TEST_FRAMES}" \ 29041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --ivf \ 29141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --output="${output}" \ 29241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org --min-q=0 \ 293d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --max-q=0 294ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 295ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ ! -e "${output}" ]; then 296ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org elog "Output file does not exist." 297ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org return 1 298ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 299ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org fi 300ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org} 301ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org 302ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.orgvpxenc_vp9_webm_lag10_frames20() { 303ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \ 304ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org [ "$(webm_io_available)" = "yes" ]; then 305ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly lag_total_frames=20 306ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly lag_frames=10 307ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9_lag10_frames20.webm" 308d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc $(yuv_input_hantro_collage) \ 309d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --codec=vp9 \ 310ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --limit="${lag_total_frames}" \ 311ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --lag-in-frames="${lag_frames}" \ 312ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --output="${output}" \ 313ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org --passes=2 \ 314d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org --auto-alt-ref=1 31541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 31641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org if [ ! -e "${output}" ]; then 31741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org elog "Output file does not exist." 31841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org return 1 31941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org fi 32093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org fi 32193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org} 32293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 32393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgvpxenc_tests="vpxenc_vp8_ivf 32493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org vpxenc_vp8_webm 325d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc_vp8_webm_rt 326ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org vpxenc_vp8_webm_2pass 327ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org vpxenc_vp8_webm_lag10_frames20 32841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org vpxenc_vp8_ivf_piped_input 32993a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org vpxenc_vp9_ivf 33093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org vpxenc_vp9_webm 331d95585fb0ec024f6abd96f7b02e0df58019d46afjohannkoenig@chromium.org vpxenc_vp9_webm_rt 332ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org vpxenc_vp9_webm_2pass 33341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org vpxenc_vp9_ivf_lossless 334ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org vpxenc_vp9_ivf_minq0_maxq0 335ace65784417788374f0b19ce5a8abd06c9ccd007johannkoenig@chromium.org vpxenc_vp9_webm_lag10_frames20" 33693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.org 33793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgrun_tests vpxenc_verify_environment "${vpxenc_tests}" 338