Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/aom/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 8 kB image not shown  

Quelle  aomenc.sh   Sprache: Shell

 
#!/bin/sh
## Copyright (c) 2016, Alliance for Open Media. All rights reserved.
##
## This source code is subject to the terms of the BSD 2 Clause License and
## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
## was not distributed with this source code in the LICENSE file, you can
## obtain it at www.aomedia.org/license/software. If the Alliance for Open
## Media Patent License 1.0 was not distributed with this source code in the
## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
##
## This file tests aomenc using hantro_collage_w352h288.yuv as input. To add
## new tests to this file, do the following:
##   1. Write a shell function (this is your test).
##   2. Add the function to aomenc_tests (on a new line).
##
. $(dirname $0)/tools_common.sh

# Environment check: Make sure input is available.
aomenc_verify_environment() {
  if [ ! -e "${YUV_RAW_INPUT}" ]; then
    elog "The file ${YUV_RAW_INPUT##*/} must exist in LIBAOM_TEST_DATA_PATH."
    return 1
  fi
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    if [ ! -e "${Y4M_NOSQ_PAR_INPUT}" ]; then
      elog "The file ${Y4M_NOSQ_PAR_INPUT##*/} must exist in"
      elog "LIBAOM_TEST_DATA_PATH."
      return 1
    fi
  fi
  if [ -z "$(aom_tool_path aomenc)" ]; then
    elog "aomenc not found. It must exist in LIBAOM_BIN_PATH or its parent."
    return 1
  fi
}

aomenc_can_encode_av1() {
  if [ "$(av1_encode_available)" = "yes" ]; then
    echo yes
  fi
}

# Utilities that echo aomenc input file parameters.
y4m_input_non_square_par() {
  echo ""${Y4M_NOSQ_PAR_INPUT}""
}

y4m_input_720p() {
  echo ""${Y4M_720P_INPUT}""
}

# Wrapper function for running aomenc with pipe input. Requires that
# LIBAOM_BIN_PATH points to the directory containing aomenc. $1 is used as the
# input file path and shifted away. All remaining parameters are passed through
# to aomenc.
aomenc_pipe() {
  local encoder="$(aom_tool_path aomenc)"
  local input="$1"
  shift
  cat "${input}" | eval "${AOM_TEST_PREFIX}" "${encoder}" - \
    --test-decode=fatal \
    "$@" ${devnull}
}

# Wrapper function for running aomenc. Requires that LIBAOM_BIN_PATH points to
# the directory containing aomenc. $1 one is used as the input file path and
# shifted away. All remaining parameters are passed through to aomenc.
aomenc() {
  local encoder="$(aom_tool_path aomenc)"
  local input="$1"
  shift
  eval "${AOM_TEST_PREFIX}" "${encoder}" "${input}" \
    --test-decode=fatal \
    "$@" ${devnull}
}

aomenc_av1_ivf() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AV1_IVF_FILE}"
    if [ -e "${AV1_IVF_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test.ivf"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --ivf \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_ivf_rt() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AV1_IVF_FILE}"
    if [ -e "${AV1_IVF_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test.ivf"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_rt_params) \
      --ivf \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_ivf_use_16bit_internal() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AV1_IVF_FILE}"
    if [ -e "${AV1_IVF_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test_16bit.ivf"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --ivf \
      --use-16bit-internal \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_obu_annexb() {
   if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AV1_OBU_ANNEXB_FILE}"
    if [ -e "${AV1_OBU_ANNEXB_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test.annexb.obu"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --obu \
      --annexb=1 \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_obu_section5() {
   if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AV1_OBU_SEC5_FILE}"
    if [ -e "${AV1_OBU_SEC5_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test.section5.obu"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --obu \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_webm() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ] && \
     [ "$(webm_io_available)" = "yes" ]; then
    local output="${AV1_WEBM_FILE}"
    if [ -e "${AV1_WEBM_FILE}" ]; then
      output="${AOM_TEST_OUTPUT_DIR}/av1_test.webm"
    fi
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_webm_1pass() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ] && \
     [ "$(webm_io_available)" = "yes" ]; then
    local output="${AOM_TEST_OUTPUT_DIR}/av1_test.webm"
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --passes=1 \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_ivf_lossless() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AOM_TEST_OUTPUT_DIR}/av1_lossless.ivf"
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --ivf \
      --output="${output}" \
      --lossless=1 || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_ivf_minq0_maxq0() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ]; then
    local output="${AOM_TEST_OUTPUT_DIR}/av1_lossless_minq0_maxq0.ivf"
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --ivf \
      --output="${output}" \
      --min-q=0 \
      --max-q=0 || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_webm_lag5_frames10() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ] && \
     [ "$(webm_io_available)" = "yes" ]; then
    local lag_total_frames=10
    local lag_frames=5
    local output="${AOM_TEST_OUTPUT_DIR}/av1_lag5_frames10.webm"
    aomenc $(yuv_raw_input) \
      $(aomenc_encode_test_fast_params) \
      --limit=${lag_total_frames} \
      --lag-in-frames=${lag_frames} \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

# TODO(fgalligan): Test that DisplayWidth is different than video width.
aomenc_av1_webm_non_square_par() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ] && \
     [ "$(webm_io_available)" = "yes" ]; then
    local output="${AOM_TEST_OUTPUT_DIR}/av1_non_square_par.webm"
    aomenc $(y4m_input_non_square_par) \
      $(aomenc_encode_test_fast_params) \
      --output="${output}" || return 1

    if [ ! -e "${output}" ]; then
      elog "Output file does not exist."
      return 1
    fi
  fi
}

aomenc_av1_webm_cdf_update_mode() {
  if [ "$(aomenc_can_encode_av1)" = "yes" ] && \
     [ "$(webm_io_available)" = "yes" ]; then
    for mode in 0 1 2; do
      local output="${AOM_TEST_OUTPUT_DIR}/cdf_mode_${mode}.webm"
      aomenc $(yuv_raw_input) \
        $(aomenc_encode_test_fast_params) \
        --cdf-update-mode=${mode} \
        --output="${output}" || return 1

      if [ ! -e "${output}" ]; then
        elog "Output file does not exist."
        return 1
      fi
    done
  fi
}

if [ "$(realtime_only_build)" = "yes" ]; then
  aomenc_tests="aomenc_av1_ivf_rt"
else
  aomenc_tests="aomenc_av1_ivf
                aomenc_av1_ivf_rt
                aomenc_av1_obu_annexb
                aomenc_av1_obu_section5
                aomenc_av1_webm
                aomenc_av1_webm_1pass
                aomenc_av1_ivf_lossless
                aomenc_av1_ivf_minq0_maxq0
                aomenc_av1_ivf_use_16bit_internal
                aomenc_av1_webm_lag5_frames10
                aomenc_av1_webm_non_square_par
                aomenc_av1_webm_cdf_update_mode"
fi

run_tests aomenc_verify_environment "${aomenc_tests}"

Messung V0.5
C=92 H=99 G=95

¤ Dauer der Verarbeitung: 0.31 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.