Upgrade libavc to v1.6.0 am: ba4a8bac8c am: e31eedadef

Original change: undetermined

Change-Id: I5a81b63aa308fc9e17f1d65979eecf2245c833e0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000..9e7a00e
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,18 @@
+{
+    "configurations": [
+        {
+            "name": "Native",
+            "includePath": [
+                "${workspaceFolder}/**",
+                "${workspaceFolder}/common",
+                "${workspaceFolder}/decoder",
+                "${workspaceFolder}/encoder"
+            ],
+            "defines": [],
+            "cStandard": "c17",
+            "cppStandard": "c++17",
+            "configurationProvider": "ms-vscode.cmake-tools"
+        }
+    ],
+    "version": 4
+}
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..14da830
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,81 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "Run avcenc - Linux",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/build/avcenc",
+            "args": ["../examples/avcenc/enc.cfg"],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}/build",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "gdb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for gdb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ]
+        },
+        {
+            "name": "Run avcenc - Mac",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/build/avcenc",
+            "args": ["../examples/avcenc/enc.cfg"],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}/build",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "lldb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for lldb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ]
+        },
+        {
+            "name": "Run avcdec - Linux",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/build/avcdec",
+            "args": ["../examples/avcdec/dec.cfg"],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}/build",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "gdb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for gdb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ]
+        },
+        {
+            "name": "Run avcdec - Mac",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/build/avcdec",
+            "args": ["../examples/avcdec/dec.cfg"],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}/build",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "lldb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for lldb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3c4aeea
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,19 @@
+{
+    "cmake.buildDirectory": "${workspaceFolder}/build",
+    "cmake.sourceDirectory": "${workspaceFolder}",
+    "cmake.configureArgs": [
+        "-DENABLE_MVC=OFF",
+        "-DENABLE_SVC=OFF",
+        "-DENABLE_TESTS=OFF",
+        "-DCMAKE_C_COMPILER=clang",
+        "-DCMAKE_CXX_COMPILER=clang++"
+    ],
+    "cmake.preferredGenerators": [
+        "Unix Makefiles"
+    ],
+    "cmake.debugConfig": {
+        "avcenc": "avcenc",
+        "avcdec": "avcdec"
+    },
+    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..646fbf8
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,29 @@
+{
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "type": "cmake",
+            "label": "Configure",
+            "command": "configure",
+            "problemMatcher": [
+                "$gcc"
+            ],
+            "group": "build"
+        },
+        {
+            "type": "cmake",
+            "label": "Build",
+            "command": "build",
+            "problemMatcher": [
+                "$gcc"
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            },
+            "dependsOn": [
+                "Configure"
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0c37d3..a32ae8c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,17 @@
 cmake_minimum_required(VERSION 3.9.1)
 project(libavc C CXX)
-enable_language(ASM)
+
+if(NOT DEFINED SYSTEM_NAME)
+  set(SYSTEM_NAME ${CMAKE_HOST_SYSTEM_NAME})
+endif()
+
+if(NOT DEFINED SYSTEM_PROCESSOR)
+  set(SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR})
+endif()
+
+if(NOT "${SYSTEM_NAME}" STREQUAL "Darwin")
+  enable_language(ASM)
+endif()
 
 set(AVC_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
 set(AVC_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}")
@@ -19,6 +30,16 @@
       "And re-run CMake from the build directory.")
 endif()
 
+if("${SYSTEM_NAME}" STREQUAL "Android")
+    find_library(log-lib log QUIET)
+    if(NOT log-lib)
+      message(FATAL_ERROR "Could NOT find log library, retry after installing \
+                           log library at sysroot.")
+    else()
+      message(STATUS "Found log-lib: ${log-lib}")
+    endif()
+endif()
+
 set(THREADS_PREFER_PTHREAD_FLAG TRUE)
 find_package(Threads REQUIRED)
 
diff --git a/METADATA b/METADATA
index cd2d855..d7e98bc 100644
--- a/METADATA
+++ b/METADATA
@@ -8,12 +8,12 @@
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
-    month: 8
-    day: 19
+    month: 10
+    day: 30
   }
   identifier {
     type: "Git"
     value: "https://github.com/ittiam-systems/libavc.git"
-    version: "v1.5.0"
+    version: "v1.6.0"
   }
 }
