tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

decode_to_md5.sh (2720B)


      1 #!/bin/sh
      2 ## Copyright (c) 2016, Alliance for Open Media. All rights reserved.
      3 ##
      4 ## This source code is subject to the terms of the BSD 2 Clause License and
      5 ## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
      6 ## was not distributed with this source code in the LICENSE file, you can
      7 ## obtain it at www.aomedia.org/license/software. If the Alliance for Open
      8 ## Media Patent License 1.0 was not distributed with this source code in the
      9 ## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
     10 ##
     11 ## This file tests the libaom decode_to_md5 example. To add new tests to this
     12 ## file, do the following:
     13 ##   1. Write a shell function (this is your test).
     14 ##   2. Add the function to decode_to_md5_tests (on a new line).
     15 ##
     16 . $(dirname $0)/tools_common.sh
     17 
     18 # Environment check: Make sure input is available:
     19 #   $AV1_IVF_FILE is required.
     20 decode_to_md5_verify_environment() {
     21  if [ "$(av1_encode_available)" != "yes" ] && [ ! -e "${AV1_IVF_FILE}" ]; then
     22    return 1
     23  fi
     24 }
     25 
     26 # Runs decode_to_md5 on $1 and captures the md5 sum for the final frame. $2 is
     27 # interpreted as codec name and used solely to name the output file. $3 is the
     28 # expected md5 sum: It must match that of the final frame.
     29 decode_to_md5() {
     30  local decoder="$(aom_tool_path decode_to_md5)"
     31  local input_file="$1"
     32  local codec="$2"
     33  local expected_md5="$3"
     34  local output_file="${AOM_TEST_OUTPUT_DIR}/decode_to_md5_${codec}"
     35 
     36  if [ ! -x "${decoder}" ]; then
     37    elog "${decoder} does not exist or is not executable."
     38    return 1
     39  fi
     40 
     41  eval "${AOM_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
     42      ${devnull} || return 1
     43 
     44  [ -e "${output_file}" ] || return 1
     45 
     46  local md5_last_frame="$(tail -n1 "${output_file}" | awk '{print $1}')"
     47  local actual_md5="$(echo "${md5_last_frame}" | awk '{print $1}')"
     48  if [ "${actual_md5}" = "${expected_md5}" ]; then
     49    return 0
     50  else
     51    elog "MD5 mismatch:"
     52    elog "Expected: ${expected_md5}"
     53    elog "Actual: ${actual_md5}"
     54    return 1
     55  fi
     56 }
     57 
     58 DISABLED_decode_to_md5_av1() {
     59  # expected MD5 sum for the last frame.
     60  local expected_md5="567dd6d4b7a7170edddbf58bbcc3aff1"
     61  local file="${AV1_IVF_FILE}"
     62 
     63  # TODO(urvang): Check in the encoded file (like libvpx does) to avoid
     64  # encoding every time.
     65  if [ "$(av1_decode_available)" = "yes" ]; then
     66    if [ ! -e "${AV1_IVF_FILE}" ]; then
     67      file="${AOM_TEST_OUTPUT_DIR}/test_encode.ivf"
     68      encode_yuv_raw_input_av1 "${file}" --ivf || return 1
     69    fi
     70    decode_to_md5 "${file}" "av1" "${expected_md5}"
     71  fi
     72 }
     73 
     74 # TODO(tomfinegan): Enable when the bitstream stabilizes.
     75 decode_to_md5_tests="DISABLED_decode_to_md5_av1"
     76 
     77 run_tests decode_to_md5_verify_environment "${decode_to_md5_tests}"