xref: /aosp_15_r20/external/libaom/test/dump_obu.sh (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1#!/bin/sh
2## Copyright (c) 2018, 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 dump_obu tool. 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 dump_obu_tests (on a new line).
15##
16. $(dirname $0)/tools_common.sh
17
18readonly dump_obu_test_file="${AOM_TEST_OUTPUT_DIR}/av1_obu_test.ivf"
19
20dump_obu_verify_environment() {
21  if [ ! -e "${YUV_RAW_INPUT}" ]; then
22    elog "The file ${YUV_RAW_INPUT##*/} must exist in LIBAOM_TEST_DATA_PATH."
23    return 1
24  fi
25  if [ "$(dump_obu_available)" = "yes" ]; then
26    if [ -z "$(aom_tool_path dump_obu)" ]; then
27      elog "dump_obu not found in LIBAOM_BIN_PATH, its parent, or child tools/."
28    fi
29  fi
30}
31
32dump_obu_available() {
33  if [ "$(av1_decode_available)" = "yes" ] && \
34     [ "$(av1_encode_available)" = "yes" ]; then
35    echo yes
36  fi
37}
38
39aomenc_available() {
40  if [ -x "$(aom_tool_path aomenc)" ]; then
41    echo yes
42  fi
43}
44
45encode_test_file() {
46  if [ "$(aomenc_available)" = "yes" ]; then
47    local encoder="$(aom_tool_path aomenc)"
48    if [ "$(realtime_only_build)" = "yes" ]; then
49      eval "${encoder}" \
50        $(aomenc_encode_test_rt_params) \
51        $(yuv_raw_input) \
52        --ivf \
53        --output=${dump_obu_test_file} \
54        ${devnull} || return 1
55    else
56      eval "${encoder}" \
57        $(aomenc_encode_test_fast_params) \
58        $(yuv_raw_input) \
59        --ivf \
60        --output=${dump_obu_test_file} \
61        ${devnull} || return 1
62    fi
63    if [ ! -e "${dump_obu_test_file}" ]; then
64      elog "dump_obu test input encode failed."
65      return 1
66    fi
67  fi
68}
69
70dump_obu() {
71  encode_test_file || return 1
72  eval $(aom_tool_path dump_obu) "${dump_obu_test_file}" ${devnull}
73}
74
75dump_obu_tests="dump_obu"
76
77run_tests dump_obu_verify_environment "${dump_obu_tests}"
78