No description
Find a file
Ethan Cheng cbd0e91d89
Some checks are pending
CMake / build (cmake, clang, -G Ninja, clang++, ubuntu-latest-clang-cmake-ninja, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, gcc, , g++, ubuntu-latest-gcc-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, aarch64-linux-gnu-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake, aarch64-linux-gnu-g++, ubuntu-latest-cross-aarch64-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, arm-linux-gnueabihf-gcc, -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake, arm-linux-gnueabihf-g++, ubuntu-latest-cross-aarch32-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, macos-latest-clang-cmake, macos-latest) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-24.04-arm-clang-cmake, ubuntu-24.04-arm) (push) Waiting to run
CMake / build (cmake, clang, , clang++, ubuntu-latest-clang-cmake, ubuntu-latest) (push) Waiting to run
CMake / build (cmake, clang, -DSANITIZE=fuzzer-no-link,address, clang++, ubuntu-latest-clang-cmake-asan-fuzzer, ubuntu-latest) (push) Waiting to run
Redefine hevc examples test modules as cc_binary
This change redefines the `cc_test` modules within the test
directory as `cc_binary` modules.

Previously, these `cc_test` modules were effectively acting as wrappers
around executable binaries, solely for the purpose of generating test
executables. This approach did not allow for the direct installation of
these executables on devices.

Changing these modules to `cc_binary` allows the resulting executables
are produced as standalone binaries, enabling their deployment and
execution on test devices.

Bug: 33315805
Test: 1. m hevcdec
      2. m hevcenc
      3. verifying both binaries exists and can be called
Flag: EXEMPT TEST_ONLY
Change-Id: I70945c15895e2e18eb3fa0d5c109a3d0fdaf7f05
2026-04-01 15:33:37 -07:00
.github/workflows cmake.yml: Add runners to build arm and aarch63 builds 2026-02-22 20:55:28 -08:00
.vscode libhevc: Add VSCode configuration files for Linux & MacOS 2024-10-15 22:50:13 -07:00
cmake cmake: Create a function for add_gtest 2026-03-07 10:09:50 -08:00
common hevcdec: add support for persistent rice adaptation flag 2026-03-16 10:03:26 -07:00
decoder hevcdec: add support for persistent rice adaptation flag 2026-03-16 10:03:26 -07:00
encoder hevcdec: add support for internal color format 444 2026-02-23 10:59:08 -08:00
fuzzer Fix CL for failing targets in git_main-throttled-haiku 2026-04-01 15:33:37 -07:00
test hevcdec: update lib for chroma format idc 422 2026-03-04 15:39:55 -08:00
tests/common Remove unnecessary null checks for function pointers in tests 2026-03-07 20:30:33 -08:00
Android.bp Redefine hevc examples test modules as cc_binary 2026-04-01 15:33:37 -07:00
CMakeLists.txt Add luma inter pred test 2026-03-05 04:59:33 +05:30
FrameInfo.md Decoder: add support for QP and block_type map export in library 2022-08-04 11:40:43 +05:30
libhevc_blocklist.txt Remove assembly functions from CFI blocklist 2021-01-21 16:26:15 -08:00
LICENSE Add LICENSE to fix lint warning 2023-01-25 17:14:53 -08:00
METADATA Add METADATA to libhevc: Apache2=NOTICE 2020-04-28 08:53:23 -07:00
MODULE_LICENSE_APACHE2 Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
NOTICE Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
OWNERS OWNERS: Include avic_OWNERS 2023-08-11 15:54:49 -07:00
PREUPLOAD.cfg point to new repo hooks for mainline uploads 2020-05-26 15:17:47 -07:00
README.md libhevc: Enable support for MacOS 2024-10-01 06:37:42 -07:00

LIBHEVC

Getting Started Document

LibHEVC build steps

Supports:

  • aarch32/aarch64 on Linux.
  • aarch32/aarch64 on Android.
  • x86_32/x86_64 on Linux.
  • aarch64 on Mac.
  • x86_64 on Mac.

Native Builds

Use the following commands for building on the target machine

$ cd external/libhevc
$ mkdir build
$ cd build
$ cmake ..
$ make

Cross-compiler based builds

Building for x86_32 on a x86_64 Linux machine

$ cd external/libhevc
$ mkdir build
$ cd build
$ CFLAGS="-m32" CXXFLAGS="-m32" LDFLAGS="-m32" cmake ..
$ make

Building for aarch32/aarch64

Update 'CMAKE_C_COMPILER', 'CMAKE_CXX_COMPILER', 'CMAKE_C_COMPILER_AR', and 'CMAKE_CXX_COMPILER_AR' in CMAKE_TOOLCHAIN_FILE passed below

$ cd external/libhevc
$ mkdir build
$ cd build

For aarch64

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake
$ make

For aarch32

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake
$ make

Building for android

NOTE: This assumes that you are building on a machine that has Android NDK.

$ cd external/libhevc
$ mkdir build
$ cd build

Armv7 (32-bit)

cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\
    -DHEVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\
    -DANDROID_ABI=armeabi-v7a\
    -DANDROID_PLATFORM=android-23 ../
make

Armv8 (64-bit)

cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\
    -DHEVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\
    -DANDROID_ABI=arm64-v8a\
    -DANDROID_PLATFORM=android-23 ../
make