libhevc: Update encoder logic to handle iframe interval and bframes

This update improves the encoder's behavior and ensures it runs efficiently
when the iframeinterval is less than or equal to maxbframes. In this
case, the encoder ignores the maxbframes.

Test: ./hevcenc
1 file changed
tree: 959bf4d24070f1116184689547d033277eb3a72b
  1. .github/
  2. cmake/
  3. common/
  4. decoder/
  5. encoder/
  6. fuzzer/
  7. test/
  8. Android.bp
  9. CMakeLists.txt
  10. FrameInfo.md
  11. libhevc_blocklist.txt
  12. LICENSE
  13. METADATA
  14. MODULE_LICENSE_APACHE2
  15. NOTICE
  16. OWNERS
  17. PREUPLOAD.cfg
  18. README.md
README.md

LIBHEVC

Getting Started Document

LibHEVC build steps

Supports:

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

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