mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-20 22:27:31 +09:00
aom: update libaom to 0ec86ac7ae1e32a7e70410fa4972a655ec3670a4
This commit is contained in:
parent
bc3f20e378
commit
eb361970c5
438 changed files with 52661 additions and 21905 deletions
78
third_party/aom/examples/build_av1_dec_fuzzer.sh
vendored
Normal file
78
third_party/aom/examples/build_av1_dec_fuzzer.sh
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2019, 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.
|
||||
#
|
||||
###############################################################################
|
||||
# Fuzzer for libaom decoder.
|
||||
# ==========================
|
||||
# Requirements
|
||||
# ---------------------
|
||||
# Clang6.0 or above (must support -fsanitize=fuzzer)
|
||||
#
|
||||
# References:
|
||||
# ---------------------
|
||||
# http://llvm.org/docs/LibFuzzer.html
|
||||
# https://github.com/google/oss-fuzz
|
||||
#
|
||||
# Steps to build / run
|
||||
# ---------------------
|
||||
|
||||
set -eu
|
||||
|
||||
# Have a copy of AOM and a build directory ready.
|
||||
if [[ $# -ne 2 ]]; then
|
||||
echo "Pass in the AOM source tree as first argument, and a build directory "
|
||||
echo "as the second argument. The AOM source tree can be obtained via: "
|
||||
echo " git clone https://aomedia.googlesource.com/aom"
|
||||
exit 2
|
||||
fi
|
||||
if [[ -z "$CC" ]]; then
|
||||
echo "Set the CC environment variable to point to your C compiler."
|
||||
exit 2
|
||||
fi
|
||||
if [[ -z "$CXX" ]]; then
|
||||
echo "Set the CXX environment variable to point to your C++ compiler."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
AOM_DIR=$1
|
||||
BUILD_DIR=$2
|
||||
# Run CMake with address sanitizer enabled and build the codec.
|
||||
# Enable DO_RANGE_CHECK_CLAMP to suppress the noise of integer overflows
|
||||
# in the transform functions. Also set memory limits.
|
||||
EXTRA_C_FLAGS='-DDO_RANGE_CHECK_CLAMP=1 -DAOM_MAX_ALLOCABLE_MEMORY=1073741824'
|
||||
cd "${BUILD_DIR}"
|
||||
cmake "${AOM_DIR}" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONFIG_PIC=1 \
|
||||
-DCONFIG_SCALABILITY=0 -DCONFIG_LOWBITDEPTH=1 -DCONFIG_AV1_ENCODER=0 \
|
||||
-DENABLE_EXAMPLES=0 -DENABLE_DOCS=0 -DENABLE_TESTS=0 -DCONFIG_SIZE_LIMIT=1 \
|
||||
-DDECODE_HEIGHT_LIMIT=12288 -DDECODE_WIDTH_LIMIT=12288 \
|
||||
-DAOM_EXTRA_C_FLAGS="${EXTRA_C_FLAGS}" \
|
||||
-DAOM_EXTRA_CXX_FLAGS="${EXTRA_C_FLAGS}" -DSANITIZE=address
|
||||
|
||||
# Build the codec.
|
||||
make -j$(nproc)
|
||||
|
||||
# Build some libaom utils that are not part of the core lib.
|
||||
$CC -std=c99 -c -I${AOM_DIR} -I${BUILD_DIR} \
|
||||
${AOM_DIR}/common/ivfdec.c -o ${BUILD_DIR}/ivfdec.o
|
||||
|
||||
$CC -std=c99 -c -I${AOM_DIR} -I${BUILD_DIR} \
|
||||
${AOM_DIR}/common/tools_common.c -o ${BUILD_DIR}/tools_common.o
|
||||
|
||||
# Build the av1 fuzzer
|
||||
$CXX -std=c++11 -DDECODER=av1 -I${AOM_DIR} -I${BUILD_DIR} \
|
||||
-fsanitize=fuzzer -Wl,--start-group \
|
||||
${AOM_DIR}/examples/av1_dec_fuzzer.cc -o ${BUILD_DIR}/av1_dec_fuzzer \
|
||||
${BUILD_DIR}/libaom.a ${BUILD_DIR}/ivfdec.o ${BUILD_DIR}/tools_common.o \
|
||||
-Wl,--end-group
|
||||
|
||||
echo "Fuzzer built at ${BUILD_DIR}/av1_dec_fuzzer."
|
||||
echo "Create a corpus directory, copy IVF files in there, and run:"
|
||||
echo " av1_dec_fuzzer CORPUS_DIR"
|
||||
Loading…
Add table
Add a link
Reference in a new issue