diff --git a/README.md b/README.md
index 5b0663a..84665b8 100644
--- a/README.md
+++ b/README.md
@@ -51,3 +51,29 @@
 $ 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](https://developer.android.com/ndk/downloads).
+
+```
+$ cd external/libavc
+$ mkdir build
+$ cd build
+```
+
+#### Armv7 (32-bit)
+
+    cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\
+        -DAVC_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\
+        -DAVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\
+        -DANDROID_ABI=arm64-v8a\
+        -DANDROID_PLATFORM=android-23 ../
+    make
\ No newline at end of file
diff --git a/cmake/toolchains/aarch32_toolchain.cmake b/cmake/toolchains/aarch32_toolchain.cmake
index 5fabde2..a556223 100644
--- a/cmake/toolchains/aarch32_toolchain.cmake
+++ b/cmake/toolchains/aarch32_toolchain.cmake
@@ -1,5 +1,5 @@
-set(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR aarch32)
+set(SYSTEM_NAME Linux)
+set(SYSTEM_PROCESSOR aarch32)
 
 # Modify these variables with paths to appropriate compilers that can produce
 # armv7 targets
diff --git a/cmake/toolchains/aarch64_toolchain.cmake b/cmake/toolchains/aarch64_toolchain.cmake
index 5efbf77..b5dab9d 100644
--- a/cmake/toolchains/aarch64_toolchain.cmake
+++ b/cmake/toolchains/aarch64_toolchain.cmake
@@ -1,5 +1,5 @@
-set(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR aarch64)
+set(SYSTEM_NAME Linux)
+set(SYSTEM_PROCESSOR aarch64)
 
 # Modify these variables with paths to appropriate compilers that can produce
 # armv8 targets
diff --git a/cmake/toolchains/android_toolchain.cmake b/cmake/toolchains/android_toolchain.cmake
new file mode 100644
index 0000000..f725a04
--- /dev/null
+++ b/cmake/toolchains/android_toolchain.cmake
@@ -0,0 +1,34 @@
+set(SYSTEM_NAME Android)
+set(CMAKE_SYSTEM_NAME Android)
+
+if(NOT ANDROID_PLATFORM)
+  set(ANDROID_PLATFORM android-23)
+endif()
+
+# Choose target architecture with:
+# -DANDROID_ABI={armeabi-v7a, arm64-v8a, x86, x86_64}
+if(NOT ANDROID_ABI)
+  set(ANDROID_ABI arm64-v8a)
+endif()
+
+if(ANDROID_ABI MATCHES "^armeabi")
+  set(SYSTEM_PROCESSOR aarch32)
+else()
+  set(SYSTEM_PROCESSOR aarch64)
+endif()
+
+# Toolchain files don't have access to cached variables:
+# https://gitlab.kitware.com/cmake/cmake/issues/16170. Set an intermediate
+# environment variable when loaded the first time.
+if(AVC_ANDROID_NDK_PATH)
+  set(ENV{AVC_ANDROID_NDK_PATH} "${AVC_ANDROID_NDK_PATH}")
+else()
+  set(AVC_ANDROID_NDK_PATH "$ENV{AVC_ANDROID_NDK_PATH}")
+endif()
+
+if(NOT AVC_ANDROID_NDK_PATH)
+  message(FATAL_ERROR "AVC_ANDROID_NDK_PATH not set.")
+  return()
+endif()
+
+include("${AVC_ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake")
\ No newline at end of file
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index 468e9d1..85f98ac 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -3,9 +3,9 @@
 
 # Adds compiler options for all targets
 function(libavc_add_compile_options)
-  if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
+  if("${SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${SYSTEM_PROCESSOR}" STREQUAL "arm64")
     add_compile_options(-march=armv8-a)
-  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch32")
+  elseif("${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
     add_compile_options(-march=armv7-a -mfpu=neon)
   else()
     add_compile_options(-msse4.2 -mno-avx)
@@ -34,9 +34,15 @@
 
 # Adds defintions for all targets
 function(libavc_add_definitions)
-  if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
+  if("${SYSTEM_NAME}" STREQUAL "Darwin")
+    if("${SYSTEM_PROCESSOR}" STREQUAL "arm64")
+      add_definitions(-DARMV8 -DDARWIN -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC)
+    else()
+      add_definitions(-DX86 -DDARWIN -DDISABLE_AVX2 -DDEFAULT_ARCH=D_ARCH_X86_GENERIC)
+    endif()
+  elseif("${SYSTEM_PROCESSOR}" STREQUAL "aarch64")
     add_definitions(-DARMV8 -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC)
-  elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch32")
+  elseif("${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
     add_definitions(-DARMV7 -DDEFAULT_ARCH=D_ARCH_ARM_A9Q)
   else()
     add_definitions(-DX86 -DX86_LINUX=1 -DDISABLE_AVX2
@@ -83,6 +89,10 @@
   add_dependencies(${NAME} ${LIB} ${ARG_LIBS})
 
   target_link_libraries(${NAME} ${LIB} ${ARG_LIBS})
+  if("${SYSTEM_NAME}" STREQUAL "Android")
+    target_link_libraries(${NAME} ${log-lib})
+  endif()
+
   if(ARG_FUZZER)
     target_compile_options(${NAME}
                            PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-std=c++17>)
diff --git a/common/common.cmake b/common/common.cmake
index 47ca54b..4b3e8bb 100644
--- a/common/common.cmake
+++ b/common/common.cmake
@@ -27,7 +27,7 @@
 include_directories(${AVC_ROOT}/common/mvc)
 
 # arm/x86 sources
-if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
+if("${SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${SYSTEM_PROCESSOR}" STREQUAL "arm64")
   list(
     APPEND
     LIBAVC_COMMON_ASMS
@@ -59,7 +59,7 @@
 
   include_directories(${AVC_ROOT}/common/arm)
   include_directories(${AVC_ROOT}/common/armv8)
-elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch32")
+elseif("${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
   list(
     APPEND
     LIBAVC_COMMON_ASMS
diff --git a/decoder/arm/ih264d_function_selector.c b/decoder/arm/ih264d_function_selector.c
index 925043b..d111973 100644
--- a/decoder/arm/ih264d_function_selector.c
+++ b/decoder/arm/ih264d_function_selector.c
@@ -64,8 +64,13 @@
 #if defined(ARMV8)
         case ARCH_ARMV8_GENERIC:
         default:
+#ifdef DARWIN
+            ih264d_init_function_ptr_generic(ps_codec);
+            break;
+#else
             ih264d_init_function_ptr_av8(ps_codec);
             break;
+#endif
 #elif !defined(DISABLE_NEON)
         case ARCH_ARM_A5:
         case ARCH_ARM_A7:
diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c
index 16944f4..5d367ed 100644
--- a/decoder/ih264d_api.c
+++ b/decoder/ih264d_api.c
@@ -1628,7 +1628,7 @@
             ps_dec->apv_proc_done_mutex[i] =
                             (UWORD8 *)pv_buf + ((2 * i + 1) * mutex_size);
 
-            ret = ithread_mutex_init(ps_dec->apv_proc_start_mutex[0]);
+            ret = ithread_mutex_init(ps_dec->apv_proc_start_mutex[i]);
             RETURN_IF((ret != IV_SUCCESS), ret);
 
             ret = ithread_mutex_init(ps_dec->apv_proc_done_mutex[i]);
diff --git a/decoder/ih264d_dpb_mgr.c b/decoder/ih264d_dpb_mgr.c
index f5974ba..0f3ff66 100644
--- a/decoder/ih264d_dpb_mgr.c
+++ b/decoder/ih264d_dpb_mgr.c
@@ -18,7 +18,7 @@
  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
 */
 #ifdef __ANDROID__
-#include <log/log.h>
+#include <android/log.h>
 #endif
 #include "ih264_typedefs.h"
 #include "ih264_macros.h"
@@ -39,6 +39,17 @@
 #include "ih264_buf_mgr.h"
 #include "assert.h"
 
+#ifdef __ANDROID__
+#ifndef ALOG
+#define ALOG(priority, tag, ...) ((void)__android_log_print(ANDROID_##priority, tag, __VA_ARGS__))
+#define ALOGE(...) ALOG(LOG_ERROR, NULL, __VA_ARGS__)
+inline int android_errorWriteLog(int tag, const char* subTag) {
+    ALOGE("android_errorWriteLog(%x, %s)", tag, subTag);
+    return 0;
+}
+#endif
+#endif
+
 /*!
  ***************************************************************************
  * \file ih264d_dpb_mgr.c
@@ -719,7 +730,7 @@
     dpb_manager_t *ps_dpb_mgr = ps_dec->ps_dpb_mgr;
     UWORD16 u4_cur_pic_num = ps_dec->ps_cur_slice->u2_frame_num;
     /*< Maximum Picture Number Minus 1 */
-    UWORD16 ui_max_frame_num =
+    UWORD32 ui_max_frame_num =
                     ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1 + 1;
 
     WORD32 i, count = 0;
@@ -765,7 +776,7 @@
             {
                 // diffPicNum is +ve
                 i_temp = (WORD32)u2_pred_frame_num + (WORD32)ui_nextUev;
-                if(i_temp >= ui_max_frame_num)
+                if(i_temp >= (WORD32)ui_max_frame_num)
                     i_temp -= ui_max_frame_num;
             }
             /* Find the dpb with the matching picNum (picNum==frameNum for framePic) */
diff --git a/decoder/ih264d_parse_headers.c b/decoder/ih264d_parse_headers.c
index a92ad8a..ee161d8 100644
--- a/decoder/ih264d_parse_headers.c
+++ b/decoder/ih264d_parse_headers.c
@@ -584,7 +584,7 @@
     UWORD8 i;
     dec_seq_params_t *ps_seq = NULL;
     UWORD8 u1_profile_idc, u1_level_idc, u1_seq_parameter_set_id, u1_mb_aff_flag = 0;
-    UWORD16 i2_max_frm_num;
+    UWORD32 u4_max_frm_num;
     UWORD32 *pu4_bitstrm_buf = ps_bitstrm->pu4_buffer;
     UWORD32 *pu4_bitstrm_ofst = &ps_bitstrm->u4_ofst;
     UWORD8 u1_frm, uc_constraint_set0_flag, uc_constraint_set1_flag;
@@ -794,8 +794,8 @@
     COPYTHECONTEXT("SPS: log2_max_frame_num_minus4",
                     (ps_seq->u1_bits_in_frm_num - 4));
 
-    i2_max_frm_num = (1 << (ps_seq->u1_bits_in_frm_num));
-    ps_seq->u2_u4_max_pic_num_minus1 = i2_max_frm_num - 1;
+    u4_max_frm_num = (1 << (ps_seq->u1_bits_in_frm_num));
+    ps_seq->u2_u4_max_pic_num_minus1 = u4_max_frm_num - 1;
     /*--------------------------------------------------------------------*/
     /* Decode picture order count and related values                      */
     /*--------------------------------------------------------------------*/
diff --git a/decoder/ih264d_structs.h b/decoder/ih264d_structs.h
index cc8e081..8c10aa9 100644
--- a/decoder/ih264d_structs.h
+++ b/decoder/ih264d_structs.h
@@ -343,7 +343,7 @@
     UWORD8 u1_arbitrary_slice_order_allowed_flag;
     UWORD8 u1_redundant_slices_allowed_flag;
     UWORD8 u1_bits_in_frm_num; /** Number of bits in frame num */
-    UWORD16 u2_u4_max_pic_num_minus1; /** Maximum frame num minus 1 */
+    UWORD32 u2_u4_max_pic_num_minus1; /** Maximum frame num minus 1 */
     UWORD8 u1_pic_order_cnt_type; /** 0 - 2 indicates the method to code picture order count */
     UWORD8 u1_log2_max_pic_order_cnt_lsb_minus;
     WORD32 i4_max_pic_order_cntLsb;
diff --git a/decoder/libavcdec.cmake b/decoder/libavcdec.cmake
index 911c328..1b72dd5 100644
--- a/decoder/libavcdec.cmake
+++ b/decoder/libavcdec.cmake
@@ -36,8 +36,8 @@
 
 include_directories(${AVC_ROOT}/decoder)
 
-if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}"
-                                                     STREQUAL "aarch32")
+if("${SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${SYSTEM_PROCESSOR}" STREQUAL "arm64"
+     OR "${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
   list(
     APPEND LIBAVCDEC_ASMS "${AVC_ROOT}/decoder/arm/ih264d_function_selector.c"
     "${AVC_ROOT}/decoder/arm/ih264d_function_selector_a9q.c"
diff --git a/encoder/arm/ih264e_function_selector.c b/encoder/arm/ih264e_function_selector.c
index 2b155ca..fb57e38 100644
--- a/encoder/arm/ih264e_function_selector.c
+++ b/encoder/arm/ih264e_function_selector.c
@@ -119,8 +119,13 @@
         case ARCH_ARM_A57:
         case ARCH_ARM_V8_NEON:
         default:
+#ifdef DARWIN
+            ih264e_init_function_ptr_generic(ps_codec);
+            break;
+#else
             ih264e_init_function_ptr_neon_av8(ps_codec);
             break;
+#endif
 #elif !defined(DISABLE_NEON)
         case ARCH_ARM_A9Q:
         case ARCH_ARM_A9A:
diff --git a/encoder/libavcenc.cmake b/encoder/libavcenc.cmake
index cf7be9c..a8b525c 100644
--- a/encoder/libavcenc.cmake
+++ b/encoder/libavcenc.cmake
@@ -44,7 +44,7 @@
 
 include_directories(${AVC_ROOT}/encoder)
 
-if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
+if("${SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${SYSTEM_PROCESSOR}" STREQUAL "arm64")
   list(
     APPEND
     LIBAVCENC_ASMS
@@ -57,7 +57,7 @@
     "${AVC_ROOT}/encoder/armv8/ime_distortion_metrics_av8.s")
 
   include_directories(${AVC_ROOT}/encoder/armv8)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch32")
+elseif("${SYSTEM_PROCESSOR}" STREQUAL "aarch32")
   list(
     APPEND
     LIBAVCENC_ASMS
diff --git a/fuzzer/avc_dec_fuzzer.cmake b/fuzzer/avc_dec_fuzzer.cmake
index c20aaed..2d8fc3c 100644
--- a/fuzzer/avc_dec_fuzzer.cmake
+++ b/fuzzer/avc_dec_fuzzer.cmake
@@ -1,2 +1,4 @@
-libavc_add_fuzzer(avc_dec_fuzzer libavcdec SOURCES
+if(NOT "${SYSTEM_NAME}" STREQUAL "Darwin")
+    libavc_add_fuzzer(avc_dec_fuzzer libavcdec SOURCES
                   ${AVC_ROOT}/fuzzer/avc_dec_fuzzer.cpp)
+endif()
\ No newline at end of file
diff --git a/fuzzer/avc_enc_fuzzer.cmake b/fuzzer/avc_enc_fuzzer.cmake
index d6cb551..89e70fa 100644
--- a/fuzzer/avc_enc_fuzzer.cmake
+++ b/fuzzer/avc_enc_fuzzer.cmake
@@ -1,2 +1,4 @@
-libavc_add_fuzzer(avc_enc_fuzzer libavcenc SOURCES
+if(NOT "${SYSTEM_NAME}" STREQUAL "Darwin")
+    libavc_add_fuzzer(avc_enc_fuzzer libavcenc SOURCES
                   ${AVC_ROOT}/fuzzer/avc_enc_fuzzer.cpp)
+endif()
\ No newline at end of file