diff -urN a/debian/changelog b/debian/changelog
--- a/debian/changelog	2022-01-20 06:09:01.000000000 +0000
+++ b/debian/changelog	2022-02-13 01:38:45.715316476 +0000
@@ -1,3 +1,9 @@
+chromium (99.0.4818.0-0.1raptor0) experimental; urgency=low
+
+  * POWER build for RCS systems
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net>  Mon, 07 Feb 2022 12:57:00 -0500
+
 chromium (99.0.4818.0-0.1) experimental; urgency=low
 
   * Non-maintainer upload.
diff -urN a/debian/control b/debian/control
--- a/debian/control	2022-01-20 06:08:17.000000000 +0000
+++ b/debian/control	2022-02-13 01:38:45.715316476 +0000
@@ -102,7 +102,7 @@
  fonts-ipafont-mincho,
 
 Package: chromium
-Architecture: i386 amd64 arm64 armhf
+Architecture: i386 amd64 arm64 armhf ppc64el
 Built-Using: ${Built-Using}
 Depends:
  ${misc:Depends},
@@ -146,7 +146,7 @@
  ro, ru, sk, sl, sr, sv, sw, ta, te, th, tr, uk, vi, zh-CN, zh-TW
 
 Package: chromium-shell
-Architecture: i386 amd64 arm64 armhf
+Architecture: i386 amd64 arm64 armhf ppc64el
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -163,7 +163,7 @@
  (the content shell).
 
 Package: chromium-driver
-Architecture: i386 amd64 arm64 armhf
+Architecture: i386 amd64 arm64 armhf ppc64el
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -176,7 +176,7 @@
  automatic webdriver.
 
 Package: chromium-common
-Architecture: i386 amd64 arm64 armhf
+Architecture: i386 amd64 arm64 armhf ppc64el
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -202,7 +202,7 @@
  packages.
 
 Package: chromium-sandbox
-Architecture: i386 amd64 arm64 armhf
+Architecture: i386 amd64 arm64 armhf ppc64el
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
diff -urN a/debian/patches/fixes/use-system-terser.patch b/debian/patches/fixes/use-system-terser.patch
--- a/debian/patches/fixes/use-system-terser.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/fixes/use-system-terser.patch	2022-02-13 01:38:45.715316476 +0000
@@ -0,0 +1,13 @@
+Index: chromium-99.0.4818.0/chrome/browser/resources/tools/optimize_webui.py
+===================================================================
+--- chromium-99.0.4818.0.orig/chrome/browser/resources/tools/optimize_webui.py
++++ chromium-99.0.4818.0/chrome/browser/resources/tools/optimize_webui.py
+@@ -218,7 +218,7 @@ def _optimize(in_folder, args):
+     # Pass the JS files through Terser and write the output to its final
+     # destination.
+     for index, js_out_file in enumerate(args.js_out_files):
+-      node.RunNode([node_modules.PathToTerser(),
++      node.RunNode(['/usr/bin/terser',
+                     os.path.join(tmp_out_dir, js_out_file),
+                     '--comments', '/Copyright|license|LICENSE|\<\/?if/',
+                     '--output', os.path.join(out_path, js_out_file)])
diff -urN a/debian/patches/ppc64le/breakpad/0001-Implement-support-for-ppc64-on-Linux.patch b/debian/patches/ppc64le/breakpad/0001-Implement-support-for-ppc64-on-Linux.patch
--- a/debian/patches/ppc64le/breakpad/0001-Implement-support-for-ppc64-on-Linux.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/breakpad/0001-Implement-support-for-ppc64-on-Linux.patch	2022-02-13 01:38:45.719316006 +0000
@@ -0,0 +1,856 @@
+From cda9400739dfa064907d822f00578bb51b24a404 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Fri, 17 Aug 2018 14:18:33 -0500
+Subject: [PATCH] Implement support for ppc64 on Linux
+
+This patch implements support for the ppc64 architecture on Linux systems.
+
+Notable changes include:
+* Modification of tests to support non-4K page sizes
+* minidump_writer: Determine size of stack to capture based on page size
+* dump_writer_common: Introduce member function GetVectorRegisters to
+  ThreadInfo on ppc64 systems. This allows Altivec/VMX registers to be
+  dumped like they are on OS X. linux_ptrace_dumper has been updated
+  to utilize this function along with the ptrace mode NT_PPC_VMX.
+* processor/exploitability_unittest.cc: Tests were disabled on
+  non-x86 systems. They assume the system objdump is capable of
+  disassembling x86 binaries which is not the case on other
+  architectures.
+
+To-do:
+* tools/linux/md2core has been updated as well, but functionality
+  has not been confirmed and restoration of Altivec/VMX registers
+  has not been implemented
+
+Note that proper functionality depends on updates to third_party/LSS
+that introduce PPC64 support. An in-progress patch that allows
+breakpad to build and run successfully is available at:
+https://wiki.raptorcs.com/wiki/Porting/Chromium
+---
+ .../dump_writer_common/raw_context_cpu.h      |  2 +
+ .../linux/dump_writer_common/thread_info.cc   | 56 ++++++++++++++++++-
+ .../linux/dump_writer_common/thread_info.h    |  9 +++
+ .../dump_writer_common/ucontext_reader.cc     | 42 ++++++++++++++
+ .../dump_writer_common/ucontext_reader.h      |  3 +
+ src/client/linux/handler/exception_handler.cc | 22 +++++++-
+ src/client/linux/handler/exception_handler.h  |  6 +-
+ .../handler/exception_handler_unittest.cc     |  8 ++-
+ .../microdump_writer/microdump_writer.cc      | 14 ++++-
+ .../microdump_writer_unittest.cc              | 15 ++++-
+ .../minidump_writer/linux_core_dumper.cc      |  8 ++-
+ .../linux/minidump_writer/linux_dumper.cc     |  4 +-
+ .../linux/minidump_writer/linux_dumper.h      |  3 +-
+ .../linux_dumper_unittest_helper.cc           |  2 +
+ .../minidump_writer/linux_ptrace_dumper.cc    | 19 +++++--
+ .../linux_ptrace_dumper_unittest.cc           |  5 ++
+ .../linux/minidump_writer/minidump_writer.cc  | 18 ++++--
+ .../linux/minidump_writer/minidump_writer.h   |  2 +
+ .../minidump_writer_unittest.cc               |  3 +
+ src/common/linux/memory_mapped_file.cc        |  3 +-
+ .../linux/memory_mapped_file_unittest.cc      |  7 ++-
+ src/common/memory_allocator_unittest.cc       |  3 +-
+ src/processor/exploitability_linux.cc         |  2 +
+ src/processor/exploitability_unittest.cc      | 15 +++--
+ src/tools/linux/md2core/minidump-2-core.cc    | 45 +++++++++++++++
+ 25 files changed, 281 insertions(+), 35 deletions(-)
+
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+@@ -44,6 +44,8 @@ typedef MDRawContextARM RawContextCPU;
+ typedef MDRawContextARM64_Old RawContextCPU;
+ #elif defined(__mips__)
+ typedef MDRawContextMIPS RawContextCPU;
++#elif defined(__powerpc64__)
++typedef MDRawContextPPC64 RawContextCPU;
+ #else
+ #error "This code has not been ported to your platform yet."
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+@@ -270,7 +270,42 @@ void ThreadInfo::FillCPUContext(RawConte
+   out->float_save.fir = mcontext.fpc_eir;
+ #endif
+ }
+-#endif  // __mips__
++
++#elif defined(__powerpc64__)
++
++uintptr_t ThreadInfo::GetInstructionPointer() const {
++    return mcontext.gp_regs[PT_NIP];
++}
++
++void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
++    out->context_flags = MD_CONTEXT_PPC64_FULL;
++    for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++        out->gpr[i] = mcontext.gp_regs[i];
++
++    out->lr = mcontext.gp_regs[PT_LNK];
++    out->srr0 = mcontext.gp_regs[PT_NIP];
++    out->srr1 = mcontext.gp_regs[PT_MSR];
++    out->cr = mcontext.gp_regs[PT_CCR];
++    out->xer = mcontext.gp_regs[PT_XER];
++    out->ctr = mcontext.gp_regs[PT_CTR];
++    
++    for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++        out->float_save.fpregs[i] = mcontext.fp_regs[i];
++
++    out->float_save.fpscr = mcontext.fp_regs[NFPREG-1];
++
++    for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
++        out->vector_save.save_vr[i] = \
++            {(((uint64_t)vregs.vrregs[i][0]) << 32) 
++                          | vregs.vrregs[i][1], 
++            (((uint64_t)vregs.vrregs[i][2]) << 32)
++                         | vregs.vrregs[i][3]};
++
++    out->vrsave = vregs.vrsave;
++    out->vector_save.save_vscr = {0, vregs.vscr.vscr_word};
++    out->vector_save.save_vrvalid = 0xFFFFFFFF; 
++}
++#endif  // __powerpc64__
+ 
+ void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
+   assert(gp_regs || size);
+@@ -279,6 +314,11 @@ void ThreadInfo::GetGeneralPurposeRegist
+     *gp_regs = mcontext.gregs;
+   if (size)
+     *size = sizeof(mcontext.gregs);
++#elif defined(__powerpc64__)
++  if (gp_regs)
++    *gp_regs = mcontext.gp_regs;
++  if (size)
++    *size = sizeof(mcontext.gp_regs);
+ #else
+   if (gp_regs)
+     *gp_regs = &regs;
+@@ -294,6 +334,11 @@ void ThreadInfo::GetFloatingPointRegiste
+     *fp_regs = &mcontext.fpregs;
+   if (size)
+     *size = sizeof(mcontext.fpregs);
++#elif defined(__powerpc64__)
++  if (fp_regs)
++    *fp_regs = &mcontext.fp_regs;
++  if (size)
++    *size = sizeof(mcontext.fp_regs);
+ #else
+   if (fp_regs)
+     *fp_regs = &fpregs;
+@@ -302,4 +347,13 @@ void ThreadInfo::GetFloatingPointRegiste
+ #endif
+ }
+ 
++#if defined(__powerpc64__)
++void ThreadInfo::GetVectorRegisters(void** v_regs, size_t* size) {
++    if (v_regs)
++        *v_regs = &vregs;
++    if (size)
++        *size = sizeof(vregs);
++}
++#endif
++
+ }  // namespace google_breakpad
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+@@ -68,6 +68,10 @@ struct ThreadInfo {
+   // Use the structures defined in <sys/user.h>
+   struct user_regs_struct regs;
+   struct user_fpsimd_struct fpregs;
++#elif defined(__powerpc64__)
++  // Use the structures defined in <sys/ucontext.h>.
++  mcontext_t mcontext;
++  struct _libc_vrstate vregs;
+ #elif defined(__mips__)
+   // Use the structure defined in <sys/ucontext.h>.
+   mcontext_t mcontext;
+@@ -84,6 +88,11 @@ struct ThreadInfo {
+ 
+   // Returns the pointer and size of float point register area.
+   void GetFloatingPointRegisters(void** fp_regs, size_t* size);
++
++#if defined(__powerpc64__)
++  // Returns the pointer and size of the vector register area. (PPC64 only)
++  void GetVectorRegisters(void** v_regs, size_t* size);
++#endif
+ };
+ 
+ }  // namespace google_breakpad
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -254,6 +254,48 @@ void UContextReader::FillCPUContext(RawC
+   out->float_save.fir = uc->uc_mcontext.fpc_eir;  // Unused.
+ #endif
+ }
++
++#elif defined(__powerpc64__)
++
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
++    return uc->uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP];
++}
++
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
++    return uc->uc_mcontext.gp_regs[PT_NIP];
++}
++
++void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
++                                    const struct _libc_vrstate* vregs) {
++    out->context_flags = MD_CONTEXT_PPC64_FULL;
++
++    for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++        out->gpr[i] = uc->uc_mcontext.gp_regs[i];
++
++    out->lr = uc->uc_mcontext.gp_regs[PT_LNK];    
++    out->srr0 = uc->uc_mcontext.gp_regs[PT_NIP];
++    out->srr1 = uc->uc_mcontext.gp_regs[PT_MSR];
++    out->cr = uc->uc_mcontext.gp_regs[PT_CCR];
++    out->xer = uc->uc_mcontext.gp_regs[PT_XER];
++    out->ctr = uc->uc_mcontext.gp_regs[PT_CTR];
++    
++    for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++        out->float_save.fpregs[i] = uc->uc_mcontext.fp_regs[i];
++
++    out->float_save.fpscr = uc->uc_mcontext.fp_regs[NFPREG-1];
++
++    for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
++        out->vector_save.save_vr[i] =
++            {(((uint64_t)vregs->vrregs[i][0]) << 32) 
++                         | vregs->vrregs[i][1], 
++             (((uint64_t)vregs->vrregs[i][2]) << 32)
++                         | vregs->vrregs[i][3]};
++
++    out->vrsave = vregs->vrsave;
++    out->vector_save.save_vscr = {0, vregs->vscr.vscr_word};
++    out->vector_save.save_vrvalid = 0xFFFFFFFF; 
++}
++
+ #endif
+ 
+ }  // namespace google_breakpad
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -55,6 +55,9 @@ struct UContextReader {
+ #elif defined(__aarch64__)
+   static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                              const struct fpsimd_context* fpregs);
++#elif defined(__powerpc64__)
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
++                             const struct _libc_vrstate* vregs);
+ #else
+   static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc);
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -461,9 +461,16 @@ bool ExceptionHandler::HandleSignal(int
+     memcpy(&g_crash_context_.float_state, fp_ptr,
+            sizeof(g_crash_context_.float_state));
+   }
++#elif defined(__powerpc64__)
++  // On PPC64, we must copy VR state
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
++  if (uc_ptr->uc_mcontext.v_regs) {
++    memcpy(&g_crash_context_.vector_state, uc_ptr->uc_mcontext.v_regs,
++           sizeof(g_crash_context_.vector_state));
++  }
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+   // FP state is not part of user ABI on ARM Linux.
+-  // In case of MIPS Linux FP state is already part of ucontext_t
++  // In case of MIPS, Linux FP state is already part of ucontext_t
+   // and 'float_state' is not a member of CrashContext.
+   ucontext_t* uc_ptr = (ucontext_t*)uc;
+   if (uc_ptr->uc_mcontext.fpregs) {
+@@ -701,11 +708,19 @@ bool ExceptionHandler::WriteMinidump() {
+   }
+ #endif
+ 
+-#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__)
++#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__) \
++    && !defined(__powerpc64__)
+   // FPU state is not part of ARM EABI ucontext_t.
+   memcpy(&context.float_state, context.context.uc_mcontext.fpregs,
+          sizeof(context.float_state));
+ #endif
++
++#if defined(__powerpc64__)
++  // Vector registers must be copied on PPC64
++  memcpy(&context.vector_state, context.context.uc_mcontext.v_regs,
++         sizeof(context.vector_state));
++#endif
++
+   context.tid = sys_gettid();
+ 
+   // Add an exception stream to the minidump for better reporting.
+@@ -726,6 +741,9 @@ bool ExceptionHandler::WriteMinidump() {
+ #elif defined(__mips__)
+   context.siginfo.si_addr =
+       reinterpret_cast<void*>(context.context.uc_mcontext.pc);
++#elif defined(__powerpc64__)
++  context.siginfo.si_addr =
++      reinterpret_cast<void*>(context.context.uc_mcontext.gp_regs[PT_NIP]);
+ #else
+ #error "This code has not been ported to your platform yet."
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+@@ -192,7 +192,11 @@ class ExceptionHandler {
+     siginfo_t siginfo;
+     pid_t tid;  // the crashing thread.
+     ucontext_t context;
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++    // PPC64's FP state is a part of ucontext_t like MIPS but the vector
++    // state is not, so a struct is needed.
++    vstate_t vector_state;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+     // In case of MIPS Linux FP state is already part of ucontext_t so
+     // 'float_state' is not required.
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+@@ -307,7 +307,7 @@ TEST(ExceptionHandlerTest, ParallelChild
+   }
+ 
+   // Wait a while until the child should have crashed.
+-  usleep(1000000);
++  usleep(2000000);
+   // Kill the child if it is still running.
+   kill(child, SIGKILL);
+ 
+@@ -559,6 +559,8 @@ const unsigned char kIllegalInstruction[
+ #if defined(__mips__)
+   // mfc2 zero,Impl - usually illegal in userspace.
+   0x48, 0x00, 0x00, 0x48
++#elif defined(__powerpc64__)
++  0x01, 0x01, 0x01, 0x01 // Crashes on a tested POWER9 cpu
+ #else
+   // This crashes with SIGILL on x86/x86-64/arm.
+   0xff, 0xff, 0xff, 0xff
+@@ -754,10 +756,10 @@ TEST(ExceptionHandlerTest, InstructionPo
+ 
+   // These are defined here so the parent can use them to check the
+   // data from the minidump afterwards.
+-  // Use 4k here because the OS will hand out a single page even
++  // Use the page size here because the OS will hand out a single page even
+   // if a smaller size is requested, and this test wants to
+   // test the upper bound of the memory range.
+-  const uint32_t kMemorySize = 4096;  // bytes
++  const uint32_t kMemorySize = getpagesize();  // bytes
+   const int kOffset = kMemorySize - sizeof(kIllegalInstruction);
+ 
+   const pid_t child = fork();
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+@@ -138,7 +138,9 @@ class MicrodumpWriter {
+                   const MicrodumpExtraInfo& microdump_extra_info,
+                   LinuxDumper* dumper)
+       : ucontext_(context ? &context->context : NULL),
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        vector_state_(context ? &context->vector_state : NULL),
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         float_state_(context ? &context->float_state : NULL),
+ #endif
+         dumper_(dumper),
+@@ -337,6 +339,8 @@ class MicrodumpWriter {
+ # else
+ #  error "This mips ABI is currently not supported (n32)"
+ #endif
++#elif defined(__powerpc64__)
++    const char kArch[] = "ppc64";
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
+@@ -409,7 +413,9 @@ class MicrodumpWriter {
+   void DumpCPUState() {
+     RawContextCPU cpu;
+     my_memset(&cpu, 0, sizeof(RawContextCPU));
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++    UContextReader::FillCPUContext(&cpu, ucontext_, vector_state_);
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+     UContextReader::FillCPUContext(&cpu, ucontext_, float_state_);
+ #else
+     UContextReader::FillCPUContext(&cpu, ucontext_);
+@@ -605,7 +611,9 @@ class MicrodumpWriter {
+   void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+ 
+   const ucontext_t* const ucontext_;
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++  const google_breakpad::vstate_t* const vector_state_;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;
+ #endif
+   LinuxDumper* dumper_;
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+@@ -279,10 +279,19 @@ TEST(MicrodumpWriterTest, BasicWithMappi
+   CrashAndGetMicrodump(mappings, MicrodumpExtraInfo(), &buf);
+   ASSERT_TRUE(ContainsMicrodump(buf));
+ 
++  int page_size = getpagesize();
+ #ifdef __LP64__
+-  ASSERT_NE(std::string::npos,
+-            buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
+-                     "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  // This test is only available for the following page sizes
++  ASSERT_TRUE((page_size == 4096) || (page_size == 65536));
++  if (page_size == 4096) { 
++    ASSERT_NE(std::string::npos,
++              buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
++                       "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  } else {
++    ASSERT_NE(std::string::npos,
++              buf.find("M 0000000000010000 000000000000002A 0000000000010000 "
++                       "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  }
+ #else
+   ASSERT_NE(std::string::npos,
+             buf.find("M 00001000 0000002A 00001000 "
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -112,6 +112,9 @@ bool LinuxCoreDumper::GetThreadInfoByInd
+ #elif defined(__mips__)
+   stack_pointer =
+       reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
++#elif defined(__powerpc64__)
++  stack_pointer =
++      reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
+ #else
+ #error "This code hasn't been ported to your platform yet."
+ #endif
+@@ -207,7 +210,10 @@ bool LinuxCoreDumper::EnumerateThreads()
+         memset(&info, 0, sizeof(ThreadInfo));
+         info.tgid = status->pr_pgrp;
+         info.ppid = status->pr_ppid;
+-#if defined(__mips__)
++#if defined(__powerpc64__)
++        for (int i = 0; i < 31; i++)
++            info.mcontext.gp_regs[i] = status->pr_reg[i];
++#elif defined(__mips__)
+ #if defined(__ANDROID__)
+         for (int i = EF_R0; i <= EF_R31; i++)
+           info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+@@ -765,7 +765,9 @@ bool LinuxDumper::GetStackInfo(const voi
+       reinterpret_cast<uint8_t*>(int_stack_pointer & ~(page_size - 1));
+ 
+   // The number of bytes of stack which we try to capture.
+-  static const ptrdiff_t kStackToCapture = 32 * 1024;
++  // This now depends on page_size to avoid missing data
++  // on systems with larger page sizes.
++  static const ptrdiff_t kStackToCapture = 8 * page_size;
+ 
+   const MappingInfo* mapping = FindMapping(stack_pointer);
+   if (!mapping)
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+@@ -63,7 +63,8 @@ namespace google_breakpad {
+  (defined(__mips__) && _MIPS_SIM == _ABIO32)
+ typedef Elf32_auxv_t elf_aux_entry;
+ #elif defined(__x86_64) || defined(__aarch64__) || \
+-     (defined(__mips__) && _MIPS_SIM != _ABIO32)
++     (defined(__mips__) && _MIPS_SIM != _ABIO32) || \
++     defined(__powerpc64__)
+ typedef Elf64_auxv_t elf_aux_entry;
+ #endif
+ 
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@@ -51,6 +51,8 @@
+ #define TID_PTR_REGISTER "rcx"
+ #elif defined(__mips__)
+ #define TID_PTR_REGISTER "$1"
++#elif defined(__powerpc64__)
++#define TID_PTR_REGISTER "r8"
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+@@ -149,19 +149,27 @@ bool LinuxPtraceDumper::CopyFromProcess(
+   return true;
+ }
+ 
+-bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid)
+-{
++bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid) {
+ #ifdef PTRACE_GETREGSET
+   struct iovec io;
+   info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len);
+-  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
+     return false;
+   }
+ 
+   info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len);
+-  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
+     return false;
+   }
++
++#if defined(__powerpc64__)
++  // Grab the vector registers on PPC64 too
++  info->GetVectorRegisters(&io.iov_base, &io.iov_len);
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PPC_VMX, (void*)&io) == -1) {
++    return false;
++  }
++#endif // defined(__powerpc64__)
++
+   return true;
+ #else
+   return false;
+@@ -298,6 +306,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI
+ #elif defined(__mips__)
+   stack_pointer =
+       reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
++#elif defined(__powerpc64__)
++  stack_pointer =
++      reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
+ #else
+ #error "This code hasn't been ported to your platform yet."
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+@@ -462,6 +462,9 @@ TEST(LinuxPtraceDumperTest, VerifyStackR
+ #elif defined(__mips__)
+     pid_t* process_tid_location =
+         reinterpret_cast<pid_t*>(one_thread.mcontext.gregs[1]);
++#elif defined(__powerpc64__)
++    pid_t* process_tid_location =
++        reinterpret_cast<pid_t*>(one_thread.mcontext.gp_regs[8]);
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+@@ -559,6 +562,8 @@ TEST_F(LinuxPtraceDumperTest, SanitizeSt
+   uintptr_t heap_addr = thread_info.regs.rcx;
+ #elif defined(__mips__)
+   uintptr_t heap_addr = thread_info.mcontext.gregs[1];
++#elif defined(__powerpc64__)
++  uintptr_t heap_addr = thread_info.mcontext.gp_regs[8];
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+@@ -136,7 +136,9 @@ class MinidumpWriter {
+       : fd_(minidump_fd),
+         path_(minidump_path),
+         ucontext_(context ? &context->context : NULL),
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        vector_state_(context ? &context->vector_state : NULL),
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         float_state_(context ? &context->float_state : NULL),
+ #endif
+         dumper_(dumper),
+@@ -468,7 +470,9 @@ class MinidumpWriter {
+         if (!cpu.Allocate())
+           return false;
+         my_memset(cpu.get(), 0, sizeof(RawContextCPU));
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        UContextReader::FillCPUContext(cpu.get(), ucontext_, vector_state_);
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_);
+ #else
+         UContextReader::FillCPUContext(cpu.get(), ucontext_);
+@@ -897,7 +901,7 @@ class MinidumpWriter {
+     dirent->location.rva = 0;
+   }
+ 
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || defined(__powerpc64__)
+   bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
+     char vendor_id[sizeof(sys_info->cpu.x86_cpu_info.vendor_id) + 1] = {0};
+     static const char vendor_id_name[] = "vendor_id";
+@@ -917,7 +921,9 @@ class MinidumpWriter {
+ 
+     // processor_architecture should always be set, do this first
+     sys_info->processor_architecture =
+-#if defined(__mips__)
++#if defined(__powerpc64__)
++        MD_CPU_ARCHITECTURE_PPC64;
++#elif defined(__mips__)
+ # if _MIPS_SIM == _ABIO32
+         MD_CPU_ARCHITECTURE_MIPS;
+ # elif _MIPS_SIM == _ABI64
+@@ -1333,7 +1339,9 @@ class MinidumpWriter {
+   const char* path_;  // Path to the file where the minidum should be written.
+ 
+   const ucontext_t* const ucontext_;  // also from the signal handler
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++  const google_breakpad::vstate_t* const vector_state_;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;  // ditto
+ #endif
+   LinuxDumper* dumper_;
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+@@ -48,6 +48,8 @@ class ExceptionHandler;
+ 
+ #if defined(__aarch64__)
+ typedef struct fpsimd_context fpstate_t;
++#elif defined(__powerpc64__)
++typedef struct _libc_vrstate vstate_t;
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+ typedef std::remove_pointer<fpregset_t>::type fpstate_t;
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+@@ -715,6 +715,9 @@ TEST(MinidumpWriterTest, InvalidStackPoi
+ #elif defined(__mips__)
+   context.context.uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP] =
+       invalid_stack_pointer;
++#elif defined(__powerpc64__)
++  context.context.uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP] =
++      invalid_stack_pointer;
+ #else
+ # error "This code has not been ported to your platform yet."
+ #endif
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+@@ -65,8 +65,7 @@ bool MemoryMappedFile::Map(const char* p
+   }
+ 
+ #if defined(__x86_64__) || defined(__aarch64__) || \
+-   (defined(__mips__) && _MIPS_SIM == _ABI64)
+-
++   (defined(__mips__) && _MIPS_SIM == _ABI64) || defined(__powerpc64__)
+   struct kernel_stat st;
+   if (sys_fstat(fd, &st) == -1 || st.st_size < 0) {
+ #else
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+@@ -176,9 +176,10 @@ TEST_F(MemoryMappedFileTest, RemapAfterM
+ TEST_F(MemoryMappedFileTest, MapWithOffset) {
+   // Put more data in the test file this time. Offsets can only be
+   // done on page boundaries, so we need a two page file to test this.
+-  const int page_size = 4096;
+-  char data1[2 * page_size];
+-  size_t data1_size = sizeof(data1);
++  const int page_size = getpagesize();
++  char *data1 = static_cast<char*>(malloc(2 * page_size));
++  EXPECT_TRUE(data1 != NULL);
++  size_t data1_size = (2 * page_size);
+   for (size_t i = 0; i < data1_size; ++i) {
+     data1[i] = i & 0x7f;
+   }
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+@@ -57,8 +57,9 @@ TEST(PageAllocatorTest, LargeObject) {
+ 
+   EXPECT_EQ(0U, allocator.pages_allocated());
+   uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(10000));
++  uint64_t expected_pages = 1 + ((10000 - 1) / getpagesize());
+   ASSERT_FALSE(p == NULL);
+-  EXPECT_EQ(3U, allocator.pages_allocated());
++  EXPECT_EQ(expected_pages, allocator.pages_allocated());
+   for (unsigned i = 1; i < 10; ++i) {
+     uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
+     ASSERT_FALSE(p == NULL);
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
+@@ -202,12 +202,14 @@ bool ExploitabilityLinux::EndedOnIllegal
+   // Check architecture and set architecture variable to corresponding flag
+   // in objdump.
+   switch (context->GetContextCPU()) {
++#if defined(__i386) || defined(__x86_64)
+     case MD_CONTEXT_X86:
+       architecture = "i386";
+       break;
+     case MD_CONTEXT_AMD64:
+       architecture = "i386:x86-64";
+       break;
++#endif
+     default:
+       // Unsupported architecture. Note that ARM architectures are not
+       // supported because objdump does not support ARM.
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
+@@ -104,6 +104,8 @@ ExploitabilityFor(const string& filename
+ }
+ 
+ TEST(ExploitabilityTest, TestWindowsEngine) {
++// The following tests are only executable on an x86-class linux machine.
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("ascii_read_av.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -136,9 +138,12 @@ TEST(ExploitabilityTest, TestWindowsEngi
+             ExploitabilityFor("read_av_clobber_write.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
+             ExploitabilityFor("read_av_conditional.dmp"));
++#endif
+ }
+ 
+ TEST(ExploitabilityTest, TestLinuxEngine) {
++// The following tests are only executable on an x86-class linux machine.
++#if defined(__i386) || defined(__x86_64)
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+             ExploitabilityFor("linux_null_read_av.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -171,7 +176,8 @@ TEST(ExploitabilityTest, TestLinuxEngine
+             ExploitabilityFor("linux_executable_heap.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("linux_jmp_to_module_not_exe_region.dmp"));
+-#ifndef _WIN32
++#endif
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("linux_write_to_nonwritable_module.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -182,10 +188,10 @@ TEST(ExploitabilityTest, TestLinuxEngine
+             ExploitabilityFor("linux_write_to_outside_module_via_math.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+             ExploitabilityFor("linux_write_to_under_4k.dmp"));
+-#endif  // _WIN32
++#endif  // !defined(_WIN32) && (!defined(__i386) && !defined(__x86_64))
+ }
+ 
+-#ifndef _WIN32
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+ TEST(ExploitabilityLinuxUtilsTest, DisassembleBytesTest) {
+   ASSERT_FALSE(ExploitabilityLinuxTest::DisassembleBytes("", NULL, 5, NULL));
+   uint8_t bytes[6] = {0xc7, 0x0, 0x5, 0x0, 0x0, 0x0};
+@@ -301,6 +307,7 @@ TEST(ExploitabilityLinuxUtilsTest, Calcu
+                                                          context,
+                                                          &write_address));
+ }
+-#endif  // _WIN32
++#endif  // !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
++
+ 
+ }  // namespace
+Index: chromium-99.0.4818.0/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
++++ chromium-99.0.4818.0/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+@@ -77,6 +77,8 @@
+   #define ELF_ARCH  EM_MIPS
+ #elif defined(__aarch64__)
+   #define ELF_ARCH  EM_AARCH64
++#elif defined(__powerpc64__)
++  #define ELF_ARCH  EM_PPC64
+ #endif
+ 
+ #if defined(__arm__)
+@@ -87,6 +89,8 @@ typedef user_regs user_regs_struct;
+ #elif defined (__mips__)
+ // This file-local typedef simplifies the source code.
+ typedef gregset_t user_regs_struct;
++#elif defined(__powerpc64__)
++typedef struct pt_regs user_regs_struct;
+ #endif
+ 
+ using google_breakpad::MDTypeHelper;
+@@ -320,6 +324,9 @@ struct CrashedProcess {
+ #if defined(__aarch64__)
+     user_fpsimd_struct fpregs;
+ #endif
++#if defined(__powerpc64__)
++    mcontext_t mcontext;
++#endif
+     uintptr_t stack_addr;
+     const uint8_t* stack;
+     size_t stack_length;
+@@ -533,6 +540,38 @@ ParseThreadRegisters(CrashedProcess::Thr
+   thread->mcontext.fpc_eir = rawregs->float_save.fir;
+ #endif
+ }
++#elif defined(__powerpc64__)
++static void
++ParseThreadRegisters(CrashedProcess::Thread* thread,
++                     const MinidumpMemoryRange& range) {
++  const MDRawContextPPC64* rawregs = range.GetData<MDRawContextPPC64>(0);
++
++  for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++    thread->mcontext.gp_regs[i] = rawregs->gpr[i];
++
++  thread->mcontext.gp_regs[PT_LNK] = rawregs->lr;
++  thread->mcontext.gp_regs[PT_NIP] = rawregs->srr0;
++  thread->mcontext.gp_regs[PT_MSR] = rawregs->srr1;
++  thread->mcontext.gp_regs[PT_CCR] = rawregs->cr;
++  thread->mcontext.gp_regs[PT_XER] = rawregs->xer;
++  thread->mcontext.gp_regs[PT_CTR] = rawregs->ctr;
++  thread->mcontext.v_regs->vrsave = rawregs->vrsave;
++
++  for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++      thread->mcontext.fp_regs[i] = rawregs->float_save.fpregs[i];
++
++  thread->mcontext.fp_regs[NFPREG-1] = rawregs->float_save.fpscr;
++
++  for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++) {
++      thread->mcontext.v_regs->vrregs[i][0] = rawregs->vector_save.save_vr[i].high >> 32;
++      thread->mcontext.v_regs->vrregs[i][1] = rawregs->vector_save.save_vr[i].high;
++      thread->mcontext.v_regs->vrregs[i][2] = rawregs->vector_save.save_vr[i].low >> 32;
++      thread->mcontext.v_regs->vrregs[i][3] = rawregs->vector_save.save_vr[i].low;
++  }
++
++  thread->mcontext.v_regs->vscr.vscr_word = rawregs->vector_save.save_vscr.low & 0xFFFFFFFF;
++}
++
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
+@@ -622,6 +661,12 @@ ParseSystemInfo(const Options& options,
+ # else
+ #  error "This mips ABI is currently not supported (n32)"
+ # endif
++#elif defined(__powerpc64__)
++  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_PPC64) {
++    fprintf(stderr,
++            "This version of minidump-2-core only supports PPC64.\n");
++    exit(1);
++  }
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
diff -urN a/debian/patches/ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch b/debian/patches/ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch
--- a/debian/patches/ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch	2022-02-13 01:38:45.719316006 +0000
@@ -0,0 +1,1480 @@
+From 8c24c695052d156fd1322d6dacfab117b92cb175 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 30 Aug 2018 17:32:05 -0500
+Subject: [PATCH] Implement support for PPC64 on Linux
+
+This patch implements support for the PPC64 architecture on Linux hosts.
+---
+ CONTRIBUTORS                                  |   1 +
+ minidump/minidump_context.h                   |  64 ++++++
+ minidump/minidump_context_writer.cc           |  50 +++++
+ minidump/minidump_context_writer.h            |  39 ++++
+ minidump/minidump_context_writer_test.cc      |  15 ++
+ minidump/minidump_misc_info_writer.cc         |   2 +
+ minidump/test/minidump_context_test_util.cc   |  67 ++++++
+ minidump/test/minidump_context_test_util.h    |   3 +
+ snapshot/capture_memory.cc                    |   5 +
+ snapshot/cpu_architecture.h                   |   5 +-
+ snapshot/cpu_context.cc                       |   5 +
+ snapshot/cpu_context.h                        |  19 ++
+ snapshot/linux/cpu_context_linux.h            |  73 ++++++
+ snapshot/linux/debug_rendezvous_test.cc       |   4 +-
+ snapshot/linux/exception_snapshot_linux.cc    |  63 ++++++
+ snapshot/linux/exception_snapshot_linux.h     |   2 +
+ .../linux/exception_snapshot_linux_test.cc    |  21 ++
+ snapshot/linux/process_reader_linux.cc        |   2 +
+ snapshot/linux/signal_context.h               |  83 +++++++
+ snapshot/linux/system_snapshot_linux.cc       |  11 +
+ snapshot/linux/thread_snapshot_linux.cc       |   8 +
+ snapshot/linux/thread_snapshot_linux.h        |   2 +
+ snapshot/test/test_cpu_context.cc             |  33 +++
+ snapshot/test/test_cpu_context.h              |   1 +
+ test/linux/get_tls.cc                         |   2 +
+ test/multiprocess_posix.cc                    |   3 +-
+ util/linux/auxiliary_vector.cc                |   5 +
+ util/linux/ptracer.cc                         |  61 +++++
+ util/linux/thread_info.h                      |  55 +++++
+ util/misc/capture_context.h                   |   1 +
+ util/misc/capture_context_linux.S             | 212 +++++++++++++++++-
+ util/misc/capture_context_test.cc             |   3 +-
+ util/misc/capture_context_test_util_linux.cc  |   6 +
+ 36 files changed, 932 insertions(+), 12 deletions(-)
+
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/CONTRIBUTORS
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/CONTRIBUTORS
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/CONTRIBUTORS
+@@ -13,3 +13,4 @@ Mark Mentovai <mark@chromium.org>
+ Robert Sesek <rsesek@chromium.org>
+ Scott Graham <scottmg@chromium.org>
+ Joshua Peraza <jperaza@chromium.org>
++Shawn Anastasio <shawn@anastas.io>
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/minidump_context.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context.h
+@@ -592,6 +592,70 @@ struct MinidumpContextMIPS64 {
+   uint64_t fir;
+ };
+ 
++//! \brief ppc64-specific flags for MinidumpPPC64::context_flags
++//! Based on minidump_cpu_ppc64.h from breakpad
++enum MinidumpContextPPC64Flags : uint32_t {
++  //! \brief Identifies the context as PPC64.
++  kMinidumpContextPPC64 = 0x01000000,
++
++  //! \brief Indicates the validity of general purpose registers.
++  //!
++  //! Registers `r0`-`r31`, `nip`, `msr`, `lr`, etc. are valid.
++  kMinidumpContextPPC64Base = kMinidumpContextPPC64 | 0x00000001,
++
++  //! \brief Indicates the validity of floating point registers.
++  //!
++  //! Registers `fp0`-`fp31`, `fpscr` are valid.
++  kMinidumpContextPPC64Floating = kMinidumpContextPPC64 | 0x00000008,
++
++  //! \brief Indicates the validity of Altivec/VMX registers.
++  //!
++  //! Registers `v0`-`v31`, `vscr`, `vrsave`.
++  kMinidumpContextPPC64Vector = kMinidumpContextPPC64 | 0x00000020,
++
++  //! \brief Indicates the validity of all registers
++  kMinidumpContextPPC64All = kMinidumpContextPPC64Base     |
++                             kMinidumpContextPPC64Floating |
++                             kMinidumpContextPPC64Vector
++};
++
++//! \brief A PPC64 CPU context carried in a minidump file.
++//! Based on minidump_cpu_ppc64.h from breakpad.
++struct MinidumpContextPPC64 {
++  uint64_t context_flags;
++
++  //! \brief General purpose registers.
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t regs[32];
++  uint64_t ccr;
++  uint64_t xer;
++  uint64_t lnk;
++  uint64_t ctr;
++
++  //! \brief Floating point registers.
++  double fpregs[32];
++
++  //! \brief FPU status register.
++  double fpscr;
++
++  //! \brief Altivec/VMX vector registers.
++  struct {
++      //! \brief Vector registers are 128bits.
++      uint128_struct save_vr[32];
++      uint128_struct save_vscr;
++
++      //! \brief Padding included for breakpad compatibiltiy.
++      uint32_t save_pad5[4];
++
++      //! \brief VRSAVE register.
++      uint32_t save_vrsave;
++
++      //! \brief Padding included for breakpad compatibiltiy.
++      uint32_t save_pad6[7];
++  } vregs;
++};
++
+ }  // namespace crashpad
+ 
+ #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
+@@ -101,6 +101,13 @@ MinidumpContextWriter::CreateFromSnapsho
+       break;
+     }
+ 
++    case kCPUArchitecturePPC64: {
++      context = std::make_unique<MinidumpContextPPC64Writer>();
++      reinterpret_cast<MinidumpContextPPC64Writer*>(context.get())
++          ->InitializeFromSnapshot(context_snapshot->ppc64);
++      break;
++    }
++
+     default: {
+       LOG(ERROR) << "unknown context architecture "
+                  << context_snapshot->architecture;
+@@ -452,5 +459,48 @@ size_t MinidumpContextMIPS64Writer::Cont
+   DCHECK_GE(state(), kStateFrozen);
+   return sizeof(context_);
+ }
++
++MinidumpContextPPC64Writer::MinidumpContextPPC64Writer()
++  : MinidumpContextWriter(), context_() {
++    context_.context_flags = kMinidumpContextPPC64;
++}
++
++MinidumpContextPPC64Writer::~MinidumpContextPPC64Writer() = default;
++
++void MinidumpContextPPC64Writer::InitializeFromSnapshot(
++    const CPUContextPPC64* context_snapshot) {
++  DCHECK_EQ(state(), kStateMutable);
++  DCHECK_EQ(context_.context_flags, kMinidumpContextPPC64);
++
++  context_.context_flags = kMinidumpContextPPC64All;
++
++  memcpy(context_.regs, context_snapshot->regs, sizeof(context_.regs));
++  context_.nip = context_snapshot->nip;
++  context_.msr = context_snapshot->msr;
++  context_.ccr = context_snapshot->ccr;
++  context_.xer = context_snapshot->xer;
++  context_.lnk = context_snapshot->lnk;
++  context_.ctr = context_snapshot->ctr;
++
++  memcpy(context_.fpregs, context_snapshot->fpregs, sizeof(context_.fpregs));
++  context_.fpscr = context_snapshot->fpscr;
++
++  memcpy(context_.vregs.save_vr, context_snapshot->vregs.save_vr,
++         sizeof(context_.vregs.save_vr));
++  memcpy(&context_.vregs.save_vscr, &context_snapshot->vregs.save_vscr,
++         sizeof(context_.vregs.save_vscr));
++  context_.vregs.save_vrsave = context_snapshot->vregs.save_vrsave;
++}
++
++bool MinidumpContextPPC64Writer::WriteObject(
++    FileWriterInterface* file_writer) {
++  DCHECK_EQ(state(), kStateWritable);
++  return file_writer->Write(&context_, sizeof(context_));
++}
++
++size_t MinidumpContextPPC64Writer::ContextSize() const {
++  DCHECK_GE(state(), kStateFrozen);
++  return sizeof(context_);
++}
+ 
+ }  // namespace crashpad
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+@@ -330,6 +330,49 @@ class MinidumpContextMIPS64Writer final
+   MinidumpContextMIPS64 context_;
+ };
+ 
++//! \brief The writer for a MinidumpContextPPC64 structure in a minidump file.
++class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
++ public:
++  MinidumpContextPPC64Writer();
++
++  MinidumpContextPPC64Writer(const MinidumpContextPPC64Writer&) = delete;
++  MinidumpContextPPC64Writer& operator=(const MinidumpContextPPC64Writer&) =
++      delete;
++
++  ~MinidumpContextPPC64Writer() override;
++
++  //! \brief Initializes the MinidumpContextPPC based on \a context_snapshot.
++  //!
++  //! \param[in] context_snapshot The context snapshot to use as source data.
++  //!
++  //! \note Valid in #kStateMutable. No mutation of context() may be done before
++  //!     calling this method, and it is not normally necessary to alter
++  //!     context() after calling this method.
++  void InitializeFromSnapshot(const CPUContextPPC64* context_snapshot);
++
++  //! \brief Returns a pointer to the context structure that this object will
++  //!     write.
++  //!
++  //! \attention This returns a non-`const` pointer to this objectâs private
++  //!     data so that a caller can populate the context structure directly.
++  //!     This is done because providing setter interfaces to each field in the
++  //!     context structure would be unwieldy and cumbersome. Care must be taken
++  //!     to populate the context structure correctly. The context structure
++  //!     must only be modified while this object is in the #kStateMutable
++  //!     state.
++  MinidumpContextPPC64* context() { return &context_; }
++
++ protected:
++  // MinidumpWritable:
++  bool WriteObject(FileWriterInterface* file_writer) override;
++
++  // MinidumpContextWriter:
++  size_t ContextSize() const override;
++
++ private:
++  MinidumpContextPPC64 context_;
++};
++
+ }  // namespace crashpad
+ 
+ #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
+@@ -213,6 +213,21 @@ TEST(MinidumpContextWriter, MIPS64_FromS
+       context, ExpectMinidumpContextMIPS64, kSeed);
+ }
+ 
++TEST(MinidumpContextWriter, PPC64_Zeros) {
++  EmptyContextTest<MinidumpContextPPC64Writer, MinidumpContextPPC64>(
++    ExpectMinidumpContextPPC64);
++}
++
++TEST(MinidumpContextWriter, PPC64_FromSnapshot) {
++  constexpr uint32_t kSeed = 64;
++  CPUContextPPC64 context_ppc64;
++  CPUContext context;
++  context.ppc64 = &context_ppc64;
++  InitializeCPUContextPPC64(&context, kSeed);
++  FromSnapshotTest<MinidumpContextPPC64Writer, MinidumpContextPPC64>(
++      context, ExpectMinidumpContextPPC64, kSeed);
++}
++
+ }  // namespace
+ }  // namespace test
+ }  // namespace crashpad
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -135,6 +135,8 @@ std::string MinidumpMiscInfoDebugBuildSt
+   static constexpr char kCPU[] = "mips";
+ #elif defined(ARCH_CPU_MIPS64EL)
+   static constexpr char kCPU[] = "mips64";
++#elif defined(ARCH_CPU_PPC64)
++  static constexpr char kCPU[] = "ppc64";
+ #else
+ #error define kCPU for this CPU
+ #endif
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
+@@ -272,6 +272,40 @@ void InitializeMinidumpContextMIPS64(Min
+   context->dsp_control = value++;
+ }
+ 
++void InitializeMinidumpContextPPC64(MinidumpContextPPC64* context,
++                                    uint32_t seed) {
++  if (seed == 0) {
++    memset(context, 0, sizeof(*context));
++    context->context_flags = kMinidumpContextPPC64;
++    return;
++  }
++
++  context->context_flags = kMinidumpContextPPC64All;
++
++  uint64_t value = seed;
++  for (size_t i = 0; i < base::size(context->regs); ++i) {
++    context->regs[i] = value++;
++  }
++
++  context->nip = value++;
++  context->msr = value++;
++  context->ccr = value++;
++  context->xer = value++;
++  context->lnk = value++;
++  context->ctr = value++;
++
++  for (size_t i = 0; i < base::size(context->fpregs); ++i) {
++    context->fpregs[i] = static_cast<double>(i);
++  }
++  context->fpscr = value++;
++
++  for (size_t i = 0; i < base::size(context->vregs.save_vr); ++i) {
++    context->vregs.save_vr[i] = {value++, value++};
++  }
++  context->vregs.save_vscr = {value++, value++};
++  context->vregs.save_vrsave = value++;
++}
++
+ namespace {
+ 
+ // Using Google Test assertions, compares |expected| to |observed|. This is
+@@ -594,5 +628,38 @@ void ExpectMinidumpContextMIPS64(uint32_
+   EXPECT_EQ(observed->dsp_control, expected.dsp_control);
+ }
+ 
++void ExpectMinidumpContextPPC64(uint32_t expect_seed,
++                                const MinidumpContextPPC64* observed,
++                                bool snapshot) {
++  MinidumpContextPPC64 expected;
++  InitializeMinidumpContextPPC64(&expected, expect_seed);
++
++  EXPECT_EQ(observed->context_flags, expected.context_flags);
++
++  for (size_t i = 0; i < base::size(expected.regs); ++i) {
++    EXPECT_EQ(observed->regs[i], expected.regs[i]);
++  }
++
++  EXPECT_EQ(observed->nip, expected.nip);
++  EXPECT_EQ(observed->msr, expected.msr);
++  EXPECT_EQ(observed->ccr, expected.ccr);
++  EXPECT_EQ(observed->xer, expected.xer);
++  EXPECT_EQ(observed->lnk, expected.lnk);
++  EXPECT_EQ(observed->ctr, expected.ctr);
++
++  for (size_t i = 0; i < base::size(expected.fpregs); ++i) {
++    EXPECT_EQ(observed->fpregs[i], expected.fpregs[i]);
++  }
++  EXPECT_EQ(observed->fpscr, expected.fpscr);
++
++  for (size_t i = 0; i < base::size(expected.vregs.save_vr); ++ i) {
++    EXPECT_EQ(observed->vregs.save_vr[i].lo, expected.vregs.save_vr[i].lo);
++    EXPECT_EQ(observed->vregs.save_vr[i].hi, expected.vregs.save_vr[i].hi);
++  }
++  EXPECT_EQ(observed->vregs.save_vscr.lo, expected.vregs.save_vscr.lo);
++  EXPECT_EQ(observed->vregs.save_vscr.hi, expected.vregs.save_vscr.hi);
++  EXPECT_EQ(observed->vregs.save_vrsave, expected.vregs.save_vrsave);
++}
++
+ }  // namespace test
+ }  // namespace crashpad
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.h
+@@ -85,6 +85,9 @@ void ExpectMinidumpContextMIPS(uint32_t
+ void ExpectMinidumpContextMIPS64(uint32_t expect_seed,
+                                  const MinidumpContextMIPS64* observed,
+                                  bool snapshot);
++void ExpectMinidumpContextPPC64(uint32_t expect_seed,
++                                const MinidumpContextPPC64* observed,
++                                bool snapshot);
+ //! \}
+ 
+ }  // namespace test
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/capture_memory.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/capture_memory.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/capture_memory.cc
+@@ -112,6 +112,11 @@ void CaptureMemory::PointedToByContext(c
+   for (size_t i = 0; i < base::size(context.mipsel->regs); ++i) {
+     MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]);
+   }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  MaybeCaptureMemoryAround(delegate, context.ppc64->nip);
++  for (size_t i = 0; i < base::size(context.ppc64->regs); ++i) {
++    MaybeCaptureMemoryAround(delegate, context.ppc64->regs[i]);
++  }
+ #else
+ #error Port.
+ #endif
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
+@@ -43,7 +43,10 @@ enum CPUArchitecture {
+   kCPUArchitectureMIPSEL,
+ 
+   //! \brief 64-bit MIPSEL.
+-  kCPUArchitectureMIPS64EL
++  kCPUArchitectureMIPS64EL,
++
++  //! \brief 64-bit PPC64.
++  kCPUArchitecturePPC64
+ };
+ 
+ }  // namespace crashpad
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_context.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/cpu_context.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_context.cc
+@@ -169,6 +169,8 @@ uint64_t CPUContext::InstructionPointer(
+       return arm->pc;
+     case kCPUArchitectureARM64:
+       return arm64->pc;
++    case kCPUArchitecturePPC64:
++      return ppc64->nip;
+     default:
+       NOTREACHED();
+       return ~0ull;
+@@ -185,6 +187,8 @@ uint64_t CPUContext::StackPointer() cons
+       return arm->sp;
+     case kCPUArchitectureARM64:
+       return arm64->sp;
++    case kCPUArchitecturePPC64:
++      return ppc64->regs[1];
+     default:
+       NOTREACHED();
+       return ~0ull;
+@@ -196,6 +200,7 @@ bool CPUContext::Is64Bit() const {
+     case kCPUArchitectureX86_64:
+     case kCPUArchitectureARM64:
+     case kCPUArchitectureMIPS64EL:
++    case kCPUArchitecturePPC64:
+       return true;
+     case kCPUArchitectureX86:
+     case kCPUArchitectureARM:
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_context.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/cpu_context.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/cpu_context.h
+@@ -352,6 +352,24 @@ struct CPUContextMIPS64 {
+   uint64_t fir;
+ };
+ 
++//! \brief A context structure carrying PPC64 CPU state.
++struct CPUContextPPC64 {
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t regs[32];
++  uint64_t ccr;
++  uint64_t xer;
++  uint64_t lnk;
++  uint64_t ctr;
++  double fpregs[32];
++  double fpscr;
++  struct {
++    uint128_struct save_vr[32];
++    uint128_struct save_vscr;
++    uint32_t save_vrsave;
++  } vregs;
++};
++
+ //! \brief A context structure capable of carrying the context of any supported
+ //!     CPU architecture.
+ struct CPUContext {
+@@ -382,6 +400,7 @@ struct CPUContext {
+     CPUContextARM64* arm64;
+     CPUContextMIPS* mipsel;
+     CPUContextMIPS64* mips64;
++    CPUContextPPC64* ppc64;
+   };
+ };
+ 
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
+@@ -15,6 +15,7 @@
+ #ifndef CRASHPAD_SNAPSHOT_LINUX_CPU_CONTEXT_LINUX_H_
+ #define CRASHPAD_SNAPSHOT_LINUX_CPU_CONTEXT_LINUX_H_
+ 
++#include <cstring>
+ #include "build/build_config.h"
+ #include "snapshot/cpu_context.h"
+ #include "snapshot/linux/signal_context.h"
+@@ -174,6 +175,78 @@ void InitializeCPUContextMIPS(
+ 
+ #endif  // ARCH_CPU_MIPS_FAMILY || DOXYGEN
+ 
++#if defined(ARCH_CPU_PPC64_FAMILY) || DOXYGEN
++
++//! \brief Initializes a CPUContextPPC64 structure from native context
++//!     structures on Linux.
++//!
++//! \param[in] thread_context The native thread context.
++//! \param[in] float_context The native float context.
++//! \param[in] vector_context The native vector context.
++//! \param[out] context The CPUContextPPC64 structure to initialize.
++template <typename Traits>
++void InitializeCPUContextPPC64(
++    const ThreadContext::t64_t& thread_context,
++    const FloatContext::f64_t& float_context,
++    const VectorContext::v64_t& vector_context,
++    typename Traits::CPUContext* context) {
++
++  memcpy(context->regs, thread_context.gpr, sizeof(context->regs));
++  context->nip = thread_context.nip;
++  context->msr = thread_context.msr;
++  context->ccr = thread_context.ccr;
++  context->xer = thread_context.xer;
++  context->lnk = thread_context.lnk;
++  context->ctr = thread_context.ctr;
++
++  memcpy(context->fpregs, float_context.fpregs, sizeof(context->fpregs));
++  context->fpscr = float_context.fpscr;
++
++  for (uint8_t i = 0; i < 32; i++) {
++    context->vregs.save_vr[i] = {
++      (((uint64_t)vector_context.vrregs[i][0]) << 32) |
++        vector_context.vrregs[i][1],
++      (((uint64_t)vector_context.vrregs[i][2]) << 32) |
++        vector_context.vrregs[i][3]
++    };
++  }
++  context->vregs.save_vrsave = vector_context.vrsave;
++  context->vregs.save_vscr = {0, (uint64_t)vector_context.vscr.vscr_word};
++}
++
++template <typename Traits>
++void InitializeCPUContextPPC64(
++    const SignalThreadContext64 &thread_context,
++    const SignalFloatContext64 &float_context,
++    const SignalVectorContext64 &vector_context,
++    typename Traits::CPUContext* context) {
++
++  memcpy(context->regs, thread_context.regs, sizeof(context->regs));
++  context->nip = thread_context.nip;
++  context->msr = thread_context.msr;
++  context->ccr = thread_context.ccr;
++  context->xer = thread_context.xer;
++  context->lnk = thread_context.lnk;
++  context->ctr = thread_context.ctr;
++
++  memcpy(context->fpregs, float_context.regs, sizeof(context->fpregs));
++  context->fpscr = float_context.fpscr;
++
++  for (uint8_t i = 0; i < 32; i++) {
++    context->vregs.save_vr[i] = {
++      (((uint64_t)vector_context.vrregs[i][0]) << 32) |
++        vector_context.vrregs[i][1],
++      (((uint64_t)vector_context.vrregs[i][2]) << 32) |
++        vector_context.vrregs[i][3]
++    };
++  }
++  context->vregs.save_vrsave = vector_context.vrsave;
++  context->vregs.save_vscr = {0, (uint64_t)vector_context.vscr.vscr_word};
++}
++
++
++#endif
++
+ }  // namespace internal
+ }  // namespace crashpad
+ 
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
+@@ -195,12 +195,15 @@ void TestAgainstTarget(PtraceConnection*
+               device == 0 && inode == 0 && mapping_name == "[vdso]";
+ #if defined(ARCH_CPU_X86)
+           static constexpr char kPrefix[] = "linux-gate.so.";
++          static constexpr char kPrefix64[] = "linux-gate.so.";
+ #else
+           static constexpr char kPrefix[] = "linux-vdso.so.";
++          static constexpr char kPrefix64[] = "linux-vdso64.so.";
+ #endif
+           return is_vdso_mapping ==
+                  (module_name.empty() ||
+-                  module_name.compare(0, strlen(kPrefix), kPrefix) == 0);
++                  module_name.compare(0, strlen(kPrefix), kPrefix) == 0) ||
++                  module_name.compare(0, strlen(kPrefix64), kPrefix64) == 0);
+         },
+         module_mapping->name,
+         module_mapping->device,
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
+@@ -324,6 +324,69 @@ bool ExceptionSnapshotLinux::ReadContext
+       reader, context_address, context_.mips64);
+ }
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++
++template <typename Traits>
++static bool ReadContext(ProcessReaderLinux* reader,
++                        LinuxVMAddress context_address,
++                        typename Traits::CPUContext* dest_context) {
++  const ProcessMemory* memory = reader->Memory();
++
++  LinuxVMAddress gp_regs_address = context_address +
++                                   offsetof(UContext, mcontext) +
++                                   offsetof(typename Traits::MContext, gp_regs);
++
++  typename Traits::SignalThreadContext thread_context;
++  if (!memory->Read(gp_regs_address, sizeof(thread_context), &thread_context)) {
++    LOG(ERROR) << "Couldn't read gp_regs!";
++    return false;
++  }
++
++  LinuxVMAddress fp_regs_address = context_address +
++                                   offsetof(UContext, mcontext) +
++                                   offsetof(typename Traits::MContext, fp_regs);
++
++  typename Traits::SignalFloatContext fp_context;
++  if (!memory->Read(fp_regs_address, sizeof(fp_context), &fp_context)) {
++    LOG(ERROR) << "Couldn't read fp_regs!";
++    return false;
++  }
++
++  LinuxVMAddress v_regs_ptr_address = context_address +
++                                  offsetof(UContext, mcontext) +
++                                  offsetof(typename Traits::MContext, vmx_reserve) + 8;
++
++  typename Traits::SignalVectorContext v_context;
++  if (!memory->Read(v_regs_ptr_address, sizeof(v_context), &v_context)) {
++    LOG(ERROR) << "Couldn't read v_regs!";
++    return false;
++  }
++
++  InitializeCPUContextPPC64<ContextTraits64>(thread_context, fp_context,
++                            v_context, dest_context);
++
++  return true;
++}
++
++template<>
++bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
++    ProcessReaderLinux* reader,
++    LinuxVMAddress context_address) {
++  context_.architecture = kCPUArchitecturePPC64;
++  context_.ppc64 = &context_union_.ppc64;
++
++  return internal::ReadContext<ContextTraits64>(
++      reader, context_address, context_.ppc64);
++}
++
++template<>
++bool ExceptionSnapshotLinux::ReadContext<ContextTraits32>(
++    ProcessReaderLinux* reader,
++    LinuxVMAddress context_address) {
++  // PPC64 is 64-bit
++  return false;
++}
++
+ #endif  // ARCH_CPU_X86_FAMILY
+ 
+ bool ExceptionSnapshotLinux::Initialize(
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
+@@ -89,6 +89,8 @@ class ExceptionSnapshotLinux final : pub
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+     CPUContextMIPS mipsel;
+     CPUContextMIPS64 mips64;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    CPUContextPPC64 ppc64;
+ #endif
+   } context_union_;
+   CPUContext context_;
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+@@ -295,7 +295,28 @@ void ExpectContext(const CPUContext& act
+             0);
+ #undef CPU_ARCH_NAME
+ }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++using NativeCPUContext = ucontext_t;
+ 
++void InitializeContext(NativeCPUContext* context) {
++  for (size_t reg = 0; reg < 32; ++reg) {
++    context->uc_mcontext.gp_regs[reg] = reg;
++  }
++
++  memset(&context->uc_mcontext.fp_regs, 44,
++      sizeof(context->uc_mcontext.fp_regs));
++}
++
++void ExpectContext(const CPUContext& actual, const NativeCPUContext& expected) {
++  EXPECT_EQ(actual.architecture, kCPUArchitecturePPC64);
++
++  for (size_t reg = 0; reg < 32; ++reg) {
++    EXPECT_EQ(actual.ppc64->regs[reg], expected.uc_mcontext.gp_regs[reg]);
++  }
++
++  EXPECT_EQ(memcmp(actual.ppc64->fpregs, expected.uc_mcontext.fp_regs,
++            sizeof(actual.ppc64->fpregs)), 0);
++}
+ #else
+ #error Port.
+ #endif
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
+@@ -108,6 +108,8 @@ void ProcessReaderLinux::Thread::Initial
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29]
+                                     : thread_info.thread_context.t32.regs[29];
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  stack_pointer = thread_info.thread_context.t64.gpr[1];
+ #else
+ #error Port.
+ #endif
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+@@ -422,6 +422,89 @@ static_assert(offsetof(UContext<ContextT
+               "context offset mismatch");
+ #endif
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++
++struct SignalThreadContext64 {
++  uint64_t regs[32];
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t orig_r3;
++  uint64_t ctr;
++  uint64_t lnk;
++  uint64_t xer;
++  uint64_t ccr;
++  uint64_t softe;
++  uint64_t trap;
++  uint64_t dar;
++  uint64_t dsisr;
++  uint64_t result;
++  uint64_t dscr;
++  uint64_t fpr0[3];
++};
++
++struct SignalFloatContext64 {
++  double regs[32];
++  double fpscr;
++};
++
++struct SignalVectorContext64 {
++  int32_t vrregs[32][4];
++  struct {
++    int32_t __pad[3];
++    int32_t vscr_word;
++  } vscr;
++  int32_t vrsave;
++  int32_t __pad[3];
++} __attribute__((__aligned__(16)));
++
++
++#pragma pack(pop)
++struct MContext64 {
++  uint64_t reserved[4];
++  int32_t signal;
++  int32_t __pad0;
++  uint64_t handler;
++  uint64_t oldmask;
++  uint64_t pt_regs_ptr;
++  SignalThreadContext64 gp_regs;
++  SignalFloatContext64  fp_regs;
++  SignalVectorContext64 *v_regs;
++  int64_t vmx_reserve[69];
++};
++
++struct ContextTraits64 : public Traits64 {
++  using MContext = MContext64;
++  using SignalThreadContext = SignalThreadContext64;
++  using SignalFloatContext = SignalFloatContext64;
++  using SignalVectorContext = SignalVectorContext64;
++  using CPUContext = CPUContextPPC64;
++};
++
++struct ContextTraits32 : public Traits32 {};
++
++struct UContext {
++  uint64_t flags;
++  uint64_t link;
++  SignalStack<ContextTraits64> stack;
++  Sigset<ContextTraits64> sigmask;
++  MContext64 mcontext;
++};
++#pragma pack(push, 1)
++
++static_assert(sizeof(UContext) == sizeof(ucontext_t),
++              "ucontext_t size mismatch");
++static_assert(sizeof(MContext64) == sizeof(mcontext_t),
++              "mcontext_t size mismatch");
++static_assert(sizeof(SignalThreadContext64) == sizeof(gregset_t),
++              "gregset_t size mismatch");
++static_assert(sizeof(SignalFloatContext64) == sizeof(fpregset_t),
++              "fpregset_t size mismatch");
++static_assert(sizeof(SignalVectorContext64) == sizeof(_libc_vrstate),
++              "vrstate size mismatch");
++static_assert(offsetof(UContext, mcontext) ==
++              offsetof(ucontext_t, uc_mcontext), "mcontext offset mismatch");
++static_assert(offsetof(MContext64, gp_regs) ==
++              offsetof(mcontext_t, gp_regs), "gp_regs offset mismatch");
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
+@@ -204,6 +204,8 @@ CPUArchitecture SystemSnapshotLinux::Get
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL
+                                     : kCPUArchitectureMIPSEL;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return kCPUArchitecturePPC64;
+ #else
+ #error port to your architecture
+ #endif
+@@ -219,6 +221,9 @@ uint32_t SystemSnapshotLinux::CPURevisio
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return 0;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return 0;
+ #else
+ #error port to your architecture
+ #endif
+@@ -239,6 +244,9 @@ std::string SystemSnapshotLinux::CPUVend
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return std::string();
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return std::string();
+ #else
+ #error port to your architecture
+ #endif
+@@ -372,6 +380,9 @@ bool SystemSnapshotLinux::NXEnabled() co
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return false;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return false;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
+@@ -189,6 +189,14 @@ bool ThreadSnapshotLinux::Initialize(
+         thread.thread_info.float_context.f32,
+         context_.mipsel);
+   }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  context_.architecture = kCPUArchitecturePPC64;
++  context_.ppc64 = &context_union_.ppc64;
++  InitializeCPUContextPPC64<ContextTraits64>(
++      thread.thread_info.thread_context.t64,
++      thread.thread_info.float_context.f64,
++      thread.thread_info.vector_context.v64,
++      context_.ppc64);
+ #else
+ #error Port.
+ #endif
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
+@@ -73,6 +73,8 @@ class ThreadSnapshotLinux final : public
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+     CPUContextMIPS mipsel;
+     CPUContextMIPS64 mips64;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    CPUContextPPC64 ppc64;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.cc
+@@ -292,5 +292,38 @@ void InitializeCPUContextMIPS64(CPUConte
+   mips64->dsp_control = value++;
+ }
+ 
++void InitializeCPUContextPPC64(CPUContext* context, uint32_t seed) {
++  context->architecture = kCPUArchitecturePPC64;
++  CPUContextPPC64* ppc64 = context->ppc64;
++
++  if (seed == 0) {
++      memset(ppc64, 0, sizeof(*ppc64));
++      return;
++  }
++
++  uint64_t value = seed;
++  for (size_t i = 0; i < base::size(ppc64->regs); ++i) {
++      ppc64->regs[i] = value++;
++  }
++
++  ppc64->nip = value++;
++  ppc64->msr = value++;
++  ppc64->ccr = value++;
++  ppc64->xer = value++;
++  ppc64->lnk = value++;
++  ppc64->ctr = value++;
++
++  for (size_t i = 0; i < base::size(ppc64->fpregs); ++i) {
++      ppc64->fpregs[i] = static_cast<double>(i);
++  }
++  ppc64->fpscr = value++;
++
++  for (size_t i = 0; i < base::size(ppc64->vregs.save_vr); ++i) {
++      ppc64->vregs.save_vr[i] = {value++, value++};
++  }
++  ppc64->vregs.save_vscr = {value++, value++};
++  ppc64->vregs.save_vrsave = value++;
++}
++
+ }  // namespace test
+ }  // namespace crashpad
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/snapshot/test/test_cpu_context.h
+@@ -63,6 +63,7 @@ void InitializeCPUContextARM(CPUContext*
+ void InitializeCPUContextARM64(CPUContext* context, uint32_t seed);
+ void InitializeCPUContextMIPS(CPUContext* context, uint32_t seed);
+ void InitializeCPUContextMIPS64(CPUContext* context, uint32_t seed);
++void InitializeCPUContextPPC64(CPUContext* context, uint32_t seed);
+ //! \}
+ 
+ }  // namespace test
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/test/linux/get_tls.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/test/linux/get_tls.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/test/linux/get_tls.cc
+@@ -49,6 +49,8 @@ LinuxVMAddress GetTLS() {
+       : "=r"(tls)
+       :
+       : "$3");
++#elif defined(ARCH_CPU_PPC64)
++  asm("mr %0, 13": "=r"(tls));
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_ARMEL
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/test/multiprocess_posix.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/test/multiprocess_posix.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/test/multiprocess_posix.cc
+@@ -162,7 +162,8 @@ void Multiprocess::SetExpectedChildTermi
+ }
+ 
+ void Multiprocess::SetExpectedChildTerminationBuiltinTrap() {
+-#if defined(ARCH_CPU_ARM64) || defined(ARCH_CPU_MIPS_FAMILY)
++#if defined(ARCH_CPU_ARM64) || defined(ARCH_CPU_MIPS_FAMILY) || \
++    defined(ARCH_CPU_PPC64_FAMILY)
+   SetExpectedChildTermination(kTerminationSignal, SIGTRAP);
+ #else
+   SetExpectedChildTermination(kTerminationSignal, SIGILL);
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
+@@ -56,6 +56,11 @@ bool AuxiliaryVector::Read(PtraceConnect
+     if (type == AT_IGNORE) {
+       continue;
+     }
++#if defined(ARCH_CPU_PPC64_FAMILY)
++    if (type == AT_IGNOREPPC) {
++      continue;
++    }
++#endif
+     if (!MapInsertOrReplace(&values_, type, value, nullptr)) {
+       LOG(ERROR) << "duplicate auxv entry";
+       return false;
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/ptracer.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/linux/ptracer.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/ptracer.cc
+@@ -398,6 +398,64 @@ bool GetThreadArea64(pid_t tid,
+   return true;
+ }
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++// PPC64 has had HAVE_ARCH_TRACEHOOK set since 2.6.27 (even before x86 had it).
++// That means we can simply use PTRACE_GETREGESET.
++
++template <typename Destination>
++bool GetRegisterSet(pid_t tid, int set, Destination* dest, bool can_log) {
++  iovec iov;
++  iov.iov_base = reinterpret_cast<void*>(dest);
++  iov.iov_len = sizeof(*dest);
++  if (ptrace(PTRACE_GETREGSET, tid, reinterpret_cast<void*>(set), &iov) != 0) {
++    PLOG_IF(ERROR, can_log) << "ptrace";
++    return false;
++  }
++  if (iov.iov_len != sizeof(*dest)) {
++    LOG_IF(ERROR, can_log) << "Unexpected registers size";
++    return false;
++  }
++  return true;
++}
++
++bool GetVectorRegisters64(pid_t tid,
++                          VectorContext* context,
++                          bool can_log) {
++  return GetRegisterSet(tid, NT_PPC_VMX, &context->v64, can_log);
++}
++
++bool GetFloatingPointRegisters64(pid_t tid,
++                                 FloatContext* context,
++                                 bool can_log) {
++  return GetRegisterSet(tid, NT_PRFPREG, &context->f64, can_log);
++}
++
++bool GetThreadArea64(pid_t tid,
++                     const ThreadContext& context,
++                     LinuxVMAddress* address,
++                     bool can_log) {
++  // PPC64 doesn't have PTRACE_GET_THREAD_AREA since the thread pointer
++  // is stored in GPR 13.
++  ThreadContext::t64_t tc;
++  if (!GetRegisterSet(tid, NT_PRSTATUS, &tc, can_log)) {
++    LOG_IF(ERROR, can_log) << "Unable to get thread pointer!";
++    return false;
++  }
++
++  *address = tc.gpr[13];
++
++  return true;
++}
++
++// Stubs for 32-bit functions not applicable on PPC64
++bool GetFloatingPointRegisters32(pid_t tid,
++                                 FloatContext* context,
++                                 bool can_log) { return false; }
++bool GetThreadArea32(pid_t tid,
++                     const ThreadContext &context,
++                     LinuxVMAddress *address,
++                     bool can_log) { return false; }
++
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -494,6 +552,9 @@ bool Ptracer::GetThreadInfo(pid_t tid, T
+   if (is_64_bit_) {
+     return GetGeneralPurposeRegisters64(tid, &info->thread_context, can_log_) &&
+            GetFloatingPointRegisters64(tid, &info->float_context, can_log_) &&
++#if defined(ARCH_CPU_PPC64_FAMILY)
++           GetVectorRegisters64(tid, &info->vector_context, can_log_) &&
++#endif
+            GetThreadArea64(tid,
+                            info->thread_context,
+                            &info->thread_specific_data_address,
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/thread_info.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/linux/thread_info.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/linux/thread_info.h
+@@ -28,6 +28,10 @@
+ #include <android/api-level.h>
+ #endif
+ 
++#if defined(ARCH_CPU_PPC64_FAMILY)
++#include <sys/ucontext.h>
++#endif
++
+ namespace crashpad {
+ 
+ //! \brief The set of general purpose registers for an architecture family.
+@@ -79,6 +83,8 @@ union ThreadContext {
+     uint32_t cp0_status;
+     uint32_t cp0_cause;
+     uint32_t padding1_;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // PPC64 is 64-bit
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -132,6 +138,21 @@ union ThreadContext {
+     uint64_t cp0_badvaddr;
+     uint64_t cp0_status;
+     uint64_t cp0_cause;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects struct pt_regs in asm/ptrace.h.
++    uint64_t gpr[32];
++    uint64_t nip;
++    uint64_t msr;
++    uint64_t orig_gpr3;
++    uint64_t ctr;
++    uint64_t lnk;
++    uint64_t xer;
++    uint64_t ccr;
++    uint64_t softe;
++    uint64_t trap;
++    uint64_t dar;
++    uint64_t dsisr;
++    uint64_t result;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -143,6 +164,8 @@ union ThreadContext {
+   using NativeThreadContext = user_regs;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+ // No appropriate NativeThreadsContext type available for MIPS
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  using NativeThreadContext = struct pt_regs;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY || ARCH_CPU_ARM64
+@@ -218,6 +241,9 @@ union FloatContext {
+     } fpregs[32];
+     uint32_t fpcsr;
+     uint32_t fpu_id;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Crashpad's PPC support is 64-bit only, so this
++    // 32bit-only struct is declared as empty.
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -252,6 +278,10 @@ union FloatContext {
+     double fpregs[32];
+     uint32_t fpcsr;
+     uint32_t fpu_id;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects fpregset_t in sys/ucontext.h
++    double fpregs[32];
++    double fpscr;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -280,6 +310,8 @@ union FloatContext {
+   static_assert(sizeof(f64) == sizeof(user_fpsimd_struct), "Size mismatch");
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+ // No appropriate floating point context native type for available MIPS.
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  static_assert(sizeof(f64) == sizeof(fpregset_t), "Size mismatch");
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86
+@@ -287,6 +319,26 @@ union FloatContext {
+ static_assert(std::is_standard_layout<FloatContext>::value,
+               "Not standard layout");
+ 
++//! \brief The vector registers used for an architecture family
++union VectorContext {
++  struct v32_t {} v32;
++#if defined(ARCH_CPU_PPC64_FAMILY)
++  __attribute__((__aligned__(16))) // Vector context must be doubleword aligned.
++#endif
++  struct v64_t {
++#if defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects vrregset_t in sys/ucontext.h
++    uint32_t vrregs[32][4];
++    struct {
++      uint32_t __pad[3];
++      uint32_t vscr_word;
++    } vscr;
++    uint32_t vrsave;
++    uint32_t __pad[3];
++#endif
++  } v64;
++};
++
+ //! \brief A collection of `ptrace`-able information about a thread.
+ struct ThreadInfo {
+   ThreadInfo();
+@@ -298,6 +350,9 @@ struct ThreadInfo {
+   //! \brief The floating point registers for the thread.
+   FloatContext float_context;
+ 
++  //! \brief (Optional) The vector registers used for the thread.
++  VectorContext vector_context;
++
+   //! \brief The thread-local storage address for the thread.
+   LinuxVMAddress thread_specific_data_address;
+ };
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/misc/capture_context.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context.h
+@@ -69,6 +69,7 @@ using NativeCPUContext = ucontext_t;
+ //!     macOS/Linux/Fuchsia | x86_64       | `%%rdi`
+ //!     Linux               | ARM/ARM64    | `r0`/`x0`
+ //!     Linux               | MIPS/MIPS64  | `$a0`
++//!     Linux               | PPC64        | `r3`
+ //!
+ //!     Additionally, the value `LR` on ARM/ARM64 will be the return address of
+ //!     this function.
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+@@ -30,7 +30,7 @@
+   .globl CAPTURECONTEXT_SYMBOL2
+ #if defined(__i386__) || defined(__x86_64__)
+   .balign 16, 0x90
+-#elif defined(__arm__) || defined(__aarch64__)
++#elif defined(__arm__) || defined(__aarch64__) || defined(__powerpc64__)
+   .balign 4, 0x0
+   .type CAPTURECONTEXT_SYMBOL, %function
+   .type CAPTURECONTEXT_SYMBOL2, %function
+@@ -426,4 +426,214 @@ CAPTURECONTEXT_SYMBOL2:
+   jr $ra
+ 
+   .set at
++#elif defined(__powerpc64__)
++  // Store r0-r31
++  std 0, 0xe8(3)   // context->uc_mcontext.gp_regs[0]
++  std 1, 0xf0(3)   // context->uc_mcontext.gp_regs[1]
++  std 2, 0xf8(3)   // context->uc_mcontext.gp_regs[2]
++  // note that r3's original value was lost
++  std 3, 0x100(3)  // context->uc_mcontext.gp_regs[3]
++  std 4, 0x108(3)  // context->uc_mcontext.gp_regs[4]
++  std 5, 0x110(3)  // context->uc_mcontext.gp_regs[5]
++  std 6, 0x118(3)  // context->uc_mcontext.gp_regs[6]
++  std 7, 0x120(3)  // context->uc_mcontext.gp_regs[7]
++  std 8, 0x128(3)  // context->uc_mcontext.gp_regs[8]
++  std 9, 0x130(3)  // context->uc_mcontext.gp_regs[9]
++  std 10, 0x138(3) // context->uc_mcontext.gp_regs[10]
++  std 11, 0x140(3) // context->uc_mcontext.gp_regs[11]
++  std 12, 0x148(3) // context->uc_mcontext.gp_regs[12]
++  std 13, 0x150(3) // context->uc_mcontext.gp_regs[13]
++  std 14, 0x158(3) // context->uc_mcontext.gp_regs[14]
++  std 15, 0x160(3) // context->uc_mcontext.gp_regs[15]
++  std 16, 0x168(3) // context->uc_mcontext.gp_regs[16]
++  std 17, 0x170(3) // context->uc_mcontext.gp_regs[17]
++  std 18, 0x178(3) // context->uc_mcontext.gp_regs[18]
++  std 19, 0x180(3) // context->uc_mcontext.gp_regs[19]
++  std 20, 0x188(3) // context->uc_mcontext.gp_regs[20]
++  std 21, 0x190(3) // context->uc_mcontext.gp_regs[21]
++  std 22, 0x198(3) // context->uc_mcontext.gp_regs[22]
++  std 23, 0x1a0(3) // context->uc_mcontext.gp_regs[23]
++  std 24, 0x1a8(3) // context->uc_mcontext.gp_regs[24]
++  std 25, 0x1b0(3) // context->uc_mcontext.gp_regs[25]
++  std 26, 0x1b8(3) // context->uc_mcontext.gp_regs[26]
++  std 27, 0x1c0(3) // context->uc_mcontext.gp_regs[27]
++  std 28, 0x1c8(3) // context->uc_mcontext.gp_regs[28]
++  std 29, 0x1d0(3) // context->uc_mcontext.gp_regs[29]
++  std 30, 0x1d8(3) // context->uc_mcontext.gp_regs[30]
++  std 31, 0x1e0(3) // context->uc_mcontext.gp_regs[31]
++
++  // For NIP, we can use the value in the link register
++  mflr 0
++  std 0, 0x1e8(3) // context->uc_mcontext.gp_regs[PT_NIP]
++
++  // CTR
++  mfctr 0
++  std 0, 0x200(3) // context->uc_mcontext.gp_regs[PT_CTR]
++
++  // For LNK, we'll use the caller's LR save area (2 stack frames up).
++  // r4 can be used as a scratch register since it has already been saved.
++  ld 4, 0(1)
++  ld 4, 16(4)
++  std 4, 0x208(3) // context->uc_mcontext.gp_regs[PT_LNK]
++
++  // XER
++  mfxer 0
++  std 0, 0x210(3) // context->uc_mcontext.gp_regs[PT_XER]
++
++  // CCR
++  mfcr 0
++  std 0, 0x218(3) // context->uc_mcontext.gp_regs[PT_CCR]
++
++  // MSR, orig_r3, MQ, TRAP, DAR, DSISR, RESULT, DSCR,
++  // not used or not relevant,  zero them out.
++  li 4, 0
++  std 4, 0x1f0(3) // context->uc_mcontext.gp_regs[PT_MSR]
++  std 4, 0x1f8(3) // context->uc_mcontext.gp_regs[PT_ORIG_R3]
++  std 4, 0x220(3) // context->uc_mcontext.gp_regs[PT_MQ]
++  std 4, 0x228(3) // context->uc_mcontext.gp_regs[PT_TRAP]
++  std 4, 0x230(3) // context->uc_mcontext.gp_regs[PT_DAR]
++  std 4, 0x238(3) // context->uc_mcontext.gp_regs[PT_DSISR]
++  std 4, 0x240(3) // context->uc_mcontext.gp_regs[PT_RESULT]
++  std 4, 0x248(3) // context->uc_mcontext.gp_regs[PT_DSCR]
++
++  // Update context->uc_mcontext.regs to point to gp_regs
++  addi 0, 3, 0xe8
++  std 0, 0xe0(3)
++
++  // Save floating point registers 0-31
++  stfd 0, 0x268(3)  // context->uc_mcontext.fp_regs[0]
++  stfd 1, 0x270(3)  // context->uc_mcontext.fp_regs[1]
++  stfd 2, 0x278(3)  // context->uc_mcontext.fp_regs[2]
++  stfd 3, 0x280(3)  // context->uc_mcontext.fp_regs[3]
++  stfd 4, 0x288(3)  // context->uc_mcontext.fp_regs[4]
++  stfd 5, 0x290(3)  // context->uc_mcontext.fp_regs[5]
++  stfd 6, 0x298(3)  // context->uc_mcontext.fp_regs[6]
++  stfd 7, 0x2a0(3)  // context->uc_mcontext.fp_regs[7]
++  stfd 8, 0x2a8(3)  // context->uc_mcontext.fp_regs[8]
++  stfd 9, 0x2b0(3)  // context->uc_mcontext.fp_regs[9]
++  stfd 10, 0x2b8(3) // context->uc_mcontext.fp_regs[10]
++  stfd 11, 0x2c0(3) // context->uc_mcontext.fp_regs[11]
++  stfd 12, 0x2c8(3) // context->uc_mcontext.fp_regs[12]
++  stfd 13, 0x2d0(3) // context->uc_mcontext.fp_regs[13]
++  stfd 14, 0x2d8(3) // context->uc_mcontext.fp_regs[14]
++  stfd 15, 0x2e0(3) // context->uc_mcontext.fp_regs[15]
++  stfd 16, 0x2e8(3) // context->uc_mcontext.fp_regs[16]
++  stfd 17, 0x2f0(3) // context->uc_mcontext.fp_regs[17]
++  stfd 18, 0x2f8(3) // context->uc_mcontext.fp_regs[18]
++  stfd 19, 0x300(3) // context->uc_mcontext.fp_regs[19]
++  stfd 20, 0x308(3) // context->uc_mcontext.fp_regs[20]
++  stfd 21, 0x310(3) // context->uc_mcontext.fp_regs[21]
++  stfd 22, 0x318(3) // context->uc_mcontext.fp_regs[22]
++  stfd 23, 0x320(3) // context->uc_mcontext.fp_regs[23]
++  stfd 24, 0x328(3) // context->uc_mcontext.fp_regs[24]
++  stfd 25, 0x330(3) // context->uc_mcontext.fp_regs[25]
++  stfd 26, 0x338(3) // context->uc_mcontext.fp_regs[26]
++  stfd 27, 0x340(3) // context->uc_mcontext.fp_regs[27]
++  stfd 28, 0x348(3) // context->uc_mcontext.fp_regs[28]
++  stfd 29, 0x350(3) // context->uc_mcontext.fp_regs[29]
++  stfd 30, 0x358(3) // context->uc_mcontext.fp_regs[30]
++  stfd 31, 0x360(3) // context->uc_mcontext.fp_regs[31]
++
++  // FPSCR
++  mffs 0
++  stfd 0, 0x368(3) // context->uc_mcontext.fp_regs[32]
++
++  // Save VMX Vector registers
++  // Update r4 to contain the base address of vmx_reserve
++  addi 4, 3, 0x378
++  // Ensure that it is quadword aligned
++  andi. 5, 4, 0xF
++  beq 1f // No alignment is necessary
++  // Address is doubleword aligned and not quadword aligned, add 8
++  addi 4, 4, 8
++
++1:
++  // Store VMX registers 0-31
++  // r4 will contain the base address
++  // r5 will contain the index
++  li 5, 0
++  stvx 0, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 0]
++  addi 5, 5, 16
++  stvx 1, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 1]
++  addi 5, 5, 16
++  stvx 2, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 2]
++  addi 5, 5, 16
++  stvx 3, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 3]
++  addi 5, 5, 16
++  stvx 4, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 4]
++  addi 5, 5, 16
++  stvx 5, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 5]
++  addi 5, 5, 16
++  stvx 6, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 6]
++  addi 5, 5, 16
++  stvx 7, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 7]
++  addi 5, 5, 16
++  stvx 8, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 8]
++  addi 5, 5, 16
++  stvx 9, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 9]
++  addi 5, 5, 16
++  stvx 10, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 10]
++  addi 5, 5, 16
++  stvx 11, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 11]
++  addi 5, 5, 16
++  stvx 12, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 12]
++  addi 5, 5, 16
++  stvx 13, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 13]
++  addi 5, 5, 16
++  stvx 14, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 14]
++  addi 5, 5, 16
++  stvx 15, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 15]
++  addi 5, 5, 16
++  stvx 16, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 16]
++  addi 5, 5, 16
++  stvx 17, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 17]
++  addi 5, 5, 16
++  stvx 18, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 18]
++  addi 5, 5, 16
++  stvx 19, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 19]
++  addi 5, 5, 16
++  stvx 20, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 20]
++  addi 5, 5, 16
++  stvx 21, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 21]
++  addi 5, 5, 16
++  stvx 22, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 22]
++  addi 5, 5, 16
++  stvx 23, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 23]
++  addi 5, 5, 16
++  stvx 24, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 24]
++  addi 5, 5, 16
++  stvx 25, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 25]
++  addi 5, 5, 16
++  stvx 26, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 26]
++  addi 5, 5, 16
++  stvx 27, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 27]
++  addi 5, 5, 16
++  stvx 28, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 28]
++  addi 5, 5, 16
++  stvx 29, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 29]
++  addi 5, 5, 16
++  stvx 30, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 30]
++  addi 5, 5, 16
++  stvx 31, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 31]
++  addi 5, 5, 16
++
++  // VSCR
++  mfvscr 0
++  stvx 0, 4, 5
++  addi 5, 5, 16
++
++  // VRSAVE
++  mfvrsave 0
++  stwx 0, 4, 5
++
++  // Update context->uc_mcontext.v_regs to point to vmx_reserve + alignment.
++  std 4, 0x370(3)
++
++  // Zero out all unused fields
++  li 4, 0
++  std 4, 0xc8(3) // context->uc_mcontext.signal
++  std 4, 0xd0(3) // context->uc_mcontext.handler
++  std 4, 0xd8(3) // context->uc_mcontext.oldmask
++
++  blr
+ #endif  // __i386__
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
+@@ -57,7 +57,7 @@ void TestCaptureContext() {
+   uintptr_t pc = ProgramCounterFromContext(context_1);
+ 
+ #if !defined(ADDRESS_SANITIZER) && !defined(ARCH_CPU_MIPS_FAMILY) && \
+-    !defined(MEMORY_SANITIZER)
++    !defined(MEMORY_SANITIZER) && !defined(ARCH_CPU_PPC64_FAMILY)
+   // Sanitizers can cause enough code bloat that the ânearbyâ check would
+   // likely fail.
+   const uintptr_t kReferencePC =
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
+@@ -35,6 +35,8 @@ void SanityCheckContext(const NativeCPUC
+   EXPECT_EQ(context.uc_mcontext.regs[0], FromPointerCast<uintptr_t>(&context));
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   EXPECT_EQ(context.uc_mcontext.gregs[4], FromPointerCast<uintptr_t>(&context));
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  EXPECT_EQ(context.uc_mcontext.gp_regs[3], FromPointerCast<uintptr_t>(&context));
+ #endif
+ }
+ 
+@@ -49,6 +51,8 @@ uintptr_t ProgramCounterFromContext(cons
+   return context.uc_mcontext.pc;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return context.uc_mcontext.pc;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return context.uc_mcontext.gp_regs[PT_NIP];
+ #endif
+ }
+ 
+@@ -63,6 +67,8 @@ uintptr_t StackPointerFromContext(const
+   return context.uc_mcontext.sp;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return context.uc_mcontext.gregs[29];
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return context.uc_mcontext.gp_regs[1];
+ #endif
+ }
+ 
diff -urN a/debian/patches/ppc64le/crashpad/0002-Include-cstddef-to-fix-build.patch b/debian/patches/ppc64le/crashpad/0002-Include-cstddef-to-fix-build.patch
--- a/debian/patches/ppc64le/crashpad/0002-Include-cstddef-to-fix-build.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/crashpad/0002-Include-cstddef-to-fix-build.patch	2022-02-13 01:38:45.719316006 +0000
@@ -0,0 +1,21 @@
+From 82922bf486e9926a171152f61030dfcd53f017b8 Mon Sep 17 00:00:00 2001
+From: Timothy Pearson <tpearson@raptorengineering.com>
+Date: Thu, 30 Aug 2018 17:32:05 -0500
+Subject: [PATCH] Include cstddef to fix build
+
+size_t is not defined unless cstddef is included.
+---
+ third_party/crashpad/crashpad/compat/linux/sys/user.h  |   1 +
+
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/compat/linux/sys/user.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/compat/linux/sys/user.h
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/compat/linux/sys/user.h
+@@ -15,6 +15,7 @@
+ #ifndef CRASHPAD_COMPAT_LINUX_SYS_USER_H_
+ #define CRASHPAD_COMPAT_LINUX_SYS_USER_H_
+ 
++#include <cstddef>
+ #include_next <sys/user.h>
+ 
+ #include <features.h>
diff -urN a/debian/patches/ppc64le/database/0001-Properly-detect-little-endian-PPC64-systems.patch b/debian/patches/ppc64le/database/0001-Properly-detect-little-endian-PPC64-systems.patch
--- a/debian/patches/ppc64le/database/0001-Properly-detect-little-endian-PPC64-systems.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/database/0001-Properly-detect-little-endian-PPC64-systems.patch	2022-02-13 01:38:45.719316006 +0000
@@ -0,0 +1,55 @@
+Index: chromium-99.0.4818.0/third_party/sqlite/src/amalgamation/sqlite3.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/sqlite/src/amalgamation/sqlite3.c
++++ chromium-99.0.4818.0/third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -13989,7 +13989,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) ||   \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
+Index: chromium-99.0.4818.0/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/sqlite/src/amalgamation_dev/sqlite3.c
++++ chromium-99.0.4818.0/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -14002,7 +14002,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) ||   \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
+Index: chromium-99.0.4818.0/third_party/sqlite/src/ext/rtree/rtree.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/sqlite/src/ext/rtree/rtree.c
++++ chromium-99.0.4818.0/third_party/sqlite/src/ext/rtree/rtree.c
+@@ -474,7 +474,7 @@ struct RtreeMatchArg {
+ #if defined(i386)     || defined(__i386__)   || defined(_M_IX86) ||    \
+     defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)  ||    \
+     defined(_M_AMD64) || defined(_M_ARM)     || defined(__x86)   ||    \
+-    defined(__arm__)
++    defined(__arm__)  || defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ # define SQLITE_BYTEORDER    1234
+ #elif defined(sparc)    || defined(__ppc__)
+ # define SQLITE_BYTEORDER    4321
+Index: chromium-99.0.4818.0/third_party/sqlite/src/src/sqliteInt.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/sqlite/src/src/sqliteInt.h
++++ chromium-99.0.4818.0/third_party/sqlite/src/src/sqliteInt.h
+@@ -899,7 +899,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) ||   \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
diff -urN a/debian/patches/ppc64le/ffmpeg/0001-Add-support-for-ppc64.patch b/debian/patches/ppc64le/ffmpeg/0001-Add-support-for-ppc64.patch
--- a/debian/patches/ppc64le/ffmpeg/0001-Add-support-for-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/ffmpeg/0001-Add-support-for-ppc64.patch	2022-02-13 01:38:45.719316006 +0000
@@ -0,0 +1,114 @@
+From bfdb97e53b1b6d037d00711f4601aabf167dbfbf Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Sat, 1 Sep 2018 16:43:48 -0500
+Subject: [PATCH] Add support for ppc64
+
+---
+ chromium/scripts/build_ffmpeg.py         | 11 +++++++++--
+ chromium/scripts/copy_config.sh          |  2 +-
+ chromium/scripts/generate_gn.py          |  2 +-
+ chromium/scripts/generate_gn_unittest.py | 10 ++++++++--
+ 4 files changed, 19 insertions(+), 6 deletions(-)
+
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+@@ -40,7 +40,7 @@ BRANDINGS = [
+ ARCH_MAP = {
+     'android': ['ia32', 'x64', 'arm-neon', 'arm64'],
+     'linux': [
+-        'ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'
++        'ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64', 'ppc64'
+     ],
+     'mac': ['x64', 'arm64'],
+     'win': ['ia32', 'x64', 'arm64'],
+@@ -142,6 +142,8 @@ def DetermineHostOsAndArch():
+     host_arch = 'mips64el'
+   elif platform.machine().startswith('arm'):
+     host_arch = 'arm'
++  elif platform.machine() == 'ppc64le':
++    host_arch = 'ppc64'
+   else:
+     return None
+ 
+@@ -920,6 +922,11 @@ def ConfigureAndBuild(target_arch, targe
+             '--extra-cflags=--target=mips64el-linux-gnuabi64',
+             '--extra-ldflags=--target=mips64el-linux-gnuabi64',
+         ])
++    elif target_arch == 'ppc64':
++      configure_flags['Common'].extend([
++        '--arch=ppc64le',
++        '--extra-cflags=-mcpu=power9'
++      ])
+     else:
+       print(
+           'Error: Unknown target arch %r for target OS %r!' % (target_arch,
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/copy_config.sh
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/ffmpeg/chromium/scripts/copy_config.sh
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/copy_config.sh
+@@ -10,7 +10,7 @@ for os in android linux linux-noasm mac
+     # Copy config files for various architectures:
+     #   - ia32/x64 have config.asm, config.h
+     #   - arm/arm-neon have config.h
+-    for arch in arm arm-neon arm64 ia32 x64 mipsel mips64el; do
++    for arch in arm arm-neon arm64 ia32 x64 mipsel mips64el ppc64; do
+       # Don't waste time on non-existent configs, if no config.h then skip.
+       [ ! -e "build.$arch.$os/$target/config.h" ] && continue
+       for f in config.h config.asm libavutil/avconfig.h libavutil/ffversion.h libavcodec/bsf_list.c libavcodec/codec_list.c libavcodec/parser_list.c libavformat/demuxer_list.c libavformat/muxer_list.c libavformat/protocol_list.c; do
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/generate_gn.py
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/ffmpeg/chromium/scripts/generate_gn.py
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/generate_gn.py
+@@ -76,7 +76,7 @@ _Attrs = ('ARCHITECTURE', 'TARGET', 'PLA
+ Attr = collections.namedtuple('Attr', _Attrs)(*_Attrs)
+ SUPPORT_MATRIX = {
+     Attr.ARCHITECTURE:
+-        set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon']),
++        set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon', 'ppc64']),
+     Attr.TARGET:
+         set(['Chromium', 'Chrome', 'ChromeOS']),
+     Attr.PLATFORM:
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py
+@@ -323,6 +323,10 @@ class SourceSetUnittest(unittest.TestCas
+     f = SourceSet(
+         set(['common', 'arm-neon', 'chrome', 'chromeos']),
+         set([SourceListCondition('arm-neon', 'ChromeOS', 'linux')]))
++    g = SourceSet(
++        set(['common']),
++        set([SourceListCondition('ppc64', 'Chromium', 'linux')]))
++
+ 
+     expected = set()
+     expected.add(
+@@ -334,7 +338,8 @@ class SourceSetUnittest(unittest.TestCas
+                 SourceListCondition('x64', 'Chromium', 'linux'),
+                 SourceListCondition('x64', 'Chrome', 'linux'),
+                 SourceListCondition('arm', 'Chromium', 'linux'),
+-                SourceListCondition('arm-neon', 'ChromeOS', 'linux')
++                SourceListCondition('arm-neon', 'ChromeOS', 'linux'),
++                SourceListCondition('ppc64', 'Chromium', 'linux')
+             ])))
+     expected.add(
+         SourceSet(
+@@ -362,7 +367,7 @@ class SourceSetUnittest(unittest.TestCas
+             set(['arm-neon', 'chromeos']),
+             set([SourceListCondition('arm-neon', 'ChromeOS', 'linux')])))
+ 
+-    source_sets = gg.CreatePairwiseDisjointSets([a, b, c, d, e, f])
++    source_sets = gg.CreatePairwiseDisjointSets([a, b, c, d, e, f, g])
+     self.assertEqualSourceSets(expected, set(source_sets))
+ 
+   def testReduceConditions(self):
+@@ -375,6 +380,7 @@ class SourceSetUnittest(unittest.TestCas
+             SourceListCondition('arm', 'Chromium', 'linux'),
+             SourceListCondition('arm64', 'Chromium', 'linux'),
+             SourceListCondition('arm-neon', 'Chromium', 'linux'),
++            SourceListCondition('ppc64', 'Chromium', 'linux'),
+         ]))
+     gg.ReduceConditionalLogic(a)
+ 
diff -urN a/debian/patches/ppc64le/fixes/fix-breakpad-compile.patch b/debian/patches/ppc64le/fixes/fix-breakpad-compile.patch
--- a/debian/patches/ppc64le/fixes/fix-breakpad-compile.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/fixes/fix-breakpad-compile.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,29 @@
+Index: chromium-99.0.4818.0/third_party/breakpad/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/breakpad/BUILD.gn
++++ chromium-99.0.4818.0/third_party/breakpad/BUILD.gn
+@@ -621,7 +621,6 @@ if (is_linux || is_chromeos || is_androi
+       "breakpad/src/client/minidump_file_writer-inl.h",
+       "breakpad/src/client/minidump_file_writer.cc",
+       "breakpad/src/client/minidump_file_writer.h",
+-      "breakpad/src/common/linux/breakpad_getcontext.S",
+       "breakpad/src/common/linux/elf_core_dump.cc",
+       "breakpad/src/common/linux/elf_core_dump.h",
+       "breakpad/src/common/linux/elfutils.cc",
+@@ -653,6 +652,8 @@ if (is_linux || is_chromeos || is_androi
+     configs += [ "//build/config/compiler:no_chromium_code" ]
+     public_configs = [ ":client_config" ]
+ 
++    defines = [ "HAVE_GETCONTEXT" ]
++
+     if (current_cpu == "arm" && is_chromeos_ash) {
+       # Avoid running out of registers in
+       # linux_syscall_support.h:sys_clone()'s inline assembly.
+@@ -710,7 +711,6 @@ if (is_linux || is_chromeos || is_androi
+       "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc",
+       "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc",
+       "breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc",
+-      "breakpad/src/common/linux/breakpad_getcontext_unittest.cc",
+       "breakpad/src/common/linux/elf_core_dump_unittest.cc",
+       "breakpad/src/common/linux/file_id_unittest.cc",
+       "breakpad/src/common/linux/linux_libc_support_unittest.cc",
diff -urN a/debian/patches/ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch b/debian/patches/ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch
--- a/debian/patches/ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,57 @@
+From 40309fb53e39477490fd6928ebe67c4fb78de380 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@gmail.com>
+Date: Sun, 10 Mar 2019 21:01:37 -0500
+Subject: [PATCH] Add ppc64 target to libaom
+
+---
+ third_party/libaom/BUILD.gn        | 12 ++++++++++++
+ third_party/libaom/cmake_update.sh |  3 +++
+ 2 files changed, 15 insertions(+)
+
+Index: chromium-99.0.4818.0/third_party/libaom/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libaom/BUILD.gn
++++ chromium-99.0.4818.0/third_party/libaom/BUILD.gn
+@@ -208,6 +208,18 @@ if (enable_libaom) {
+     }
+   }
+ 
++  if (current_cpu == "ppc64") {
++    source_set("libaom_intrinsics_vsx") {
++      configs -= [ "//build/config/compiler:chromium_code" ]
++      configs += [ "//build/config/compiler:no_chromium_code" ]
++      configs += [ ":libaom_config" ]
++      sources = [
++        "//third_party/libaom/source/libaom/aom_ports/ppc_cpudetect.c",
++      ]
++      sources += aom_av1_common_intrin_vsx
++    }
++  }
++
+   static_library("libaom") {
+     if (!is_debug && is_win) {
+       configs -= [ "//build/config/compiler:default_optimization" ]
+@@ -258,6 +270,9 @@ if (enable_libaom) {
+         cpu_arch_full == "arm-neon-cpu-detect") {
+       deps += [ ":libaom_intrinsics_neon" ]
+     }
++    if (current_cpu == "ppc64") {
++      deps += [ ":libaom_intrinsics_vsx" ]
++    }
+     if (is_android) {
+       deps += [ "//third_party/android_ndk:cpu_features" ]
+     }
+Index: chromium-99.0.4818.0/third_party/libaom/cmake_update.sh
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libaom/cmake_update.sh
++++ chromium-99.0.4818.0/third_party/libaom/cmake_update.sh
+@@ -189,6 +189,9 @@ gen_config_files ios/arm-neon "${toolcha
+ reset_dirs ios/arm64
+ gen_config_files ios/arm64 "${toolchain}/arm64-ios.cmake ${all_platforms}"
+ 
++reset_dirs linux/ppc64
++gen_config_files linux/ppc64 "${toolchain}/ppc-linux-gcc.cmake ${all_platforms}"
++
+ # Copy linux configurations and modify for Windows.
+ reset_dirs win/arm64
+ cp "${CFG}/linux/arm64/config"/* "${CFG}/win/arm64/config/"
diff -urN a/debian/patches/ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch b/debian/patches/ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
--- a/debian/patches/ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,2198 @@
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
+@@ -0,0 +1,89 @@
++;
++; Copyright (c) 2022, 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.
++;
++ARCH_ARM equ 0
++ARCH_MIPS equ 0
++ARCH_PPC equ 1
++ARCH_X86 equ 0
++ARCH_X86_64 equ 0
++CONFIG_ACCOUNTING equ 0
++CONFIG_ANALYZER equ 0
++CONFIG_AV1_DECODER equ 1
++CONFIG_AV1_ENCODER equ 1
++CONFIG_AV1_HIGHBITDEPTH equ 0
++CONFIG_AV1_TEMPORAL_DENOISING equ 1
++CONFIG_BIG_ENDIAN equ 0
++CONFIG_BITRATE_ACCURACY equ 0
++CONFIG_BITSTREAM_DEBUG equ 0
++CONFIG_COEFFICIENT_RANGE_CHECKING equ 0
++CONFIG_COLLECT_COMPONENT_TIMING equ 0
++CONFIG_COLLECT_PARTITION_STATS equ 0
++CONFIG_COLLECT_RD_STATS equ 0
++CONFIG_DEBUG equ 0
++CONFIG_DENOISE equ 1
++CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8 equ 1
++CONFIG_DIST_8X8 equ 0
++CONFIG_ENTROPY_STATS equ 0
++CONFIG_EXCLUDE_SIMD_MISMATCH equ 0
++CONFIG_FRAME_PARALLEL_ENCODE equ 0
++CONFIG_FRAME_PARALLEL_ENCODE_2 equ 0
++CONFIG_GCC equ 1
++CONFIG_GCOV equ 0
++CONFIG_GPROF equ 0
++CONFIG_INSPECTION equ 0
++CONFIG_INTERNAL_STATS equ 0
++CONFIG_INTER_STATS_ONLY equ 0
++CONFIG_LIBYUV equ 0
++CONFIG_MAX_DECODE_PROFILE equ 0
++CONFIG_MISMATCH_DEBUG equ 0
++CONFIG_MULTITHREAD equ 1
++CONFIG_NN_V2 equ 0
++CONFIG_NORMAL_TILE_MODE equ 1
++CONFIG_OPTICAL_FLOW_API equ 0
++CONFIG_OS_SUPPORT equ 1
++CONFIG_PARTITION_SEARCH_ORDER equ 0
++CONFIG_PIC equ 0
++CONFIG_RD_COMMAND equ 0
++CONFIG_RD_DEBUG equ 0
++CONFIG_REALTIME_ONLY equ 1
++CONFIG_RT_ML_PARTITIONING equ 0
++CONFIG_RUNTIME_CPU_DETECT equ 0
++CONFIG_SHARED equ 0
++CONFIG_SHARP_SETTINGS equ 0
++CONFIG_SIZE_LIMIT equ 1
++CONFIG_SPATIAL_RESAMPLING equ 1
++CONFIG_SPEED_STATS equ 0
++CONFIG_THREE_PASS equ 0
++CONFIG_TUNE_BUTTERAUGLI equ 0
++CONFIG_TUNE_VMAF equ 0
++CONFIG_WEBM_IO equ 1
++DECODE_HEIGHT_LIMIT equ 16384
++DECODE_WIDTH_LIMIT equ 16384
++FORCE_HIGHBITDEPTH_DECODING equ 0
++HAVE_AVX equ 0
++HAVE_AVX2 equ 0
++HAVE_DSPR2 equ 0
++HAVE_FEXCEPT equ 1
++HAVE_MIPS32 equ 0
++HAVE_MIPS64 equ 0
++HAVE_MMX equ 0
++HAVE_MSA equ 0
++HAVE_NEON equ 0
++HAVE_PTHREAD_H equ 1
++HAVE_SSE equ 0
++HAVE_SSE2 equ 0
++HAVE_SSE3 equ 0
++HAVE_SSE4_1 equ 0
++HAVE_SSE4_2 equ 0
++HAVE_SSSE3 equ 0
++HAVE_UNISTD_H equ 1
++HAVE_VSX equ 1
++HAVE_WXWIDGETS equ 0
++STATIC_LINK_JXL equ 0
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
+@@ -0,0 +1,13 @@
++/*
++ * Copyright (c) 2016, 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.
++ */
++#include "aom/aom_codec.h"
++static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/ppc-linux-gcc.cmake\" -DCONFIG_AV1_ENCODER=1 -DCONFIG_LIBYUV=0 -DCONFIG_REALTIME_ONLY=1 -DCONFIG_AV1_HIGHBITDEPTH=0 -DCONFIG_AV1_TEMPORAL_DENOISING=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384";
++const char *aom_codec_build_config(void) {return cfg;}
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
+@@ -0,0 +1,93 @@
++/*
++ * Copyright (c) 2022, 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.
++ */
++#ifndef AOM_CONFIG_H_
++#define AOM_CONFIG_H_
++#define ARCH_ARM 0
++#define ARCH_MIPS 0
++#define ARCH_PPC 1
++#define ARCH_X86 0
++#define ARCH_X86_64 0
++#define CONFIG_ACCOUNTING 0
++#define CONFIG_ANALYZER 0
++#define CONFIG_AV1_DECODER 1
++#define CONFIG_AV1_ENCODER 1
++#define CONFIG_AV1_HIGHBITDEPTH 0
++#define CONFIG_AV1_TEMPORAL_DENOISING 1
++#define CONFIG_BIG_ENDIAN 0
++#define CONFIG_BITRATE_ACCURACY 0
++#define CONFIG_BITSTREAM_DEBUG 0
++#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
++#define CONFIG_COLLECT_COMPONENT_TIMING 0
++#define CONFIG_COLLECT_PARTITION_STATS 0
++#define CONFIG_COLLECT_RD_STATS 0
++#define CONFIG_DEBUG 0
++#define CONFIG_DENOISE 1
++#define CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8 1
++#define CONFIG_DIST_8X8 0
++#define CONFIG_ENTROPY_STATS 0
++#define CONFIG_EXCLUDE_SIMD_MISMATCH 0
++#define CONFIG_FRAME_PARALLEL_ENCODE 0
++#define CONFIG_FRAME_PARALLEL_ENCODE_2 0
++#define CONFIG_GCC 1
++#define CONFIG_GCOV 0
++#define CONFIG_GPROF 0
++#define CONFIG_INSPECTION 0
++#define CONFIG_INTERNAL_STATS 0
++#define CONFIG_INTER_STATS_ONLY 0
++#define CONFIG_LIBYUV 0
++#define CONFIG_MAX_DECODE_PROFILE 0
++#define CONFIG_MISMATCH_DEBUG 0
++#define CONFIG_MULTITHREAD 1
++#define CONFIG_NN_V2 0
++#define CONFIG_NORMAL_TILE_MODE 1
++#define CONFIG_OPTICAL_FLOW_API 0
++#define CONFIG_OS_SUPPORT 1
++#define CONFIG_PARTITION_SEARCH_ORDER 0
++#define CONFIG_PIC 0
++#define CONFIG_RD_COMMAND 0
++#define CONFIG_RD_DEBUG 0
++#define CONFIG_REALTIME_ONLY 1
++#define CONFIG_RT_ML_PARTITIONING 0
++#define CONFIG_RUNTIME_CPU_DETECT 0
++#define CONFIG_SHARED 0
++#define CONFIG_SHARP_SETTINGS 0
++#define CONFIG_SIZE_LIMIT 1
++#define CONFIG_SPATIAL_RESAMPLING 1
++#define CONFIG_SPEED_STATS 0
++#define CONFIG_THREE_PASS 0
++#define CONFIG_TUNE_BUTTERAUGLI 0
++#define CONFIG_TUNE_VMAF 0
++#define CONFIG_WEBM_IO 1
++#define DECODE_HEIGHT_LIMIT 16384
++#define DECODE_WIDTH_LIMIT 16384
++#define FORCE_HIGHBITDEPTH_DECODING 0
++#define HAVE_AVX 0
++#define HAVE_AVX2 0
++#define HAVE_DSPR2 0
++#define HAVE_FEXCEPT 1
++#define HAVE_MIPS32 0
++#define HAVE_MIPS64 0
++#define HAVE_MMX 0
++#define HAVE_MSA 0
++#define HAVE_NEON 0
++#define HAVE_PTHREAD_H 1
++#define HAVE_SSE 0
++#define HAVE_SSE2 0
++#define HAVE_SSE3 0
++#define HAVE_SSE4_1 0
++#define HAVE_SSE4_2 0
++#define HAVE_SSSE3 0
++#define HAVE_UNISTD_H 1
++#define HAVE_VSX 1
++#define HAVE_WXWIDGETS 0
++#define INLINE inline
++#define STATIC_LINK_JXL 0
++#endif  // AOM_CONFIG_H_
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
+@@ -0,0 +1,1400 @@
++// This file is generated. Do not edit.
++#ifndef AOM_DSP_RTCD_H_
++#define AOM_DSP_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++/*
++ * DSP
++ */
++
++#include "aom/aom_integer.h"
++#include "aom_dsp/aom_dsp_common.h"
++#include "av1/common/enums.h"
++#include "av1/common/blockd.h"
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++unsigned int aom_avg_4x4_c(const uint8_t *, int p);
++#define aom_avg_4x4 aom_avg_4x4_c
++
++unsigned int aom_avg_8x8_c(const uint8_t *, int p);
++#define aom_avg_8x8 aom_avg_8x8_c
++
++void aom_blend_a64_hmask_c(uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int w, int h);
++#define aom_blend_a64_hmask aom_blend_a64_hmask_c
++
++void aom_blend_a64_mask_c(uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, uint32_t mask_stride, int w, int h, int subw, int subh);
++#define aom_blend_a64_mask aom_blend_a64_mask_c
++
++void aom_blend_a64_vmask_c(uint8_t *dst, uint32_t dst_stride, const uint8_t *src0, uint32_t src0_stride, const uint8_t *src1, uint32_t src1_stride, const uint8_t *mask, int w, int h);
++#define aom_blend_a64_vmask aom_blend_a64_vmask_c
++
++void aom_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
++#define aom_comp_avg_pred aom_comp_avg_pred_c
++
++void aom_comp_mask_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask);
++#define aom_comp_mask_pred aom_comp_mask_pred_c
++
++void aom_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
++#define aom_convolve8 aom_convolve8_c
++
++void aom_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
++#define aom_convolve8_horiz aom_convolve8_horiz_c
++
++void aom_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
++#define aom_convolve8_vert aom_convolve8_vert_c
++
++void aom_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, int w, int h);
++#define aom_convolve_copy aom_convolve_copy_c
++
++void aom_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_16x16 aom_dc_128_predictor_16x16_c
++
++void aom_dc_128_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_16x32 aom_dc_128_predictor_16x32_c
++
++void aom_dc_128_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_16x8 aom_dc_128_predictor_16x8_c
++
++void aom_dc_128_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_2x2 aom_dc_128_predictor_2x2_c
++
++void aom_dc_128_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_32x16 aom_dc_128_predictor_32x16_c
++
++void aom_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_32x32 aom_dc_128_predictor_32x32_c
++
++void aom_dc_128_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_32x64 aom_dc_128_predictor_32x64_c
++
++void aom_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_4x4 aom_dc_128_predictor_4x4_c
++
++void aom_dc_128_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_4x8 aom_dc_128_predictor_4x8_c
++
++void aom_dc_128_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_64x32 aom_dc_128_predictor_64x32_c
++
++void aom_dc_128_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_64x64 aom_dc_128_predictor_64x64_c
++
++void aom_dc_128_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_8x16 aom_dc_128_predictor_8x16_c
++
++void aom_dc_128_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_8x4 aom_dc_128_predictor_8x4_c
++
++void aom_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_128_predictor_8x8 aom_dc_128_predictor_8x8_c
++
++void aom_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_16x16 aom_dc_left_predictor_16x16_c
++
++void aom_dc_left_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_16x32 aom_dc_left_predictor_16x32_c
++
++void aom_dc_left_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_16x8 aom_dc_left_predictor_16x8_c
++
++void aom_dc_left_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_2x2 aom_dc_left_predictor_2x2_c
++
++void aom_dc_left_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_32x16 aom_dc_left_predictor_32x16_c
++
++void aom_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_32x32 aom_dc_left_predictor_32x32_c
++
++void aom_dc_left_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_32x64 aom_dc_left_predictor_32x64_c
++
++void aom_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_4x4 aom_dc_left_predictor_4x4_c
++
++void aom_dc_left_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_4x8 aom_dc_left_predictor_4x8_c
++
++void aom_dc_left_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_64x32 aom_dc_left_predictor_64x32_c
++
++void aom_dc_left_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_64x64 aom_dc_left_predictor_64x64_c
++
++void aom_dc_left_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_8x16 aom_dc_left_predictor_8x16_c
++
++void aom_dc_left_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_8x4 aom_dc_left_predictor_8x4_c
++
++void aom_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_left_predictor_8x8 aom_dc_left_predictor_8x8_c
++
++void aom_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_16x16 aom_dc_predictor_16x16_c
++
++void aom_dc_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_16x32 aom_dc_predictor_16x32_c
++
++void aom_dc_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_16x8 aom_dc_predictor_16x8_c
++
++void aom_dc_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_2x2 aom_dc_predictor_2x2_c
++
++void aom_dc_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_32x16 aom_dc_predictor_32x16_c
++
++void aom_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_32x32 aom_dc_predictor_32x32_c
++
++void aom_dc_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_32x64 aom_dc_predictor_32x64_c
++
++void aom_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_4x4 aom_dc_predictor_4x4_c
++
++void aom_dc_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_4x8 aom_dc_predictor_4x8_c
++
++void aom_dc_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_64x32 aom_dc_predictor_64x32_c
++
++void aom_dc_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_64x64 aom_dc_predictor_64x64_c
++
++void aom_dc_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_8x16 aom_dc_predictor_8x16_c
++
++void aom_dc_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_8x4 aom_dc_predictor_8x4_c
++
++void aom_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_predictor_8x8 aom_dc_predictor_8x8_c
++
++void aom_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_16x16 aom_dc_top_predictor_16x16_c
++
++void aom_dc_top_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_16x32 aom_dc_top_predictor_16x32_c
++
++void aom_dc_top_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_16x8 aom_dc_top_predictor_16x8_c
++
++void aom_dc_top_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_2x2 aom_dc_top_predictor_2x2_c
++
++void aom_dc_top_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_32x16 aom_dc_top_predictor_32x16_c
++
++void aom_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_32x32 aom_dc_top_predictor_32x32_c
++
++void aom_dc_top_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_32x64 aom_dc_top_predictor_32x64_c
++
++void aom_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_4x4 aom_dc_top_predictor_4x4_c
++
++void aom_dc_top_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_4x8 aom_dc_top_predictor_4x8_c
++
++void aom_dc_top_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_64x32 aom_dc_top_predictor_64x32_c
++
++void aom_dc_top_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_64x64 aom_dc_top_predictor_64x64_c
++
++void aom_dc_top_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_8x16 aom_dc_top_predictor_8x16_c
++
++void aom_dc_top_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_8x4 aom_dc_top_predictor_8x4_c
++
++void aom_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_dc_top_predictor_8x8 aom_dc_top_predictor_8x8_c
++
++void aom_dist_wtd_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_comp_avg_pred aom_dist_wtd_comp_avg_pred_c
++
++unsigned int aom_dist_wtd_sad128x128_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad128x128_avg aom_dist_wtd_sad128x128_avg_c
++
++unsigned int aom_dist_wtd_sad128x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad128x64_avg aom_dist_wtd_sad128x64_avg_c
++
++unsigned int aom_dist_wtd_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad16x16_avg aom_dist_wtd_sad16x16_avg_c
++
++unsigned int aom_dist_wtd_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad16x32_avg aom_dist_wtd_sad16x32_avg_c
++
++unsigned int aom_dist_wtd_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad16x8_avg aom_dist_wtd_sad16x8_avg_c
++
++unsigned int aom_dist_wtd_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad32x16_avg aom_dist_wtd_sad32x16_avg_c
++
++unsigned int aom_dist_wtd_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad32x32_avg aom_dist_wtd_sad32x32_avg_c
++
++unsigned int aom_dist_wtd_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad32x64_avg aom_dist_wtd_sad32x64_avg_c
++
++unsigned int aom_dist_wtd_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad4x4_avg aom_dist_wtd_sad4x4_avg_c
++
++unsigned int aom_dist_wtd_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad4x8_avg aom_dist_wtd_sad4x8_avg_c
++
++unsigned int aom_dist_wtd_sad64x128_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad64x128_avg aom_dist_wtd_sad64x128_avg_c
++
++unsigned int aom_dist_wtd_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad64x32_avg aom_dist_wtd_sad64x32_avg_c
++
++unsigned int aom_dist_wtd_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad64x64_avg aom_dist_wtd_sad64x64_avg_c
++
++unsigned int aom_dist_wtd_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad8x16_avg aom_dist_wtd_sad8x16_avg_c
++
++unsigned int aom_dist_wtd_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad8x4_avg aom_dist_wtd_sad8x4_avg_c
++
++unsigned int aom_dist_wtd_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sad8x8_avg aom_dist_wtd_sad8x8_avg_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance128x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance128x128 aom_dist_wtd_sub_pixel_avg_variance128x128_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance128x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance128x64 aom_dist_wtd_sub_pixel_avg_variance128x64_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance16x16 aom_dist_wtd_sub_pixel_avg_variance16x16_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance16x32 aom_dist_wtd_sub_pixel_avg_variance16x32_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance16x8 aom_dist_wtd_sub_pixel_avg_variance16x8_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance32x16 aom_dist_wtd_sub_pixel_avg_variance32x16_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance32x32 aom_dist_wtd_sub_pixel_avg_variance32x32_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance32x64 aom_dist_wtd_sub_pixel_avg_variance32x64_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance4x4 aom_dist_wtd_sub_pixel_avg_variance4x4_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance4x8 aom_dist_wtd_sub_pixel_avg_variance4x8_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance64x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance64x128 aom_dist_wtd_sub_pixel_avg_variance64x128_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance64x32 aom_dist_wtd_sub_pixel_avg_variance64x32_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance64x64 aom_dist_wtd_sub_pixel_avg_variance64x64_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance8x16 aom_dist_wtd_sub_pixel_avg_variance8x16_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance8x4 aom_dist_wtd_sub_pixel_avg_variance8x4_c
++
++uint32_t aom_dist_wtd_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred, const DIST_WTD_COMP_PARAMS *jcp_param);
++#define aom_dist_wtd_sub_pixel_avg_variance8x8 aom_dist_wtd_sub_pixel_avg_variance8x8_c
++
++void aom_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
++#define aom_fdct4x4 aom_fdct4x4_c
++
++void aom_fdct4x4_lp_c(const int16_t *input, int16_t *output, int stride);
++#define aom_fdct4x4_lp aom_fdct4x4_lp_c
++
++void aom_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
++#define aom_fdct8x8 aom_fdct8x8_c
++
++void aom_fft16x16_float_c(const float *input, float *temp, float *output);
++#define aom_fft16x16_float aom_fft16x16_float_c
++
++void aom_fft2x2_float_c(const float *input, float *temp, float *output);
++#define aom_fft2x2_float aom_fft2x2_float_c
++
++void aom_fft32x32_float_c(const float *input, float *temp, float *output);
++#define aom_fft32x32_float aom_fft32x32_float_c
++
++void aom_fft4x4_float_c(const float *input, float *temp, float *output);
++#define aom_fft4x4_float aom_fft4x4_float_c
++
++void aom_fft8x8_float_c(const float *input, float *temp, float *output);
++#define aom_fft8x8_float aom_fft8x8_float_c
++
++void aom_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
++#define aom_get16x16var aom_get16x16var_c
++
++unsigned int aom_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
++#define aom_get4x4sse_cs aom_get4x4sse_cs_c
++
++void aom_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
++#define aom_get8x8var aom_get8x8var_c
++
++void aom_get_blk_sse_sum_c(const int16_t *data, int stride, int bw, int bh, int *x_sum, int64_t *x2_sum);
++#define aom_get_blk_sse_sum aom_get_blk_sse_sum_c
++
++unsigned int aom_get_mb_ss_c(const int16_t *);
++#define aom_get_mb_ss aom_get_mb_ss_c
++
++void aom_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_16x16 aom_h_predictor_16x16_c
++
++void aom_h_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_16x32 aom_h_predictor_16x32_c
++
++void aom_h_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_16x8 aom_h_predictor_16x8_c
++
++void aom_h_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_2x2 aom_h_predictor_2x2_c
++
++void aom_h_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_32x16 aom_h_predictor_32x16_c
++
++void aom_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_32x32 aom_h_predictor_32x32_c
++
++void aom_h_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_32x64 aom_h_predictor_32x64_c
++
++void aom_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_4x4 aom_h_predictor_4x4_c
++
++void aom_h_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_4x8 aom_h_predictor_4x8_c
++
++void aom_h_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_64x32 aom_h_predictor_64x32_c
++
++void aom_h_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_64x64 aom_h_predictor_64x64_c
++
++void aom_h_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_8x16 aom_h_predictor_8x16_c
++
++void aom_h_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_8x4 aom_h_predictor_8x4_c
++
++void aom_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_h_predictor_8x8 aom_h_predictor_8x8_c
++
++void aom_hadamard_16x16_c(const int16_t *src_diff, ptrdiff_t src_stride, tran_low_t *coeff);
++#define aom_hadamard_16x16 aom_hadamard_16x16_c
++
++void aom_hadamard_32x32_c(const int16_t *src_diff, ptrdiff_t src_stride, tran_low_t *coeff);
++#define aom_hadamard_32x32 aom_hadamard_32x32_c
++
++void aom_hadamard_4x4_c(const int16_t *src_diff, ptrdiff_t src_stride, tran_low_t *coeff);
++#define aom_hadamard_4x4 aom_hadamard_4x4_c
++
++void aom_hadamard_8x8_c(const int16_t *src_diff, ptrdiff_t src_stride, tran_low_t *coeff);
++#define aom_hadamard_8x8 aom_hadamard_8x8_c
++
++void aom_hadamard_lp_16x16_c(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
++#define aom_hadamard_lp_16x16 aom_hadamard_lp_16x16_c
++
++void aom_hadamard_lp_8x8_c(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
++#define aom_hadamard_lp_8x8 aom_hadamard_lp_8x8_c
++
++void aom_ifft16x16_float_c(const float *input, float *temp, float *output);
++#define aom_ifft16x16_float aom_ifft16x16_float_c
++
++void aom_ifft2x2_float_c(const float *input, float *temp, float *output);
++#define aom_ifft2x2_float aom_ifft2x2_float_c
++
++void aom_ifft32x32_float_c(const float *input, float *temp, float *output);
++#define aom_ifft32x32_float aom_ifft32x32_float_c
++
++void aom_ifft4x4_float_c(const float *input, float *temp, float *output);
++#define aom_ifft4x4_float aom_ifft4x4_float_c
++
++void aom_ifft8x8_float_c(const float *input, float *temp, float *output);
++#define aom_ifft8x8_float aom_ifft8x8_float_c
++
++int16_t aom_int_pro_col_c(const uint8_t *ref, const int width);
++#define aom_int_pro_col aom_int_pro_col_c
++
++void aom_int_pro_row_c(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
++#define aom_int_pro_row aom_int_pro_row_c
++
++void aom_lowbd_blend_a64_d16_mask_c(uint8_t *dst, uint32_t dst_stride, const CONV_BUF_TYPE *src0, uint32_t src0_stride, const CONV_BUF_TYPE *src1, uint32_t src1_stride, const uint8_t *mask, uint32_t mask_stride, int w, int h, int subw, int subh, ConvolveParams *conv_params);
++#define aom_lowbd_blend_a64_d16_mask aom_lowbd_blend_a64_d16_mask_c
++
++void aom_lpf_horizontal_14_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_horizontal_14 aom_lpf_horizontal_14_c
++
++void aom_lpf_horizontal_14_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_horizontal_14_dual aom_lpf_horizontal_14_dual_c
++
++void aom_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_horizontal_4 aom_lpf_horizontal_4_c
++
++void aom_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_horizontal_4_dual aom_lpf_horizontal_4_dual_c
++
++void aom_lpf_horizontal_6_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_horizontal_6 aom_lpf_horizontal_6_c
++
++void aom_lpf_horizontal_6_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_horizontal_6_dual aom_lpf_horizontal_6_dual_c
++
++void aom_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_horizontal_8 aom_lpf_horizontal_8_c
++
++void aom_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_horizontal_8_dual aom_lpf_horizontal_8_dual_c
++
++void aom_lpf_vertical_14_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_vertical_14 aom_lpf_vertical_14_c
++
++void aom_lpf_vertical_14_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_vertical_14_dual aom_lpf_vertical_14_dual_c
++
++void aom_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_vertical_4 aom_lpf_vertical_4_c
++
++void aom_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_vertical_4_dual aom_lpf_vertical_4_dual_c
++
++void aom_lpf_vertical_6_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_vertical_6 aom_lpf_vertical_6_c
++
++void aom_lpf_vertical_6_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_vertical_6_dual aom_lpf_vertical_6_dual_c
++
++void aom_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
++#define aom_lpf_vertical_8 aom_lpf_vertical_8_c
++
++void aom_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
++#define aom_lpf_vertical_8_dual aom_lpf_vertical_8_dual_c
++
++unsigned int aom_masked_sad128x128_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad128x128 aom_masked_sad128x128_c
++
++void aom_masked_sad128x128x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad128x128x4d aom_masked_sad128x128x4d_c
++
++unsigned int aom_masked_sad128x64_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad128x64 aom_masked_sad128x64_c
++
++void aom_masked_sad128x64x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad128x64x4d aom_masked_sad128x64x4d_c
++
++unsigned int aom_masked_sad16x16_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad16x16 aom_masked_sad16x16_c
++
++void aom_masked_sad16x16x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad16x16x4d aom_masked_sad16x16x4d_c
++
++unsigned int aom_masked_sad16x32_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad16x32 aom_masked_sad16x32_c
++
++void aom_masked_sad16x32x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad16x32x4d aom_masked_sad16x32x4d_c
++
++unsigned int aom_masked_sad16x8_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad16x8 aom_masked_sad16x8_c
++
++void aom_masked_sad16x8x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad16x8x4d aom_masked_sad16x8x4d_c
++
++unsigned int aom_masked_sad32x16_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad32x16 aom_masked_sad32x16_c
++
++void aom_masked_sad32x16x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad32x16x4d aom_masked_sad32x16x4d_c
++
++unsigned int aom_masked_sad32x32_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad32x32 aom_masked_sad32x32_c
++
++void aom_masked_sad32x32x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad32x32x4d aom_masked_sad32x32x4d_c
++
++unsigned int aom_masked_sad32x64_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad32x64 aom_masked_sad32x64_c
++
++void aom_masked_sad32x64x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad32x64x4d aom_masked_sad32x64x4d_c
++
++unsigned int aom_masked_sad4x4_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad4x4 aom_masked_sad4x4_c
++
++void aom_masked_sad4x4x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad4x4x4d aom_masked_sad4x4x4d_c
++
++unsigned int aom_masked_sad4x8_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad4x8 aom_masked_sad4x8_c
++
++void aom_masked_sad4x8x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad4x8x4d aom_masked_sad4x8x4d_c
++
++unsigned int aom_masked_sad64x128_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad64x128 aom_masked_sad64x128_c
++
++void aom_masked_sad64x128x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad64x128x4d aom_masked_sad64x128x4d_c
++
++unsigned int aom_masked_sad64x32_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad64x32 aom_masked_sad64x32_c
++
++void aom_masked_sad64x32x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad64x32x4d aom_masked_sad64x32x4d_c
++
++unsigned int aom_masked_sad64x64_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad64x64 aom_masked_sad64x64_c
++
++void aom_masked_sad64x64x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad64x64x4d aom_masked_sad64x64x4d_c
++
++unsigned int aom_masked_sad8x16_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad8x16 aom_masked_sad8x16_c
++
++void aom_masked_sad8x16x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad8x16x4d aom_masked_sad8x16x4d_c
++
++unsigned int aom_masked_sad8x4_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad8x4 aom_masked_sad8x4_c
++
++void aom_masked_sad8x4x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad8x4x4d aom_masked_sad8x4x4d_c
++
++unsigned int aom_masked_sad8x8_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask);
++#define aom_masked_sad8x8 aom_masked_sad8x8_c
++
++void aom_masked_sad8x8x4d_c(const uint8_t *src, int src_stride, const uint8_t *ref[], int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned sads[]);
++#define aom_masked_sad8x8x4d aom_masked_sad8x8x4d_c
++
++unsigned int aom_masked_sub_pixel_variance128x128_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance128x128 aom_masked_sub_pixel_variance128x128_c
++
++unsigned int aom_masked_sub_pixel_variance128x64_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance128x64 aom_masked_sub_pixel_variance128x64_c
++
++unsigned int aom_masked_sub_pixel_variance16x16_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance16x16 aom_masked_sub_pixel_variance16x16_c
++
++unsigned int aom_masked_sub_pixel_variance16x32_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance16x32 aom_masked_sub_pixel_variance16x32_c
++
++unsigned int aom_masked_sub_pixel_variance16x8_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance16x8 aom_masked_sub_pixel_variance16x8_c
++
++unsigned int aom_masked_sub_pixel_variance32x16_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance32x16 aom_masked_sub_pixel_variance32x16_c
++
++unsigned int aom_masked_sub_pixel_variance32x32_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance32x32 aom_masked_sub_pixel_variance32x32_c
++
++unsigned int aom_masked_sub_pixel_variance32x64_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance32x64 aom_masked_sub_pixel_variance32x64_c
++
++unsigned int aom_masked_sub_pixel_variance4x4_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance4x4 aom_masked_sub_pixel_variance4x4_c
++
++unsigned int aom_masked_sub_pixel_variance4x8_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance4x8 aom_masked_sub_pixel_variance4x8_c
++
++unsigned int aom_masked_sub_pixel_variance64x128_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance64x128 aom_masked_sub_pixel_variance64x128_c
++
++unsigned int aom_masked_sub_pixel_variance64x32_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance64x32 aom_masked_sub_pixel_variance64x32_c
++
++unsigned int aom_masked_sub_pixel_variance64x64_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance64x64 aom_masked_sub_pixel_variance64x64_c
++
++unsigned int aom_masked_sub_pixel_variance8x16_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance8x16 aom_masked_sub_pixel_variance8x16_c
++
++unsigned int aom_masked_sub_pixel_variance8x4_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance8x4 aom_masked_sub_pixel_variance8x4_c
++
++unsigned int aom_masked_sub_pixel_variance8x8_c(const uint8_t *src, int src_stride, int xoffset, int yoffset, const uint8_t *ref, int ref_stride, const uint8_t *second_pred, const uint8_t *msk, int msk_stride, int invert_mask, unsigned int *sse);
++#define aom_masked_sub_pixel_variance8x8 aom_masked_sub_pixel_variance8x8_c
++
++void aom_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
++#define aom_minmax_8x8 aom_minmax_8x8_c
++
++unsigned int aom_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
++#define aom_mse16x16 aom_mse16x16_c
++
++unsigned int aom_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
++#define aom_mse16x8 aom_mse16x8_c
++
++unsigned int aom_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
++#define aom_mse8x16 aom_mse8x16_c
++
++unsigned int aom_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
++#define aom_mse8x8 aom_mse8x8_c
++
++uint64_t aom_mse_wxh_16bit_c(uint8_t *dst, int dstride,uint16_t *src, int sstride, int w, int h);
++#define aom_mse_wxh_16bit aom_mse_wxh_16bit_c
++
++void aom_paeth_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_16x16 aom_paeth_predictor_16x16_c
++
++void aom_paeth_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_16x32 aom_paeth_predictor_16x32_c
++
++void aom_paeth_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_16x8 aom_paeth_predictor_16x8_c
++
++void aom_paeth_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_2x2 aom_paeth_predictor_2x2_c
++
++void aom_paeth_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_32x16 aom_paeth_predictor_32x16_c
++
++void aom_paeth_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_32x32 aom_paeth_predictor_32x32_c
++
++void aom_paeth_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_32x64 aom_paeth_predictor_32x64_c
++
++void aom_paeth_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_4x4 aom_paeth_predictor_4x4_c
++
++void aom_paeth_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_4x8 aom_paeth_predictor_4x8_c
++
++void aom_paeth_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_64x32 aom_paeth_predictor_64x32_c
++
++void aom_paeth_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_64x64 aom_paeth_predictor_64x64_c
++
++void aom_paeth_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_8x16 aom_paeth_predictor_8x16_c
++
++void aom_paeth_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_8x4 aom_paeth_predictor_8x4_c
++
++void aom_paeth_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_paeth_predictor_8x8 aom_paeth_predictor_8x8_c
++
++void aom_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b aom_quantize_b_c
++
++void aom_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b_32x32 aom_quantize_b_32x32_c
++
++void aom_quantize_b_32x32_adaptive_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b_32x32_adaptive aom_quantize_b_32x32_adaptive_c
++
++void aom_quantize_b_64x64_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b_64x64 aom_quantize_b_64x64_c
++
++void aom_quantize_b_64x64_adaptive_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b_64x64_adaptive aom_quantize_b_64x64_adaptive_c
++
++void aom_quantize_b_adaptive_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define aom_quantize_b_adaptive aom_quantize_b_adaptive_c
++
++unsigned int aom_sad128x128_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad128x128 aom_sad128x128_c
++
++unsigned int aom_sad128x128_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad128x128_avg aom_sad128x128_avg_c
++
++void aom_sad128x128x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad128x128x4d aom_sad128x128x4d_c
++
++void aom_sad128x128x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad128x128x4d_avg aom_sad128x128x4d_avg_c
++
++unsigned int aom_sad128x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad128x64 aom_sad128x64_c
++
++unsigned int aom_sad128x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad128x64_avg aom_sad128x64_avg_c
++
++void aom_sad128x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad128x64x4d aom_sad128x64x4d_c
++
++void aom_sad128x64x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad128x64x4d_avg aom_sad128x64x4d_avg_c
++
++unsigned int aom_sad128xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad128xh aom_sad128xh_c
++
++unsigned int aom_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad16x16 aom_sad16x16_c
++
++unsigned int aom_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad16x16_avg aom_sad16x16_avg_c
++
++void aom_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad16x16x4d aom_sad16x16x4d_c
++
++void aom_sad16x16x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad16x16x4d_avg aom_sad16x16x4d_avg_c
++
++unsigned int aom_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad16x32 aom_sad16x32_c
++
++unsigned int aom_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad16x32_avg aom_sad16x32_avg_c
++
++void aom_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad16x32x4d aom_sad16x32x4d_c
++
++void aom_sad16x32x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad16x32x4d_avg aom_sad16x32x4d_avg_c
++
++unsigned int aom_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad16x8 aom_sad16x8_c
++
++unsigned int aom_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad16x8_avg aom_sad16x8_avg_c
++
++void aom_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad16x8x4d aom_sad16x8x4d_c
++
++void aom_sad16x8x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad16x8x4d_avg aom_sad16x8x4d_avg_c
++
++unsigned int aom_sad16xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad16xh aom_sad16xh_c
++
++unsigned int aom_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad32x16 aom_sad32x16_c
++
++unsigned int aom_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad32x16_avg aom_sad32x16_avg_c
++
++void aom_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad32x16x4d aom_sad32x16x4d_c
++
++void aom_sad32x16x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad32x16x4d_avg aom_sad32x16x4d_avg_c
++
++unsigned int aom_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad32x32 aom_sad32x32_c
++
++unsigned int aom_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad32x32_avg aom_sad32x32_avg_c
++
++void aom_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad32x32x4d aom_sad32x32x4d_c
++
++void aom_sad32x32x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad32x32x4d_avg aom_sad32x32x4d_avg_c
++
++unsigned int aom_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad32x64 aom_sad32x64_c
++
++unsigned int aom_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad32x64_avg aom_sad32x64_avg_c
++
++void aom_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad32x64x4d aom_sad32x64x4d_c
++
++void aom_sad32x64x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad32x64x4d_avg aom_sad32x64x4d_avg_c
++
++unsigned int aom_sad32xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad32xh aom_sad32xh_c
++
++unsigned int aom_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad4x4 aom_sad4x4_c
++
++unsigned int aom_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad4x4_avg aom_sad4x4_avg_c
++
++void aom_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad4x4x4d aom_sad4x4x4d_c
++
++void aom_sad4x4x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad4x4x4d_avg aom_sad4x4x4d_avg_c
++
++unsigned int aom_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad4x8 aom_sad4x8_c
++
++unsigned int aom_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad4x8_avg aom_sad4x8_avg_c
++
++void aom_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad4x8x4d aom_sad4x8x4d_c
++
++void aom_sad4x8x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad4x8x4d_avg aom_sad4x8x4d_avg_c
++
++unsigned int aom_sad4xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad4xh aom_sad4xh_c
++
++unsigned int aom_sad64x128_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad64x128 aom_sad64x128_c
++
++unsigned int aom_sad64x128_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad64x128_avg aom_sad64x128_avg_c
++
++void aom_sad64x128x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad64x128x4d aom_sad64x128x4d_c
++
++void aom_sad64x128x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad64x128x4d_avg aom_sad64x128x4d_avg_c
++
++unsigned int aom_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad64x32 aom_sad64x32_c
++
++unsigned int aom_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad64x32_avg aom_sad64x32_avg_c
++
++void aom_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad64x32x4d aom_sad64x32x4d_c
++
++void aom_sad64x32x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad64x32x4d_avg aom_sad64x32x4d_avg_c
++
++unsigned int aom_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad64x64 aom_sad64x64_c
++
++unsigned int aom_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad64x64_avg aom_sad64x64_avg_c
++
++void aom_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad64x64x4d aom_sad64x64x4d_c
++
++void aom_sad64x64x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad64x64x4d_avg aom_sad64x64x4d_avg_c
++
++unsigned int aom_sad64xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad64xh aom_sad64xh_c
++
++unsigned int aom_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad8x16 aom_sad8x16_c
++
++unsigned int aom_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad8x16_avg aom_sad8x16_avg_c
++
++void aom_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad8x16x4d aom_sad8x16x4d_c
++
++void aom_sad8x16x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad8x16x4d_avg aom_sad8x16x4d_avg_c
++
++unsigned int aom_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad8x4 aom_sad8x4_c
++
++unsigned int aom_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad8x4_avg aom_sad8x4_avg_c
++
++void aom_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad8x4x4d aom_sad8x4x4d_c
++
++void aom_sad8x4x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad8x4x4d_avg aom_sad8x4x4d_avg_c
++
++unsigned int aom_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad8x8 aom_sad8x8_c
++
++unsigned int aom_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
++#define aom_sad8x8_avg aom_sad8x8_avg_c
++
++void aom_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad8x8x4d aom_sad8x8x4d_c
++
++void aom_sad8x8x4d_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, const uint8_t *second_pred, uint32_t *sad_array);
++#define aom_sad8x8x4d_avg aom_sad8x8x4d_avg_c
++
++unsigned int aom_sad8xh_c(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);
++#define aom_sad8xh aom_sad8xh_c
++
++unsigned int aom_sad_skip_128x128_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_128x128 aom_sad_skip_128x128_c
++
++void aom_sad_skip_128x128x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_128x128x4d aom_sad_skip_128x128x4d_c
++
++unsigned int aom_sad_skip_128x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_128x64 aom_sad_skip_128x64_c
++
++void aom_sad_skip_128x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_128x64x4d aom_sad_skip_128x64x4d_c
++
++unsigned int aom_sad_skip_16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_16x16 aom_sad_skip_16x16_c
++
++void aom_sad_skip_16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_16x16x4d aom_sad_skip_16x16x4d_c
++
++unsigned int aom_sad_skip_16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_16x32 aom_sad_skip_16x32_c
++
++void aom_sad_skip_16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_16x32x4d aom_sad_skip_16x32x4d_c
++
++unsigned int aom_sad_skip_16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_16x8 aom_sad_skip_16x8_c
++
++void aom_sad_skip_16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_16x8x4d aom_sad_skip_16x8x4d_c
++
++unsigned int aom_sad_skip_32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_32x16 aom_sad_skip_32x16_c
++
++void aom_sad_skip_32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_32x16x4d aom_sad_skip_32x16x4d_c
++
++unsigned int aom_sad_skip_32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_32x32 aom_sad_skip_32x32_c
++
++void aom_sad_skip_32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_32x32x4d aom_sad_skip_32x32x4d_c
++
++unsigned int aom_sad_skip_32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_32x64 aom_sad_skip_32x64_c
++
++void aom_sad_skip_32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_32x64x4d aom_sad_skip_32x64x4d_c
++
++unsigned int aom_sad_skip_4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_4x4 aom_sad_skip_4x4_c
++
++void aom_sad_skip_4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_4x4x4d aom_sad_skip_4x4x4d_c
++
++unsigned int aom_sad_skip_4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_4x8 aom_sad_skip_4x8_c
++
++void aom_sad_skip_4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_4x8x4d aom_sad_skip_4x8x4d_c
++
++unsigned int aom_sad_skip_64x128_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_64x128 aom_sad_skip_64x128_c
++
++void aom_sad_skip_64x128x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_64x128x4d aom_sad_skip_64x128x4d_c
++
++unsigned int aom_sad_skip_64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_64x32 aom_sad_skip_64x32_c
++
++void aom_sad_skip_64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_64x32x4d aom_sad_skip_64x32x4d_c
++
++unsigned int aom_sad_skip_64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_64x64 aom_sad_skip_64x64_c
++
++void aom_sad_skip_64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_64x64x4d aom_sad_skip_64x64x4d_c
++
++unsigned int aom_sad_skip_8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_8x16 aom_sad_skip_8x16_c
++
++void aom_sad_skip_8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_8x16x4d aom_sad_skip_8x16x4d_c
++
++unsigned int aom_sad_skip_8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_8x4 aom_sad_skip_8x4_c
++
++void aom_sad_skip_8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_8x4x4d aom_sad_skip_8x4x4d_c
++
++unsigned int aom_sad_skip_8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
++#define aom_sad_skip_8x8 aom_sad_skip_8x8_c
++
++void aom_sad_skip_8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
++#define aom_sad_skip_8x8x4d aom_sad_skip_8x8x4d_c
++
++int aom_satd_c(const tran_low_t *coeff, int length);
++#define aom_satd aom_satd_c
++
++int aom_satd_lp_c(const int16_t *coeff, int length);
++#define aom_satd_lp aom_satd_lp_c
++
++void aom_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
++#define aom_scaled_2d aom_scaled_2d_c
++
++void aom_smooth_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_16x16 aom_smooth_h_predictor_16x16_c
++
++void aom_smooth_h_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_16x32 aom_smooth_h_predictor_16x32_c
++
++void aom_smooth_h_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_16x8 aom_smooth_h_predictor_16x8_c
++
++void aom_smooth_h_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_2x2 aom_smooth_h_predictor_2x2_c
++
++void aom_smooth_h_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_32x16 aom_smooth_h_predictor_32x16_c
++
++void aom_smooth_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_32x32 aom_smooth_h_predictor_32x32_c
++
++void aom_smooth_h_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_32x64 aom_smooth_h_predictor_32x64_c
++
++void aom_smooth_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_4x4 aom_smooth_h_predictor_4x4_c
++
++void aom_smooth_h_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_4x8 aom_smooth_h_predictor_4x8_c
++
++void aom_smooth_h_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_64x32 aom_smooth_h_predictor_64x32_c
++
++void aom_smooth_h_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_64x64 aom_smooth_h_predictor_64x64_c
++
++void aom_smooth_h_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_8x16 aom_smooth_h_predictor_8x16_c
++
++void aom_smooth_h_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_8x4 aom_smooth_h_predictor_8x4_c
++
++void aom_smooth_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_h_predictor_8x8 aom_smooth_h_predictor_8x8_c
++
++void aom_smooth_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_16x16 aom_smooth_predictor_16x16_c
++
++void aom_smooth_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_16x32 aom_smooth_predictor_16x32_c
++
++void aom_smooth_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_16x8 aom_smooth_predictor_16x8_c
++
++void aom_smooth_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_2x2 aom_smooth_predictor_2x2_c
++
++void aom_smooth_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_32x16 aom_smooth_predictor_32x16_c
++
++void aom_smooth_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_32x32 aom_smooth_predictor_32x32_c
++
++void aom_smooth_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_32x64 aom_smooth_predictor_32x64_c
++
++void aom_smooth_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_4x4 aom_smooth_predictor_4x4_c
++
++void aom_smooth_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_4x8 aom_smooth_predictor_4x8_c
++
++void aom_smooth_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_64x32 aom_smooth_predictor_64x32_c
++
++void aom_smooth_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_64x64 aom_smooth_predictor_64x64_c
++
++void aom_smooth_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_8x16 aom_smooth_predictor_8x16_c
++
++void aom_smooth_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_8x4 aom_smooth_predictor_8x4_c
++
++void aom_smooth_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_predictor_8x8 aom_smooth_predictor_8x8_c
++
++void aom_smooth_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_16x16 aom_smooth_v_predictor_16x16_c
++
++void aom_smooth_v_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_16x32 aom_smooth_v_predictor_16x32_c
++
++void aom_smooth_v_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_16x8 aom_smooth_v_predictor_16x8_c
++
++void aom_smooth_v_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_2x2 aom_smooth_v_predictor_2x2_c
++
++void aom_smooth_v_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_32x16 aom_smooth_v_predictor_32x16_c
++
++void aom_smooth_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_32x32 aom_smooth_v_predictor_32x32_c
++
++void aom_smooth_v_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_32x64 aom_smooth_v_predictor_32x64_c
++
++void aom_smooth_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_4x4 aom_smooth_v_predictor_4x4_c
++
++void aom_smooth_v_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_4x8 aom_smooth_v_predictor_4x8_c
++
++void aom_smooth_v_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_64x32 aom_smooth_v_predictor_64x32_c
++
++void aom_smooth_v_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_64x64 aom_smooth_v_predictor_64x64_c
++
++void aom_smooth_v_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_8x16 aom_smooth_v_predictor_8x16_c
++
++void aom_smooth_v_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_8x4 aom_smooth_v_predictor_8x4_c
++
++void aom_smooth_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_smooth_v_predictor_8x8 aom_smooth_v_predictor_8x8_c
++
++int64_t aom_sse_c(const uint8_t *a, int a_stride, const uint8_t *b,int b_stride, int width, int height);
++#define aom_sse aom_sse_c
++
++void aom_ssim_parms_8x8_c(const uint8_t *s, int sp, const uint8_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr);
++#define aom_ssim_parms_8x8 aom_ssim_parms_8x8_c
++
++uint32_t aom_sub_pixel_avg_variance128x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance128x128 aom_sub_pixel_avg_variance128x128_c
++
++uint32_t aom_sub_pixel_avg_variance128x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance128x64 aom_sub_pixel_avg_variance128x64_c
++
++uint32_t aom_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance16x16 aom_sub_pixel_avg_variance16x16_c
++
++uint32_t aom_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance16x32 aom_sub_pixel_avg_variance16x32_c
++
++uint32_t aom_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance16x8 aom_sub_pixel_avg_variance16x8_c
++
++uint32_t aom_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance32x16 aom_sub_pixel_avg_variance32x16_c
++
++uint32_t aom_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance32x32 aom_sub_pixel_avg_variance32x32_c
++
++uint32_t aom_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance32x64 aom_sub_pixel_avg_variance32x64_c
++
++uint32_t aom_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance4x4 aom_sub_pixel_avg_variance4x4_c
++
++uint32_t aom_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance4x8 aom_sub_pixel_avg_variance4x8_c
++
++uint32_t aom_sub_pixel_avg_variance64x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance64x128 aom_sub_pixel_avg_variance64x128_c
++
++uint32_t aom_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance64x32 aom_sub_pixel_avg_variance64x32_c
++
++uint32_t aom_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance64x64 aom_sub_pixel_avg_variance64x64_c
++
++uint32_t aom_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance8x16 aom_sub_pixel_avg_variance8x16_c
++
++uint32_t aom_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance8x4 aom_sub_pixel_avg_variance8x4_c
++
++uint32_t aom_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
++#define aom_sub_pixel_avg_variance8x8 aom_sub_pixel_avg_variance8x8_c
++
++uint32_t aom_sub_pixel_variance128x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance128x128 aom_sub_pixel_variance128x128_c
++
++uint32_t aom_sub_pixel_variance128x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance128x64 aom_sub_pixel_variance128x64_c
++
++uint32_t aom_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance16x16 aom_sub_pixel_variance16x16_c
++
++uint32_t aom_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance16x32 aom_sub_pixel_variance16x32_c
++
++uint32_t aom_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance16x8 aom_sub_pixel_variance16x8_c
++
++uint32_t aom_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance32x16 aom_sub_pixel_variance32x16_c
++
++uint32_t aom_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance32x32 aom_sub_pixel_variance32x32_c
++
++uint32_t aom_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance32x64 aom_sub_pixel_variance32x64_c
++
++uint32_t aom_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance4x4 aom_sub_pixel_variance4x4_c
++
++uint32_t aom_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance4x8 aom_sub_pixel_variance4x8_c
++
++uint32_t aom_sub_pixel_variance64x128_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance64x128 aom_sub_pixel_variance64x128_c
++
++uint32_t aom_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance64x32 aom_sub_pixel_variance64x32_c
++
++uint32_t aom_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance64x64 aom_sub_pixel_variance64x64_c
++
++uint32_t aom_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance8x16 aom_sub_pixel_variance8x16_c
++
++uint32_t aom_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance8x4 aom_sub_pixel_variance8x4_c
++
++uint32_t aom_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
++#define aom_sub_pixel_variance8x8 aom_sub_pixel_variance8x8_c
++
++void aom_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
++#define aom_subtract_block aom_subtract_block_c
++
++uint64_t aom_sum_squares_2d_i16_c(const int16_t *src, int stride, int width, int height);
++#define aom_sum_squares_2d_i16 aom_sum_squares_2d_i16_c
++
++uint64_t aom_sum_squares_i16_c(const int16_t *src, uint32_t N);
++#define aom_sum_squares_i16 aom_sum_squares_i16_c
++
++uint64_t aom_sum_sse_2d_i16_c(const int16_t *src, int src_stride, int width, int height, int *sum);
++#define aom_sum_sse_2d_i16 aom_sum_sse_2d_i16_c
++
++void aom_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_16x16 aom_v_predictor_16x16_c
++
++void aom_v_predictor_16x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_16x32 aom_v_predictor_16x32_c
++
++void aom_v_predictor_16x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_16x8 aom_v_predictor_16x8_c
++
++void aom_v_predictor_2x2_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_2x2 aom_v_predictor_2x2_c
++
++void aom_v_predictor_32x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_32x16 aom_v_predictor_32x16_c
++
++void aom_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_32x32 aom_v_predictor_32x32_c
++
++void aom_v_predictor_32x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_32x64 aom_v_predictor_32x64_c
++
++void aom_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_4x4 aom_v_predictor_4x4_c
++
++void aom_v_predictor_4x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_4x8 aom_v_predictor_4x8_c
++
++void aom_v_predictor_64x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_64x32 aom_v_predictor_64x32_c
++
++void aom_v_predictor_64x64_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_64x64 aom_v_predictor_64x64_c
++
++void aom_v_predictor_8x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_8x16 aom_v_predictor_8x16_c
++
++void aom_v_predictor_8x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_8x4 aom_v_predictor_8x4_c
++
++void aom_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
++#define aom_v_predictor_8x8 aom_v_predictor_8x8_c
++
++uint64_t aom_var_2d_u16_c(uint8_t *src, int src_stride, int width, int height);
++#define aom_var_2d_u16 aom_var_2d_u16_c
++
++uint64_t aom_var_2d_u8_c(uint8_t *src, int src_stride, int width, int height);
++#define aom_var_2d_u8 aom_var_2d_u8_c
++
++unsigned int aom_variance128x128_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance128x128 aom_variance128x128_c
++
++unsigned int aom_variance128x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance128x64 aom_variance128x64_c
++
++unsigned int aom_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance16x16 aom_variance16x16_c
++
++unsigned int aom_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance16x32 aom_variance16x32_c
++
++unsigned int aom_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance16x8 aom_variance16x8_c
++
++unsigned int aom_variance2x2_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance2x2 aom_variance2x2_c
++
++unsigned int aom_variance2x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance2x4 aom_variance2x4_c
++
++unsigned int aom_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance32x16 aom_variance32x16_c
++
++unsigned int aom_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance32x32 aom_variance32x32_c
++
++unsigned int aom_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance32x64 aom_variance32x64_c
++
++unsigned int aom_variance4x2_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance4x2 aom_variance4x2_c
++
++unsigned int aom_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance4x4 aom_variance4x4_c
++
++unsigned int aom_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance4x8 aom_variance4x8_c
++
++unsigned int aom_variance64x128_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance64x128 aom_variance64x128_c
++
++unsigned int aom_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance64x32 aom_variance64x32_c
++
++unsigned int aom_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance64x64 aom_variance64x64_c
++
++unsigned int aom_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance8x16 aom_variance8x16_c
++
++unsigned int aom_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance8x4 aom_variance8x4_c
++
++unsigned int aom_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
++#define aom_variance8x8 aom_variance8x8_c
++
++int aom_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
++#define aom_vector_var aom_vector_var_c
++
++void aom_dsp_rtcd(void);
++
++#include "config/aom_config.h"
++
++#ifdef RTCD_C
++#include "aom_ports/ppc.h"
++static void setup_rtcd_internal(void)
++{
++  int flags = ppc_simd_caps();
++
++  (void)flags;
++
++}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
+@@ -0,0 +1,102 @@
++// This file is generated. Do not edit.
++#ifndef AOM_SCALE_RTCD_H_
++#define AOM_SCALE_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++struct yv12_buffer_config;
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void aom_extend_frame_borders_c(struct yv12_buffer_config *ybf, const int num_planes);
++#define aom_extend_frame_borders aom_extend_frame_borders_c
++
++void aom_extend_frame_borders_y_c(struct yv12_buffer_config *ybf);
++#define aom_extend_frame_borders_y aom_extend_frame_borders_y_c
++
++void aom_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf, const int num_planes);
++#define aom_extend_frame_inner_borders aom_extend_frame_inner_borders_c
++
++void aom_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
++#define aom_horizontal_line_2_1_scale aom_horizontal_line_2_1_scale_c
++
++void aom_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
++#define aom_horizontal_line_5_3_scale aom_horizontal_line_5_3_scale_c
++
++void aom_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
++#define aom_horizontal_line_5_4_scale aom_horizontal_line_5_4_scale_c
++
++void aom_vertical_band_2_1_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
++#define aom_vertical_band_2_1_scale aom_vertical_band_2_1_scale_c
++
++void aom_vertical_band_2_1_scale_i_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
++#define aom_vertical_band_2_1_scale_i aom_vertical_band_2_1_scale_i_c
++
++void aom_vertical_band_5_3_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
++#define aom_vertical_band_5_3_scale aom_vertical_band_5_3_scale_c
++
++void aom_vertical_band_5_4_scale_c(unsigned char *source, int src_pitch, unsigned char *dest, int dest_pitch, unsigned int dest_width);
++#define aom_vertical_band_5_4_scale aom_vertical_band_5_4_scale_c
++
++void aom_yv12_copy_frame_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc, const int num_planes);
++#define aom_yv12_copy_frame aom_yv12_copy_frame_c
++
++void aom_yv12_copy_u_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc);
++#define aom_yv12_copy_u aom_yv12_copy_u_c
++
++void aom_yv12_copy_v_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc);
++#define aom_yv12_copy_v aom_yv12_copy_v_c
++
++void aom_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
++#define aom_yv12_copy_y aom_yv12_copy_y_c
++
++void aom_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf, const int num_planes);
++#define aom_yv12_extend_frame_borders aom_yv12_extend_frame_borders_c
++
++void aom_yv12_partial_coloc_copy_u_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc, int hstart, int hend, int vstart, int vend);
++#define aom_yv12_partial_coloc_copy_u aom_yv12_partial_coloc_copy_u_c
++
++void aom_yv12_partial_coloc_copy_v_c(const struct yv12_buffer_config *src_bc, struct yv12_buffer_config *dst_bc, int hstart, int hend, int vstart, int vend);
++#define aom_yv12_partial_coloc_copy_v aom_yv12_partial_coloc_copy_v_c
++
++void aom_yv12_partial_coloc_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc, int hstart, int hend, int vstart, int vend);
++#define aom_yv12_partial_coloc_copy_y aom_yv12_partial_coloc_copy_y_c
++
++void aom_yv12_partial_copy_u_c(const struct yv12_buffer_config *src_bc, int hstart1, int hend1, int vstart1, int vend1, struct yv12_buffer_config *dst_bc, int hstart2, int vstart2);
++#define aom_yv12_partial_copy_u aom_yv12_partial_copy_u_c
++
++void aom_yv12_partial_copy_v_c(const struct yv12_buffer_config *src_bc, int hstart1, int hend1, int vstart1, int vend1, struct yv12_buffer_config *dst_bc, int hstart2, int vstart2);
++#define aom_yv12_partial_copy_v aom_yv12_partial_copy_v_c
++
++void aom_yv12_partial_copy_y_c(const struct yv12_buffer_config *src_ybc, int hstart1, int hend1, int vstart1, int vend1, struct yv12_buffer_config *dst_ybc, int hstart2, int vstart2);
++#define aom_yv12_partial_copy_y aom_yv12_partial_copy_y_c
++
++int aom_yv12_realloc_with_new_border_c(struct yv12_buffer_config *ybf, int new_border, int byte_alignment, int num_planes);
++#define aom_yv12_realloc_with_new_border aom_yv12_realloc_with_new_border_c
++
++void aom_scale_rtcd(void);
++
++#include "config/aom_config.h"
++
++#ifdef RTCD_C
++#include "aom_ports/ppc.h"
++static void setup_rtcd_internal(void)
++{
++  int flags = ppc_simd_caps();
++
++  (void)flags;
++
++}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
+Index: chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
+@@ -0,0 +1,471 @@
++// This file is generated. Do not edit.
++#ifndef AV1_RTCD_H_
++#define AV1_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++/*
++ * AV1
++ */
++
++#include "aom/aom_integer.h"
++#include "aom_dsp/odintrin.h"
++#include "aom_dsp/txfm_common.h"
++#include "av1/common/common.h"
++#include "av1/common/enums.h"
++#include "av1/common/quant_common.h"
++#include "av1/common/filter.h"
++#include "av1/common/convolve.h"
++#include "av1/common/av1_txfm.h"
++#include "av1/common/restoration.h"
++
++struct macroblockd;
++
++/* Encoder forward decls */
++struct macroblock;
++struct txfm_param;
++struct aom_variance_vtable;
++struct search_site_config;
++struct yv12_buffer_config;
++struct NN_CONFIG;
++typedef struct NN_CONFIG NN_CONFIG;
++
++enum { NONE, RELU, SOFTSIGN, SIGMOID } UENUM1BYTE(ACTIVATION);
++#if CONFIG_NN_V2
++enum { SOFTMAX_CROSS_ENTROPY } UENUM1BYTE(LOSS);
++struct NN_CONFIG_V2;
++typedef struct NN_CONFIG_V2 NN_CONFIG_V2;
++struct FC_LAYER;
++typedef struct FC_LAYER FC_LAYER;
++#endif  // CONFIG_NN_V2
++
++struct CNN_CONFIG;
++typedef struct CNN_CONFIG CNN_CONFIG;
++struct CNN_LAYER_CONFIG;
++typedef struct CNN_LAYER_CONFIG CNN_LAYER_CONFIG;
++struct CNN_THREAD_DATA;
++typedef struct CNN_THREAD_DATA CNN_THREAD_DATA;
++struct CNN_BRANCH_CONFIG;
++typedef struct CNN_BRANCH_CONFIG CNN_BRANCH_CONFIG;
++struct CNN_MULTI_OUT;
++typedef struct CNN_MULTI_OUT CNN_MULTI_OUT;
++
++/* Function pointers return by CfL functions */
++typedef void (*cfl_subsample_lbd_fn)(const uint8_t *input, int input_stride,
++                                     uint16_t *output_q3);
++
++#if CONFIG_AV1_HIGHBITDEPTH
++typedef void (*cfl_subsample_hbd_fn)(const uint16_t *input, int input_stride,
++                                     uint16_t *output_q3);
++
++typedef void (*cfl_predict_hbd_fn)(const int16_t *src, uint16_t *dst,
++                                   int dst_stride, int alpha_q3, int bd);
++#endif
++
++typedef void (*cfl_subtract_average_fn)(const uint16_t *src, int16_t *dst);
++
++typedef void (*cfl_predict_lbd_fn)(const int16_t *src, uint8_t *dst,
++                                   int dst_stride, int alpha_q3);
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void aom_comp_avg_upsampled_pred_c(MACROBLOCKD *xd, const struct AV1Common *const cm, int mi_row, int mi_col,
++                                                   const MV *const mv, uint8_t *comp_pred, const uint8_t *pred, int width,
++                                                   int height, int subpel_x_q3, int subpel_y_q3, const uint8_t *ref,
++                                                   int ref_stride, int subpel_search);
++#define aom_comp_avg_upsampled_pred aom_comp_avg_upsampled_pred_c
++
++void aom_comp_mask_upsampled_pred_c(MACROBLOCKD *xd, const struct AV1Common *const cm, int mi_row, int mi_col,
++                                                       const MV *const mv, uint8_t *comp_pred, const uint8_t *pred, int width,
++                                                       int height, int subpel_x_q3, int subpel_y_q3, const uint8_t *ref,
++                                                       int ref_stride, const uint8_t *mask, int mask_stride, int invert_mask,
++                                                       int subpel_search);
++#define aom_comp_mask_upsampled_pred aom_comp_mask_upsampled_pred_c
++
++void aom_dist_wtd_comp_avg_upsampled_pred_c(MACROBLOCKD *xd, const struct AV1Common *const cm, int mi_row, int mi_col,
++                                                       const MV *const mv, uint8_t *comp_pred, const uint8_t *pred, int width,
++                                                       int height, int subpel_x_q3, int subpel_y_q3, const uint8_t *ref,
++                                                       int ref_stride, const DIST_WTD_COMP_PARAMS *jcp_param, int subpel_search);
++#define aom_dist_wtd_comp_avg_upsampled_pred aom_dist_wtd_comp_avg_upsampled_pred_c
++
++void aom_quantize_b_helper_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t *qm_ptr, const qm_val_t *iqm_ptr, const int log_scale);
++#define aom_quantize_b_helper aom_quantize_b_helper_c
++
++void aom_upsampled_pred_c(MACROBLOCKD *xd, const struct AV1Common *const cm, int mi_row, int mi_col,
++                                          const MV *const mv, uint8_t *comp_pred, int width, int height, int subpel_x_q3,
++                                          int subpel_y_q3, const uint8_t *ref, int ref_stride, int subpel_search);
++#define aom_upsampled_pred aom_upsampled_pred_c
++
++int64_t av1_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
++#define av1_block_error av1_block_error_c
++
++int64_t av1_block_error_lp_c(const int16_t *coeff, const int16_t *dqcoeff, intptr_t block_size);
++#define av1_block_error_lp av1_block_error_lp_c
++
++void av1_build_compound_diffwtd_mask_c(uint8_t *mask, DIFFWTD_MASK_TYPE mask_type, const uint8_t *src0, int src0_stride, const uint8_t *src1, int src1_stride, int h, int w);
++#define av1_build_compound_diffwtd_mask av1_build_compound_diffwtd_mask_c
++
++void av1_build_compound_diffwtd_mask_d16_c(uint8_t *mask, DIFFWTD_MASK_TYPE mask_type, const CONV_BUF_TYPE *src0, int src0_stride, const CONV_BUF_TYPE *src1, int src1_stride, int h, int w, ConvolveParams *conv_params, int bd);
++#define av1_build_compound_diffwtd_mask_d16 av1_build_compound_diffwtd_mask_d16_c
++
++void av1_build_compound_diffwtd_mask_highbd_c(uint8_t *mask, DIFFWTD_MASK_TYPE mask_type, const uint8_t *src0, int src0_stride, const uint8_t *src1, int src1_stride, int h, int w, int bd);
++#define av1_build_compound_diffwtd_mask_highbd av1_build_compound_diffwtd_mask_highbd_c
++
++void av1_calc_indices_dim1_c(const int *data, const int *centroids, uint8_t *indices, int n, int k);
++#define av1_calc_indices_dim1 av1_calc_indices_dim1_c
++
++void av1_calc_indices_dim2_c(const int *data, const int *centroids, uint8_t *indices, int n, int k);
++#define av1_calc_indices_dim2 av1_calc_indices_dim2_c
++
++double av1_compute_cross_correlation_c(unsigned char *im1, int stride1, int x1, int y1, unsigned char *im2, int stride2, int x2, int y2);
++#define av1_compute_cross_correlation av1_compute_cross_correlation_c
++
++void av1_convolve_2d_scale_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_x, const InterpFilterParams *filter_params_y, const int subpel_x_qn, const int x_step_qn, const int subpel_y_qn, const int y_step_qn, ConvolveParams *conv_params);
++#define av1_convolve_2d_scale av1_convolve_2d_scale_c
++
++void av1_convolve_2d_sr_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_x, const InterpFilterParams *filter_params_y, const int subpel_x_qn, const int subpel_y_qn, ConvolveParams *conv_params);
++#define av1_convolve_2d_sr av1_convolve_2d_sr_c
++
++void av1_convolve_horiz_rs_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const int16_t *x_filters, int x0_qn, int x_step_qn);
++#define av1_convolve_horiz_rs av1_convolve_horiz_rs_c
++
++void av1_convolve_x_sr_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_x, const int subpel_x_qn, ConvolveParams *conv_params);
++#define av1_convolve_x_sr av1_convolve_x_sr_c
++
++void av1_convolve_y_sr_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_y, const int subpel_y_qn);
++#define av1_convolve_y_sr av1_convolve_y_sr_c
++
++int av1_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BLOCK_SIZE bs, int motion_magnitude);
++#define av1_denoiser_filter av1_denoiser_filter_c
++
++void av1_dist_wtd_convolve_2d_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_x, const InterpFilterParams *filter_params_y, const int subpel_x_qn, const int subpel_y_qn, ConvolveParams *conv_params);
++#define av1_dist_wtd_convolve_2d av1_dist_wtd_convolve_2d_c
++
++void av1_dist_wtd_convolve_2d_copy_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, ConvolveParams *conv_params);
++#define av1_dist_wtd_convolve_2d_copy av1_dist_wtd_convolve_2d_copy_c
++
++void av1_dist_wtd_convolve_x_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_x, const int subpel_x_qn, ConvolveParams *conv_params);
++#define av1_dist_wtd_convolve_x av1_dist_wtd_convolve_x_c
++
++void av1_dist_wtd_convolve_y_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams *filter_params_y, const int subpel_y_qn, ConvolveParams *conv_params);
++#define av1_dist_wtd_convolve_y av1_dist_wtd_convolve_y_c
++
++void av1_dr_prediction_z1_c(uint8_t *dst, ptrdiff_t stride, int bw, int bh, const uint8_t *above, const uint8_t *left, int upsample_above, int dx, int dy);
++#define av1_dr_prediction_z1 av1_dr_prediction_z1_c
++
++void av1_dr_prediction_z2_c(uint8_t *dst, ptrdiff_t stride, int bw, int bh, const uint8_t *above, const uint8_t *left, int upsample_above, int upsample_left, int dx, int dy);
++#define av1_dr_prediction_z2 av1_dr_prediction_z2_c
++
++void av1_dr_prediction_z3_c(uint8_t *dst, ptrdiff_t stride, int bw, int bh, const uint8_t *above, const uint8_t *left, int upsample_left, int dx, int dy);
++#define av1_dr_prediction_z3 av1_dr_prediction_z3_c
++
++void av1_filter_intra_edge_c(uint8_t *p, int sz, int strength);
++#define av1_filter_intra_edge av1_filter_intra_edge_c
++
++void av1_filter_intra_edge_high_c(uint16_t *p, int sz, int strength);
++#define av1_filter_intra_edge_high av1_filter_intra_edge_high_c
++
++void av1_filter_intra_predictor_c(uint8_t *dst, ptrdiff_t stride, TX_SIZE tx_size, const uint8_t *above, const uint8_t *left, int mode);
++#define av1_filter_intra_predictor av1_filter_intra_predictor_c
++
++void av1_fwd_txfm2d_16x16_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_16x16 av1_fwd_txfm2d_16x16_c
++
++void av1_fwd_txfm2d_16x32_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_16x32 av1_fwd_txfm2d_16x32_c
++
++void av1_fwd_txfm2d_16x4_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_16x4 av1_fwd_txfm2d_16x4_c
++
++void av1_fwd_txfm2d_16x8_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_16x8 av1_fwd_txfm2d_16x8_c
++
++void av1_fwd_txfm2d_32x16_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_32x16 av1_fwd_txfm2d_32x16_c
++
++void av1_fwd_txfm2d_32x32_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_32x32 av1_fwd_txfm2d_32x32_c
++
++void av1_fwd_txfm2d_32x64_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_32x64 av1_fwd_txfm2d_32x64_c
++
++void av1_fwd_txfm2d_4x4_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_4x4 av1_fwd_txfm2d_4x4_c
++
++void av1_fwd_txfm2d_4x8_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_4x8 av1_fwd_txfm2d_4x8_c
++
++void av1_fwd_txfm2d_64x32_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_64x32 av1_fwd_txfm2d_64x32_c
++
++void av1_fwd_txfm2d_64x64_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_64x64 av1_fwd_txfm2d_64x64_c
++
++void av1_fwd_txfm2d_8x16_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_8x16 av1_fwd_txfm2d_8x16_c
++
++void av1_fwd_txfm2d_8x4_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_8x4 av1_fwd_txfm2d_8x4_c
++
++void av1_fwd_txfm2d_8x8_c(const int16_t *input, int32_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_fwd_txfm2d_8x8 av1_fwd_txfm2d_8x8_c
++
++void av1_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
++#define av1_fwht4x4 av1_fwht4x4_c
++
++uint32_t av1_get_crc32c_value_c(void *crc_calculator, uint8_t *p, size_t length);
++#define av1_get_crc32c_value av1_get_crc32c_value_c
++
++void av1_get_horver_correlation_full_c( const int16_t *diff, int stride, int w, int h, float *hcorr, float *vcorr);
++#define av1_get_horver_correlation_full av1_get_horver_correlation_full_c
++
++void av1_get_nz_map_contexts_c(const uint8_t *const levels, const int16_t *const scan, const uint16_t eob, const TX_SIZE tx_size, const TX_CLASS tx_class, int8_t *const coeff_contexts);
++#define av1_get_nz_map_contexts av1_get_nz_map_contexts_c
++
++void av1_highbd_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
++#define av1_highbd_convolve8 av1_highbd_convolve8_c
++
++void av1_highbd_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
++#define av1_highbd_convolve8_horiz av1_highbd_convolve8_horiz_c
++
++void av1_highbd_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
++#define av1_highbd_convolve8_vert av1_highbd_convolve8_vert_c
++
++void av1_highbd_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
++#define av1_highbd_convolve_avg av1_highbd_convolve_avg_c
++
++void av1_highbd_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, int bps);
++#define av1_highbd_convolve_copy av1_highbd_convolve_copy_c
++
++void av1_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
++#define av1_highbd_fwht4x4 av1_highbd_fwht4x4_c
++
++void av1_highbd_inv_txfm_add_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add av1_highbd_inv_txfm_add_c
++
++void av1_highbd_inv_txfm_add_16x32_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_16x32 av1_highbd_inv_txfm_add_16x32_c
++
++void av1_highbd_inv_txfm_add_16x4_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_16x4 av1_highbd_inv_txfm_add_16x4_c
++
++void av1_highbd_inv_txfm_add_16x64_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_16x64 av1_highbd_inv_txfm_add_16x64_c
++
++void av1_highbd_inv_txfm_add_16x8_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_16x8 av1_highbd_inv_txfm_add_16x8_c
++
++void av1_highbd_inv_txfm_add_32x16_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_32x16 av1_highbd_inv_txfm_add_32x16_c
++
++void av1_highbd_inv_txfm_add_32x32_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_32x32 av1_highbd_inv_txfm_add_32x32_c
++
++void av1_highbd_inv_txfm_add_32x64_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_32x64 av1_highbd_inv_txfm_add_32x64_c
++
++void av1_highbd_inv_txfm_add_32x8_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_32x8 av1_highbd_inv_txfm_add_32x8_c
++
++void av1_highbd_inv_txfm_add_4x16_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_4x16 av1_highbd_inv_txfm_add_4x16_c
++
++void av1_highbd_inv_txfm_add_4x4_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_4x4 av1_highbd_inv_txfm_add_4x4_c
++
++void av1_highbd_inv_txfm_add_4x8_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_4x8 av1_highbd_inv_txfm_add_4x8_c
++
++void av1_highbd_inv_txfm_add_64x16_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_64x16 av1_highbd_inv_txfm_add_64x16_c
++
++void av1_highbd_inv_txfm_add_64x32_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_64x32 av1_highbd_inv_txfm_add_64x32_c
++
++void av1_highbd_inv_txfm_add_64x64_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_64x64 av1_highbd_inv_txfm_add_64x64_c
++
++void av1_highbd_inv_txfm_add_8x16_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_8x16 av1_highbd_inv_txfm_add_8x16_c
++
++void av1_highbd_inv_txfm_add_8x32_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_8x32 av1_highbd_inv_txfm_add_8x32_c
++
++void av1_highbd_inv_txfm_add_8x4_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_8x4 av1_highbd_inv_txfm_add_8x4_c
++
++void av1_highbd_inv_txfm_add_8x8_c(const tran_low_t *input, uint8_t *dest, int stride, const TxfmParam *txfm_param);
++#define av1_highbd_inv_txfm_add_8x8 av1_highbd_inv_txfm_add_8x8_c
++
++void av1_highbd_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int bd);
++#define av1_highbd_iwht4x4_16_add av1_highbd_iwht4x4_16_add_c
++
++void av1_highbd_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int bd);
++#define av1_highbd_iwht4x4_1_add av1_highbd_iwht4x4_1_add_c
++
++void av1_inv_txfm2d_add_16x16_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_16x16 av1_inv_txfm2d_add_16x16_c
++
++void av1_inv_txfm2d_add_16x32_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_16x32 av1_inv_txfm2d_add_16x32_c
++
++void av1_inv_txfm2d_add_16x4_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_16x4 av1_inv_txfm2d_add_16x4_c
++
++void av1_inv_txfm2d_add_16x64_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_16x64 av1_inv_txfm2d_add_16x64_c
++
++void av1_inv_txfm2d_add_16x8_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_16x8 av1_inv_txfm2d_add_16x8_c
++
++void av1_inv_txfm2d_add_32x16_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_32x16 av1_inv_txfm2d_add_32x16_c
++
++void av1_inv_txfm2d_add_32x32_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c
++
++void av1_inv_txfm2d_add_32x64_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_32x64 av1_inv_txfm2d_add_32x64_c
++
++void av1_inv_txfm2d_add_32x8_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_32x8 av1_inv_txfm2d_add_32x8_c
++
++void av1_inv_txfm2d_add_4x16_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_4x16 av1_inv_txfm2d_add_4x16_c
++
++void av1_inv_txfm2d_add_4x4_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_4x4 av1_inv_txfm2d_add_4x4_c
++
++void av1_inv_txfm2d_add_4x8_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_4x8 av1_inv_txfm2d_add_4x8_c
++
++void av1_inv_txfm2d_add_64x16_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_64x16 av1_inv_txfm2d_add_64x16_c
++
++void av1_inv_txfm2d_add_64x32_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_64x32 av1_inv_txfm2d_add_64x32_c
++
++void av1_inv_txfm2d_add_64x64_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_64x64 av1_inv_txfm2d_add_64x64_c
++
++void av1_inv_txfm2d_add_8x16_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_8x16 av1_inv_txfm2d_add_8x16_c
++
++void av1_inv_txfm2d_add_8x32_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_8x32 av1_inv_txfm2d_add_8x32_c
++
++void av1_inv_txfm2d_add_8x4_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_8x4 av1_inv_txfm2d_add_8x4_c
++
++void av1_inv_txfm2d_add_8x8_c(const int32_t *input, uint16_t *output, int stride, TX_TYPE tx_type, int bd);
++#define av1_inv_txfm2d_add_8x8 av1_inv_txfm2d_add_8x8_c
++
++void av1_inv_txfm_add_c(const tran_low_t *dqcoeff, uint8_t *dst, int stride, const TxfmParam *txfm_param);
++#define av1_inv_txfm_add av1_inv_txfm_add_c
++
++void av1_lowbd_fwd_txfm_c(const int16_t *src_diff, tran_low_t *coeff, int diff_stride, TxfmParam *txfm_param);
++#define av1_lowbd_fwd_txfm av1_lowbd_fwd_txfm_c
++
++void av1_nn_fast_softmax_16_c( const float *input_nodes, float *output);
++#define av1_nn_fast_softmax_16 av1_nn_fast_softmax_16_c
++
++void av1_nn_predict_c( const float *input_nodes, const NN_CONFIG *const nn_config, int reduce_prec, float *const output);
++#define av1_nn_predict av1_nn_predict_c
++
++void av1_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan, const qm_val_t * qm_ptr, const qm_val_t * iqm_ptr, int log_scale);
++#define av1_quantize_b av1_quantize_b_c
++
++void av1_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define av1_quantize_fp av1_quantize_fp_c
++
++void av1_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define av1_quantize_fp_32x32 av1_quantize_fp_32x32_c
++
++void av1_quantize_fp_64x64_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define av1_quantize_fp_64x64 av1_quantize_fp_64x64_c
++
++void av1_quantize_lp_c(const int16_t *coeff_ptr, intptr_t n_coeffs, const int16_t *round_ptr, const int16_t *quant_ptr, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
++#define av1_quantize_lp av1_quantize_lp_c
++
++void av1_resize_and_extend_frame_c(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, const InterpFilter filter, const int phase, const int num_planes);
++#define av1_resize_and_extend_frame av1_resize_and_extend_frame_c
++
++void av1_round_shift_array_c(int32_t *arr, int size, int bit);
++#define av1_round_shift_array av1_round_shift_array_c
++
++void av1_txb_init_levels_c(const tran_low_t *const coeff, const int width, const int height, uint8_t *const levels);
++#define av1_txb_init_levels av1_txb_init_levels_c
++
++void av1_upsample_intra_edge_c(uint8_t *p, int sz);
++#define av1_upsample_intra_edge av1_upsample_intra_edge_c
++
++void av1_upsample_intra_edge_high_c(uint16_t *p, int sz, int bd);
++#define av1_upsample_intra_edge_high av1_upsample_intra_edge_high_c
++
++void av1_wedge_compute_delta_squares_c(int16_t *d, const int16_t *a, const int16_t *b, int N);
++#define av1_wedge_compute_delta_squares av1_wedge_compute_delta_squares_c
++
++int8_t av1_wedge_sign_from_residuals_c(const int16_t *ds, const uint8_t *m, int N, int64_t limit);
++#define av1_wedge_sign_from_residuals av1_wedge_sign_from_residuals_c
++
++uint64_t av1_wedge_sse_from_residuals_c(const int16_t *r1, const int16_t *d, const uint8_t *m, int N);
++#define av1_wedge_sse_from_residuals av1_wedge_sse_from_residuals_c
++
++void av1_wiener_convolve_add_src_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h, const ConvolveParams *conv_params);
++#define av1_wiener_convolve_add_src av1_wiener_convolve_add_src_c
++
++void cdef_copy_rect8_16bit_to_16bit_c(uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h);
++#define cdef_copy_rect8_16bit_to_16bit cdef_copy_rect8_16bit_to_16bit_c
++
++void cdef_copy_rect8_8bit_to_16bit_c(uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h);
++#define cdef_copy_rect8_8bit_to_16bit cdef_copy_rect8_8bit_to_16bit_c
++
++void cdef_filter_block_c(uint8_t *dst8, uint16_t *dst16, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int bsize, int coeff_shift);
++#define cdef_filter_block cdef_filter_block_c
++
++int cdef_find_dir_c(const uint16_t *img, int stride, int32_t *var, int coeff_shift);
++#define cdef_find_dir cdef_find_dir_c
++
++cfl_subsample_lbd_fn cfl_get_luma_subsampling_420_lbd_c(TX_SIZE tx_size);
++#define cfl_get_luma_subsampling_420_lbd cfl_get_luma_subsampling_420_lbd_c
++
++cfl_subsample_lbd_fn cfl_get_luma_subsampling_422_lbd_c(TX_SIZE tx_size);
++#define cfl_get_luma_subsampling_422_lbd cfl_get_luma_subsampling_422_lbd_c
++
++cfl_subsample_lbd_fn cfl_get_luma_subsampling_444_lbd_c(TX_SIZE tx_size);
++#define cfl_get_luma_subsampling_444_lbd cfl_get_luma_subsampling_444_lbd_c
++
++cfl_predict_lbd_fn cfl_get_predict_lbd_fn_c(TX_SIZE tx_size);
++#define cfl_get_predict_lbd_fn cfl_get_predict_lbd_fn_c
++
++cfl_subtract_average_fn cfl_get_subtract_average_fn_c(TX_SIZE tx_size);
++cfl_subtract_average_fn cfl_get_subtract_average_fn_vsx(TX_SIZE tx_size);
++#define cfl_get_subtract_average_fn cfl_get_subtract_average_fn_vsx
++
++void av1_rtcd(void);
++
++#include "config/aom_config.h"
++
++#ifdef RTCD_C
++#include "aom_ports/ppc.h"
++static void setup_rtcd_internal(void)
++{
++  int flags = ppc_simd_caps();
++
++  (void)flags;
++
++}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
diff -urN a/debian/patches/ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch b/debian/patches/ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch
--- a/debian/patches/ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,37 @@
+From b3a14db7637232d30c878cc1f1ad6d8037e81379 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawn@anastas.io>
+Date: Tue, 15 Jan 2019 22:42:21 -0600
+Subject: [PATCH] linux/seccomp-bpf: ppc64+glibc workaround in SIGSYS handler
+
+Workaround for an apparent issue with glibc negating syscall
+parameters. Observed on a ppc64le machine with glibc.
+More investigation required.
+---
+ sandbox/linux/seccomp-bpf/trap.cc | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf/trap.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf/trap.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf/trap.cc
+@@ -233,6 +233,20 @@ void Trap::SigSys(int nr, LinuxSigInfo*
+       SetIsInSigHandler();
+     }
+ 
++#if defined(__powerpc64__)
++    // On ppc64+glibc, some syscalls seem to accidentally negate the first
++    // parameter which causes checks against it to fail. For now, manually
++    // negate them back.
++    // TODO(shawn@anastas.io): investigate this issue further
++    auto nr = SECCOMP_SYSCALL(ctx);
++    if (nr == __NR_openat || nr == __NR_mkdirat || nr == __NR_faccessat || nr == __NR_readlinkat ||
++        nr == __NR_renameat || nr == __NR_renameat2 || nr == __NR_newfstatat || nr == __NR_unlinkat) {
++        if (static_cast<int>(SECCOMP_PARM1(ctx)) > 0) {
++            SECCOMP_PARM1(ctx) = -SECCOMP_PARM1(ctx);
++        }
++    }
++#endif
++
+     // Copy the seccomp-specific data into a arch_seccomp_data structure. This
+     // is what we are showing to TrapFnc callbacks that the system call
+     // evaluator registered with the sandbox.
diff -urN a/debian/patches/ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch b/debian/patches/ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch
--- a/debian/patches/ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,23 @@
+From 0c65e40ae578b743b5f06956597ebc9700768d18 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 22:45:47 -0500
+Subject: [PATCH 1/1] sandbox: Enable seccomp_bpf for ppc64
+
+---
+ sandbox/features.gni | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: chromium-99.0.4818.0/sandbox/features.gni
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/features.gni
++++ chromium-99.0.4818.0/sandbox/features.gni
+@@ -9,7 +9,8 @@
+ use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
+                   (current_cpu == "x86" || current_cpu == "x64" ||
+                    current_cpu == "arm" || current_cpu == "arm64" ||
+-                   current_cpu == "mipsel" || current_cpu == "mips64el")
++                   current_cpu == "mipsel" || current_cpu == "mips64el" ||
++                   current_cpu == "ppc64")
+ 
+ # SSBD (Speculative Store Bypass Disable) is a mitigation of Spectre Variant 4.
+ # As Spectre Variant 4 can be mitigated by site isolation, opt-out SSBD on site
diff -urN a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch
--- a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,27 @@
+From c9043a422fb4a5a6c72aaa1b907cea5f6a3061dd Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 19:10:24 -0500
+Subject: [PATCH 1/4] sandbox/linux/bpf_dsl: Update syscall ranges for ppc64
+
+---
+ sandbox/linux/bpf_dsl/linux_syscall_ranges.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: chromium-99.0.4818.0/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
++++ chromium-99.0.4818.0/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+@@ -56,6 +56,13 @@
+ #define MAX_PUBLIC_SYSCALL __NR_syscalls
+ #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
+ 
++#elif defined(__powerpc64__)
++
++#include <asm/unistd.h>
++#define MIN_SYSCALL 0u
++#define MAX_PUBLIC_SYSCALL 386u
++#define MAX_SYSCALL MAX_PUBLIC_SYSCALL
++
+ #else
+ #error "Unsupported architecture"
+ #endif
diff -urN a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch
--- a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,80 @@
+From 036d209a3f1a771de9aed31dfbe804aaf91d1c27 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 23:35:21 -0500
+Subject: [PATCH] sandbox/linux: Implement partial support for ppc64 syscalls
+ and ucontext
+
+Unlike other architectures, the ppc64 files currently rely on applicable
+headers being provided by the system. It is sufficient for standard
+GNU/Linux environments, but may require expansion elsewhere.
+---
+ sandbox/linux/BUILD.gn                              |  2 ++
+ sandbox/linux/system_headers/linux_syscalls.h       |  4 ++++
+ sandbox/linux/system_headers/linux_ucontext.h       |  2 ++
+ sandbox/linux/system_headers/ppc64_linux_syscalls.h | 12 ++++++++++++
+ sandbox/linux/system_headers/ppc64_linux_ucontext.h | 12 ++++++++++++
+ 5 files changed, 32 insertions(+)
+ create mode 100644 sandbox/linux/system_headers/ppc64_linux_syscalls.h
+ create mode 100644 sandbox/linux/system_headers/ppc64_linux_ucontext.h
+
+Index: chromium-99.0.4818.0/sandbox/linux/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/BUILD.gn
++++ chromium-99.0.4818.0/sandbox/linux/BUILD.gn
+@@ -372,6 +372,8 @@ component("sandbox_services") {
+ 
+ source_set("sandbox_services_headers") {
+   sources = [
++    "system_headers/ppc64_linux_syscalls.h",
++    "system_headers/ppc64_linux_ucontext.h",
+     "system_headers/arm64_linux_syscalls.h",
+     "system_headers/arm_linux_syscalls.h",
+     "system_headers/arm_linux_ucontext.h",
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/linux_syscalls.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/system_headers/linux_syscalls.h
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/linux_syscalls.h
+@@ -35,5 +35,9 @@
+ #include "sandbox/linux/system_headers/arm64_linux_syscalls.h"
+ #endif
+ 
++#if defined(__powerpc64__)
++#include "sandbox/linux/system_headers/ppc64_linux_syscalls.h"
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+ 
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+@@ -0,0 +1,12 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
++#define SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
++
++#include <asm/unistd.h>
++
++//TODO: is it necessary to redefine syscall numbers for PPC64?
++
++#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_ucontext.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_ucontext.h
+@@ -0,0 +1,12 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_UCONTEXT_H_
++#define SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_UCONTEXT_H_
++
++#include <sys/ucontext.h>
++
++//TODO: is it necessary to redefine ucontext on PPC64?
++
++#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_UCONTEXT_H_
diff -urN a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch
--- a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch	2022-02-13 01:38:45.723315537 +0000
@@ -0,0 +1,22 @@
+From c41cd6ac927f592b161abc04468d3c7a4be91995 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Tue, 23 Oct 2018 15:49:31 -0500
+Subject: [PATCH] sandbox/linux: Update IsSyscallAllowed in broker_process.cc
+
+---
+ sandbox/linux/syscall_broker/broker_process.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: chromium-99.0.4818.0/sandbox/linux/syscall_broker/broker_process.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/syscall_broker/broker_process.cc
++++ chromium-99.0.4818.0/sandbox/linux/syscall_broker/broker_process.cc
+@@ -164,7 +164,7 @@ bool BrokerProcess::IsSyscallBrokerable(
+ #if defined(__NR_fstatat64)
+     case __NR_fstatat64:
+ #endif
+-#if defined(__x86_64__) || defined(__aarch64__)
++#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_newfstatat:
+ #endif
+       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
diff -urN a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch
--- a/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,647 @@
+From da52663deec77f705d7d58b18484c3e28e563f10 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Tue, 18 Sep 2018 18:39:28 -0500
+Subject: [PATCH] sandbox/linux: Update syscall helpers/lists for ppc64
+
+---
+ .../seccomp-bpf-helpers/baseline_policy.cc    |   8 +-
+ .../syscall_parameters_restrictions.cc        |   2 +-
+ .../syscall_parameters_restrictions.h         |   2 +-
+ .../linux/seccomp-bpf-helpers/syscall_sets.cc | 108 ++++++++++--------
+ .../linux/seccomp-bpf-helpers/syscall_sets.h  |   6 +-
+ sandbox/linux/services/syscall_wrappers.cc    |   2 +-
+ 6 files changed, 73 insertions(+), 55 deletions(-)
+
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -91,7 +91,8 @@ bool IsBaselinePolicyWatched(int sysno)
+          SyscallSets::IsPrctl(sysno) ||
+          SyscallSets::IsProcessGroupOrSession(sysno) ||
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+          SyscallSets::IsSocketCall(sysno) ||
+ #endif
+ #if defined(__arm__)
+@@ -246,7 +247,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+   }
+ 
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   if (sysno == __NR_mmap)
+     return RestrictMmapFlags();
+ #endif
+@@ -267,7 +268,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+     return RestrictPrctl();
+ 
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   if (sysno == __NR_socketpair) {
+     // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen.
+     static_assert(AF_UNIX == PF_UNIX,
+@@ -331,7 +332,8 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+   }
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   if (SyscallSets::IsSocketCall(sysno))
+     return RestrictSocketcallCommand();
+ #endif
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+@@ -36,7 +36,7 @@
+ #include "sandbox/linux/system_headers/linux_time.h"
+ 
+ #if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+-    !defined(__arm__) && !defined(__aarch64__) &&           \
++    !defined(__arm__) && !defined(__aarch64__) && !defined(__powerpc64__) && \
+     !defined(PTRACE_GET_THREAD_AREA)
+ // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance
+ // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA.
+@@ -45,6 +45,11 @@
+ #include <asm/ptrace-abi.h>
+ #endif
+ 
++// On PPC64, TCGETS is defined in terms of struct termios, so we must include termios.h
++#ifdef __powerpc64__
++#include <termios.h>
++#endif
++
+ #if defined(OS_ANDROID)
+ 
+ #if !defined(F_DUPFD_CLOEXEC)
+@@ -102,6 +107,15 @@ inline bool IsArchitectureMips() {
+ #endif
+ }
+ 
++inline bool IsArchitecturePPC64() {
++#if defined(__powerpc64__)
++  return true;
++#else
++  return false;
++#endif
++}
++
++
+ // Ubuntu's version of glibc has a race condition in sem_post that can cause
+ // it to call futex(2) with bogus op arguments. To workaround this, we need
+ // to allow those futex(2) calls to fail with EINVAL, instead of crashing the
+@@ -252,9 +266,11 @@ ResultExpr RestrictFcntlCommands() {
+   // operator.
+   // Glibc overrides the kernel's O_LARGEFILE value. Account for this.
+   uint64_t kOLargeFileFlag = O_LARGEFILE;
+-  if (IsArchitectureX86_64() || IsArchitectureI386() || IsArchitectureMips())
++  if (IsArchitectureX86_64() || IsArchitectureI386() || IsArchitectureMips() \
++      || IsArchitecturePPC64())
+     kOLargeFileFlag = 0100000;
+ 
++
+   const Arg<int> cmd(1);
+   const Arg<long> long_arg(2);
+ 
+@@ -271,8 +287,17 @@ ResultExpr RestrictFcntlCommands() {
+               F_SETLKW,
+               F_GETLK,
+               F_DUPFD,
+-              F_DUPFD_CLOEXEC),
+-             Allow())
++              F_DUPFD_CLOEXEC
++#if defined(__powerpc64__)
++// On PPC64, F_SETLK, F_GETLK, F_SETLKW are defined as the 64-bit variants
++// but glibc will sometimes still use the 32-bit versions. Allow both.
++              ,
++              5, /* F_GETLK (32) */
++              6, /* F_SETLK (32) */
++              7  /* F_SETLKW (32) */
++#endif
++              ),
++            Allow())
+       .Case(F_SETFL,
+             If((long_arg & ~kAllowedMask) == 0, Allow()).Else(CrashSIGSYS()))
+       .Case(F_ADD_SEALS,
+@@ -281,7 +306,7 @@ ResultExpr RestrictFcntlCommands() {
+   // clang-format on
+ }
+ 
+-#if defined(__i386__) || defined(__mips__)
++#if defined(__i386__) || defined(__mips__) || defined(__powerpc64__)
+ ResultExpr RestrictSocketcallCommand() {
+   // Unfortunately, we are unable to restrict the first parameter to
+   // socketpair(2). Whilst initially sounding bad, it's noteworthy that very
+@@ -436,7 +461,7 @@ ResultExpr RestrictPtrace() {
+ #endif
+   return Switch(request)
+       .CASES((
+-#if !defined(__aarch64__)
++#if !defined(__aarch64__) && !defined(__powerpc64__)
+                  PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA,
+                  PTRACE_GETREGSET,
+ #endif
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+@@ -49,7 +49,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Restr
+ // O_NONBLOCK | O_SYNC | O_LARGEFILE | O_CLOEXEC | O_NOATIME.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictFcntlCommands();
+ 
+-#if defined(__i386__) || defined(__mips__)
++#if defined(__i386__) || defined(__mips__) || defined(__powerpc64__)
+ // Restrict socketcall(2) to only allow socketpair(2), send(2), recv(2),
+ // sendto(2), recvfrom(2), shutdown(2), sendmsg(2) and recvmsg(2).
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictSocketcallCommand();
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -29,7 +29,8 @@ bool SyscallSets::IsAllowedGettime(int s
+   switch (sysno) {
+     case __NR_gettimeofday:
+ #if defined(__i386__) || defined(__x86_64__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_time:
+ #endif
+       return true;
+@@ -52,12 +53,14 @@ bool SyscallSets::IsAllowedGettime(int s
+     case __NR_clock_nanosleep_time64:  // Parameters filtered by RestrictClockID().
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_ftime:  // Obsolete.
+ #endif
+     case __NR_settimeofday:  // Privileged.
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_stime:
+ #endif
+     default:
+@@ -136,7 +139,7 @@ bool SyscallSets::IsFileSystem(int sysno
+     case __NR_faccessat2:
+     case __NR_fchmodat:
+     case __NR_fchownat:  // Should be called chownat ?
+-#if defined(__x86_64__) || defined(__aarch64__)
++#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_newfstatat:  // fstatat(). EPERM not a valid errno.
+ #elif defined(__i386__) || defined(__arm__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
+@@ -155,7 +158,7 @@ bool SyscallSets::IsFileSystem(int sysno
+     case __NR_memfd_create:
+     case __NR_mkdirat:
+     case __NR_mknodat:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_oldlstat:
+     case __NR_oldstat:
+ #endif
+@@ -169,7 +172,8 @@ bool SyscallSets::IsFileSystem(int sysno
+ #endif
+     case __NR_statfs:  // EPERM not a valid errno.
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_statfs64:
+ #endif
+     case __NR_statx:  // EPERM not a valid errno.
+@@ -180,7 +184,8 @@ bool SyscallSets::IsFileSystem(int sysno
+     case __NR_truncate64:
+ #endif
+     case __NR_unlinkat:
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_utime:
+ #endif
+     case __NR_utimensat:  // New.
+@@ -205,7 +210,8 @@ bool SyscallSets::IsAllowedFileSystemAcc
+ #endif
+       return true;
+ // TODO(jln): these should be denied gracefully as well (moved below).
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_fadvise64:  // EPERM not a valid errno.
+ #endif
+ #if defined(__i386__)
+@@ -218,11 +224,12 @@ bool SyscallSets::IsAllowedFileSystemAcc
+     case __NR_flock:      // EPERM not a valid errno.
+     case __NR_fstatfs:    // Give information about the whole filesystem.
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_fstatfs64:
+ #endif
+     case __NR_fsync:  // EPERM not a valid errno.
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_oldfstat:
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+@@ -230,6 +237,8 @@ bool SyscallSets::IsAllowedFileSystemAcc
+     case __NR_sync_file_range:  // EPERM not a valid errno.
+ #elif defined(__arm__)
+     case __NR_arm_sync_file_range:  // EPERM not a valid errno.
++#elif defined(__powerpc64__)
++    case __NR_sync_file_range2: // EPERM not a valid errno.
+ #endif
+     default:
+       return false;
+@@ -250,7 +259,8 @@ bool SyscallSets::IsDeniedFileSystemAcce
+ #endif
+     case __NR_getdents64:  // EPERM not a valid errno.
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_readdir:
+ #endif
+       return true;
+@@ -291,7 +301,7 @@ bool SyscallSets::IsGetSimpleId(int sysn
+ bool SyscallSets::IsProcessPrivilegeChange(int sysno) {
+   switch (sysno) {
+     case __NR_capset:
+-#if defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_ioperm:  // Intel privilege.
+     case __NR_iopl:    // Intel privilege.
+ #endif
+@@ -347,7 +357,8 @@ bool SyscallSets::IsAllowedSignalHandlin
+     // overflow.
+     case __NR_sigaltstack:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_rt_sigtimedwait_time64:
+     case __NR_sigaction:
+     case __NR_sigprocmask:
+@@ -363,7 +374,8 @@ bool SyscallSets::IsAllowedSignalHandlin
+ #endif
+     case __NR_signalfd4:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_sigpending:
+     case __NR_sigsuspend:
+ #endif
+@@ -387,7 +399,7 @@ bool SyscallSets::IsAllowedOperationOnFd
+ #endif
+     case __NR_dup3:
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_shutdown:
+ #endif
+       return true;
+@@ -420,7 +432,7 @@ bool SyscallSets::IsAllowedProcessStartO
+     case __NR_exit_group:
+     case __NR_wait4:
+     case __NR_waitid:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_waitpid:
+ #endif
+       return true;
+@@ -437,7 +449,7 @@ bool SyscallSets::IsAllowedProcessStartO
+ #endif
+     case __NR_set_tid_address:
+     case __NR_unshare:
+-#if !defined(__mips__) && !defined(__aarch64__)
++#if !defined(__mips__) && !defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_vfork:
+ #endif
+     default:
+@@ -490,7 +502,7 @@ bool SyscallSets::IsAllowedGetOrModifySo
+       return true;
+     default:
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_socketpair:  // We will want to inspect its argument.
+ #endif
+       return false;
+@@ -500,7 +512,7 @@ bool SyscallSets::IsAllowedGetOrModifySo
+ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
+   switch (sysno) {
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_accept:
+     case __NR_accept4:
+     case __NR_bind:
+@@ -515,7 +527,8 @@ bool SyscallSets::IsDeniedGetOrModifySoc
+ }
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+ // Big multiplexing system call for sockets.
+ bool SyscallSets::IsSocketCall(int sysno) {
+   switch (sysno) {
+@@ -529,7 +542,8 @@ bool SyscallSets::IsSocketCall(int sysno
+ }
+ #endif
+ 
+-#if defined(__x86_64__) || defined(__arm__) || defined(__mips__)
++#if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
++    defined(__powerpc64__)
+ bool SyscallSets::IsNetworkSocketInformation(int sysno) {
+   switch (sysno) {
+     case __NR_getpeername:
+@@ -554,7 +568,7 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_mincore:
+     case __NR_mlockall:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_mmap:
+ #endif
+ #if defined(__i386__) || defined(__arm__) || \
+@@ -584,7 +598,8 @@ bool SyscallSets::IsAllowedGeneralIo(int
+   switch (sysno) {
+     case __NR_lseek:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR__llseek:
+ #endif
+ #if !defined(__aarch64__)
+@@ -604,26 +619,28 @@ bool SyscallSets::IsAllowedGeneralIo(int
+     case __NR_readv:
+     case __NR_pread64:
+ #if defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_recv:
+ #endif
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_recvfrom:  // Could specify source.
+     case __NR_recvmsg:   // Could specify source.
+ #endif
+-#if defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_select:
+ #endif
+-#if defined(__i386__) || defined(__arm__) || defined(__mips__)
++#if defined(__i386__) || defined(__arm__) || defined(__mips__) || defined(__powerpc64__)
+     case __NR__newselect:
+ #endif
+ #if defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_send:
+ #endif
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_sendmsg:  // Could specify destination.
+     case __NR_sendto:   // Could specify destination.
+ #endif
+@@ -679,7 +696,8 @@ bool SyscallSets::IsAllowedBasicSchedule
+       return true;
+     case __NR_getpriority:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_nice:
+ #endif
+     case __NR_setpriority:
+@@ -691,7 +709,8 @@ bool SyscallSets::IsAllowedBasicSchedule
+ bool SyscallSets::IsAdminOperation(int sysno) {
+   switch (sysno) {
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_bdflush:
+ #endif
+     case __NR_kexec_load:
+@@ -707,7 +726,8 @@ bool SyscallSets::IsAdminOperation(int s
+ 
+ bool SyscallSets::IsKernelModule(int sysno) {
+   switch (sysno) {
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_create_module:
+     case __NR_get_kernel_syms:  // Should ENOSYS.
+     case __NR_query_module:
+@@ -740,7 +760,8 @@ bool SyscallSets::IsFsControl(int sysno)
+     case __NR_swapoff:
+     case __NR_swapon:
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_umount:
+ #endif
+     case __NR_umount2:
+@@ -756,7 +777,7 @@ bool SyscallSets::IsNuma(int sysno) {
+     case __NR_getcpu:
+     case __NR_mbind:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_migrate_pages:
+ #endif
+     case __NR_move_pages:
+@@ -791,14 +812,15 @@ bool SyscallSets::IsGlobalProcessEnviron
+   switch (sysno) {
+     case __NR_acct:  // Privileged.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+ #endif
+-#if defined(__i386__) || defined(__arm__)
++#if defined(__i386__) || defined(__arm__) || defined(__powerpc64__)
+     case __NR_ugetrlimit:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_ulimit:
+ #endif
+     case __NR_getrusage:
+@@ -832,7 +854,7 @@ bool SyscallSets::IsGlobalSystemStatus(i
+ #endif
+     case __NR_sysinfo:
+     case __NR_uname:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_olduname:
+     case __NR_oldolduname:
+ #endif
+@@ -916,7 +938,8 @@ bool SyscallSets::IsSystemVSemaphores(in
+ 
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+     defined(__aarch64__) ||                                         \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
++    defined(__powerpc64__)
+ // These give a lot of ambient authority and bypass the setuid sandbox.
+ bool SyscallSets::IsSystemVSharedMemory(int sysno) {
+   switch (sysno) {
+@@ -947,7 +970,8 @@ bool SyscallSets::IsSystemVMessageQueue(
+ #endif
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+ // Big system V multiplexing system call.
+ bool SyscallSets::IsSystemVIpc(int sysno) {
+   switch (sysno) {
+@@ -967,7 +991,8 @@ bool SyscallSets::IsAnySystemV(int sysno
+   return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) ||
+          IsSystemVSharedMemory(sysno);
+ #elif defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   return IsSystemVIpc(sysno);
+ #endif
+ }
+@@ -1024,7 +1049,8 @@ bool SyscallSets::IsFaNotify(int sysno)
+ bool SyscallSets::IsTimer(int sysno) {
+   switch (sysno) {
+     case __NR_getitimer:
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_alarm:
+ #endif
+     case __NR_setitimer:
+@@ -1106,18 +1132,22 @@ bool SyscallSets::IsMisc(int sysno) {
+     case __NR_syncfs:
+     case __NR_vhangup:
+ // The system calls below are not implemented.
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_afs_syscall:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_break:
+ #endif
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_getpmsg:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_gtty:
+     case __NR_idle:
+     case __NR_lock:
+@@ -1125,20 +1155,22 @@ bool SyscallSets::IsMisc(int sysno) {
+     case __NR_prof:
+     case __NR_profil:
+ #endif
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_putpmsg:
+ #endif
+ #if defined(__x86_64__)
+     case __NR_security:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_stty:
+ #endif
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_tuxcall:
+ #endif
+-#if !defined(__aarch64__)
++#if !defined(__aarch64__) && !defined(__powerpc64__)
+     case __NR_vserver:
+ #endif
+       return true;
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
+@@ -46,13 +46,14 @@ class SANDBOX_EXPORT SyscallSets {
+   static bool IsDeniedGetOrModifySocket(int sysno);
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   // Big multiplexing system call for sockets.
+   static bool IsSocketCall(int sysno);
+ #endif
+ 
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   static bool IsNetworkSocketInformation(int sysno);
+ #endif
+ 
+@@ -84,7 +85,8 @@ class SANDBOX_EXPORT SyscallSets {
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+     defined(__aarch64__) ||                                         \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
++    defined(__powerpc64__)
+   // These give a lot of ambient authority and bypass the setuid sandbox.
+   static bool IsSystemVSharedMemory(int sysno);
+ #endif
+@@ -95,7 +97,8 @@ class SANDBOX_EXPORT SyscallSets {
+ #endif
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   // Big system V multiplexing system call.
+   static bool IsSystemVIpc(int sysno);
+ #endif
+Index: chromium-99.0.4818.0/sandbox/linux/services/syscall_wrappers.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/services/syscall_wrappers.cc
++++ chromium-99.0.4818.0/sandbox/linux/services/syscall_wrappers.cc
+@@ -61,7 +61,7 @@ long sys_clone(unsigned long flags,
+ #if defined(ARCH_CPU_X86_64)
+   return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls);
+ #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_PPC64_FAMILY)
+   // CONFIG_CLONE_BACKWARDS defined.
+   return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid);
+ #endif
diff -urN a/debian/patches/ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch b/debian/patches/ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch
--- a/debian/patches/ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,26 @@
+From 7468b266532bd607eb1f5292d758256d800b2eee Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Fri, 10 Aug 2018 00:23:50 -0500
+Subject: [PATCH] services/service_manager/sandbox/linux: Fix TCGETS
+ declaration on PPC64
+
+---
+ .../sandbox/linux/bpf_renderer_policy_linux.cc               | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+Index: chromium-99.0.4818.0/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ chromium-99.0.4818.0/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+@@ -15,6 +15,11 @@
+ #include "sandbox/linux/system_headers/linux_syscalls.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ 
++// On PPC64, TCGETS is defined in terms of struct termios, so we must include termios.h
++#ifdef __powerpc64__
++#include <termios.h>
++#endif
++
+ // TODO(vignatti): replace the local definitions below with #include
+ // <linux/dma-buf.h> once kernel version 4.6 becomes widely used.
+ #include <linux/types.h>
diff -urN a/debian/patches/ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch b/debian/patches/ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch
--- a/debian/patches/ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,76 @@
+From 3c4705bfdda45feb860a1f121631773e5fe8e53f Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 19:11:26 -0500
+Subject: [PATCH 1/4] sandbox/linux/bpf_dsl: Modify seccomp_macros to add
+ support for ppc64
+
+---
+ sandbox/linux/bpf_dsl/seccomp_macros.h | 43 ++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+Index: chromium-99.0.4818.0/sandbox/linux/bpf_dsl/seccomp_macros.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/bpf_dsl/seccomp_macros.h
++++ chromium-99.0.4818.0/sandbox/linux/bpf_dsl/seccomp_macros.h
+@@ -14,6 +14,9 @@
+ #if defined(__mips__)
+ // sys/user.h in eglibc misses size_t definition
+ #include <stddef.h>
++#elif defined(__powerpc64__)
++// Manually define greg_t on ppc64
++typedef unsigned long long greg_t;
+ #endif
+ #endif
+ 
+@@ -343,6 +346,51 @@ struct regs_struct {
+ #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3]
+ #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4]
+ #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5]
++
++#elif defined(__powerpc64__)
++#include <asm/ptrace.h>
++
++typedef struct pt_regs regs_struct;
++
++#ifdef ARCH_CPU_LITTLE_ENDIAN
++#define SECCOMP_ARCH AUDIT_ARCH_PPC64LE
++#else
++#define SECCOMP_ARCH AUDIT_ARCH_PPC64
++#endif
++
++#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.regs->gpr[_reg])
++
++#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, 3)
++#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, 0)
++#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.regs->nip
++#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, 3)
++#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, 4)
++#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, 5)
++#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, 6)
++#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, 7)
++#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, 8)
++
++#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr))
++#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch))
++#define SECCOMP_IP_MSB_IDX \
++  (offsetof(struct arch_seccomp_data, instruction_pointer) + 4)
++#define SECCOMP_IP_LSB_IDX \
++  (offsetof(struct arch_seccomp_data, instruction_pointer) + 0)
++#define SECCOMP_ARG_MSB_IDX(nr) \
++  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 4)
++#define SECCOMP_ARG_LSB_IDX(nr) \
++  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 0)
++
++#define SECCOMP_PT_RESULT(_regs) (_regs).gpr[3]
++#define SECCOMP_PT_SYSCALL(_regs) (_regs).gpr[0]
++#define SECCOMP_PT_IP(_regs) (_regs).nip
++#define SECCOMP_PT_PARM1(_regs) (_regs).gpr[3]
++#define SECCOMP_PT_PARM2(_regs) (_regs).gpr[4]
++#define SECCOMP_PT_PARM3(_regs) (_regs).gpr[5]
++#define SECCOMP_PT_PARM4(_regs) (_regs).gpr[6]
++#define SECCOMP_PT_PARM5(_regs) (_regs).gpr[7]
++#define SECCOMP_PT_PARM6(_regs) (_regs).gpr[8]
++
+ #else
+ #error Unsupported target platform
+ 
diff -urN a/debian/patches/ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch b/debian/patches/ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch
--- a/debian/patches/ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,37 @@
+From cca78240860abb63bbcfe94d1e5f04a1f23c527d Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 19:11:56 -0500
+Subject: [PATCH 3/4] sandbox/linux/system_headers: Update linux seccomp header
+ for ppc64
+
+---
+ sandbox/linux/system_headers/linux_seccomp.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/linux_seccomp.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/system_headers/linux_seccomp.h
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/linux_seccomp.h
+@@ -38,6 +38,9 @@
+ #ifndef EM_AARCH64
+ #define EM_AARCH64 183
+ #endif
++#ifndef EM_PPC64
++#define EM_PPC64 21
++#endif
+ 
+ #ifndef __AUDIT_ARCH_64BIT
+ #define __AUDIT_ARCH_64BIT 0x80000000
+@@ -70,6 +73,12 @@
+ #ifndef AUDIT_ARCH_AARCH64
+ #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
+ #endif
++#ifndef AUDIT_ARCH_PPC64
++#define AUDIT_ARCH_PPC64 (EM_PPC64 | __AUDIT_ARCH_64BIT)
++#endif
++#ifndef AUDIT_ARCH_PPC64LE
++#define AUDIT_ARCH_PPC64LE (EM_PPC64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
++#endif
+ 
+ // For prctl.h
+ #ifndef PR_SET_SECCOMP
diff -urN a/debian/patches/ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch b/debian/patches/ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch
--- a/debian/patches/ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,23 @@
+From 298df3dc44f7121cd8cb9a06b29fa3b16c959b8d Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 19:13:25 -0500
+Subject: [PATCH 4/4] sandbox/linux/system_headers: Update linux signal header
+ for ppc64
+
+---
+ sandbox/linux/system_headers/linux_signal.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/linux_signal.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/system_headers/linux_signal.h
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/linux_signal.h
+@@ -13,7 +13,7 @@
+ // (not undefined, but defined different values and in different memory
+ // layouts). So, fill the gap here.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+ 
+ #define LINUX_SIGHUP 1
+ #define LINUX_SIGINT 2
diff -urN a/debian/patches/ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch b/debian/patches/ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch
--- a/debian/patches/ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,107 @@
+From 1d44643a7c7cf650efd1093d22cd5bf859fdcb51 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 9 Aug 2018 20:52:13 -0500
+Subject: [PATCH] sandbox/linux/seccomp-bpf: Add ppc64 syscall stub
+
+---
+ sandbox/linux/seccomp-bpf/syscall.cc | 53 ++++++++++++++++++++++++++--
+ 1 file changed, 51 insertions(+), 2 deletions(-)
+
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf/syscall.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf/syscall.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf/syscall.cc
+@@ -18,7 +18,7 @@ namespace sandbox {
+ namespace {
+ 
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined (ARCH_CPU_PPC64_FAMILY)
+ // Number that's not currently used by any Linux kernel ABIs.
+ const int kInvalidSyscallNumber = 0x351d3;
+ #else
+@@ -308,10 +308,54 @@ asm(// We need to be able to tell the ke
+     "2:ret\n"
+     ".cfi_endproc\n"
+     ".size SyscallAsm, .-SyscallAsm\n"
++#elif defined(__powerpc64__)
++    ".text\n"
++    ".align 4\n"
++    ".type SyscallAsm @function\n"
++    "SyscallAsm:\n"
++    ".cfi_startproc\n"
++
++    // Check if r3 is negative
++    "cmpdi 3, 0\n"
++    "bgt 2f\n"
++
++    // Load address of 3f into r3 and return
++    "mflr 10\n"
++    "bl 1f\n"
++    "1: mflr 3\n"
++    "mtlr 10\n"
++    "addi 3, 3, 4*13\n"
++    "blr\n"
++
++    // Load arguments from array into r3-8
++    // save param 3 in r10
++    "2:\n"
++    "mr 0, 3\n"
++    "ld 3, 0(4)\n"
++    "ld 5, 16(4)\n"
++    "ld 6, 24(4)\n"
++    "ld 7, 32(4)\n"
++    "ld 8, 40(4)\n"
++    "ld 4, 8(4)\n"
++    "li 9, 0\n"
++
++    // Enter kernel
++    "sc\n"
++
++    // Magic return address
++    "3:\n"
++    // Like MIPS, ppc64 return values are always positive.
++    // Check for error in cr0.SO and negate upon error
++    "bc 4, 3, 4f\n"
++    "neg 3, 3\n"
++    "4: blr\n"
++
++    ".cfi_endproc\n"
++    ".size SyscallAsm, .-SyscallAsm\n"
+ #endif
+     );  // asm
+ 
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+ extern "C" {
+ intptr_t SyscallAsm(intptr_t nr, const intptr_t args[6]);
+ }
+@@ -425,6 +469,8 @@ intptr_t Syscall::Call(int nr,
+     ret = inout;
+   }
+ 
++#elif defined(__powerpc64__)
++  intptr_t ret = SyscallAsm(nr, args);
+ #else
+ #error "Unimplemented architecture"
+ #endif
+@@ -441,8 +487,18 @@ void Syscall::PutValueInUcontext(intptr_
+     // needs to be changed back.
+     ret_val = -ret_val;
+     SECCOMP_PARM4(ctx) = 1;
+-  } else
++  } else {
+     SECCOMP_PARM4(ctx) = 0;
++  }
++#endif
++#if defined(__powerpc64__)
++  // Same as MIPS, need to invert ret and set error register (cr0.SO)
++  if (ret_val <= -1 && ret_val >= -4095) {
++    ret_val = -ret_val;
++    ctx->uc_mcontext.regs->ccr |= (1 << 28);
++  } else {
++    ctx->uc_mcontext.regs->ccr &= ~(1 << 28);
++  }
+ #endif
+   SECCOMP_RESULT(ctx) = static_cast<greg_t>(ret_val);
+ }
diff -urN a/debian/patches/ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch b/debian/patches/ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch
--- a/debian/patches/ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,24 @@
+From 6a852c4135864ba87b3cbdd0880d7cfecf7cd654 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Thu, 13 Sep 2018 15:12:22 -0500
+Subject: [PATCH 5/6] sandbox/linux: update unit test for ppc64
+
+---
+ sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
+@@ -321,8 +321,10 @@ TEST_BASELINE_SIGSYS(__NR_timer_create)
+ 
+ #if !defined(__aarch64__)
+ TEST_BASELINE_SIGSYS(__NR_inotify_init)
++#if !defined(__powerpc64__)
+ TEST_BASELINE_SIGSYS(__NR_vserver)
+ #endif
++#endif
+ 
+ #if defined(LIBC_GLIBC) && !BUILDFLAG(IS_CHROMEOS_ASH)
+ BPF_TEST_C(BaselinePolicy, FutexEINVAL, BaselinePolicy) {
diff -urN a/debian/patches/ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch b/debian/patches/ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch
--- a/debian/patches/ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,14 @@
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -359,7 +359,9 @@ bool SyscallSets::IsAllowedSignalHandlin
+ #if defined(__i386__) || defined(__arm__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
+     defined(__powerpc64__)
++#if !defined(__powerpc64__)
+     case __NR_rt_sigtimedwait_time64:
++#endif
+     case __NR_sigaction:
+     case __NR_sigprocmask:
+     case __NR_sigreturn:
diff -urN a/debian/patches/ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch b/debian/patches/ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch
--- a/debian/patches/ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,33 @@
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/linux_stat.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/system_headers/linux_stat.h
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/linux_stat.h
+@@ -173,6 +173,28 @@ struct kernel_stat {
+   unsigned int __unused4;
+   unsigned int __unused5;
+ };
++#elif defined(__powerpc64__)
++struct kernel_stat {
++   unsigned long   st_dev;
++   ino_t           st_ino;
++   unsigned long   st_nlink;
++   mode_t          st_mode;
++   uid_t           st_uid;
++   gid_t           st_gid;
++   unsigned long   st_rdev;
++   long            st_size;
++   unsigned long   st_blksize;
++   unsigned long   st_blocks;
++   // unsigned long   st_atime;
++   unsigned long   st_atime_nsec;
++   //unsigned long   st_mtime;
++   unsigned long   st_mtime_nsec;
++   //unsigned long   st_ctime;
++   unsigned long   st_ctime_nsec;
++   unsigned long   __unused4;
++   unsigned long   __unused5;
++   unsigned long   __unused6;
++};
+ #endif
+ 
+ #if !defined(AT_EMPTY_PATH)
diff -urN a/debian/patches/ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch b/debian/patches/ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch
--- a/debian/patches/ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch	2022-02-13 01:41:38.722996096 +0000
@@ -0,0 +1,91 @@
+Index: chromium-99.0.4818.0/sandbox/policy/linux/bpf_utility_policy_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/policy/linux/bpf_utility_policy_linux.cc
++++ chromium-99.0.4818.0/sandbox/policy/linux/bpf_utility_policy_linux.cc
+@@ -34,7 +34,7 @@ ResultExpr UtilityProcessPolicy::Evaluat
+     case __NR_fdatasync:
+     case __NR_fsync:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+ #endif
+ #if defined(__i386__) || defined(__arm__)
+Index: chromium-99.0.4818.0/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ chromium-99.0.4818.0/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+@@ -77,7 +77,7 @@ ResultExpr RendererProcessPolicy::Evalua
+     case __NR_ftruncate64:
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+     case __NR_setrlimit:
+ // We allow setrlimit to dynamically adjust the address space limit as
+Index: chromium-99.0.4818.0/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
++++ chromium-99.0.4818.0/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+@@ -58,9 +58,9 @@
+ 
+ #elif defined(__powerpc64__)
+ 
+-#include <asm/unistd.h>
++#include <asm-generic/unistd.h>
+ #define MIN_SYSCALL 0u
+-#define MAX_PUBLIC_SYSCALL 386u
++#define MAX_PUBLIC_SYSCALL __NR_syscalls
+ #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
+ 
+ #else
+Index: chromium-99.0.4818.0/sandbox/linux/services/credentials.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/services/credentials.cc
++++ chromium-99.0.4818.0/sandbox/linux/services/credentials.cc
+@@ -90,7 +90,9 @@ bool ChrootToSafeEmptyDir() {
+ 
+   int clone_flags = CLONE_FS | LINUX_SIGCHLD;
+   void* tls = nullptr;
+-#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
++// RAJA this might be it...
++#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY) || \
++    defined(ARCH_CPU_PPC64_FAMILY)) && \
+     !defined(MEMORY_SANITIZER)
+   // Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
+   // Since clone writes to the new child's TLS before returning, we must set a
+@@ -98,6 +100,11 @@ bool ChrootToSafeEmptyDir() {
+   // glibc performs syscalls by calling a function pointer in TLS, so we do not
+   // attempt this optimization.
+   // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
++  //
++  // NOTE: Without CLONE_VM, fontconfig will attempt to reload configuration
++  // in every thread.  Since the rendered threads are sandboxed without
++  // filesystem access (e.g. to /etc/fonts/fonts.conf) this will cause font
++  // configuraiton loading failures and no fonts will be displayed!
+   clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+ 
+   char tls_buf[PTHREAD_STACK_MIN] = {0};
+Index: chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
++++ chromium-99.0.4818.0/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+@@ -358,7 +358,16 @@ intptr_t SIGSYSFstatatHandler(const stru
+   if (args.nr == __NR_fstatat_default) {
+     if (*reinterpret_cast<const char*>(args.args[1]) == '\0' &&
+         args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
+-      return syscall(__NR_fstat_default, static_cast<int>(args.args[0]),
++          int fd = static_cast<int>(args.args[0]);
++#if defined(__powerpc64__)
++      // On ppc64+glibc, some syscalls seem to accidentally negate the first
++      // parameter which causes checks against it to fail. For now, manually
++      // negate them back.
++      // TODO: Investigate the root cause and fix in glibc
++      if (fd < 0)
++        fd = -fd;
++#endif
++      return syscall(__NR_fstat_default, fd,
+                      reinterpret_cast<default_stat_struct*>(args.args[2]));
+     }
+     return -reinterpret_cast<intptr_t>(fs_denied_errno);
diff -urN a/debian/patches/ppc64le/sandbox/fix-ppc64-linux-syscalls-headers.patch b/debian/patches/ppc64le/sandbox/fix-ppc64-linux-syscalls-headers.patch
--- a/debian/patches/ppc64le/sandbox/fix-ppc64-linux-syscalls-headers.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/fix-ppc64-linux-syscalls-headers.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,23 @@
+Index: chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/system_headers/ppc64_linux_syscalls.h
++++ chromium-99.0.4818.0/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+@@ -8,5 +8,18 @@
+ #include <asm/unistd.h>
+ 
+ //TODO: is it necessary to redefine syscall numbers for PPC64?
++// Needed for Ubuntu/Debian/Centos/RHEL:
++#if !defined(__NR_shmget)
++#define __NR_shmget     395
++#endif
++#if !defined(__NR_shmdt)
++#define __NR_shmdt      398
++#endif
++#if !defined(__NR_shmctl)
++#define __NR_shmctl     396
++#endif
++#if !defined(__NR_shmat)
++#define __NR_shmat      397
++#endif
+ 
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
diff -urN a/debian/patches/ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch b/debian/patches/ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch
--- a/debian/patches/ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,13 @@
+Index: chromium-99.0.4818.0/sandbox/linux/services/credentials.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/sandbox/linux/services/credentials.cc
++++ chromium-99.0.4818.0/sandbox/linux/services/credentials.cc
+@@ -81,7 +81,7 @@ bool ChrootToSafeEmptyDir() {
+   pid_t pid = -1;
+   alignas(16) char stack_buf[PTHREAD_STACK_MIN];
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_PPC64_FAMILY)
+   // The stack grows downward.
+   void* stack = stack_buf + sizeof(stack_buf);
+ #else
diff -urN a/debian/patches/ppc64le/third_party/0001-Add-PPC64-support-for-libdav1d.patch b/debian/patches/ppc64le/third_party/0001-Add-PPC64-support-for-libdav1d.patch
--- a/debian/patches/ppc64le/third_party/0001-Add-PPC64-support-for-libdav1d.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-Add-PPC64-support-for-libdav1d.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,84 @@
+From 61dcf0ff9603e8f5b0a859fb0837c51527ebae43 Mon Sep 17 00:00:00 2001
+From: Colin Samples <colin.samples+git@gmail.com>
+Date: Fri, 1 Nov 2019 11:50:52 -0400
+Subject: [PATCH] Add PPC64 support for libdav1d
+
+---
+ third_party/dav1d/BUILD.gn            | 21 ++++++++++++++++++++
+ third_party/dav1d/generate_configs.py | 28 ++-------------------------
+ third_party/dav1d/generate_source.py  |  2 ++
+ 3 files changed, 25 insertions(+), 26 deletions(-)
+
+Index: chromium-99.0.4818.0/third_party/dav1d/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/dav1d/BUILD.gn
++++ chromium-99.0.4818.0/third_party/dav1d/BUILD.gn
+@@ -200,6 +200,8 @@ static_library("dav1d_8bit") {
+     sources += arm_template_sources
+   } else if (current_cpu == "arm64") {
+     sources += arm_template_sources
++  } else if (current_cpu == "ppc64") {
++    sources += ppc64_template_sources
+   }
+ 
+   cflags = dav1d_copts
+@@ -230,6 +232,8 @@ static_library("dav1d_10bit") {
+     sources += arm_template_sources
+   } else if (current_cpu == "arm64") {
+     sources += arm_template_sources
++  } else if (current_cpu == "ppc64") {
++    sources += ppc64_template_sources
+   }
+ 
+   cflags = dav1d_copts
+@@ -289,6 +293,21 @@ if (current_cpu == "x86" || current_cpu
+     }
+ 
+     cflags = dav1d_copts
++  }
++} else if (current_cpu == "ppc64") {
++  static_library("dav1d_ppc64") {
++    sources = [
++      "libdav1d/src/ppc/cpu.c",
++      "libdav1d/src/ppc/cpu.h",
++    ]
++
++    configs -= [ "//build/config/compiler:chromium_code" ]
++    configs += [
++      "//build/config/compiler:no_chromium_code",
++      ":dav1d_config",
++    ]
++
++    cflags = dav1d_copts
+ 
+     deps = [ ":dav1d_headers" ]
+     allow_circular_includes_from = [ ":dav1d_headers" ]
+@@ -321,5 +340,7 @@ static_library("dav1d") {
+     }
+   } else if (current_cpu == "arm" || current_cpu == "arm64") {
+     deps += [ ":dav1d_arm" ]
++  } else if (current_cpu == "ppc64") {
++    deps += [ ":dav1d_ppc64" ]
+   }
+ }
+Index: chromium-99.0.4818.0/third_party/dav1d/generate_configs.py
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/dav1d/generate_configs.py
++++ chromium-99.0.4818.0/third_party/dav1d/generate_configs.py
+@@ -21,7 +21,7 @@ CHROMIUM_ROOT_DIR = os.path.abspath(os.p
+ sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build'))
+ import gn_helpers
+ 
+-MESON = ['meson.py']
++MESON = ['meson']
+ 
+ DEFAULT_BUILD_ARGS = [
+     '-Denable_tools=false', '-Denable_tests=false', '-Ddefault_library=static',
+@@ -196,6 +196,7 @@ def main():
+   linux_env = os.environ
+   linux_env['CC'] = 'clang'
+ 
++  GenerateConfig('config/linux/ppc64', linux_env)
+   GenerateConfig('config/linux/x64', linux_env)
+   GenerateConfig('config/linux-noasm/x64', linux_env, ['-Denable_asm=false'])
+ 
diff -urN a/debian/patches/ppc64le/third_party/0001-Enable-third-party-libgav1-parser.patch b/debian/patches/ppc64le/third_party/0001-Enable-third-party-libgav1-parser.patch
--- a/debian/patches/ppc64le/third_party/0001-Enable-third-party-libgav1-parser.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-Enable-third-party-libgav1-parser.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,11 @@
+Index: chromium-99.0.4818.0/third_party/libgav1/options.gni
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libgav1/options.gni
++++ chromium-99.0.4818.0/third_party/libgav1/options.gni
+@@ -12,5 +12,5 @@ declare_args() {
+       is_chromeos_ash && (target_cpu == "arm" || target_cpu == "arm64")
+   use_libgav1_parser =
+       (is_chromeos || is_linux || is_win) &&
+-      (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64")
++      (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64" || target_cpu == "ppc64")
+ }
diff -urN a/debian/patches/ppc64le/third_party/0001-Fix-libdav1d-compilation-on-clang-ppc.patch b/debian/patches/ppc64le/third_party/0001-Fix-libdav1d-compilation-on-clang-ppc.patch
--- a/debian/patches/ppc64le/third_party/0001-Fix-libdav1d-compilation-on-clang-ppc.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-Fix-libdav1d-compilation-on-clang-ppc.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,33 @@
+From e14024659e0fc2af3df6ec56ce39a8e93b75722d Mon Sep 17 00:00:00 2001
+From: Colin Samples <colin.samples+git@gmail.com>
+Date: Sun, 8 Dec 2019 19:25:02 -0500
+Subject: [PATCH] Fix libdav1d compilation on clang ppc
+
+---
+ src/ppc/types.h | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+Index: chromium-99.0.4818.0/third_party/dav1d/libdav1d/src/ppc/types.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/dav1d/libdav1d/src/ppc/types.h
++++ chromium-99.0.4818.0/third_party/dav1d/libdav1d/src/ppc/types.h
+@@ -51,4 +51,19 @@
+ #define u16l_to_i32(v) ((i32x4) vec_mergel((u16x8) v, vec_splat_u16(0)))
+ #define i16l_to_i32(v) ((i32x4) vec_unpackl((i16x8)v))
+ 
++#if defined(__clang__)
++#undef vec_splats
++#define vec_splats(N)                     \
++    _Generic((N),                         \
++        unsigned char:      ((u8x16)(N)), \
++        signed char:        ((i8x16)(N)), \
++        unsigned short:     ((u16x8)(N)), \
++        signed short:       ((i16x8)(N)), \
++        unsigned int:       ((u32x4)(N)), \
++        signed int:         ((i32x4)(N)), \
++        unsigned long long: ((u64x2)(N)), \
++        signed long long:   ((i64x2)(N))  \
++    )
++#endif
++
+ #endif /* DAV1D_SRC_PPC_TYPES_H */
diff -urN a/debian/patches/ppc64le/third_party/0001-Force-baseline-POWER8-AltiVec-VSX-CPU-features-when-.patch b/debian/patches/ppc64le/third_party/0001-Force-baseline-POWER8-AltiVec-VSX-CPU-features-when-.patch
--- a/debian/patches/ppc64le/third_party/0001-Force-baseline-POWER8-AltiVec-VSX-CPU-features-when-.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-Force-baseline-POWER8-AltiVec-VSX-CPU-features-when-.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,27 @@
+From ea104a841fca1ff4d5430915f1b7c52c6a642f13 Mon Sep 17 00:00:00 2001
+From: Timothy Pearson <tpearson@raptorengineering.com>
+Date: Fri, 21 Sep 2018 21:44:17 -0500
+Subject: [PATCH] Force baseline POWER8 / AltiVec / VSX CPU features when on a
+ PPC64 platform in LE mode
+
+---
+ BUILD.gn | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: chromium-99.0.4818.0/v8/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/v8/BUILD.gn
++++ chromium-99.0.4818.0/v8/BUILD.gn
+@@ -1133,6 +1133,12 @@ config("toolchain") {
+     }
+     if (host_byteorder == "little") {
+       defines += [ "V8_TARGET_ARCH_PPC_LE" ]
++        cflags += [
++        # Enable usage of AltiVec, VSX, and other POWER9 and higher features
++        "-mcpu=power9",
++        "-maltivec",
++        "-mvsx",
++      ]
+     } else if (host_byteorder == "big") {
+       defines += [ "V8_TARGET_ARCH_PPC_BE" ]
+       if (current_os == "aix") {
diff -urN a/debian/patches/ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch b/debian/patches/ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch
--- a/debian/patches/ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,12 @@
+Index: chromium-99.0.4818.0/third_party/angle/src/libANGLE/Constants.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/angle/src/libANGLE/Constants.h
++++ chromium-99.0.4818.0/third_party/angle/src/libANGLE/Constants.h
+@@ -9,6 +9,7 @@
+ #ifndef LIBANGLE_CONSTANTS_H_
+ #define LIBANGLE_CONSTANTS_H_
+ 
++#include <cstddef>
+ #include "common/platform.h"
+ 
+ #include <stdint.h>
diff -urN a/debian/patches/ppc64le/third_party/0001-third_party-boringssl-Properly-detect-ppc64le-in-BUI.patch b/debian/patches/ppc64le/third_party/0001-third_party-boringssl-Properly-detect-ppc64le-in-BUI.patch
--- a/debian/patches/ppc64le/third_party/0001-third_party-boringssl-Properly-detect-ppc64le-in-BUI.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-third_party-boringssl-Properly-detect-ppc64le-in-BUI.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,27 @@
+From 4fcc19598eb97a47fe6612912ba1e4d895e14860 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawn@anastas.io>
+Date: Sun, 17 Feb 2019 23:08:33 -0600
+Subject: [PATCH] third_party/boringssl: Properly detect ppc64le in BUILD.gn
+
+---
+ third_party/boringssl/BUILD.gn | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: chromium-99.0.4818.0/third_party/boringssl/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/boringssl/BUILD.gn
++++ chromium-99.0.4818.0/third_party/boringssl/BUILD.gn
+@@ -103,6 +103,13 @@ if (is_win && !is_msan && current_cpu !=
+       } else {
+         public_configs = [ ":no_asm_config" ]
+       }
++    } else if (current_cpu == "ppc64") {
++      if (is_linux) {
++        # TODO: ppc64 (be) check
++        sources += crypto_sources_linux_ppc64le
++      } else {
++        public_configs = [ ":no_asm_config" ]
++      }
+     } else {
+       public_configs = [ ":no_asm_config" ]
+     }
diff -urN a/debian/patches/ppc64le/third_party/0001-third_party-libvpx-Properly-generate-gni-on-ppc64.patch b/debian/patches/ppc64le/third_party/0001-third_party-libvpx-Properly-generate-gni-on-ppc64.patch
--- a/debian/patches/ppc64le/third_party/0001-third_party-libvpx-Properly-generate-gni-on-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-third_party-libvpx-Properly-generate-gni-on-ppc64.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,65 @@
+From cc613c2e3bac8d4d1ff153700b819f964435923a Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Tue, 4 Sep 2018 18:16:07 -0500
+Subject: [PATCH] third_party/libvpx: Properly generate gni on ppc64
+
+---
+ third_party/libvpx/BUILD.gn        |  2 ++
+ third_party/libvpx/generate_gni.sh | 10 ++++++++++
+ 2 files changed, 12 insertions(+)
+
+Index: chromium-99.0.4818.0/third_party/libvpx/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/BUILD.gn
++++ chromium-99.0.4818.0/third_party/libvpx/BUILD.gn
+@@ -399,6 +399,8 @@ static_library("libvpx") {
+       sources = libvpx_srcs_arm64
+       public_deps = [ ":libvpx_arm64_headers" ]
+     }
++  } else if (current_cpu == "ppc64") {
++    sources = libvpx_srcs_ppc64
+   }
+ 
+   configs -= [ "//build/config/compiler:chromium_code" ]
+Index: chromium-99.0.4818.0/third_party/libvpx/generate_gni.sh
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/generate_gni.sh
++++ chromium-99.0.4818.0/third_party/libvpx/generate_gni.sh
+@@ -374,6 +374,7 @@ gen_config_files linux/arm-neon-highbd "
+ gen_config_files linux/arm64-highbd "--target=armv8-linux-gcc ${all_platforms} ${HIGHBD}"
+ gen_config_files linux/mipsel "--target=mips32-linux-gcc ${all_platforms}"
+ gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}"
++gen_config_files linux/ppc64 "--target=ppc64le-linux-gcc ${all_platforms}"
+ gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}"
+ gen_config_files win/arm64 "--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD}"
+ gen_config_files win/ia32 "--target=x86-win32-vs14 ${all_platforms} ${x86_platforms}"
+@@ -399,6 +400,7 @@ lint_config linux/arm-neon-highbd
+ lint_config linux/arm64-highbd
+ lint_config linux/mipsel
+ lint_config linux/mips64el
++lint_config linux/ppc64
+ lint_config linux/generic
+ lint_config win/arm64
+ lint_config win/ia32
+@@ -428,6 +430,7 @@ gen_rtcd_header linux/arm-neon-highbd ar
+ gen_rtcd_header linux/arm64-highbd armv8
+ gen_rtcd_header linux/mipsel mipsel
+ gen_rtcd_header linux/mips64el mips64el
++gen_rtcd_header linux/ppc64 ppc
+ gen_rtcd_header linux/generic generic
+ gen_rtcd_header win/arm64 armv8
+ gen_rtcd_header win/ia32 x86 "${require_sse2}"
+@@ -513,6 +516,13 @@ if [ -z $ONLY_CONFIGS ]; then
+ 
+   echo "MIPS64 source list is identical to MIPS source list. No need to generate it."
+ 
++  echo "Generate ppc64 source list."
++  config=$(print_config_basic linux/ppc64)
++  make_clean
++  make libvpx_srcs.txt target=libs $config > /dev/null
++  convert_srcs_to_project_files libvpx_srcs.txt libvpx_srcs_ppc64
++
++
+   echo "Generate NaCl source list."
+   config=$(print_config_basic nacl)
+   make_clean
diff -urN a/debian/patches/ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch b/debian/patches/ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch
--- a/debian/patches/ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,22 @@
+Index: chromium-99.0.4818.0/third_party/lss/linux_syscall_support.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/lss/linux_syscall_support.h
++++ chromium-99.0.4818.0/third_party/lss/linux_syscall_support.h
+@@ -4250,7 +4250,7 @@ struct kernel_statfs {
+       LSS_REG(2, buf);
+       LSS_BODY(void*, mmap2, "0"(__r2));
+     }
+-#else
++#elif !defined(__powerpc64__) /* ppc64 doesn't have mmap2 */
+     #define __NR__mmap2 __NR_mmap2
+     LSS_INLINE _syscall6(void*, _mmap2,            void*, s,
+                          size_t,                   l, int,               p,
+@@ -4361,7 +4361,7 @@ struct kernel_statfs {
+   #if defined(__i386__) ||                                                    \
+       defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) ||                     \
+      (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) ||                   \
+-      defined(__PPC__) ||                                                     \
++     (defined(__PPC__) && !defined(__powerpc64__)) ||                                                     \
+      (defined(__s390__) && !defined(__s390x__))
+     /* On these architectures, implement mmap() with mmap2(). */
+     LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d,
diff -urN a/debian/patches/ppc64le/third_party/0001-third_party-pffft-Include-altivec.h-on-ppc64-with-SI.patch b/debian/patches/ppc64le/third_party/0001-third_party-pffft-Include-altivec.h-on-ppc64-with-SI.patch
--- a/debian/patches/ppc64le/third_party/0001-third_party-pffft-Include-altivec.h-on-ppc64-with-SI.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0001-third_party-pffft-Include-altivec.h-on-ppc64-with-SI.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,22 @@
+From 63e63a70766f3059ce5f1d06a95988ecf909b298 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawn@anastas.io>
+Date: Wed, 24 Apr 2019 21:17:23 -0500
+Subject: [PATCH] third_party/pffft: Include altivec.h on ppc64 with SIMD
+ enabled
+
+---
+ third_party/pffft/src/pffft.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: chromium-99.0.4818.0/third_party/pffft/src/pffft.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/pffft/src/pffft.c
++++ chromium-99.0.4818.0/third_party/pffft/src/pffft.c
+@@ -100,6 +100,7 @@
+    Altivec support macros 
+ */
+ #if !defined(PFFFT_SIMD_DISABLE) && (defined(__ppc__) || defined(__ppc64__))
++#include <altivec.h>
+ typedef vector float v4sf;
+ #  define SIMD_SZ 4
+ #  define VZERO() ((vector float) vec_splat_u8(0))
diff -urN a/debian/patches/ppc64le/third_party/0002-third_party-libvpx-Add-ppc64-sources-to-gni.patch b/debian/patches/ppc64le/third_party/0002-third_party-libvpx-Add-ppc64-sources-to-gni.patch
--- a/debian/patches/ppc64le/third_party/0002-third_party-libvpx-Add-ppc64-sources-to-gni.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0002-third_party-libvpx-Add-ppc64-sources-to-gni.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,381 @@
+From 2a4d4482c2a8e9dc9a6bf0b6c3b3f26dfa140a15 Mon Sep 17 00:00:00 2001
+From: Shawn Anastasio <shawnanastasio@yahoo.com>
+Date: Mon, 10 Sep 2018 01:03:42 -0500
+Subject: [PATCH 2/6] third_party/libvpx: Add ppc64 sources to gni
+
+---
+ third_party/libvpx/libvpx_srcs.gni | 358 +++++++++++++++++++++++++++++
+ 1 file changed, 358 insertions(+)
+
+Index: chromium-99.0.4818.0/third_party/libvpx/libvpx_srcs.gni
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/libvpx_srcs.gni
++++ chromium-99.0.4818.0/third_party/libvpx/libvpx_srcs.gni
+@@ -3809,6 +3809,367 @@ libvpx_srcs_mips_headers = [
+   "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h",
+ ]
+ libvpx_srcs_mips_assembly = []
++libvpx_srcs_ppc64 = [
++  "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/blockd.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/blockd.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/coefupdateprobs.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/common.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/default_coef_probs.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/dequantize.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropy.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropy.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropymode.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropymode.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropymv.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/entropymv.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/extend.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/extend.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/filter.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/filter.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/findnearmv.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/generic/systemdependent.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/header.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/idct_blk.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/idctllm.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/invtrans.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/loopfilter.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/loopfilter_filters.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/mbpitch.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/mfqe.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/modecont.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/modecont.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/mv.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/onyx.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/onyxc_int.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/onyxd.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/postproc.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/postproc.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/ppflags.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/quant_common.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/quant_common.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconinter.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconinter.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconintra.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconintra.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/reconintra4x4.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/rtcd.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/setupintrarecon.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/swapyv12buffer.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/systemdependent.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/threading.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/treecoder.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/treecoder.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/vp8_entropymodedata.h",
++  "//third_party/libvpx/source/libvpx/vp8/common/vp8_loopfilter.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.c",
++  "//third_party/libvpx/source/libvpx/vp8/common/vp8_skin_detection.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/dboolhuff.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/decodeframe.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/decodemv.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/decoderthreading.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/detokenize.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_if.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/onyxd_int.h",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/threading.c",
++  "//third_party/libvpx/source/libvpx/vp8/decoder/treereader.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/bitstream.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/block.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/boolhuff.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/dct.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_cost.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/dct_value_tokens.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/defaultcoefcounts.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/denoising.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodeframe.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodeintra.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodemb.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/encodemv.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/ethreading.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/firstpass.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/lookahead.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/mcomp.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/modecosts.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/mr_dissim.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_if.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/onyx_int.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/pickinter.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/picklpf.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/quantize.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/ratectrl.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/rdopt.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/segmentation.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/tokenize.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.c",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/treewriter.h",
++  "//third_party/libvpx/source/libvpx/vp8/encoder/vp8_quantize.c",
++  "//third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c",
++  "//third_party/libvpx/source/libvpx/vp8/vp8_dx_iface.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/ppc/vp9_idct_vsx.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_alloccommon.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_blockd.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_common_data.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropy.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymode.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_entropymv.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_enums.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_filter.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_frame_buffers.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_idct.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_loopfilter.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_mfqe.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_mv.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_mvref_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_onyxc_int.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_postproc.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_ppflags.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_pred_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_quant_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconinter.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_reconintra.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_rtcd.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_scale.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_detokenize.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_dsubexp.h",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_job_queue.c",
++  "//third_party/libvpx/source/libvpx/vp9/decoder/vp9_job_queue.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_alt_ref_aq.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_360.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_complexity.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_aq_variance.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_block.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_context_tree.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_cost.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_dct.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_denoiser.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemb.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodemv.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ethread.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_extend.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ext_ratectrl.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ext_ratectrl.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_firstpass.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_frame_scale.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_job_queue.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_lookahead.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mbgraph.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_mcomp.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_quantize.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_ratectrl.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rd.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_rdopt.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_resize.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_segmentation.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_skin_detection.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_subexp.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.h",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.c",
++  "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.h",
++  "//third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c",
++  "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.c",
++  "//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.h",
++  "//third_party/libvpx/source/libvpx/vp9/vp9_iface_common.c",
++  "//third_party/libvpx/source/libvpx/vp9/vp9_iface_common.h",
++  "//third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h",
++  "//third_party/libvpx/source/libvpx/vpx/src/vpx_codec.c",
++  "//third_party/libvpx/source/libvpx/vpx/src/vpx_decoder.c",
++  "//third_party/libvpx/source/libvpx/vpx/src/vpx_encoder.c",
++  "//third_party/libvpx/source/libvpx/vpx/src/vpx_image.c",
++  "//third_party/libvpx/source/libvpx/vpx/svc_context.h",
++  "//third_party/libvpx/source/libvpx/vpx/vp8.h",
++  "//third_party/libvpx/source/libvpx/vpx/vp8cx.h",
++  "//third_party/libvpx/source/libvpx/vpx/vp8dx.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_codec.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_decoder.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_encoder.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_frame_buffer.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_image.h",
++  "//third_party/libvpx/source/libvpx/vpx/vpx_integer.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/add_noise.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/avg.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader_buffer.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/bitwriter_buffer.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/deblock.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/fwd_txfm.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/intrapred.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/inv_txfm.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/loopfilter.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/postproc.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/bitdepth_conversion_vsx.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/deblock_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/hadamard_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/intrapred_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/sad_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/transpose_vsx.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/txfm_common_vsx.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/types_vsx.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/variance_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/vpx_convolve_vsx.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/prob.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/prob.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/psnr.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/quantize.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/sad.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/skin_detection.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/subtract.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/sum_squares.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/txfm_common.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/variance.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/variance.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_common.h",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_rtcd.c",
++  "//third_party/libvpx/source/libvpx/vpx_dsp/vpx_filter.h",
++  "//third_party/libvpx/source/libvpx/vpx_mem/include/vpx_mem_intrnl.h",
++  "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c",
++  "//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/bitops.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/emmintrin_compat.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/mem.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/mem_ops_aligned.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/msvc.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/ppc.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/ppc_cpudetect.c",
++  "//third_party/libvpx/source/libvpx/vpx_ports/system_state.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/vpx_once.h",
++  "//third_party/libvpx/source/libvpx/vpx_ports/vpx_timer.h",
++  "//third_party/libvpx/source/libvpx/vpx_scale/generic/gen_scalers.c",
++  "//third_party/libvpx/source/libvpx/vpx_scale/generic/vpx_scale.c",
++  "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12config.c",
++  "//third_party/libvpx/source/libvpx/vpx_scale/generic/yv12extend.c",
++  "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale.h",
++  "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale_rtcd.c",
++  "//third_party/libvpx/source/libvpx/vpx_scale/yv12config.h",
++  "//third_party/libvpx/source/libvpx/vpx_util/endian_inl.h",
++  "//third_party/libvpx/source/libvpx/vpx_util/vpx_atomics.h",
++  "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.c",
++  "//third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h",
++  "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.c",
++  "//third_party/libvpx/source/libvpx/vpx_util/vpx_write_yuv_frame.h",
++]
++libvpx_srcs_ppc64_assembly = []
+ libvpx_srcs_nacl = [
+   "//third_party/libvpx/source/libvpx/vp8/common/alloccommon.c",
+   "//third_party/libvpx/source/libvpx/vp8/common/blockd.c",
diff -urN a/debian/patches/ppc64le/third_party/0002-third_party-lss-kernel-structs.patch b/debian/patches/ppc64le/third_party/0002-third_party-lss-kernel-structs.patch
--- a/debian/patches/ppc64le/third_party/0002-third_party-lss-kernel-structs.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0002-third_party-lss-kernel-structs.patch	2022-02-13 01:38:45.727315067 +0000
@@ -0,0 +1,158 @@
+Index: chromium-99.0.4818.0/third_party/lss/linux_syscall_support.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/lss/linux_syscall_support.h
++++ chromium-99.0.4818.0/third_party/lss/linux_syscall_support.h
+@@ -380,7 +380,7 @@ struct kernel_stat64 {
+   unsigned           __pad2;
+   unsigned long long st_blocks;
+ };
+-#elif defined __PPC__
++#elif defined __PPC__ && !defined(__powerpc64__)
+ struct kernel_stat64 {
+   unsigned long long st_dev;
+   unsigned long long st_ino;
+@@ -424,6 +424,28 @@ struct kernel_stat64 {
+   unsigned int       __unused4;
+   unsigned int       __unused5;
+ };
++#elif defined(__powerpc64__)
++struct kernel_stat64 {
++  unsigned long int  st_dev;
++  unsigned long int  st_ino;
++  unsigned int       st_mode;
++  unsigned long int  st_nlink;
++  unsigned int       st_uid;
++  unsigned int       st_gid;
++  unsigned long int  st_rdev;
++  unsigned short int __pad2;
++  long int           st_size;
++  long int           st_blksize;
++  long int           st_blocks;
++  long int           st_atime_;
++  unsigned long int  st_atime_nsec_;
++  long int           st_mtime_;
++  unsigned long int  st_mtime_nsec_;
++  long int           st_ctime_;
++  unsigned long int  st_ctime_nsec_;
++  unsigned long int  __unused4;
++  unsigned long int  __unused5;
++};
+ #else
+ struct kernel_stat64 {
+   unsigned long long st_dev;
+@@ -498,7 +520,7 @@ struct kernel_stat {
+   uint64_t           st_ctime_nsec_;
+   int64_t            __unused4[3];
+ };
+-#elif defined(__PPC__)
++#elif defined(__PPC__) && !defined(__powerpc64__)
+ struct kernel_stat {
+   unsigned           st_dev;
+   unsigned long      st_ino;      // ino_t
+@@ -519,6 +541,29 @@ struct kernel_stat {
+   unsigned long      __unused4;
+   unsigned long      __unused5;
+ };
++#elif defined(__powerpc64__)
++struct kernel_stat {
++  unsigned long int  st_dev;
++  unsigned long int  st_ino;
++  unsigned long int  st_nlink;
++  unsigned int       st_mode;
++  unsigned int       st_uid;
++  unsigned int       st_gid;
++  int                __pad2;
++  unsigned long int  st_rdev;
++  long int           st_size;
++  long int           st_blksize;
++  long int           st_blocks;
++  long int           st_atime_;
++  unsigned long int  st_atime_nsec_;
++  long int           st_mtime_;
++  unsigned long int  st_mtime_nsec_;
++  long int           st_ctime_;
++  unsigned long int  st_ctime_nsec_;
++  unsigned long int  __reserved4;
++  unsigned long int  __reserved5;
++  unsigned long int  __reserved6;
++};
+ #elif (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64)
+ struct kernel_stat {
+   unsigned           st_dev;
+@@ -1678,6 +1723,28 @@ struct kernel_statfs {
+ #ifndef __NR_getcpu
+ #define __NR_getcpu             302
+ #endif
++
++/* Linux commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 (2010) adds
++ * direct socket system calls to PPC */
++#ifndef __NR_socket
++#define __NR_socket             326
++#endif
++#ifndef __NR_socketpair
++#define __NR_socketpair         333
++#endif
++#ifndef __NR_sendto
++#define __NR_sendto             335
++#endif
++#ifndef __NR_shutdown
++#define __NR_shutdown           338
++#endif
++#ifndef __NR_sendmsg
++#define __NR_sendmsg            341
++#endif
++#ifndef __NR_recvmsg
++#define __NR_recvmsg            342
++#endif
++
+ /* End of powerpc defininitions                                              */
+ #elif defined(__s390__)
+ #ifndef __NR_quotactl
+@@ -3217,6 +3284,11 @@ struct kernel_statfs {
+     /* TODO(csilvers): consider wrapping some args up in a struct, like we
+      * do for i386's _syscall6, so we can compile successfully on gcc 2.95
+      */
++    #ifdef __powerpc64__
++    /* TODO: implement clone() for ppc64.
++     * until then, use system libc */
++    #define sys_clone clone
++    #else
+     LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
+                                    int flags, void *arg, int *parent_tidptr,
+                                    void *newtls, int *child_tidptr) {
+@@ -3287,6 +3359,7 @@ struct kernel_statfs {
+       }
+       LSS_RETURN(int, __ret, __err);
+     }
++    #endif
+   #elif defined(__s390__)
+     #undef  LSS_REG
+     #define LSS_REG(r, a) register unsigned long __r##r __asm__("r"#r) = (unsigned long) a
+@@ -4395,7 +4468,7 @@ struct kernel_statfs {
+     LSS_INLINE _syscall6(void*, mmap, void*, addr, size_t, length, int, prot,
+                          int, flags, int, fd, int64_t, offset)
+   #endif
+-  #if defined(__PPC__)
++  #if defined(__PPC__) && !defined(__powerpc64__)
+     #undef LSS_SC_LOADARGS_0
+     #define LSS_SC_LOADARGS_0(dummy...)
+     #undef LSS_SC_LOADARGS_1
+@@ -4484,7 +4557,8 @@ struct kernel_statfs {
+       LSS_SC_BODY(4, int, 8, d, type, protocol, sv);
+     }
+   #endif
+-  #if defined(__ARM_EABI__) || defined (__aarch64__)
++
++  #if defined(__ARM_EABI__) || defined (__aarch64__) || defined(__powerpc64__)
+     LSS_INLINE _syscall3(ssize_t, recvmsg, int, s, struct kernel_msghdr*, msg,
+                          int, flags)
+     LSS_INLINE _syscall3(ssize_t, sendmsg, int, s, const struct kernel_msghdr*,
+@@ -4769,7 +4843,7 @@ struct kernel_statfs {
+ #endif
+ 
+ #if !defined(__NR_pipe)
+-  LSS_INLINE int LSS_NAME(pipe)(int *pipefd) {
++  LSS_INLINE pid_t LSS_NAME(pipe)(int *pipefd) {
+     return LSS_NAME(pipe2)(pipefd, 0);
+   }
+ #endif
diff -urN a/debian/patches/ppc64le/third_party/0003-third_party-ffmpeg-Add-ppc64-generated-config.patch b/debian/patches/ppc64le/third_party/0003-third_party-ffmpeg-Add-ppc64-generated-config.patch
--- a/debian/patches/ppc64le/third_party/0003-third_party-ffmpeg-Add-ppc64-generated-config.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0003-third_party-ffmpeg-Add-ppc64-generated-config.patch	2022-02-13 01:38:45.731314597 +0000
@@ -0,0 +1,4665 @@
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/config.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/config.h
+@@ -0,0 +1,2217 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/disk2/CHROMIUM_REBUILD/CHROMIUM_90/MODIFIED_TEST_BUILD/chromium-97.0.4692.99/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=ppc64le --extra-cflags='-mcpu=power9' --enable-pic --cc='ccache gcc' --cxx='ccache g++' --ld='ccache gcc' --extra-ldflags='-fuse-ld=lld'"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define CONFIG_THIS_YEAR 2021
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
++#define CC_IDENT "gcc 10 (Debian 10.2.1-6)"
++#define av_restrict restrict
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM 
++#define BUILDSUF ""
++#define SLIBSUF ".so"
++#define HAVE_MMX2 HAVE_MMXEXT
++#define SWS_MAX_FILTER_SIZE 256
++#define ARCH_AARCH64 0
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 1
++#define ARCH_PPC64 1
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TILEGX 0
++#define ARCH_TILEPRO 0
++#define ARCH_TOMI 0
++#define ARCH_X86 0
++#define ARCH_X86_32 0
++#define ARCH_X86_64 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMV8 0
++#define HAVE_NEON 0
++#define HAVE_VFP 0
++#define HAVE_VFPV3 0
++#define HAVE_SETEND 0
++#define HAVE_ALTIVEC 1
++#define HAVE_DCBZL 1
++#define HAVE_LDBRX 0
++#define HAVE_POWER8 1
++#define HAVE_PPC4XX 0
++#define HAVE_VSX 1
++#define HAVE_AESNI 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_AVX 0
++#define HAVE_AVX2 0
++#define HAVE_AVX512 0
++#define HAVE_FMA3 0
++#define HAVE_FMA4 0
++#define HAVE_MMX 0
++#define HAVE_MMXEXT 0
++#define HAVE_SSE 0
++#define HAVE_SSE2 0
++#define HAVE_SSE3 0
++#define HAVE_SSE4 0
++#define HAVE_SSE42 0
++#define HAVE_SSSE3 0
++#define HAVE_XOP 0
++#define HAVE_CPUNOP 0
++#define HAVE_I686 0
++#define HAVE_MIPSFPU 0
++#define HAVE_MIPS32R2 0
++#define HAVE_MIPS32R5 0
++#define HAVE_MIPS64R2 0
++#define HAVE_MIPS32R6 0
++#define HAVE_MIPS64R6 0
++#define HAVE_MIPSDSP 0
++#define HAVE_MIPSDSPR2 0
++#define HAVE_MSA 0
++#define HAVE_MSA2 0
++#define HAVE_LOONGSON2 0
++#define HAVE_LOONGSON3 0
++#define HAVE_MMI 0
++#define HAVE_ARMV5TE_EXTERNAL 0
++#define HAVE_ARMV6_EXTERNAL 0
++#define HAVE_ARMV6T2_EXTERNAL 0
++#define HAVE_ARMV8_EXTERNAL 0
++#define HAVE_NEON_EXTERNAL 0
++#define HAVE_VFP_EXTERNAL 0
++#define HAVE_VFPV3_EXTERNAL 0
++#define HAVE_SETEND_EXTERNAL 0
++#define HAVE_ALTIVEC_EXTERNAL 0
++#define HAVE_DCBZL_EXTERNAL 0
++#define HAVE_LDBRX_EXTERNAL 0
++#define HAVE_POWER8_EXTERNAL 0
++#define HAVE_PPC4XX_EXTERNAL 0
++#define HAVE_VSX_EXTERNAL 0
++#define HAVE_AESNI_EXTERNAL 0
++#define HAVE_AMD3DNOW_EXTERNAL 0
++#define HAVE_AMD3DNOWEXT_EXTERNAL 0
++#define HAVE_AVX_EXTERNAL 0
++#define HAVE_AVX2_EXTERNAL 0
++#define HAVE_AVX512_EXTERNAL 0
++#define HAVE_FMA3_EXTERNAL 0
++#define HAVE_FMA4_EXTERNAL 0
++#define HAVE_MMX_EXTERNAL 0
++#define HAVE_MMXEXT_EXTERNAL 0
++#define HAVE_SSE_EXTERNAL 0
++#define HAVE_SSE2_EXTERNAL 0
++#define HAVE_SSE3_EXTERNAL 0
++#define HAVE_SSE4_EXTERNAL 0
++#define HAVE_SSE42_EXTERNAL 0
++#define HAVE_SSSE3_EXTERNAL 0
++#define HAVE_XOP_EXTERNAL 0
++#define HAVE_CPUNOP_EXTERNAL 0
++#define HAVE_I686_EXTERNAL 0
++#define HAVE_MIPSFPU_EXTERNAL 0
++#define HAVE_MIPS32R2_EXTERNAL 0
++#define HAVE_MIPS32R5_EXTERNAL 0
++#define HAVE_MIPS64R2_EXTERNAL 0
++#define HAVE_MIPS32R6_EXTERNAL 0
++#define HAVE_MIPS64R6_EXTERNAL 0
++#define HAVE_MIPSDSP_EXTERNAL 0
++#define HAVE_MIPSDSPR2_EXTERNAL 0
++#define HAVE_MSA_EXTERNAL 0
++#define HAVE_MSA2_EXTERNAL 0
++#define HAVE_LOONGSON2_EXTERNAL 0
++#define HAVE_LOONGSON3_EXTERNAL 0
++#define HAVE_MMI_EXTERNAL 0
++#define HAVE_ARMV5TE_INLINE 0
++#define HAVE_ARMV6_INLINE 0
++#define HAVE_ARMV6T2_INLINE 0
++#define HAVE_ARMV8_INLINE 0
++#define HAVE_NEON_INLINE 0
++#define HAVE_VFP_INLINE 0
++#define HAVE_VFPV3_INLINE 0
++#define HAVE_SETEND_INLINE 0
++#define HAVE_ALTIVEC_INLINE 0
++#define HAVE_DCBZL_INLINE 0
++#define HAVE_LDBRX_INLINE 0
++#define HAVE_POWER8_INLINE 0
++#define HAVE_PPC4XX_INLINE 0
++#define HAVE_VSX_INLINE 0
++#define HAVE_AESNI_INLINE 0
++#define HAVE_AMD3DNOW_INLINE 0
++#define HAVE_AMD3DNOWEXT_INLINE 0
++#define HAVE_AVX_INLINE 0
++#define HAVE_AVX2_INLINE 0
++#define HAVE_AVX512_INLINE 0
++#define HAVE_FMA3_INLINE 0
++#define HAVE_FMA4_INLINE 0
++#define HAVE_MMX_INLINE 0
++#define HAVE_MMXEXT_INLINE 0
++#define HAVE_SSE_INLINE 0
++#define HAVE_SSE2_INLINE 0
++#define HAVE_SSE3_INLINE 0
++#define HAVE_SSE4_INLINE 0
++#define HAVE_SSE42_INLINE 0
++#define HAVE_SSSE3_INLINE 0
++#define HAVE_XOP_INLINE 0
++#define HAVE_CPUNOP_INLINE 0
++#define HAVE_I686_INLINE 0
++#define HAVE_MIPSFPU_INLINE 0
++#define HAVE_MIPS32R2_INLINE 0
++#define HAVE_MIPS32R5_INLINE 0
++#define HAVE_MIPS64R2_INLINE 0
++#define HAVE_MIPS32R6_INLINE 0
++#define HAVE_MIPS64R6_INLINE 0
++#define HAVE_MIPSDSP_INLINE 0
++#define HAVE_MIPSDSPR2_INLINE 0
++#define HAVE_MSA_INLINE 0
++#define HAVE_MSA2_INLINE 0
++#define HAVE_LOONGSON2_INLINE 0
++#define HAVE_LOONGSON3_INLINE 0
++#define HAVE_MMI_INLINE 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_FAST_64BIT 1
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 0
++#define HAVE_LOCAL_ALIGNED 1
++#define HAVE_SIMD_ALIGN_16 1
++#define HAVE_SIMD_ALIGN_32 0
++#define HAVE_SIMD_ALIGN_64 0
++#define HAVE_ATOMIC_CAS_PTR 0
++#define HAVE_MACHINE_RW_BARRIER 0
++#define HAVE_MEMORYBARRIER 0
++#define HAVE_MM_EMPTY 0
++#define HAVE_RDTSC 0
++#define HAVE_SEM_TIMEDWAIT 1
++#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
++#define HAVE_CABS 0
++#define HAVE_CEXP 0
++#define HAVE_INLINE_ASM 1
++#define HAVE_SYMVER 0
++#define HAVE_X86ASM 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ASM_TYPES_H 1
++#define HAVE_CDIO_PARANOIA_H 0
++#define HAVE_CDIO_PARANOIA_PARANOIA_H 0
++#define HAVE_CUDA_H 0
++#define HAVE_DISPATCH_DISPATCH_H 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DIRECT_H 0
++#define HAVE_DIRENT_H 1
++#define HAVE_DXGIDEBUG_H 0
++#define HAVE_DXVA_H 0
++#define HAVE_ES2_GL_H 0
++#define HAVE_GSM_H 0
++#define HAVE_IO_H 0
++#define HAVE_LINUX_PERF_EVENT_H 1
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 1
++#define HAVE_OPENCV2_CORE_CORE_C_H 0
++#define HAVE_OPENGL_GL3_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SYS_PARAM_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_TIME_H 1
++#define HAVE_SYS_UN_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TERMIOS_H 1
++#define HAVE_UDPLITE_H 0
++#define HAVE_UNISTD_H 1
++#define HAVE_VALGRIND_VALGRIND_H 0 /* #define HAVE_VALGRIND_VALGRIND_H 1 -- forced to 0. See https://crbug.com/590440 */
++#define HAVE_WINDOWS_H 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_INTRINSICS_NEON 0
++#define HAVE_ATANF 1
++#define HAVE_ATAN2F 1
++#define HAVE_CBRT 1
++#define HAVE_CBRTF 1
++#define HAVE_COPYSIGN 1
++#define HAVE_COSF 1
++#define HAVE_ERF 1
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_EXPF 1
++#define HAVE_HYPOT 1
++#define HAVE_ISFINITE 1
++#define HAVE_ISINF 1
++#define HAVE_ISNAN 1
++#define HAVE_LDEXPF 1
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOG2 1
++#define HAVE_LOG2F 1
++#define HAVE_LOG10F 1
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_POWF 1
++#define HAVE_RINT 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SINF 1
++#define HAVE_TRUNC 1
++#define HAVE_TRUNCF 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_LIBC_MSVCRT 0
++#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
++#define HAVE_SECTION_DATA_REL_RO 1
++#define HAVE_THREADS 1
++#define HAVE_UWP 0
++#define HAVE_WINRT 0
++#define HAVE_ACCESS 1
++#define HAVE_ALIGNED_MALLOC 0
++#define HAVE_ARC4RANDOM 0
++#define HAVE_CLOCK_GETTIME 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_COMMANDLINETOARGVW 0
++#define HAVE_FCNTL 1
++#define HAVE_GETADDRINFO 0
++#define HAVE_GETHRTIME 0
++#define HAVE_GETOPT 1
++#define HAVE_GETMODULEHANDLE 0
++#define HAVE_GETPROCESSAFFINITYMASK 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GETSTDHANDLE 0
++#define HAVE_GETSYSTEMTIMEASFILETIME 0
++#define HAVE_GETTIMEOFDAY 1
++#define HAVE_GLOB 1
++#define HAVE_GLXGETPROCADDRESS 0
++#define HAVE_GMTIME_R 1
++#define HAVE_INET_ATON 0
++#define HAVE_ISATTY 1
++#define HAVE_KBHIT 0
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LSTAT 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACH_ABSOLUTE_TIME 0
++#define HAVE_MAPVIEWOFFILE 0
++#define HAVE_MEMALIGN 1
++#define HAVE_MKSTEMP 1
++#define HAVE_MMAP 1
++#define HAVE_MPROTECT 1
++#define HAVE_NANOSLEEP 1
++#define HAVE_PEEKNAMEDPIPE 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_PTHREAD_CANCEL 1
++#define HAVE_SCHED_GETAFFINITY 1
++#define HAVE_SECITEMIMPORT 0
++#define HAVE_SETCONSOLETEXTATTRIBUTE 0
++#define HAVE_SETCONSOLECTRLHANDLER 0
++#define HAVE_SETDLLDIRECTORY 0
++#define HAVE_SETMODE 0
++#define HAVE_SETRLIMIT 1
++#define HAVE_SLEEP 0
++#define HAVE_STRERROR_R 1
++#define HAVE_SYSCONF 1
++#define HAVE_SYSCTL 0 /* #define HAVE_SYSCTL 1 -- forced to 0 for Fuchsia */
++#define HAVE_USLEEP 1
++#define HAVE_UTGETOSTYPEFROMSTRING 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WGLGETPROCADDRESS 0
++#define HAVE_BCRYPT 0
++#define HAVE_VAAPI_DRM 0
++#define HAVE_VAAPI_X11 0
++#define HAVE_VDPAU_X11 0
++#define HAVE_PTHREADS 1
++#define HAVE_OS2THREADS 0
++#define HAVE_W32THREADS 0
++#define HAVE_AS_ARCH_DIRECTIVE 0
++#define HAVE_AS_DN_DIRECTIVE 0
++#define HAVE_AS_FPU_DIRECTIVE 0
++#define HAVE_AS_FUNC 1
++#define HAVE_AS_OBJECT_ARCH 0
++#define HAVE_ASM_MOD_Q 0
++#define HAVE_BLOCKS_EXTENSION 0
++#define HAVE_EBP_AVAILABLE 0
++#define HAVE_EBX_AVAILABLE 0
++#define HAVE_GNU_AS 0
++#define HAVE_GNU_WINDRES 0
++#define HAVE_IBM_ASM 1
++#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
++#define HAVE_INLINE_ASM_LABELS 1
++#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
++#define HAVE_PRAGMA_DEPRECATED 1
++#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_XFORM_ASM 1
++#define HAVE_XMM_CLOBBERS 0
++#define HAVE_KCMVIDEOCODECTYPE_HEVC 0
++#define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_GROUP_SOURCE_REQ 0
++#define HAVE_STRUCT_IP_MREQ_SOURCE 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0
++#define HAVE_STRUCT_POLLFD 0
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
++#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
++#define HAVE_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
++#define HAVE_OPENCL_D3D11 0
++#define HAVE_OPENCL_DRM_ARM 0
++#define HAVE_OPENCL_DRM_BEIGNET 0
++#define HAVE_OPENCL_DXVA2 0
++#define HAVE_OPENCL_VAAPI_BEIGNET 0
++#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0
++#define HAVE_PERL 1
++#define HAVE_POD2MAN 1
++#define HAVE_TEXI2HTML 0
++#define CONFIG_DOC 0
++#define CONFIG_HTMLPAGES 0
++#define CONFIG_MANPAGES 0
++#define CONFIG_PODPAGES 0
++#define CONFIG_TXTPAGES 0
++#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1
++#define CONFIG_AVIO_READING_EXAMPLE 1
++#define CONFIG_DECODE_AUDIO_EXAMPLE 1
++#define CONFIG_DECODE_VIDEO_EXAMPLE 1
++#define CONFIG_DEMUXING_DECODING_EXAMPLE 1
++#define CONFIG_ENCODE_AUDIO_EXAMPLE 1
++#define CONFIG_ENCODE_VIDEO_EXAMPLE 1
++#define CONFIG_EXTRACT_MVS_EXAMPLE 1
++#define CONFIG_FILTER_AUDIO_EXAMPLE 0
++#define CONFIG_FILTERING_AUDIO_EXAMPLE 0
++#define CONFIG_FILTERING_VIDEO_EXAMPLE 0
++#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1
++#define CONFIG_HW_DECODE_EXAMPLE 1
++#define CONFIG_METADATA_EXAMPLE 1
++#define CONFIG_MUXING_EXAMPLE 0
++#define CONFIG_QSVDEC_EXAMPLE 0
++#define CONFIG_REMUXING_EXAMPLE 1
++#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
++#define CONFIG_SCALING_VIDEO_EXAMPLE 0
++#define CONFIG_TRANSCODE_AAC_EXAMPLE 0
++#define CONFIG_TRANSCODING_EXAMPLE 0
++#define CONFIG_VAAPI_ENCODE_EXAMPLE 0
++#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0
++#define CONFIG_AVISYNTH 0
++#define CONFIG_FREI0R 0
++#define CONFIG_LIBCDIO 0
++#define CONFIG_LIBDAVS2 0
++#define CONFIG_LIBRUBBERBAND 0
++#define CONFIG_LIBVIDSTAB 0
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBX265 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXAVS2 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_DECKLINK 0
++#define CONFIG_LIBFDK_AAC 0
++#define CONFIG_OPENSSL 0
++#define CONFIG_LIBTLS 0
++#define CONFIG_GMP 0
++#define CONFIG_LIBARIBB24 0
++#define CONFIG_LIBLENSFUN 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBVMAF 0
++#define CONFIG_LIBVO_AMRWBENC 0
++#define CONFIG_MBEDTLS 0
++#define CONFIG_RKMPP 0
++#define CONFIG_LIBSMBCLIENT 0
++#define CONFIG_CHROMAPRINT 0
++#define CONFIG_GCRYPT 0
++#define CONFIG_GNUTLS 0
++#define CONFIG_JNI 0
++#define CONFIG_LADSPA 0
++#define CONFIG_LIBAOM 0
++#define CONFIG_LIBASS 0
++#define CONFIG_LIBBLURAY 0
++#define CONFIG_LIBBS2B 0
++#define CONFIG_LIBCACA 0
++#define CONFIG_LIBCELT 0
++#define CONFIG_LIBCODEC2 0
++#define CONFIG_LIBDAV1D 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDRM 0
++#define CONFIG_LIBFLITE 0
++#define CONFIG_LIBFONTCONFIG 0
++#define CONFIG_LIBFREETYPE 0
++#define CONFIG_LIBFRIBIDI 0
++#define CONFIG_LIBGLSLANG 0
++#define CONFIG_LIBGME 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBIEC61883 0
++#define CONFIG_LIBILBC 0
++#define CONFIG_LIBJACK 0
++#define CONFIG_LIBKLVANC 0
++#define CONFIG_LIBKVAZAAR 0
++#define CONFIG_LIBMODPLUG 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBMYSOFA 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENH264 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBOPENMPT 0
++#define CONFIG_LIBOPUS 1
++#define CONFIG_LIBPULSE 0
++#define CONFIG_LIBRABBITMQ 0
++#define CONFIG_LIBRAV1E 0
++#define CONFIG_LIBRSVG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSHINE 0
++#define CONFIG_LIBSMBCLIENT 0
++#define CONFIG_LIBSNAPPY 0
++#define CONFIG_LIBSOXR 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBSRT 0
++#define CONFIG_LIBSSH 0
++#define CONFIG_LIBTENSORFLOW 0
++#define CONFIG_LIBTESSERACT 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBTWOLAME 0
++#define CONFIG_LIBV4L2 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 0
++#define CONFIG_LIBWAVPACK 0
++#define CONFIG_LIBWEBP 0
++#define CONFIG_LIBXML2 0
++#define CONFIG_LIBZIMG 0
++#define CONFIG_LIBZMQ 0
++#define CONFIG_LIBZVBI 0
++#define CONFIG_LV2 0
++#define CONFIG_MEDIACODEC 0
++#define CONFIG_OPENAL 0
++#define CONFIG_OPENGL 0
++#define CONFIG_POCKETSPHINX 0
++#define CONFIG_VAPOURSYNTH 0
++#define CONFIG_ALSA 0
++#define CONFIG_APPKIT 0
++#define CONFIG_AVFOUNDATION 0
++#define CONFIG_BZLIB 0
++#define CONFIG_COREIMAGE 0
++#define CONFIG_ICONV 0
++#define CONFIG_LIBXCB 0
++#define CONFIG_LIBXCB_SHM 0
++#define CONFIG_LIBXCB_SHAPE 0
++#define CONFIG_LIBXCB_XFIXES 0
++#define CONFIG_LZMA 0
++#define CONFIG_MEDIAFOUNDATION 0
++#define CONFIG_SCHANNEL 0
++#define CONFIG_SDL2 0
++#define CONFIG_SECURETRANSPORT 0
++#define CONFIG_SNDIO 0
++#define CONFIG_XLIB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_CUDA_NVCC 0
++#define CONFIG_CUDA_SDK 0
++#define CONFIG_LIBNPP 0
++#define CONFIG_LIBMFX 0
++#define CONFIG_MMAL 0
++#define CONFIG_OMX 0
++#define CONFIG_OPENCL 0
++#define CONFIG_VULKAN 0
++#define CONFIG_AMF 0
++#define CONFIG_AUDIOTOOLBOX 0
++#define CONFIG_CRYSTALHD 0
++#define CONFIG_CUDA 0
++#define CONFIG_CUDA_LLVM 0
++#define CONFIG_CUVID 0
++#define CONFIG_D3D11VA 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FFNVCODEC 0
++#define CONFIG_NVDEC 0
++#define CONFIG_NVENC 0
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VIDEOTOOLBOX 0
++#define CONFIG_V4L2_M2M 0
++#define CONFIG_XVMC 0
++#define CONFIG_FTRAPV 0
++#define CONFIG_GRAY 0
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_OMX_RPI 0
++#define CONFIG_RUNTIME_CPUDETECT 1
++#define CONFIG_SAFE_BITSTREAM_READER 1
++#define CONFIG_SHARED 0
++#define CONFIG_SMALL 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_GPL 0
++#define CONFIG_NONFREE 0
++#define CONFIG_VERSION3 0
++#define CONFIG_AVDEVICE 0
++#define CONFIG_AVFILTER 0
++#define CONFIG_SWSCALE 0
++#define CONFIG_POSTPROC 0
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVCODEC 1
++#define CONFIG_SWRESAMPLE 0
++#define CONFIG_AVRESAMPLE 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 0
++#define CONFIG_FFMPEG 0
++#define CONFIG_DCT 1
++#define CONFIG_DWT 0
++#define CONFIG_ERROR_RESILIENCE 0
++#define CONFIG_FAAN 0
++#define CONFIG_FAST_UNALIGNED 1
++#define CONFIG_FFT 1
++#define CONFIG_LSP 0
++#define CONFIG_LZO 0
++#define CONFIG_MDCT 1
++#define CONFIG_PIXELUTILS 0
++#define CONFIG_NETWORK 0
++#define CONFIG_RDFT 1
++#define CONFIG_AUTODETECT 0
++#define CONFIG_FONTCONFIG 0
++#define CONFIG_LARGE_TESTS 1
++#define CONFIG_LINUX_PERF 0
++#define CONFIG_MEMORY_POISONING 0
++#define CONFIG_NEON_CLOBBER_TEST 0
++#define CONFIG_OSSFUZZ 0
++#define CONFIG_PIC 1
++#define CONFIG_THUMB 0
++#define CONFIG_VALGRIND_BACKTRACE 0
++#define CONFIG_XMM_CLOBBER_TEST 0
++#define CONFIG_BSFS 1
++#define CONFIG_DECODERS 1
++#define CONFIG_ENCODERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_PARSERS 1
++#define CONFIG_INDEVS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_FILTERS 0
++#define CONFIG_DEMUXERS 1
++#define CONFIG_MUXERS 0
++#define CONFIG_PROTOCOLS 0
++#define CONFIG_AANDCTTABLES 0
++#define CONFIG_AC3DSP 0
++#define CONFIG_ADTS_HEADER 0
++#define CONFIG_AUDIO_FRAME_QUEUE 0
++#define CONFIG_AUDIODSP 0
++#define CONFIG_BLOCKDSP 0
++#define CONFIG_BSWAPDSP 0
++#define CONFIG_CABAC 0
++#define CONFIG_CBS 0
++#define CONFIG_CBS_AV1 0
++#define CONFIG_CBS_H264 0
++#define CONFIG_CBS_H265 0
++#define CONFIG_CBS_JPEG 0
++#define CONFIG_CBS_MPEG2 0
++#define CONFIG_CBS_VP9 0
++#define CONFIG_DIRAC_PARSE 1
++#define CONFIG_DNN 0
++#define CONFIG_DVPROFILE 0
++#define CONFIG_EXIF 0
++#define CONFIG_FAANDCT 0
++#define CONFIG_FAANIDCT 0
++#define CONFIG_FDCTDSP 0
++#define CONFIG_FLACDSP 1
++#define CONFIG_FMTCONVERT 0
++#define CONFIG_FRAME_THREAD_ENCODER 0
++#define CONFIG_G722DSP 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPLV3 0
++#define CONFIG_H263DSP 0
++#define CONFIG_H264CHROMA 0
++#define CONFIG_H264DSP 0
++#define CONFIG_H264PARSE 0
++#define CONFIG_H264PRED 1
++#define CONFIG_H264QPEL 0
++#define CONFIG_HEVCPARSE 0
++#define CONFIG_HPELDSP 1
++#define CONFIG_HUFFMAN 0
++#define CONFIG_HUFFYUVDSP 0
++#define CONFIG_HUFFYUVENCDSP 0
++#define CONFIG_IDCTDSP 0
++#define CONFIG_IIRFILTER 0
++#define CONFIG_MDCT15 0
++#define CONFIG_INTRAX8 0
++#define CONFIG_ISO_MEDIA 1
++#define CONFIG_IVIDSP 0
++#define CONFIG_JPEGTABLES 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_LIBX262 0
++#define CONFIG_LLAUDDSP 0
++#define CONFIG_LLVIDDSP 0
++#define CONFIG_LLVIDENCDSP 0
++#define CONFIG_LPC 0
++#define CONFIG_LZF 0
++#define CONFIG_ME_CMP 0
++#define CONFIG_MPEG_ER 0
++#define CONFIG_MPEGAUDIO 1
++#define CONFIG_MPEGAUDIODSP 1
++#define CONFIG_MPEGAUDIOHEADER 1
++#define CONFIG_MPEGVIDEO 0
++#define CONFIG_MPEGVIDEOENC 0
++#define CONFIG_MSS34DSP 0
++#define CONFIG_PIXBLOCKDSP 0
++#define CONFIG_QPELDSP 0
++#define CONFIG_QSV 0
++#define CONFIG_QSVDEC 0
++#define CONFIG_QSVENC 0
++#define CONFIG_QSVVPP 0
++#define CONFIG_RANGECODER 0
++#define CONFIG_RIFFDEC 1
++#define CONFIG_RIFFENC 0
++#define CONFIG_RTPDEC 0
++#define CONFIG_RTPENC_CHAIN 0
++#define CONFIG_RV34DSP 0
++#define CONFIG_SCENE_SAD 0
++#define CONFIG_SINEWIN 0
++#define CONFIG_SNAPPY 0
++#define CONFIG_SRTP 0
++#define CONFIG_STARTCODE 0
++#define CONFIG_TEXTUREDSP 0
++#define CONFIG_TEXTUREDSPENC 0
++#define CONFIG_TPELDSP 0
++#define CONFIG_VAAPI_1 0
++#define CONFIG_VAAPI_ENCODE 0
++#define CONFIG_VC1DSP 0
++#define CONFIG_VIDEODSP 1
++#define CONFIG_VP3DSP 1
++#define CONFIG_VP56DSP 0
++#define CONFIG_VP8DSP 1
++#define CONFIG_WMA_FREQS 0
++#define CONFIG_WMV2DSP 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_AV1_FRAME_MERGE_BSF 0
++#define CONFIG_AV1_FRAME_SPLIT_BSF 0
++#define CONFIG_AV1_METADATA_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_DCA_CORE_BSF 0
++#define CONFIG_EAC3_CORE_BSF 0
++#define CONFIG_EXTRACT_EXTRADATA_BSF 0
++#define CONFIG_FILTER_UNITS_BSF 0
++#define CONFIG_H264_METADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_H264_REDUNDANT_PPS_BSF 0
++#define CONFIG_HAPQA_EXTRACT_BSF 0
++#define CONFIG_HEVC_METADATA_BSF 0
++#define CONFIG_HEVC_MP4TOANNEXB_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEG2JPEG_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MPEG2_METADATA_BSF 0
++#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_NULL_BSF 0
++#define CONFIG_OPUS_METADATA_BSF 0
++#define CONFIG_PCM_RECHUNK_BSF 0
++#define CONFIG_PRORES_METADATA_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_SETTS_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_TRACE_HEADERS_BSF 0
++#define CONFIG_TRUEHD_CORE_BSF 0
++#define CONFIG_VP9_METADATA_BSF 0
++#define CONFIG_VP9_RAW_REORDER_BSF 0
++#define CONFIG_VP9_SUPERFRAME_BSF 0
++#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AIC_DECODER 0
++#define CONFIG_ALIAS_PIX_DECODER 0
++#define CONFIG_AGM_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_APNG_DECODER 0
++#define CONFIG_ARBC_DECODER 0
++#define CONFIG_ARGO_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVRP_DECODER 0
++#define CONFIG_AVRN_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_AVUI_DECODER 0
++#define CONFIG_AYUV_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BITPACKED_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_BMV_VIDEO_DECODER 0
++#define CONFIG_BRENDER_PIX_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CDTOONS_DECODER 0
++#define CONFIG_CDXL_DECODER 0
++#define CONFIG_CFHD_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLEARVIDEO_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CLLC_DECODER 0
++#define CONFIG_COMFORTNOISE_DECODER 0
++#define CONFIG_CPIA_DECODER 0
++#define CONFIG_CRI_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DDS_DECODER 0
++#define CONFIG_DFA_DECODER 0
++#define CONFIG_DIRAC_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVAUDIO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_DXTORY_DECODER 0
++#define CONFIG_DXV_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_ESCAPE130_DECODER 0
++#define CONFIG_EXR_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FIC_DECODER 0
++#define CONFIG_FITS_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLASHSV2_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FMVC_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_G2M_DECODER 0
++#define CONFIG_GDV_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H263P_DECODER 0
++#define CONFIG_H263_V4L2M2M_DECODER 0
++#define CONFIG_H264_DECODER 0
++#define CONFIG_H264_CRYSTALHD_DECODER 0
++#define CONFIG_H264_V4L2M2M_DECODER 0
++#define CONFIG_H264_MEDIACODEC_DECODER 0
++#define CONFIG_H264_MMAL_DECODER 0
++#define CONFIG_H264_QSV_DECODER 0
++#define CONFIG_H264_RKMPP_DECODER 0
++#define CONFIG_HAP_DECODER 0
++#define CONFIG_HEVC_DECODER 0
++#define CONFIG_HEVC_QSV_DECODER 0
++#define CONFIG_HEVC_RKMPP_DECODER 0
++#define CONFIG_HEVC_V4L2M2M_DECODER 0
++#define CONFIG_HNM4_VIDEO_DECODER 0
++#define CONFIG_HQ_HQA_DECODER 0
++#define CONFIG_HQX_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_HYMT_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_IMM4_DECODER 0
++#define CONFIG_IMM5_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO4_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_IPU_DECODER 0
++#define CONFIG_JPEG2000_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_JV_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LAGARITH_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_LSCR_DECODER 0
++#define CONFIG_M101_DECODER 0
++#define CONFIG_MAGICYUV_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOBICLIP_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_CRYSTALHD_DECODER 0
++#define CONFIG_MPEG4_V4L2M2M_DECODER 0
++#define CONFIG_MPEG4_MMAL_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG1_V4L2M2M_DECODER 0
++#define CONFIG_MPEG2_MMAL_DECODER 0
++#define CONFIG_MPEG2_CRYSTALHD_DECODER 0
++#define CONFIG_MPEG2_V4L2M2M_DECODER 0
++#define CONFIG_MPEG2_QSV_DECODER 0
++#define CONFIG_MPEG2_MEDIACODEC_DECODER 0
++#define CONFIG_MSA1_DECODER 0
++#define CONFIG_MSCC_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0
++#define CONFIG_MSP2_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSS1_DECODER 0
++#define CONFIG_MSS2_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_MTS2_DECODER 0
++#define CONFIG_MV30_DECODER 0
++#define CONFIG_MVC1_DECODER 0
++#define CONFIG_MVC2_DECODER 0
++#define CONFIG_MVDV_DECODER 0
++#define CONFIG_MVHA_DECODER 0
++#define CONFIG_MWSC_DECODER 0
++#define CONFIG_MXPEG_DECODER 0
++#define CONFIG_NOTCHLC_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAF_VIDEO_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PFM_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PGX_DECODER 0
++#define CONFIG_PHOTOCD_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PIXLET_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PRORES_DECODER 0
++#define CONFIG_PROSUMER_DECODER 0
++#define CONFIG_PSD_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RASC_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RSCC_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_S302M_DECODER 0
++#define CONFIG_SANM_DECODER 0
++#define CONFIG_SCPR_DECODER 0
++#define CONFIG_SCREENPRESSO_DECODER 0
++#define CONFIG_SGA_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SGIRLE_DECODER 0
++#define CONFIG_SHEERVIDEO_DECODER 0
++#define CONFIG_SIMBIOSIS_IMX_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SMVJPEG_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SPEEDHQ_DECODER 0
++#define CONFIG_SRGC_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_TARGA_Y216_DECODER 0
++#define CONFIG_TDSC_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TRUEMOTION2RT_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TSCC2_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_UTVIDEO_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_V308_DECODER 0
++#define CONFIG_V408_DECODER 0
++#define CONFIG_V410_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VBLE_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_CRYSTALHD_DECODER 0
++#define CONFIG_VC1IMAGE_DECODER 0
++#define CONFIG_VC1_MMAL_DECODER 0
++#define CONFIG_VC1_QSV_DECODER 0
++#define CONFIG_VC1_V4L2M2M_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP4_DECODER 0
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP7_DECODER 0
++#define CONFIG_VP8_DECODER 1
++#define CONFIG_VP8_RKMPP_DECODER 0
++#define CONFIG_VP8_V4L2M2M_DECODER 0
++#define CONFIG_VP9_DECODER 0
++#define CONFIG_VP9_RKMPP_DECODER 0
++#define CONFIG_VP9_V4L2M2M_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WEBP_DECODER 0
++#define CONFIG_WCMV_DECODER 0
++#define CONFIG_WRAPPED_AVFRAME_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_CRYSTALHD_DECODER 0
++#define CONFIG_WMV3IMAGE_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XAN_WC4_DECODER 0
++#define CONFIG_XBM_DECODER 0
++#define CONFIG_XFACE_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_XPM_DECODER 0
++#define CONFIG_XWD_DECODER 0
++#define CONFIG_Y41P_DECODER 0
++#define CONFIG_YLC_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_YUV4_DECODER 0
++#define CONFIG_ZERO12V_DECODER 0
++#define CONFIG_ZEROCODEC_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 0
++#define CONFIG_AAC_FIXED_DECODER 0
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_AC3_FIXED_DECODER 0
++#define CONFIG_ACELP_KELVIN_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_AMRWB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_APTX_DECODER 0
++#define CONFIG_APTX_HD_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_ATRAC3AL_DECODER 0
++#define CONFIG_ATRAC3P_DECODER 0
++#define CONFIG_ATRAC3PAL_DECODER 0
++#define CONFIG_ATRAC9_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_BMV_AUDIO_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DOLBY_E_DECODER 0
++#define CONFIG_DSD_LSBF_DECODER 0
++#define CONFIG_DSD_MSBF_DECODER 0
++#define CONFIG_DSD_LSBF_PLANAR_DECODER 0
++#define CONFIG_DSD_MSBF_PLANAR_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_DSS_SP_DECODER 0
++#define CONFIG_DST_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_EVRC_DECODER 0
++#define CONFIG_FASTAUDIO_DECODER 0
++#define CONFIG_FFWAVESYNTH_DECODER 0
++#define CONFIG_FLAC_DECODER 1
++#define CONFIG_G723_1_DECODER 0
++#define CONFIG_G729_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_HCA_DECODER 0
++#define CONFIG_HCOM_DECODER 0
++#define CONFIG_IAC_DECODER 0
++#define CONFIG_ILBC_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_INTERPLAY_ACM_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_METASOUND_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 1
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_MSNSIREN_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_ON2AVC_DECODER 0
++#define CONFIG_OPUS_DECODER 0
++#define CONFIG_PAF_AUDIO_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_QDMC_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_RALF_DECODER 0
++#define CONFIG_SBC_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SIREN_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TAK_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMALOSSLESS_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_XMA1_DECODER 0
++#define CONFIG_XMA2_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 1
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F16LE_DECODER 0
++#define CONFIG_PCM_F24LE_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 1
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S8_PLANAR_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 1
++#define CONFIG_PCM_S16BE_PLANAR_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 1
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 1
++#define CONFIG_PCM_S24LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 1
++#define CONFIG_PCM_S32LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S64BE_DECODER 0
++#define CONFIG_PCM_S64LE_DECODER 0
++#define CONFIG_PCM_SGA_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_VIDC_DECODER 0
++#define CONFIG_DERF_DPCM_DECODER 0
++#define CONFIG_GREMLIN_DPCM_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SDX2_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_AFC_DECODER 0
++#define CONFIG_ADPCM_AGM_DECODER 0
++#define CONFIG_ADPCM_AICA_DECODER 0
++#define CONFIG_ADPCM_ARGO_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_DTK_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_G726LE_DECODER 0
++#define CONFIG_ADPCM_IMA_ACORN_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_ALP_DECODER 0
++#define CONFIG_ADPCM_IMA_APC_DECODER 0
++#define CONFIG_ADPCM_IMA_APM_DECODER 0
++#define CONFIG_ADPCM_IMA_CUNNING_DECODER 0
++#define CONFIG_ADPCM_IMA_DAT4_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0
++#define CONFIG_ADPCM_IMA_MTF_DECODER 0
++#define CONFIG_ADPCM_IMA_OKI_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_RAD_DECODER 0
++#define CONFIG_ADPCM_IMA_SSI_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_MTAF_DECODER 0
++#define CONFIG_ADPCM_PSX_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_THP_LE_DECODER 0
++#define CONFIG_ADPCM_VIMA_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_ADPCM_ZORK_DECODER 0
++#define CONFIG_SSA_DECODER 0
++#define CONFIG_ASS_DECODER 0
++#define CONFIG_CCAPTION_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_JACOSUB_DECODER 0
++#define CONFIG_MICRODVD_DECODER 0
++#define CONFIG_MOVTEXT_DECODER 0
++#define CONFIG_MPL2_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_PJS_DECODER 0
++#define CONFIG_REALTEXT_DECODER 0
++#define CONFIG_SAMI_DECODER 0
++#define CONFIG_SRT_DECODER 0
++#define CONFIG_STL_DECODER 0
++#define CONFIG_SUBRIP_DECODER 0
++#define CONFIG_SUBVIEWER_DECODER 0
++#define CONFIG_SUBVIEWER1_DECODER 0
++#define CONFIG_TEXT_DECODER 0
++#define CONFIG_VPLAYER_DECODER 0
++#define CONFIG_WEBVTT_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_AAC_AT_DECODER 0
++#define CONFIG_AC3_AT_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0
++#define CONFIG_ALAC_AT_DECODER 0
++#define CONFIG_AMR_NB_AT_DECODER 0
++#define CONFIG_EAC3_AT_DECODER 0
++#define CONFIG_GSM_MS_AT_DECODER 0
++#define CONFIG_ILBC_AT_DECODER 0
++#define CONFIG_MP1_AT_DECODER 0
++#define CONFIG_MP2_AT_DECODER 0
++#define CONFIG_MP3_AT_DECODER 0
++#define CONFIG_PCM_ALAW_AT_DECODER 0
++#define CONFIG_PCM_MULAW_AT_DECODER 0
++#define CONFIG_QDMC_AT_DECODER 0
++#define CONFIG_QDM2_AT_DECODER 0
++#define CONFIG_LIBARIBB24_DECODER 0
++#define CONFIG_LIBCELT_DECODER 0
++#define CONFIG_LIBCODEC2_DECODER 0
++#define CONFIG_LIBDAV1D_DECODER 0
++#define CONFIG_LIBDAVS2_DECODER 0
++#define CONFIG_LIBFDK_AAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBILBC_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBOPUS_DECODER 1
++#define CONFIG_LIBRSVG_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBUAVS3D_DECODER 0
++#define CONFIG_LIBVORBIS_DECODER 0
++#define CONFIG_LIBVPX_VP8_DECODER 0
++#define CONFIG_LIBVPX_VP9_DECODER 0
++#define CONFIG_LIBZVBI_TELETEXT_DECODER 0
++#define CONFIG_BINTEXT_DECODER 0
++#define CONFIG_XBIN_DECODER 0
++#define CONFIG_IDF_DECODER 0
++#define CONFIG_LIBAOM_AV1_DECODER 0
++#define CONFIG_AV1_DECODER 0
++#define CONFIG_AV1_CUVID_DECODER 0
++#define CONFIG_AV1_QSV_DECODER 0
++#define CONFIG_LIBOPENH264_DECODER 0
++#define CONFIG_H264_CUVID_DECODER 0
++#define CONFIG_HEVC_CUVID_DECODER 0
++#define CONFIG_HEVC_MEDIACODEC_DECODER 0
++#define CONFIG_MJPEG_CUVID_DECODER 0
++#define CONFIG_MJPEG_QSV_DECODER 0
++#define CONFIG_MPEG1_CUVID_DECODER 0
++#define CONFIG_MPEG2_CUVID_DECODER 0
++#define CONFIG_MPEG4_CUVID_DECODER 0
++#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
++#define CONFIG_VC1_CUVID_DECODER 0
++#define CONFIG_VP8_CUVID_DECODER 0
++#define CONFIG_VP8_MEDIACODEC_DECODER 0
++#define CONFIG_VP8_QSV_DECODER 0
++#define CONFIG_VP9_CUVID_DECODER 0
++#define CONFIG_VP9_MEDIACODEC_DECODER 0
++#define CONFIG_VP9_QSV_DECODER 0
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ALIAS_PIX_ENCODER 0
++#define CONFIG_AMV_ENCODER 0
++#define CONFIG_APNG_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_AVRP_ENCODER 0
++#define CONFIG_AVUI_ENCODER 0
++#define CONFIG_AYUV_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_CFHD_ENCODER 0
++#define CONFIG_CINEPAK_ENCODER 0
++#define CONFIG_CLJR_ENCODER 0
++#define CONFIG_COMFORTNOISE_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DPX_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_EXR_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FITS_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLASHSV2_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HAP_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEG2000_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MAGICYUV_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_MSVIDEO1_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PFM_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_PRORES_ENCODER 0
++#define CONFIG_PRORES_AW_ENCODER 0
++#define CONFIG_PRORES_KS_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_R10K_ENCODER 0
++#define CONFIG_R210_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RPZA_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_S302M_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SMC_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SPEEDHQ_ENCODER 0
++#define CONFIG_SUNRAST_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_UTVIDEO_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_V308_ENCODER 0
++#define CONFIG_V408_ENCODER 0
++#define CONFIG_V410_ENCODER 0
++#define CONFIG_VC2_ENCODER 0
++#define CONFIG_WRAPPED_AVFRAME_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_XBM_ENCODER 0
++#define CONFIG_XFACE_ENCODER 0
++#define CONFIG_XWD_ENCODER 0
++#define CONFIG_Y41P_ENCODER 0
++#define CONFIG_YUV4_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_AC3_FIXED_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_APTX_ENCODER 0
++#define CONFIG_APTX_HD_ENCODER 0
++#define CONFIG_DCA_ENCODER 0
++#define CONFIG_EAC3_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_G723_1_ENCODER 0
++#define CONFIG_MLP_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_MP2FIXED_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_OPUS_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SBC_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_TRUEHD_ENCODER 0
++#define CONFIG_TTA_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WAVPACK_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_DVD_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S8_PLANAR_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S64BE_ENCODER 0
++#define CONFIG_PCM_S64LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_VIDC_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_ARGO_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_G726LE_ENCODER 0
++#define CONFIG_ADPCM_IMA_AMV_ENCODER 0
++#define CONFIG_ADPCM_IMA_ALP_ENCODER 0
++#define CONFIG_ADPCM_IMA_APM_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_SSI_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_IMA_WS_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_SSA_ENCODER 0
++#define CONFIG_ASS_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_MOVTEXT_ENCODER 0
++#define CONFIG_SRT_ENCODER 0
++#define CONFIG_SUBRIP_ENCODER 0
++#define CONFIG_TEXT_ENCODER 0
++#define CONFIG_TTML_ENCODER 0
++#define CONFIG_WEBVTT_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_AAC_AT_ENCODER 0
++#define CONFIG_ALAC_AT_ENCODER 0
++#define CONFIG_ILBC_AT_ENCODER 0
++#define CONFIG_PCM_ALAW_AT_ENCODER 0
++#define CONFIG_PCM_MULAW_AT_ENCODER 0
++#define CONFIG_LIBAOM_AV1_ENCODER 0
++#define CONFIG_LIBCODEC2_ENCODER 0
++#define CONFIG_LIBFDK_AAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBILBC_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBOPENJPEG_ENCODER 0
++#define CONFIG_LIBOPUS_ENCODER 0
++#define CONFIG_LIBRAV1E_ENCODER 0
++#define CONFIG_LIBSHINE_ENCODER 0
++#define CONFIG_LIBSPEEX_ENCODER 0
++#define CONFIG_LIBSVTAV1_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBTWOLAME_ENCODER 0
++#define CONFIG_LIBVO_AMRWBENC_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_VP8_ENCODER 0
++#define CONFIG_LIBVPX_VP9_ENCODER 0
++#define CONFIG_LIBWEBP_ANIM_ENCODER 0
++#define CONFIG_LIBWEBP_ENCODER 0
++#define CONFIG_LIBX262_ENCODER 0
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBX264RGB_ENCODER 0
++#define CONFIG_LIBX265_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXAVS2_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_AAC_MF_ENCODER 0
++#define CONFIG_AC3_MF_ENCODER 0
++#define CONFIG_H263_V4L2M2M_ENCODER 0
++#define CONFIG_LIBOPENH264_ENCODER 0
++#define CONFIG_H264_AMF_ENCODER 0
++#define CONFIG_H264_MF_ENCODER 0
++#define CONFIG_H264_NVENC_ENCODER 0
++#define CONFIG_H264_OMX_ENCODER 0
++#define CONFIG_H264_QSV_ENCODER 0
++#define CONFIG_H264_V4L2M2M_ENCODER 0
++#define CONFIG_H264_VAAPI_ENCODER 0
++#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0
++#define CONFIG_HEVC_AMF_ENCODER 0
++#define CONFIG_HEVC_MF_ENCODER 0
++#define CONFIG_HEVC_NVENC_ENCODER 0
++#define CONFIG_HEVC_QSV_ENCODER 0
++#define CONFIG_HEVC_V4L2M2M_ENCODER 0
++#define CONFIG_HEVC_VAAPI_ENCODER 0
++#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0
++#define CONFIG_LIBKVAZAAR_ENCODER 0
++#define CONFIG_MJPEG_QSV_ENCODER 0
++#define CONFIG_MJPEG_VAAPI_ENCODER 0
++#define CONFIG_MP3_MF_ENCODER 0
++#define CONFIG_MPEG2_QSV_ENCODER 0
++#define CONFIG_MPEG2_VAAPI_ENCODER 0
++#define CONFIG_MPEG4_OMX_ENCODER 0
++#define CONFIG_MPEG4_V4L2M2M_ENCODER 0
++#define CONFIG_VP8_V4L2M2M_ENCODER 0
++#define CONFIG_VP8_VAAPI_ENCODER 0
++#define CONFIG_VP9_VAAPI_ENCODER 0
++#define CONFIG_VP9_QSV_ENCODER 0
++#define CONFIG_AV1_D3D11VA_HWACCEL 0
++#define CONFIG_AV1_D3D11VA2_HWACCEL 0
++#define CONFIG_AV1_DXVA2_HWACCEL 0
++#define CONFIG_AV1_NVDEC_HWACCEL 0
++#define CONFIG_AV1_VAAPI_HWACCEL 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_H264_D3D11VA_HWACCEL 0
++#define CONFIG_H264_D3D11VA2_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_NVDEC_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_H264_VDPAU_HWACCEL 0
++#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_HEVC_D3D11VA_HWACCEL 0
++#define CONFIG_HEVC_D3D11VA2_HWACCEL 0
++#define CONFIG_HEVC_DXVA2_HWACCEL 0
++#define CONFIG_HEVC_NVDEC_HWACCEL 0
++#define CONFIG_HEVC_VAAPI_HWACCEL 0
++#define CONFIG_HEVC_VDPAU_HWACCEL 0
++#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MJPEG_NVDEC_HWACCEL 0
++#define CONFIG_MJPEG_VAAPI_HWACCEL 0
++#define CONFIG_MPEG1_NVDEC_HWACCEL 0
++#define CONFIG_MPEG1_VDPAU_HWACCEL 0
++#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MPEG1_XVMC_HWACCEL 0
++#define CONFIG_MPEG2_D3D11VA_HWACCEL 0
++#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0
++#define CONFIG_MPEG2_NVDEC_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_VDPAU_HWACCEL 0
++#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MPEG2_XVMC_HWACCEL 0
++#define CONFIG_MPEG4_NVDEC_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VDPAU_HWACCEL 0
++#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_VC1_D3D11VA_HWACCEL 0
++#define CONFIG_VC1_D3D11VA2_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_NVDEC_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_VC1_VDPAU_HWACCEL 0
++#define CONFIG_VP8_NVDEC_HWACCEL 0
++#define CONFIG_VP8_VAAPI_HWACCEL 0
++#define CONFIG_VP9_D3D11VA_HWACCEL 0
++#define CONFIG_VP9_D3D11VA2_HWACCEL 0
++#define CONFIG_VP9_DXVA2_HWACCEL 0
++#define CONFIG_VP9_NVDEC_HWACCEL 0
++#define CONFIG_VP9_VAAPI_HWACCEL 0
++#define CONFIG_VP9_VDPAU_HWACCEL 0
++#define CONFIG_WMV3_D3D11VA_HWACCEL 0
++#define CONFIG_WMV3_D3D11VA2_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_NVDEC_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_VDPAU_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_ADX_PARSER 0
++#define CONFIG_AV1_PARSER 0
++#define CONFIG_AVS2_PARSER 0
++#define CONFIG_AVS3_PARSER 0
++#define CONFIG_BMP_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_COOK_PARSER 0
++#define CONFIG_CRI_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DOLBY_E_PARSER 0
++#define CONFIG_DPX_PARSER 0
++#define CONFIG_DVAUDIO_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_DVD_NAV_PARSER 0
++#define CONFIG_FLAC_PARSER 1
++#define CONFIG_G723_1_PARSER 0
++#define CONFIG_G729_PARSER 0
++#define CONFIG_GIF_PARSER 0
++#define CONFIG_GSM_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_HEVC_PARSER 0
++#define CONFIG_IPU_PARSER 0
++#define CONFIG_JPEG2000_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 1
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_OPUS_PARSER 1
++#define CONFIG_PNG_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_RV30_PARSER 0
++#define CONFIG_RV40_PARSER 0
++#define CONFIG_SBC_PARSER 0
++#define CONFIG_SIPR_PARSER 0
++#define CONFIG_TAK_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VORBIS_PARSER 1
++#define CONFIG_VP3_PARSER 1
++#define CONFIG_VP8_PARSER 1
++#define CONFIG_VP9_PARSER 1
++#define CONFIG_WEBP_PARSER 0
++#define CONFIG_XBM_PARSER 0
++#define CONFIG_XMA_PARSER 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_ANDROID_CAMERA_INDEV 0
++#define CONFIG_AVFOUNDATION_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DECKLINK_INDEV 0
++#define CONFIG_DSHOW_INDEV 0
++#define CONFIG_FBDEV_INDEV 0
++#define CONFIG_GDIGRAB_INDEV 0
++#define CONFIG_IEC61883_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_KMSGRAB_INDEV 0
++#define CONFIG_LAVFI_INDEV 0
++#define CONFIG_OPENAL_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_PULSE_INDEV 0
++#define CONFIG_SNDIO_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_XCBGRAB_INDEV 0
++#define CONFIG_LIBCDIO_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_AUDIOTOOLBOX_OUTDEV 0
++#define CONFIG_CACA_OUTDEV 0
++#define CONFIG_DECKLINK_OUTDEV 0
++#define CONFIG_FBDEV_OUTDEV 0
++#define CONFIG_OPENGL_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#define CONFIG_PULSE_OUTDEV 0
++#define CONFIG_SDL2_OUTDEV 0
++#define CONFIG_SNDIO_OUTDEV 0
++#define CONFIG_V4L2_OUTDEV 0
++#define CONFIG_XV_OUTDEV 0
++#define CONFIG_AA_DEMUXER 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AAX_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_ACE_DEMUXER 0
++#define CONFIG_ACM_DEMUXER 0
++#define CONFIG_ACT_DEMUXER 0
++#define CONFIG_ADF_DEMUXER 0
++#define CONFIG_ADP_DEMUXER 0
++#define CONFIG_ADS_DEMUXER 0
++#define CONFIG_ADX_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AFC_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AIX_DEMUXER 0
++#define CONFIG_ALP_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_AMRNB_DEMUXER 0
++#define CONFIG_AMRWB_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APM_DEMUXER 0
++#define CONFIG_APNG_DEMUXER 0
++#define CONFIG_APTX_DEMUXER 0
++#define CONFIG_APTX_HD_DEMUXER 0
++#define CONFIG_AQTITLE_DEMUXER 0
++#define CONFIG_ARGO_ASF_DEMUXER 0
++#define CONFIG_ARGO_BRP_DEMUXER 0
++#define CONFIG_ARGO_CVG_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASF_O_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AST_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AV1_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVR_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_AVS2_DEMUXER 0
++#define CONFIG_AVS3_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINTEXT_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_BINKA_DEMUXER 0
++#define CONFIG_BIT_DEMUXER 0
++#define CONFIG_BMV_DEMUXER 0
++#define CONFIG_BFSTM_DEMUXER 0
++#define CONFIG_BRSTM_DEMUXER 0
++#define CONFIG_BOA_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_CDXL_DEMUXER 0
++#define CONFIG_CINE_DEMUXER 0
++#define CONFIG_CODEC2_DEMUXER 0
++#define CONFIG_CODEC2RAW_DEMUXER 0
++#define CONFIG_CONCAT_DEMUXER 0
++#define CONFIG_DASH_DEMUXER 0
++#define CONFIG_DATA_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DCSTR_DEMUXER 0
++#define CONFIG_DERF_DEMUXER 0
++#define CONFIG_DFA_DEMUXER 0
++#define CONFIG_DHAV_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSF_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DSS_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DTSHD_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DVBSUB_DEMUXER 0
++#define CONFIG_DVBTXT_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_EPAF_DEMUXER 0
++#define CONFIG_FFMETADATA_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FITS_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 1
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_LIVE_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_FRM_DEMUXER 0
++#define CONFIG_FSB_DEMUXER 0
++#define CONFIG_FWSE_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_G723_1_DEMUXER 0
++#define CONFIG_G726_DEMUXER 0
++#define CONFIG_G726LE_DEMUXER 0
++#define CONFIG_G729_DEMUXER 0
++#define CONFIG_GDV_DEMUXER 0
++#define CONFIG_GENH_DEMUXER 0
++#define CONFIG_GIF_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_HCA_DEMUXER 0
++#define CONFIG_HCOM_DEMUXER 0
++#define CONFIG_HEVC_DEMUXER 0
++#define CONFIG_HLS_DEMUXER 0
++#define CONFIG_HNM_DEMUXER 0
++#define CONFIG_ICO_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IDF_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IFV_DEMUXER 0
++#define CONFIG_ILBC_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0
++#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_IPU_DEMUXER 0
++#define CONFIG_IRCAM_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_IVR_DEMUXER 0
++#define CONFIG_JACOSUB_DEMUXER 0
++#define CONFIG_JV_DEMUXER 0
++#define CONFIG_KUX_DEMUXER 0
++#define CONFIG_KVAG_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LOAS_DEMUXER 0
++#define CONFIG_LUODAT_DEMUXER 0
++#define CONFIG_LRC_DEMUXER 0
++#define CONFIG_LVF_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MCA_DEMUXER 0
++#define CONFIG_MCC_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MGSTS_DEMUXER 0
++#define CONFIG_MICRODVD_DEMUXER 0
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MJPEG_2000_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MLV_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MODS_DEMUXER 0
++#define CONFIG_MOFLEX_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 1
++#define CONFIG_MP3_DEMUXER 1
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MPJPEG_DEMUXER 0
++#define CONFIG_MPL2_DEMUXER 0
++#define CONFIG_MPSUB_DEMUXER 0
++#define CONFIG_MSF_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MSP_DEMUXER 0
++#define CONFIG_MTAF_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MUSX_DEMUXER 0
++#define CONFIG_MV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_MXG_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NISTSPHERE_DEMUXER 0
++#define CONFIG_NSP_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OBU_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PAF_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_VIDC_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PJS_DEMUXER 0
++#define CONFIG_PMP_DEMUXER 0
++#define CONFIG_PP_BNK_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_PVF_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_REALTEXT_DEMUXER 0
++#define CONFIG_REDSPARK_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSD_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_S337M_DEMUXER 0
++#define CONFIG_SAMI_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SBC_DEMUXER 0
++#define CONFIG_SBG_DEMUXER 0
++#define CONFIG_SCC_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SDR2_DEMUXER 0
++#define CONFIG_SDS_DEMUXER 0
++#define CONFIG_SDX_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SER_DEMUXER 0
++#define CONFIG_SGA_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SIMBIOSIS_IMX_DEMUXER 0
++#define CONFIG_SLN_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SMJPEG_DEMUXER 0
++#define CONFIG_SMUSH_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SPDIF_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_STL_DEMUXER 0
++#define CONFIG_SUBVIEWER1_DEMUXER 0
++#define CONFIG_SUBVIEWER_DEMUXER 0
++#define CONFIG_SUP_DEMUXER 0
++#define CONFIG_SVAG_DEMUXER 0
++#define CONFIG_SVS_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_TAK_DEMUXER 0
++#define CONFIG_TEDCAPTIONS_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_THREEDOSTR_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_TY_DEMUXER 0
++#define CONFIG_V210_DEMUXER 0
++#define CONFIG_V210X_DEMUXER 0
++#define CONFIG_VAG_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VIVIDAS_DEMUXER 0
++#define CONFIG_VIVO_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOBSUB_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VPK_DEMUXER 0
++#define CONFIG_VPLAYER_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0
++#define CONFIG_WEBVTT_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WTV_DEMUXER 0
++#define CONFIG_WVE_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_XBIN_DEMUXER 0
++#define CONFIG_XMV_DEMUXER 0
++#define CONFIG_XVAG_DEMUXER 0
++#define CONFIG_XWMA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0
++#define CONFIG_LIBGME_DEMUXER 0
++#define CONFIG_LIBMODPLUG_DEMUXER 0
++#define CONFIG_LIBOPENMPT_DEMUXER 0
++#define CONFIG_VAPOURSYNTH_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_ADX_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_ALP_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_AMV_MUXER 0
++#define CONFIG_APM_MUXER 0
++#define CONFIG_APNG_MUXER 0
++#define CONFIG_APTX_MUXER 0
++#define CONFIG_APTX_HD_MUXER 0
++#define CONFIG_ARGO_ASF_MUXER 0
++#define CONFIG_ARGO_CVG_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_AST_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_AVS2_MUXER 0
++#define CONFIG_BIT_MUXER 0
++#define CONFIG_CAF_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CODEC2_MUXER 0
++#define CONFIG_CODEC2RAW_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DASH_MUXER 0
++#define CONFIG_DATA_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_F4V_MUXER 0
++#define CONFIG_FFMETADATA_MUXER 0
++#define CONFIG_FIFO_MUXER 0
++#define CONFIG_FIFO_TEST_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FITS_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEHASH_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_G723_1_MUXER 0
++#define CONFIG_G726_MUXER 0
++#define CONFIG_G726LE_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GSM_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_HASH_MUXER 0
++#define CONFIG_HDS_MUXER 0
++#define CONFIG_HEVC_MUXER 0
++#define CONFIG_HLS_MUXER 0
++#define CONFIG_ICO_MUXER 0
++#define CONFIG_ILBC_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_IRCAM_MUXER 0
++#define CONFIG_ISMV_MUXER 0
++#define CONFIG_IVF_MUXER 0
++#define CONFIG_JACOSUB_MUXER 0
++#define CONFIG_KVAG_MUXER 0
++#define CONFIG_LATM_MUXER 0
++#define CONFIG_LRC_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MICRODVD_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_MXF_OPATOM_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OBU_MUXER 0
++#define CONFIG_OGA_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_OGV_MUXER 0
++#define CONFIG_OMA_MUXER 0
++#define CONFIG_OPUS_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_VIDC_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTP_MPEGTS_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SBC_MUXER 0
++#define CONFIG_SCC_MUXER 0
++#define CONFIG_SEGAFILM_MUXER 0
++#define CONFIG_SEGMENT_MUXER 0
++#define CONFIG_STREAM_SEGMENT_MUXER 0
++#define CONFIG_SMJPEG_MUXER 0
++#define CONFIG_SMOOTHSTREAMING_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_STREAMHASH_MUXER 0
++#define CONFIG_SUP_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TEE_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_MKVTIMESTAMP_V2_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_TTA_MUXER 0
++#define CONFIG_TTML_MUXER 0
++#define CONFIG_UNCODEDFRAMECRC_MUXER 0
++#define CONFIG_VC1_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_W64_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
++#define CONFIG_WEBM_CHUNK_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_WEBVTT_MUXER 0
++#define CONFIG_WSAUD_MUXER 0
++#define CONFIG_WTV_MUXER 0
++#define CONFIG_WV_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_CHROMAPRINT_MUXER 0
++#define CONFIG_ASYNC_PROTOCOL 0
++#define CONFIG_BLURAY_PROTOCOL 0
++#define CONFIG_CACHE_PROTOCOL 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_CONCATF_PROTOCOL 0
++#define CONFIG_CRYPTO_PROTOCOL 0
++#define CONFIG_DATA_PROTOCOL 0
++#define CONFIG_FFRTMPCRYPT_PROTOCOL 0
++#define CONFIG_FFRTMPHTTP_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_FTP_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_GOPHERS_PROTOCOL 0
++#define CONFIG_HLS_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_HTTPPROXY_PROTOCOL 0
++#define CONFIG_HTTPS_PROTOCOL 0
++#define CONFIG_ICECAST_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_PROMPEG_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPTS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_SCTP_PROTOCOL 0
++#define CONFIG_SRTP_PROTOCOL 0
++#define CONFIG_SUBFILE_PROTOCOL 0
++#define CONFIG_TEE_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_TLS_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_UDPLITE_PROTOCOL 0
++#define CONFIG_UNIX_PROTOCOL 0
++#define CONFIG_LIBAMQP_PROTOCOL 0
++#define CONFIG_LIBRIST_PROTOCOL 0
++#define CONFIG_LIBRTMP_PROTOCOL 0
++#define CONFIG_LIBRTMPE_PROTOCOL 0
++#define CONFIG_LIBRTMPS_PROTOCOL 0
++#define CONFIG_LIBRTMPT_PROTOCOL 0
++#define CONFIG_LIBRTMPTE_PROTOCOL 0
++#define CONFIG_LIBSRT_PROTOCOL 0
++#define CONFIG_LIBSSH_PROTOCOL 0
++#define CONFIG_LIBSMBCLIENT_PROTOCOL 0
++#define CONFIG_LIBZMQ_PROTOCOL 0
++#endif /* FFMPEG_CONFIG_H */
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/bsf_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/bsf_list.c
+@@ -0,0 +1,2 @@
++static const AVBitStreamFilter * const bitstream_filters[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/codec_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/codec_list.c
+@@ -0,0 +1,18 @@
++static const AVCodec * const codec_list[] = {
++    &ff_theora_decoder,
++    &ff_vp3_decoder,
++    &ff_vp8_decoder,
++    &ff_flac_decoder,
++    &ff_mp3_decoder,
++    &ff_vorbis_decoder,
++    &ff_pcm_alaw_decoder,
++    &ff_pcm_f32le_decoder,
++    &ff_pcm_mulaw_decoder,
++    &ff_pcm_s16be_decoder,
++    &ff_pcm_s16le_decoder,
++    &ff_pcm_s24be_decoder,
++    &ff_pcm_s24le_decoder,
++    &ff_pcm_s32le_decoder,
++    &ff_pcm_u8_decoder,
++    &ff_libopus_decoder,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/parser_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavcodec/parser_list.c
+@@ -0,0 +1,9 @@
++static const AVCodecParser * const parser_list[] = {
++    &ff_flac_parser,
++    &ff_mpegaudio_parser,
++    &ff_opus_parser,
++    &ff_vorbis_parser,
++    &ff_vp3_parser,
++    &ff_vp8_parser,
++    &ff_vp9_parser,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/demuxer_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/demuxer_list.c
+@@ -0,0 +1,8 @@
++static const AVInputFormat * const demuxer_list[] = {
++    &ff_flac_demuxer,
++    &ff_matroska_demuxer,
++    &ff_mov_demuxer,
++    &ff_mp3_demuxer,
++    &ff_ogg_demuxer,
++    &ff_wav_demuxer,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/muxer_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/muxer_list.c
+@@ -0,0 +1,2 @@
++static const AVOutputFormat * const muxer_list[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/protocol_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavformat/protocol_list.c
+@@ -0,0 +1,2 @@
++static const URLProtocol * const url_protocols[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavutil/avconfig.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chromium/linux/ppc64/libavutil/avconfig.h
+@@ -0,0 +1,6 @@
++/* Generated by ffmpeg configure */
++#ifndef AVUTIL_AVCONFIG_H
++#define AVUTIL_AVCONFIG_H
++#define AV_HAVE_BIGENDIAN 0
++#define AV_HAVE_FAST_UNALIGNED 1
++#endif /* AVUTIL_AVCONFIG_H */
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/config.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/config.h
+@@ -0,0 +1,2217 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/disk2/CHROMIUM_REBUILD/CHROMIUM_90/MODIFIED_TEST_BUILD/chromium-97.0.4692.99/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=ppc64le --extra-cflags='-mcpu=power9' --enable-pic --cc='ccache gcc' --cxx='ccache g++' --ld='ccache gcc' --extra-ldflags='-fuse-ld=lld'"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define CONFIG_THIS_YEAR 2021
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define AVCONV_DATADIR "/usr/local/share/ffmpeg"
++#define CC_IDENT "gcc 10 (Debian 10.2.1-6)"
++#define av_restrict restrict
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM 
++#define BUILDSUF ""
++#define SLIBSUF ".so"
++#define HAVE_MMX2 HAVE_MMXEXT
++#define SWS_MAX_FILTER_SIZE 256
++#define ARCH_AARCH64 0
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 1
++#define ARCH_PPC64 1
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TILEGX 0
++#define ARCH_TILEPRO 0
++#define ARCH_TOMI 0
++#define ARCH_X86 0
++#define ARCH_X86_32 0
++#define ARCH_X86_64 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMV8 0
++#define HAVE_NEON 0
++#define HAVE_VFP 0
++#define HAVE_VFPV3 0
++#define HAVE_SETEND 0
++#define HAVE_ALTIVEC 1
++#define HAVE_DCBZL 1
++#define HAVE_LDBRX 0
++#define HAVE_POWER8 1
++#define HAVE_PPC4XX 0
++#define HAVE_VSX 1
++#define HAVE_AESNI 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_AVX 0
++#define HAVE_AVX2 0
++#define HAVE_AVX512 0
++#define HAVE_FMA3 0
++#define HAVE_FMA4 0
++#define HAVE_MMX 0
++#define HAVE_MMXEXT 0
++#define HAVE_SSE 0
++#define HAVE_SSE2 0
++#define HAVE_SSE3 0
++#define HAVE_SSE4 0
++#define HAVE_SSE42 0
++#define HAVE_SSSE3 0
++#define HAVE_XOP 0
++#define HAVE_CPUNOP 0
++#define HAVE_I686 0
++#define HAVE_MIPSFPU 0
++#define HAVE_MIPS32R2 0
++#define HAVE_MIPS32R5 0
++#define HAVE_MIPS64R2 0
++#define HAVE_MIPS32R6 0
++#define HAVE_MIPS64R6 0
++#define HAVE_MIPSDSP 0
++#define HAVE_MIPSDSPR2 0
++#define HAVE_MSA 0
++#define HAVE_MSA2 0
++#define HAVE_LOONGSON2 0
++#define HAVE_LOONGSON3 0
++#define HAVE_MMI 0
++#define HAVE_ARMV5TE_EXTERNAL 0
++#define HAVE_ARMV6_EXTERNAL 0
++#define HAVE_ARMV6T2_EXTERNAL 0
++#define HAVE_ARMV8_EXTERNAL 0
++#define HAVE_NEON_EXTERNAL 0
++#define HAVE_VFP_EXTERNAL 0
++#define HAVE_VFPV3_EXTERNAL 0
++#define HAVE_SETEND_EXTERNAL 0
++#define HAVE_ALTIVEC_EXTERNAL 0
++#define HAVE_DCBZL_EXTERNAL 0
++#define HAVE_LDBRX_EXTERNAL 0
++#define HAVE_POWER8_EXTERNAL 0
++#define HAVE_PPC4XX_EXTERNAL 0
++#define HAVE_VSX_EXTERNAL 0
++#define HAVE_AESNI_EXTERNAL 0
++#define HAVE_AMD3DNOW_EXTERNAL 0
++#define HAVE_AMD3DNOWEXT_EXTERNAL 0
++#define HAVE_AVX_EXTERNAL 0
++#define HAVE_AVX2_EXTERNAL 0
++#define HAVE_AVX512_EXTERNAL 0
++#define HAVE_FMA3_EXTERNAL 0
++#define HAVE_FMA4_EXTERNAL 0
++#define HAVE_MMX_EXTERNAL 0
++#define HAVE_MMXEXT_EXTERNAL 0
++#define HAVE_SSE_EXTERNAL 0
++#define HAVE_SSE2_EXTERNAL 0
++#define HAVE_SSE3_EXTERNAL 0
++#define HAVE_SSE4_EXTERNAL 0
++#define HAVE_SSE42_EXTERNAL 0
++#define HAVE_SSSE3_EXTERNAL 0
++#define HAVE_XOP_EXTERNAL 0
++#define HAVE_CPUNOP_EXTERNAL 0
++#define HAVE_I686_EXTERNAL 0
++#define HAVE_MIPSFPU_EXTERNAL 0
++#define HAVE_MIPS32R2_EXTERNAL 0
++#define HAVE_MIPS32R5_EXTERNAL 0
++#define HAVE_MIPS64R2_EXTERNAL 0
++#define HAVE_MIPS32R6_EXTERNAL 0
++#define HAVE_MIPS64R6_EXTERNAL 0
++#define HAVE_MIPSDSP_EXTERNAL 0
++#define HAVE_MIPSDSPR2_EXTERNAL 0
++#define HAVE_MSA_EXTERNAL 0
++#define HAVE_MSA2_EXTERNAL 0
++#define HAVE_LOONGSON2_EXTERNAL 0
++#define HAVE_LOONGSON3_EXTERNAL 0
++#define HAVE_MMI_EXTERNAL 0
++#define HAVE_ARMV5TE_INLINE 0
++#define HAVE_ARMV6_INLINE 0
++#define HAVE_ARMV6T2_INLINE 0
++#define HAVE_ARMV8_INLINE 0
++#define HAVE_NEON_INLINE 0
++#define HAVE_VFP_INLINE 0
++#define HAVE_VFPV3_INLINE 0
++#define HAVE_SETEND_INLINE 0
++#define HAVE_ALTIVEC_INLINE 0
++#define HAVE_DCBZL_INLINE 0
++#define HAVE_LDBRX_INLINE 0
++#define HAVE_POWER8_INLINE 0
++#define HAVE_PPC4XX_INLINE 0
++#define HAVE_VSX_INLINE 0
++#define HAVE_AESNI_INLINE 0
++#define HAVE_AMD3DNOW_INLINE 0
++#define HAVE_AMD3DNOWEXT_INLINE 0
++#define HAVE_AVX_INLINE 0
++#define HAVE_AVX2_INLINE 0
++#define HAVE_AVX512_INLINE 0
++#define HAVE_FMA3_INLINE 0
++#define HAVE_FMA4_INLINE 0
++#define HAVE_MMX_INLINE 0
++#define HAVE_MMXEXT_INLINE 0
++#define HAVE_SSE_INLINE 0
++#define HAVE_SSE2_INLINE 0
++#define HAVE_SSE3_INLINE 0
++#define HAVE_SSE4_INLINE 0
++#define HAVE_SSE42_INLINE 0
++#define HAVE_SSSE3_INLINE 0
++#define HAVE_XOP_INLINE 0
++#define HAVE_CPUNOP_INLINE 0
++#define HAVE_I686_INLINE 0
++#define HAVE_MIPSFPU_INLINE 0
++#define HAVE_MIPS32R2_INLINE 0
++#define HAVE_MIPS32R5_INLINE 0
++#define HAVE_MIPS64R2_INLINE 0
++#define HAVE_MIPS32R6_INLINE 0
++#define HAVE_MIPS64R6_INLINE 0
++#define HAVE_MIPSDSP_INLINE 0
++#define HAVE_MIPSDSPR2_INLINE 0
++#define HAVE_MSA_INLINE 0
++#define HAVE_MSA2_INLINE 0
++#define HAVE_LOONGSON2_INLINE 0
++#define HAVE_LOONGSON3_INLINE 0
++#define HAVE_MMI_INLINE 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_FAST_64BIT 1
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 0
++#define HAVE_LOCAL_ALIGNED 1
++#define HAVE_SIMD_ALIGN_16 1
++#define HAVE_SIMD_ALIGN_32 0
++#define HAVE_SIMD_ALIGN_64 0
++#define HAVE_ATOMIC_CAS_PTR 0
++#define HAVE_MACHINE_RW_BARRIER 0
++#define HAVE_MEMORYBARRIER 0
++#define HAVE_MM_EMPTY 0
++#define HAVE_RDTSC 0
++#define HAVE_SEM_TIMEDWAIT 1
++#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
++#define HAVE_CABS 0
++#define HAVE_CEXP 0
++#define HAVE_INLINE_ASM 1
++#define HAVE_SYMVER 0
++#define HAVE_X86ASM 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ASM_TYPES_H 1
++#define HAVE_CDIO_PARANOIA_H 0
++#define HAVE_CDIO_PARANOIA_PARANOIA_H 0
++#define HAVE_CUDA_H 0
++#define HAVE_DISPATCH_DISPATCH_H 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DIRECT_H 0
++#define HAVE_DIRENT_H 1
++#define HAVE_DXGIDEBUG_H 0
++#define HAVE_DXVA_H 0
++#define HAVE_ES2_GL_H 0
++#define HAVE_GSM_H 0
++#define HAVE_IO_H 0
++#define HAVE_LINUX_PERF_EVENT_H 1
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 1
++#define HAVE_OPENCV2_CORE_CORE_C_H 0
++#define HAVE_OPENGL_GL3_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SYS_PARAM_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_TIME_H 1
++#define HAVE_SYS_UN_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TERMIOS_H 1
++#define HAVE_UDPLITE_H 0
++#define HAVE_UNISTD_H 1
++#define HAVE_VALGRIND_VALGRIND_H 0 /* #define HAVE_VALGRIND_VALGRIND_H 1 -- forced to 0. See https://crbug.com/590440 */
++#define HAVE_WINDOWS_H 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_INTRINSICS_NEON 0
++#define HAVE_ATANF 1
++#define HAVE_ATAN2F 1
++#define HAVE_CBRT 1
++#define HAVE_CBRTF 1
++#define HAVE_COPYSIGN 1
++#define HAVE_COSF 1
++#define HAVE_ERF 1
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_EXPF 1
++#define HAVE_HYPOT 1
++#define HAVE_ISFINITE 1
++#define HAVE_ISINF 1
++#define HAVE_ISNAN 1
++#define HAVE_LDEXPF 1
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOG2 1
++#define HAVE_LOG2F 1
++#define HAVE_LOG10F 1
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_POWF 1
++#define HAVE_RINT 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SINF 1
++#define HAVE_TRUNC 1
++#define HAVE_TRUNCF 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_LIBC_MSVCRT 0
++#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
++#define HAVE_SECTION_DATA_REL_RO 1
++#define HAVE_THREADS 1
++#define HAVE_UWP 0
++#define HAVE_WINRT 0
++#define HAVE_ACCESS 1
++#define HAVE_ALIGNED_MALLOC 0
++#define HAVE_ARC4RANDOM 0
++#define HAVE_CLOCK_GETTIME 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_COMMANDLINETOARGVW 0
++#define HAVE_FCNTL 1
++#define HAVE_GETADDRINFO 0
++#define HAVE_GETHRTIME 0
++#define HAVE_GETOPT 1
++#define HAVE_GETMODULEHANDLE 0
++#define HAVE_GETPROCESSAFFINITYMASK 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GETSTDHANDLE 0
++#define HAVE_GETSYSTEMTIMEASFILETIME 0
++#define HAVE_GETTIMEOFDAY 1
++#define HAVE_GLOB 1
++#define HAVE_GLXGETPROCADDRESS 0
++#define HAVE_GMTIME_R 1
++#define HAVE_INET_ATON 0
++#define HAVE_ISATTY 1
++#define HAVE_KBHIT 0
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LSTAT 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACH_ABSOLUTE_TIME 0
++#define HAVE_MAPVIEWOFFILE 0
++#define HAVE_MEMALIGN 1
++#define HAVE_MKSTEMP 1
++#define HAVE_MMAP 1
++#define HAVE_MPROTECT 1
++#define HAVE_NANOSLEEP 1
++#define HAVE_PEEKNAMEDPIPE 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_PTHREAD_CANCEL 1
++#define HAVE_SCHED_GETAFFINITY 1
++#define HAVE_SECITEMIMPORT 0
++#define HAVE_SETCONSOLETEXTATTRIBUTE 0
++#define HAVE_SETCONSOLECTRLHANDLER 0
++#define HAVE_SETDLLDIRECTORY 0
++#define HAVE_SETMODE 0
++#define HAVE_SETRLIMIT 1
++#define HAVE_SLEEP 0
++#define HAVE_STRERROR_R 1
++#define HAVE_SYSCONF 1
++#define HAVE_SYSCTL 0 /* #define HAVE_SYSCTL 1 -- forced to 0 for Fuchsia */
++#define HAVE_USLEEP 1
++#define HAVE_UTGETOSTYPEFROMSTRING 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WGLGETPROCADDRESS 0
++#define HAVE_BCRYPT 0
++#define HAVE_VAAPI_DRM 0
++#define HAVE_VAAPI_X11 0
++#define HAVE_VDPAU_X11 0
++#define HAVE_PTHREADS 1
++#define HAVE_OS2THREADS 0
++#define HAVE_W32THREADS 0
++#define HAVE_AS_ARCH_DIRECTIVE 0
++#define HAVE_AS_DN_DIRECTIVE 0
++#define HAVE_AS_FPU_DIRECTIVE 0
++#define HAVE_AS_FUNC 1
++#define HAVE_AS_OBJECT_ARCH 0
++#define HAVE_ASM_MOD_Q 0
++#define HAVE_BLOCKS_EXTENSION 0
++#define HAVE_EBP_AVAILABLE 0
++#define HAVE_EBX_AVAILABLE 0
++#define HAVE_GNU_AS 0
++#define HAVE_GNU_WINDRES 0
++#define HAVE_IBM_ASM 1
++#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0
++#define HAVE_INLINE_ASM_LABELS 1
++#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
++#define HAVE_PRAGMA_DEPRECATED 1
++#define HAVE_RSYNC_CONTIMEOUT 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_XFORM_ASM 1
++#define HAVE_XMM_CLOBBERS 0
++#define HAVE_KCMVIDEOCODECTYPE_HEVC 0
++#define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0
++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_GROUP_SOURCE_REQ 0
++#define HAVE_STRUCT_IP_MREQ_SOURCE 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0
++#define HAVE_STRUCT_POLLFD 0
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
++#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0
++#define HAVE_MAKEINFO 0
++#define HAVE_MAKEINFO_HTML 0
++#define HAVE_OPENCL_D3D11 0
++#define HAVE_OPENCL_DRM_ARM 0
++#define HAVE_OPENCL_DRM_BEIGNET 0
++#define HAVE_OPENCL_DXVA2 0
++#define HAVE_OPENCL_VAAPI_BEIGNET 0
++#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0
++#define HAVE_PERL 1
++#define HAVE_POD2MAN 1
++#define HAVE_TEXI2HTML 0
++#define CONFIG_DOC 0
++#define CONFIG_HTMLPAGES 0
++#define CONFIG_MANPAGES 0
++#define CONFIG_PODPAGES 0
++#define CONFIG_TXTPAGES 0
++#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1
++#define CONFIG_AVIO_READING_EXAMPLE 1
++#define CONFIG_DECODE_AUDIO_EXAMPLE 1
++#define CONFIG_DECODE_VIDEO_EXAMPLE 1
++#define CONFIG_DEMUXING_DECODING_EXAMPLE 1
++#define CONFIG_ENCODE_AUDIO_EXAMPLE 1
++#define CONFIG_ENCODE_VIDEO_EXAMPLE 1
++#define CONFIG_EXTRACT_MVS_EXAMPLE 1
++#define CONFIG_FILTER_AUDIO_EXAMPLE 0
++#define CONFIG_FILTERING_AUDIO_EXAMPLE 0
++#define CONFIG_FILTERING_VIDEO_EXAMPLE 0
++#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1
++#define CONFIG_HW_DECODE_EXAMPLE 1
++#define CONFIG_METADATA_EXAMPLE 1
++#define CONFIG_MUXING_EXAMPLE 0
++#define CONFIG_QSVDEC_EXAMPLE 0
++#define CONFIG_REMUXING_EXAMPLE 1
++#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0
++#define CONFIG_SCALING_VIDEO_EXAMPLE 0
++#define CONFIG_TRANSCODE_AAC_EXAMPLE 0
++#define CONFIG_TRANSCODING_EXAMPLE 0
++#define CONFIG_VAAPI_ENCODE_EXAMPLE 0
++#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0
++#define CONFIG_AVISYNTH 0
++#define CONFIG_FREI0R 0
++#define CONFIG_LIBCDIO 0
++#define CONFIG_LIBDAVS2 0
++#define CONFIG_LIBRUBBERBAND 0
++#define CONFIG_LIBVIDSTAB 0
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBX265 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXAVS2 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_DECKLINK 0
++#define CONFIG_LIBFDK_AAC 0
++#define CONFIG_OPENSSL 0
++#define CONFIG_LIBTLS 0
++#define CONFIG_GMP 0
++#define CONFIG_LIBARIBB24 0
++#define CONFIG_LIBLENSFUN 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBVMAF 0
++#define CONFIG_LIBVO_AMRWBENC 0
++#define CONFIG_MBEDTLS 0
++#define CONFIG_RKMPP 0
++#define CONFIG_LIBSMBCLIENT 0
++#define CONFIG_CHROMAPRINT 0
++#define CONFIG_GCRYPT 0
++#define CONFIG_GNUTLS 0
++#define CONFIG_JNI 0
++#define CONFIG_LADSPA 0
++#define CONFIG_LIBAOM 0
++#define CONFIG_LIBASS 0
++#define CONFIG_LIBBLURAY 0
++#define CONFIG_LIBBS2B 0
++#define CONFIG_LIBCACA 0
++#define CONFIG_LIBCELT 0
++#define CONFIG_LIBCODEC2 0
++#define CONFIG_LIBDAV1D 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDRM 0
++#define CONFIG_LIBFLITE 0
++#define CONFIG_LIBFONTCONFIG 0
++#define CONFIG_LIBFREETYPE 0
++#define CONFIG_LIBFRIBIDI 0
++#define CONFIG_LIBGLSLANG 0
++#define CONFIG_LIBGME 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBIEC61883 0
++#define CONFIG_LIBILBC 0
++#define CONFIG_LIBJACK 0
++#define CONFIG_LIBKLVANC 0
++#define CONFIG_LIBKVAZAAR 0
++#define CONFIG_LIBMODPLUG 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBMYSOFA 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENH264 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBOPENMPT 0
++#define CONFIG_LIBOPUS 1
++#define CONFIG_LIBPULSE 0
++#define CONFIG_LIBRABBITMQ 0
++#define CONFIG_LIBRAV1E 0
++#define CONFIG_LIBRSVG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSHINE 0
++#define CONFIG_LIBSMBCLIENT 0
++#define CONFIG_LIBSNAPPY 0
++#define CONFIG_LIBSOXR 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBSRT 0
++#define CONFIG_LIBSSH 0
++#define CONFIG_LIBTENSORFLOW 0
++#define CONFIG_LIBTESSERACT 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBTWOLAME 0
++#define CONFIG_LIBV4L2 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 0
++#define CONFIG_LIBWAVPACK 0
++#define CONFIG_LIBWEBP 0
++#define CONFIG_LIBXML2 0
++#define CONFIG_LIBZIMG 0
++#define CONFIG_LIBZMQ 0
++#define CONFIG_LIBZVBI 0
++#define CONFIG_LV2 0
++#define CONFIG_MEDIACODEC 0
++#define CONFIG_OPENAL 0
++#define CONFIG_OPENGL 0
++#define CONFIG_POCKETSPHINX 0
++#define CONFIG_VAPOURSYNTH 0
++#define CONFIG_ALSA 0
++#define CONFIG_APPKIT 0
++#define CONFIG_AVFOUNDATION 0
++#define CONFIG_BZLIB 0
++#define CONFIG_COREIMAGE 0
++#define CONFIG_ICONV 0
++#define CONFIG_LIBXCB 0
++#define CONFIG_LIBXCB_SHM 0
++#define CONFIG_LIBXCB_SHAPE 0
++#define CONFIG_LIBXCB_XFIXES 0
++#define CONFIG_LZMA 0
++#define CONFIG_MEDIAFOUNDATION 0
++#define CONFIG_SCHANNEL 0
++#define CONFIG_SDL2 0
++#define CONFIG_SECURETRANSPORT 0
++#define CONFIG_SNDIO 0
++#define CONFIG_XLIB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_CUDA_NVCC 0
++#define CONFIG_CUDA_SDK 0
++#define CONFIG_LIBNPP 0
++#define CONFIG_LIBMFX 0
++#define CONFIG_MMAL 0
++#define CONFIG_OMX 0
++#define CONFIG_OPENCL 0
++#define CONFIG_VULKAN 0
++#define CONFIG_AMF 0
++#define CONFIG_AUDIOTOOLBOX 0
++#define CONFIG_CRYSTALHD 0
++#define CONFIG_CUDA 0
++#define CONFIG_CUDA_LLVM 0
++#define CONFIG_CUVID 0
++#define CONFIG_D3D11VA 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FFNVCODEC 0
++#define CONFIG_NVDEC 0
++#define CONFIG_NVENC 0
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VIDEOTOOLBOX 0
++#define CONFIG_V4L2_M2M 0
++#define CONFIG_XVMC 0
++#define CONFIG_FTRAPV 0
++#define CONFIG_GRAY 0
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_OMX_RPI 0
++#define CONFIG_RUNTIME_CPUDETECT 1
++#define CONFIG_SAFE_BITSTREAM_READER 1
++#define CONFIG_SHARED 0
++#define CONFIG_SMALL 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_GPL 0
++#define CONFIG_NONFREE 0
++#define CONFIG_VERSION3 0
++#define CONFIG_AVDEVICE 0
++#define CONFIG_AVFILTER 0
++#define CONFIG_SWSCALE 0
++#define CONFIG_POSTPROC 0
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVCODEC 1
++#define CONFIG_SWRESAMPLE 0
++#define CONFIG_AVRESAMPLE 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 0
++#define CONFIG_FFMPEG 0
++#define CONFIG_DCT 1
++#define CONFIG_DWT 0
++#define CONFIG_ERROR_RESILIENCE 0
++#define CONFIG_FAAN 0
++#define CONFIG_FAST_UNALIGNED 1
++#define CONFIG_FFT 1
++#define CONFIG_LSP 0
++#define CONFIG_LZO 0
++#define CONFIG_MDCT 1
++#define CONFIG_PIXELUTILS 0
++#define CONFIG_NETWORK 0
++#define CONFIG_RDFT 1
++#define CONFIG_AUTODETECT 0
++#define CONFIG_FONTCONFIG 0
++#define CONFIG_LARGE_TESTS 1
++#define CONFIG_LINUX_PERF 0
++#define CONFIG_MEMORY_POISONING 0
++#define CONFIG_NEON_CLOBBER_TEST 0
++#define CONFIG_OSSFUZZ 0
++#define CONFIG_PIC 1
++#define CONFIG_THUMB 0
++#define CONFIG_VALGRIND_BACKTRACE 0
++#define CONFIG_XMM_CLOBBER_TEST 0
++#define CONFIG_BSFS 1
++#define CONFIG_DECODERS 1
++#define CONFIG_ENCODERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_PARSERS 1
++#define CONFIG_INDEVS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_FILTERS 0
++#define CONFIG_DEMUXERS 1
++#define CONFIG_MUXERS 0
++#define CONFIG_PROTOCOLS 0
++#define CONFIG_AANDCTTABLES 0
++#define CONFIG_AC3DSP 0
++#define CONFIG_ADTS_HEADER 0
++#define CONFIG_AUDIO_FRAME_QUEUE 0
++#define CONFIG_AUDIODSP 0
++#define CONFIG_BLOCKDSP 0
++#define CONFIG_BSWAPDSP 0
++#define CONFIG_CABAC 0
++#define CONFIG_CBS 0
++#define CONFIG_CBS_AV1 0
++#define CONFIG_CBS_H264 0
++#define CONFIG_CBS_H265 0
++#define CONFIG_CBS_JPEG 0
++#define CONFIG_CBS_MPEG2 0
++#define CONFIG_CBS_VP9 0
++#define CONFIG_DIRAC_PARSE 1
++#define CONFIG_DNN 0
++#define CONFIG_DVPROFILE 0
++#define CONFIG_EXIF 0
++#define CONFIG_FAANDCT 0
++#define CONFIG_FAANIDCT 0
++#define CONFIG_FDCTDSP 0
++#define CONFIG_FLACDSP 1
++#define CONFIG_FMTCONVERT 0
++#define CONFIG_FRAME_THREAD_ENCODER 0
++#define CONFIG_G722DSP 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPLV3 0
++#define CONFIG_H263DSP 0
++#define CONFIG_H264CHROMA 0
++#define CONFIG_H264DSP 0
++#define CONFIG_H264PARSE 0
++#define CONFIG_H264PRED 1
++#define CONFIG_H264QPEL 0
++#define CONFIG_HEVCPARSE 0
++#define CONFIG_HPELDSP 1
++#define CONFIG_HUFFMAN 0
++#define CONFIG_HUFFYUVDSP 0
++#define CONFIG_HUFFYUVENCDSP 0
++#define CONFIG_IDCTDSP 0
++#define CONFIG_IIRFILTER 0
++#define CONFIG_MDCT15 0
++#define CONFIG_INTRAX8 0
++#define CONFIG_ISO_MEDIA 1
++#define CONFIG_IVIDSP 0
++#define CONFIG_JPEGTABLES 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_LIBX262 0
++#define CONFIG_LLAUDDSP 0
++#define CONFIG_LLVIDDSP 0
++#define CONFIG_LLVIDENCDSP 0
++#define CONFIG_LPC 0
++#define CONFIG_LZF 0
++#define CONFIG_ME_CMP 0
++#define CONFIG_MPEG_ER 0
++#define CONFIG_MPEGAUDIO 1
++#define CONFIG_MPEGAUDIODSP 1
++#define CONFIG_MPEGAUDIOHEADER 1
++#define CONFIG_MPEGVIDEO 0
++#define CONFIG_MPEGVIDEOENC 0
++#define CONFIG_MSS34DSP 0
++#define CONFIG_PIXBLOCKDSP 0
++#define CONFIG_QPELDSP 0
++#define CONFIG_QSV 0
++#define CONFIG_QSVDEC 0
++#define CONFIG_QSVENC 0
++#define CONFIG_QSVVPP 0
++#define CONFIG_RANGECODER 0
++#define CONFIG_RIFFDEC 1
++#define CONFIG_RIFFENC 0
++#define CONFIG_RTPDEC 0
++#define CONFIG_RTPENC_CHAIN 0
++#define CONFIG_RV34DSP 0
++#define CONFIG_SCENE_SAD 0
++#define CONFIG_SINEWIN 0
++#define CONFIG_SNAPPY 0
++#define CONFIG_SRTP 0
++#define CONFIG_STARTCODE 0
++#define CONFIG_TEXTUREDSP 0
++#define CONFIG_TEXTUREDSPENC 0
++#define CONFIG_TPELDSP 0
++#define CONFIG_VAAPI_1 0
++#define CONFIG_VAAPI_ENCODE 0
++#define CONFIG_VC1DSP 0
++#define CONFIG_VIDEODSP 1
++#define CONFIG_VP3DSP 1
++#define CONFIG_VP56DSP 0
++#define CONFIG_VP8DSP 1
++#define CONFIG_WMA_FREQS 0
++#define CONFIG_WMV2DSP 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_AV1_FRAME_MERGE_BSF 0
++#define CONFIG_AV1_FRAME_SPLIT_BSF 0
++#define CONFIG_AV1_METADATA_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_DCA_CORE_BSF 0
++#define CONFIG_EAC3_CORE_BSF 0
++#define CONFIG_EXTRACT_EXTRADATA_BSF 0
++#define CONFIG_FILTER_UNITS_BSF 0
++#define CONFIG_H264_METADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_H264_REDUNDANT_PPS_BSF 0
++#define CONFIG_HAPQA_EXTRACT_BSF 0
++#define CONFIG_HEVC_METADATA_BSF 0
++#define CONFIG_HEVC_MP4TOANNEXB_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEG2JPEG_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MPEG2_METADATA_BSF 0
++#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_NULL_BSF 0
++#define CONFIG_OPUS_METADATA_BSF 0
++#define CONFIG_PCM_RECHUNK_BSF 0
++#define CONFIG_PRORES_METADATA_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_SETTS_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_TRACE_HEADERS_BSF 0
++#define CONFIG_TRUEHD_CORE_BSF 0
++#define CONFIG_VP9_METADATA_BSF 0
++#define CONFIG_VP9_RAW_REORDER_BSF 0
++#define CONFIG_VP9_SUPERFRAME_BSF 0
++#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AIC_DECODER 0
++#define CONFIG_ALIAS_PIX_DECODER 0
++#define CONFIG_AGM_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_APNG_DECODER 0
++#define CONFIG_ARBC_DECODER 0
++#define CONFIG_ARGO_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVRP_DECODER 0
++#define CONFIG_AVRN_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_AVUI_DECODER 0
++#define CONFIG_AYUV_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BITPACKED_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_BMV_VIDEO_DECODER 0
++#define CONFIG_BRENDER_PIX_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CDTOONS_DECODER 0
++#define CONFIG_CDXL_DECODER 0
++#define CONFIG_CFHD_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLEARVIDEO_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CLLC_DECODER 0
++#define CONFIG_COMFORTNOISE_DECODER 0
++#define CONFIG_CPIA_DECODER 0
++#define CONFIG_CRI_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DDS_DECODER 0
++#define CONFIG_DFA_DECODER 0
++#define CONFIG_DIRAC_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVAUDIO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_DXTORY_DECODER 0
++#define CONFIG_DXV_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_ESCAPE130_DECODER 0
++#define CONFIG_EXR_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FIC_DECODER 0
++#define CONFIG_FITS_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLASHSV2_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FMVC_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_G2M_DECODER 0
++#define CONFIG_GDV_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H263P_DECODER 0
++#define CONFIG_H263_V4L2M2M_DECODER 0
++#define CONFIG_H264_DECODER 0
++#define CONFIG_H264_CRYSTALHD_DECODER 0
++#define CONFIG_H264_V4L2M2M_DECODER 0
++#define CONFIG_H264_MEDIACODEC_DECODER 0
++#define CONFIG_H264_MMAL_DECODER 0
++#define CONFIG_H264_QSV_DECODER 0
++#define CONFIG_H264_RKMPP_DECODER 0
++#define CONFIG_HAP_DECODER 0
++#define CONFIG_HEVC_DECODER 0
++#define CONFIG_HEVC_QSV_DECODER 0
++#define CONFIG_HEVC_RKMPP_DECODER 0
++#define CONFIG_HEVC_V4L2M2M_DECODER 0
++#define CONFIG_HNM4_VIDEO_DECODER 0
++#define CONFIG_HQ_HQA_DECODER 0
++#define CONFIG_HQX_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_HYMT_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_IMM4_DECODER 0
++#define CONFIG_IMM5_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO4_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_IPU_DECODER 0
++#define CONFIG_JPEG2000_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_JV_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LAGARITH_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_LSCR_DECODER 0
++#define CONFIG_M101_DECODER 0
++#define CONFIG_MAGICYUV_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOBICLIP_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_CRYSTALHD_DECODER 0
++#define CONFIG_MPEG4_V4L2M2M_DECODER 0
++#define CONFIG_MPEG4_MMAL_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG1_V4L2M2M_DECODER 0
++#define CONFIG_MPEG2_MMAL_DECODER 0
++#define CONFIG_MPEG2_CRYSTALHD_DECODER 0
++#define CONFIG_MPEG2_V4L2M2M_DECODER 0
++#define CONFIG_MPEG2_QSV_DECODER 0
++#define CONFIG_MPEG2_MEDIACODEC_DECODER 0
++#define CONFIG_MSA1_DECODER 0
++#define CONFIG_MSCC_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0
++#define CONFIG_MSP2_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSS1_DECODER 0
++#define CONFIG_MSS2_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_MTS2_DECODER 0
++#define CONFIG_MV30_DECODER 0
++#define CONFIG_MVC1_DECODER 0
++#define CONFIG_MVC2_DECODER 0
++#define CONFIG_MVDV_DECODER 0
++#define CONFIG_MVHA_DECODER 0
++#define CONFIG_MWSC_DECODER 0
++#define CONFIG_MXPEG_DECODER 0
++#define CONFIG_NOTCHLC_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAF_VIDEO_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PFM_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PGX_DECODER 0
++#define CONFIG_PHOTOCD_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PIXLET_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PRORES_DECODER 0
++#define CONFIG_PROSUMER_DECODER 0
++#define CONFIG_PSD_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RASC_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RSCC_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_S302M_DECODER 0
++#define CONFIG_SANM_DECODER 0
++#define CONFIG_SCPR_DECODER 0
++#define CONFIG_SCREENPRESSO_DECODER 0
++#define CONFIG_SGA_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SGIRLE_DECODER 0
++#define CONFIG_SHEERVIDEO_DECODER 0
++#define CONFIG_SIMBIOSIS_IMX_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SMVJPEG_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SPEEDHQ_DECODER 0
++#define CONFIG_SRGC_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_TARGA_Y216_DECODER 0
++#define CONFIG_TDSC_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TRUEMOTION2RT_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TSCC2_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_UTVIDEO_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_V308_DECODER 0
++#define CONFIG_V408_DECODER 0
++#define CONFIG_V410_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VBLE_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_CRYSTALHD_DECODER 0
++#define CONFIG_VC1IMAGE_DECODER 0
++#define CONFIG_VC1_MMAL_DECODER 0
++#define CONFIG_VC1_QSV_DECODER 0
++#define CONFIG_VC1_V4L2M2M_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP4_DECODER 0
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP7_DECODER 0
++#define CONFIG_VP8_DECODER 1
++#define CONFIG_VP8_RKMPP_DECODER 0
++#define CONFIG_VP8_V4L2M2M_DECODER 0
++#define CONFIG_VP9_DECODER 0
++#define CONFIG_VP9_RKMPP_DECODER 0
++#define CONFIG_VP9_V4L2M2M_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WEBP_DECODER 0
++#define CONFIG_WCMV_DECODER 0
++#define CONFIG_WRAPPED_AVFRAME_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_CRYSTALHD_DECODER 0
++#define CONFIG_WMV3IMAGE_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XAN_WC4_DECODER 0
++#define CONFIG_XBM_DECODER 0
++#define CONFIG_XFACE_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_XPM_DECODER 0
++#define CONFIG_XWD_DECODER 0
++#define CONFIG_Y41P_DECODER 0
++#define CONFIG_YLC_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_YUV4_DECODER 0
++#define CONFIG_ZERO12V_DECODER 0
++#define CONFIG_ZEROCODEC_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 0
++#define CONFIG_AAC_FIXED_DECODER 0
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_AC3_FIXED_DECODER 0
++#define CONFIG_ACELP_KELVIN_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_AMRWB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_APTX_DECODER 0
++#define CONFIG_APTX_HD_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_ATRAC3AL_DECODER 0
++#define CONFIG_ATRAC3P_DECODER 0
++#define CONFIG_ATRAC3PAL_DECODER 0
++#define CONFIG_ATRAC9_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_BMV_AUDIO_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DOLBY_E_DECODER 0
++#define CONFIG_DSD_LSBF_DECODER 0
++#define CONFIG_DSD_MSBF_DECODER 0
++#define CONFIG_DSD_LSBF_PLANAR_DECODER 0
++#define CONFIG_DSD_MSBF_PLANAR_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_DSS_SP_DECODER 0
++#define CONFIG_DST_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_EVRC_DECODER 0
++#define CONFIG_FASTAUDIO_DECODER 0
++#define CONFIG_FFWAVESYNTH_DECODER 0
++#define CONFIG_FLAC_DECODER 1
++#define CONFIG_G723_1_DECODER 0
++#define CONFIG_G729_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_HCA_DECODER 0
++#define CONFIG_HCOM_DECODER 0
++#define CONFIG_IAC_DECODER 0
++#define CONFIG_ILBC_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_INTERPLAY_ACM_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_METASOUND_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 1
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_MSNSIREN_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_ON2AVC_DECODER 0
++#define CONFIG_OPUS_DECODER 0
++#define CONFIG_PAF_AUDIO_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_QDMC_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_RALF_DECODER 0
++#define CONFIG_SBC_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SIREN_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TAK_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMALOSSLESS_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_XMA1_DECODER 0
++#define CONFIG_XMA2_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 1
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F16LE_DECODER 0
++#define CONFIG_PCM_F24LE_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 1
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S8_PLANAR_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 1
++#define CONFIG_PCM_S16BE_PLANAR_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 1
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 1
++#define CONFIG_PCM_S24LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 1
++#define CONFIG_PCM_S32LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S64BE_DECODER 0
++#define CONFIG_PCM_S64LE_DECODER 0
++#define CONFIG_PCM_SGA_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_VIDC_DECODER 0
++#define CONFIG_DERF_DPCM_DECODER 0
++#define CONFIG_GREMLIN_DPCM_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SDX2_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_AFC_DECODER 0
++#define CONFIG_ADPCM_AGM_DECODER 0
++#define CONFIG_ADPCM_AICA_DECODER 0
++#define CONFIG_ADPCM_ARGO_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_DTK_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_G726LE_DECODER 0
++#define CONFIG_ADPCM_IMA_ACORN_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_ALP_DECODER 0
++#define CONFIG_ADPCM_IMA_APC_DECODER 0
++#define CONFIG_ADPCM_IMA_APM_DECODER 0
++#define CONFIG_ADPCM_IMA_CUNNING_DECODER 0
++#define CONFIG_ADPCM_IMA_DAT4_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0
++#define CONFIG_ADPCM_IMA_MTF_DECODER 0
++#define CONFIG_ADPCM_IMA_OKI_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_RAD_DECODER 0
++#define CONFIG_ADPCM_IMA_SSI_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_MTAF_DECODER 0
++#define CONFIG_ADPCM_PSX_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_THP_LE_DECODER 0
++#define CONFIG_ADPCM_VIMA_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_ADPCM_ZORK_DECODER 0
++#define CONFIG_SSA_DECODER 0
++#define CONFIG_ASS_DECODER 0
++#define CONFIG_CCAPTION_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_JACOSUB_DECODER 0
++#define CONFIG_MICRODVD_DECODER 0
++#define CONFIG_MOVTEXT_DECODER 0
++#define CONFIG_MPL2_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_PJS_DECODER 0
++#define CONFIG_REALTEXT_DECODER 0
++#define CONFIG_SAMI_DECODER 0
++#define CONFIG_SRT_DECODER 0
++#define CONFIG_STL_DECODER 0
++#define CONFIG_SUBRIP_DECODER 0
++#define CONFIG_SUBVIEWER_DECODER 0
++#define CONFIG_SUBVIEWER1_DECODER 0
++#define CONFIG_TEXT_DECODER 0
++#define CONFIG_VPLAYER_DECODER 0
++#define CONFIG_WEBVTT_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_AAC_AT_DECODER 0
++#define CONFIG_AC3_AT_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0
++#define CONFIG_ALAC_AT_DECODER 0
++#define CONFIG_AMR_NB_AT_DECODER 0
++#define CONFIG_EAC3_AT_DECODER 0
++#define CONFIG_GSM_MS_AT_DECODER 0
++#define CONFIG_ILBC_AT_DECODER 0
++#define CONFIG_MP1_AT_DECODER 0
++#define CONFIG_MP2_AT_DECODER 0
++#define CONFIG_MP3_AT_DECODER 0
++#define CONFIG_PCM_ALAW_AT_DECODER 0
++#define CONFIG_PCM_MULAW_AT_DECODER 0
++#define CONFIG_QDMC_AT_DECODER 0
++#define CONFIG_QDM2_AT_DECODER 0
++#define CONFIG_LIBARIBB24_DECODER 0
++#define CONFIG_LIBCELT_DECODER 0
++#define CONFIG_LIBCODEC2_DECODER 0
++#define CONFIG_LIBDAV1D_DECODER 0
++#define CONFIG_LIBDAVS2_DECODER 0
++#define CONFIG_LIBFDK_AAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBILBC_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBOPUS_DECODER 1
++#define CONFIG_LIBRSVG_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBUAVS3D_DECODER 0
++#define CONFIG_LIBVORBIS_DECODER 0
++#define CONFIG_LIBVPX_VP8_DECODER 0
++#define CONFIG_LIBVPX_VP9_DECODER 0
++#define CONFIG_LIBZVBI_TELETEXT_DECODER 0
++#define CONFIG_BINTEXT_DECODER 0
++#define CONFIG_XBIN_DECODER 0
++#define CONFIG_IDF_DECODER 0
++#define CONFIG_LIBAOM_AV1_DECODER 0
++#define CONFIG_AV1_DECODER 0
++#define CONFIG_AV1_CUVID_DECODER 0
++#define CONFIG_AV1_QSV_DECODER 0
++#define CONFIG_LIBOPENH264_DECODER 0
++#define CONFIG_H264_CUVID_DECODER 0
++#define CONFIG_HEVC_CUVID_DECODER 0
++#define CONFIG_HEVC_MEDIACODEC_DECODER 0
++#define CONFIG_MJPEG_CUVID_DECODER 0
++#define CONFIG_MJPEG_QSV_DECODER 0
++#define CONFIG_MPEG1_CUVID_DECODER 0
++#define CONFIG_MPEG2_CUVID_DECODER 0
++#define CONFIG_MPEG4_CUVID_DECODER 0
++#define CONFIG_MPEG4_MEDIACODEC_DECODER 0
++#define CONFIG_VC1_CUVID_DECODER 0
++#define CONFIG_VP8_CUVID_DECODER 0
++#define CONFIG_VP8_MEDIACODEC_DECODER 0
++#define CONFIG_VP8_QSV_DECODER 0
++#define CONFIG_VP9_CUVID_DECODER 0
++#define CONFIG_VP9_MEDIACODEC_DECODER 0
++#define CONFIG_VP9_QSV_DECODER 0
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ALIAS_PIX_ENCODER 0
++#define CONFIG_AMV_ENCODER 0
++#define CONFIG_APNG_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_AVRP_ENCODER 0
++#define CONFIG_AVUI_ENCODER 0
++#define CONFIG_AYUV_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_CFHD_ENCODER 0
++#define CONFIG_CINEPAK_ENCODER 0
++#define CONFIG_CLJR_ENCODER 0
++#define CONFIG_COMFORTNOISE_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DPX_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_EXR_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FITS_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLASHSV2_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HAP_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEG2000_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MAGICYUV_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_MSVIDEO1_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PFM_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_PRORES_ENCODER 0
++#define CONFIG_PRORES_AW_ENCODER 0
++#define CONFIG_PRORES_KS_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_R10K_ENCODER 0
++#define CONFIG_R210_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RPZA_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_S302M_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SMC_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SPEEDHQ_ENCODER 0
++#define CONFIG_SUNRAST_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_UTVIDEO_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_V308_ENCODER 0
++#define CONFIG_V408_ENCODER 0
++#define CONFIG_V410_ENCODER 0
++#define CONFIG_VC2_ENCODER 0
++#define CONFIG_WRAPPED_AVFRAME_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_XBM_ENCODER 0
++#define CONFIG_XFACE_ENCODER 0
++#define CONFIG_XWD_ENCODER 0
++#define CONFIG_Y41P_ENCODER 0
++#define CONFIG_YUV4_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_AC3_FIXED_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_APTX_ENCODER 0
++#define CONFIG_APTX_HD_ENCODER 0
++#define CONFIG_DCA_ENCODER 0
++#define CONFIG_EAC3_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_G723_1_ENCODER 0
++#define CONFIG_MLP_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_MP2FIXED_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_OPUS_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SBC_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_TRUEHD_ENCODER 0
++#define CONFIG_TTA_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WAVPACK_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_DVD_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S8_PLANAR_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0
++#define CONFIG_PCM_S64BE_ENCODER 0
++#define CONFIG_PCM_S64LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_VIDC_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_ARGO_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_G726LE_ENCODER 0
++#define CONFIG_ADPCM_IMA_AMV_ENCODER 0
++#define CONFIG_ADPCM_IMA_ALP_ENCODER 0
++#define CONFIG_ADPCM_IMA_APM_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_SSI_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_IMA_WS_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_SSA_ENCODER 0
++#define CONFIG_ASS_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_MOVTEXT_ENCODER 0
++#define CONFIG_SRT_ENCODER 0
++#define CONFIG_SUBRIP_ENCODER 0
++#define CONFIG_TEXT_ENCODER 0
++#define CONFIG_TTML_ENCODER 0
++#define CONFIG_WEBVTT_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_AAC_AT_ENCODER 0
++#define CONFIG_ALAC_AT_ENCODER 0
++#define CONFIG_ILBC_AT_ENCODER 0
++#define CONFIG_PCM_ALAW_AT_ENCODER 0
++#define CONFIG_PCM_MULAW_AT_ENCODER 0
++#define CONFIG_LIBAOM_AV1_ENCODER 0
++#define CONFIG_LIBCODEC2_ENCODER 0
++#define CONFIG_LIBFDK_AAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBILBC_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBOPENJPEG_ENCODER 0
++#define CONFIG_LIBOPUS_ENCODER 0
++#define CONFIG_LIBRAV1E_ENCODER 0
++#define CONFIG_LIBSHINE_ENCODER 0
++#define CONFIG_LIBSPEEX_ENCODER 0
++#define CONFIG_LIBSVTAV1_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBTWOLAME_ENCODER 0
++#define CONFIG_LIBVO_AMRWBENC_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_VP8_ENCODER 0
++#define CONFIG_LIBVPX_VP9_ENCODER 0
++#define CONFIG_LIBWEBP_ANIM_ENCODER 0
++#define CONFIG_LIBWEBP_ENCODER 0
++#define CONFIG_LIBX262_ENCODER 0
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBX264RGB_ENCODER 0
++#define CONFIG_LIBX265_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXAVS2_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_AAC_MF_ENCODER 0
++#define CONFIG_AC3_MF_ENCODER 0
++#define CONFIG_H263_V4L2M2M_ENCODER 0
++#define CONFIG_LIBOPENH264_ENCODER 0
++#define CONFIG_H264_AMF_ENCODER 0
++#define CONFIG_H264_MF_ENCODER 0
++#define CONFIG_H264_NVENC_ENCODER 0
++#define CONFIG_H264_OMX_ENCODER 0
++#define CONFIG_H264_QSV_ENCODER 0
++#define CONFIG_H264_V4L2M2M_ENCODER 0
++#define CONFIG_H264_VAAPI_ENCODER 0
++#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0
++#define CONFIG_HEVC_AMF_ENCODER 0
++#define CONFIG_HEVC_MF_ENCODER 0
++#define CONFIG_HEVC_NVENC_ENCODER 0
++#define CONFIG_HEVC_QSV_ENCODER 0
++#define CONFIG_HEVC_V4L2M2M_ENCODER 0
++#define CONFIG_HEVC_VAAPI_ENCODER 0
++#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0
++#define CONFIG_LIBKVAZAAR_ENCODER 0
++#define CONFIG_MJPEG_QSV_ENCODER 0
++#define CONFIG_MJPEG_VAAPI_ENCODER 0
++#define CONFIG_MP3_MF_ENCODER 0
++#define CONFIG_MPEG2_QSV_ENCODER 0
++#define CONFIG_MPEG2_VAAPI_ENCODER 0
++#define CONFIG_MPEG4_OMX_ENCODER 0
++#define CONFIG_MPEG4_V4L2M2M_ENCODER 0
++#define CONFIG_VP8_V4L2M2M_ENCODER 0
++#define CONFIG_VP8_VAAPI_ENCODER 0
++#define CONFIG_VP9_VAAPI_ENCODER 0
++#define CONFIG_VP9_QSV_ENCODER 0
++#define CONFIG_AV1_D3D11VA_HWACCEL 0
++#define CONFIG_AV1_D3D11VA2_HWACCEL 0
++#define CONFIG_AV1_DXVA2_HWACCEL 0
++#define CONFIG_AV1_NVDEC_HWACCEL 0
++#define CONFIG_AV1_VAAPI_HWACCEL 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_H264_D3D11VA_HWACCEL 0
++#define CONFIG_H264_D3D11VA2_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_NVDEC_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_H264_VDPAU_HWACCEL 0
++#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_HEVC_D3D11VA_HWACCEL 0
++#define CONFIG_HEVC_D3D11VA2_HWACCEL 0
++#define CONFIG_HEVC_DXVA2_HWACCEL 0
++#define CONFIG_HEVC_NVDEC_HWACCEL 0
++#define CONFIG_HEVC_VAAPI_HWACCEL 0
++#define CONFIG_HEVC_VDPAU_HWACCEL 0
++#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MJPEG_NVDEC_HWACCEL 0
++#define CONFIG_MJPEG_VAAPI_HWACCEL 0
++#define CONFIG_MPEG1_NVDEC_HWACCEL 0
++#define CONFIG_MPEG1_VDPAU_HWACCEL 0
++#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MPEG1_XVMC_HWACCEL 0
++#define CONFIG_MPEG2_D3D11VA_HWACCEL 0
++#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0
++#define CONFIG_MPEG2_NVDEC_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_VDPAU_HWACCEL 0
++#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_MPEG2_XVMC_HWACCEL 0
++#define CONFIG_MPEG4_NVDEC_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VDPAU_HWACCEL 0
++#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
++#define CONFIG_VC1_D3D11VA_HWACCEL 0
++#define CONFIG_VC1_D3D11VA2_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_NVDEC_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_VC1_VDPAU_HWACCEL 0
++#define CONFIG_VP8_NVDEC_HWACCEL 0
++#define CONFIG_VP8_VAAPI_HWACCEL 0
++#define CONFIG_VP9_D3D11VA_HWACCEL 0
++#define CONFIG_VP9_D3D11VA2_HWACCEL 0
++#define CONFIG_VP9_DXVA2_HWACCEL 0
++#define CONFIG_VP9_NVDEC_HWACCEL 0
++#define CONFIG_VP9_VAAPI_HWACCEL 0
++#define CONFIG_VP9_VDPAU_HWACCEL 0
++#define CONFIG_WMV3_D3D11VA_HWACCEL 0
++#define CONFIG_WMV3_D3D11VA2_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_NVDEC_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_VDPAU_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_ADX_PARSER 0
++#define CONFIG_AV1_PARSER 0
++#define CONFIG_AVS2_PARSER 0
++#define CONFIG_AVS3_PARSER 0
++#define CONFIG_BMP_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_COOK_PARSER 0
++#define CONFIG_CRI_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DOLBY_E_PARSER 0
++#define CONFIG_DPX_PARSER 0
++#define CONFIG_DVAUDIO_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_DVD_NAV_PARSER 0
++#define CONFIG_FLAC_PARSER 1
++#define CONFIG_G723_1_PARSER 0
++#define CONFIG_G729_PARSER 0
++#define CONFIG_GIF_PARSER 0
++#define CONFIG_GSM_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_HEVC_PARSER 0
++#define CONFIG_IPU_PARSER 0
++#define CONFIG_JPEG2000_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 1
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_OPUS_PARSER 1
++#define CONFIG_PNG_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_RV30_PARSER 0
++#define CONFIG_RV40_PARSER 0
++#define CONFIG_SBC_PARSER 0
++#define CONFIG_SIPR_PARSER 0
++#define CONFIG_TAK_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VORBIS_PARSER 1
++#define CONFIG_VP3_PARSER 1
++#define CONFIG_VP8_PARSER 1
++#define CONFIG_VP9_PARSER 1
++#define CONFIG_WEBP_PARSER 0
++#define CONFIG_XBM_PARSER 0
++#define CONFIG_XMA_PARSER 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_ANDROID_CAMERA_INDEV 0
++#define CONFIG_AVFOUNDATION_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DECKLINK_INDEV 0
++#define CONFIG_DSHOW_INDEV 0
++#define CONFIG_FBDEV_INDEV 0
++#define CONFIG_GDIGRAB_INDEV 0
++#define CONFIG_IEC61883_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_KMSGRAB_INDEV 0
++#define CONFIG_LAVFI_INDEV 0
++#define CONFIG_OPENAL_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_PULSE_INDEV 0
++#define CONFIG_SNDIO_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_XCBGRAB_INDEV 0
++#define CONFIG_LIBCDIO_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_AUDIOTOOLBOX_OUTDEV 0
++#define CONFIG_CACA_OUTDEV 0
++#define CONFIG_DECKLINK_OUTDEV 0
++#define CONFIG_FBDEV_OUTDEV 0
++#define CONFIG_OPENGL_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#define CONFIG_PULSE_OUTDEV 0
++#define CONFIG_SDL2_OUTDEV 0
++#define CONFIG_SNDIO_OUTDEV 0
++#define CONFIG_V4L2_OUTDEV 0
++#define CONFIG_XV_OUTDEV 0
++#define CONFIG_AA_DEMUXER 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AAX_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_ACE_DEMUXER 0
++#define CONFIG_ACM_DEMUXER 0
++#define CONFIG_ACT_DEMUXER 0
++#define CONFIG_ADF_DEMUXER 0
++#define CONFIG_ADP_DEMUXER 0
++#define CONFIG_ADS_DEMUXER 0
++#define CONFIG_ADX_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AFC_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AIX_DEMUXER 0
++#define CONFIG_ALP_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_AMRNB_DEMUXER 0
++#define CONFIG_AMRWB_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APM_DEMUXER 0
++#define CONFIG_APNG_DEMUXER 0
++#define CONFIG_APTX_DEMUXER 0
++#define CONFIG_APTX_HD_DEMUXER 0
++#define CONFIG_AQTITLE_DEMUXER 0
++#define CONFIG_ARGO_ASF_DEMUXER 0
++#define CONFIG_ARGO_BRP_DEMUXER 0
++#define CONFIG_ARGO_CVG_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASF_O_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AST_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AV1_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVR_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_AVS2_DEMUXER 0
++#define CONFIG_AVS3_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINTEXT_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_BINKA_DEMUXER 0
++#define CONFIG_BIT_DEMUXER 0
++#define CONFIG_BMV_DEMUXER 0
++#define CONFIG_BFSTM_DEMUXER 0
++#define CONFIG_BRSTM_DEMUXER 0
++#define CONFIG_BOA_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_CDXL_DEMUXER 0
++#define CONFIG_CINE_DEMUXER 0
++#define CONFIG_CODEC2_DEMUXER 0
++#define CONFIG_CODEC2RAW_DEMUXER 0
++#define CONFIG_CONCAT_DEMUXER 0
++#define CONFIG_DASH_DEMUXER 0
++#define CONFIG_DATA_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DCSTR_DEMUXER 0
++#define CONFIG_DERF_DEMUXER 0
++#define CONFIG_DFA_DEMUXER 0
++#define CONFIG_DHAV_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSF_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DSS_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DTSHD_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DVBSUB_DEMUXER 0
++#define CONFIG_DVBTXT_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_EPAF_DEMUXER 0
++#define CONFIG_FFMETADATA_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FITS_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 1
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_LIVE_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_FRM_DEMUXER 0
++#define CONFIG_FSB_DEMUXER 0
++#define CONFIG_FWSE_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_G723_1_DEMUXER 0
++#define CONFIG_G726_DEMUXER 0
++#define CONFIG_G726LE_DEMUXER 0
++#define CONFIG_G729_DEMUXER 0
++#define CONFIG_GDV_DEMUXER 0
++#define CONFIG_GENH_DEMUXER 0
++#define CONFIG_GIF_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_HCA_DEMUXER 0
++#define CONFIG_HCOM_DEMUXER 0
++#define CONFIG_HEVC_DEMUXER 0
++#define CONFIG_HLS_DEMUXER 0
++#define CONFIG_HNM_DEMUXER 0
++#define CONFIG_ICO_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IDF_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IFV_DEMUXER 0
++#define CONFIG_ILBC_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0
++#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_IPU_DEMUXER 0
++#define CONFIG_IRCAM_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_IVR_DEMUXER 0
++#define CONFIG_JACOSUB_DEMUXER 0
++#define CONFIG_JV_DEMUXER 0
++#define CONFIG_KUX_DEMUXER 0
++#define CONFIG_KVAG_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LOAS_DEMUXER 0
++#define CONFIG_LUODAT_DEMUXER 0
++#define CONFIG_LRC_DEMUXER 0
++#define CONFIG_LVF_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MCA_DEMUXER 0
++#define CONFIG_MCC_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MGSTS_DEMUXER 0
++#define CONFIG_MICRODVD_DEMUXER 0
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MJPEG_2000_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MLV_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MODS_DEMUXER 0
++#define CONFIG_MOFLEX_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 1
++#define CONFIG_MP3_DEMUXER 1
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MPJPEG_DEMUXER 0
++#define CONFIG_MPL2_DEMUXER 0
++#define CONFIG_MPSUB_DEMUXER 0
++#define CONFIG_MSF_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MSP_DEMUXER 0
++#define CONFIG_MTAF_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MUSX_DEMUXER 0
++#define CONFIG_MV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_MXG_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NISTSPHERE_DEMUXER 0
++#define CONFIG_NSP_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OBU_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PAF_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_VIDC_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PJS_DEMUXER 0
++#define CONFIG_PMP_DEMUXER 0
++#define CONFIG_PP_BNK_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_PVF_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_REALTEXT_DEMUXER 0
++#define CONFIG_REDSPARK_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSD_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_S337M_DEMUXER 0
++#define CONFIG_SAMI_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SBC_DEMUXER 0
++#define CONFIG_SBG_DEMUXER 0
++#define CONFIG_SCC_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SDR2_DEMUXER 0
++#define CONFIG_SDS_DEMUXER 0
++#define CONFIG_SDX_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SER_DEMUXER 0
++#define CONFIG_SGA_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SIMBIOSIS_IMX_DEMUXER 0
++#define CONFIG_SLN_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SMJPEG_DEMUXER 0
++#define CONFIG_SMUSH_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SPDIF_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_STL_DEMUXER 0
++#define CONFIG_SUBVIEWER1_DEMUXER 0
++#define CONFIG_SUBVIEWER_DEMUXER 0
++#define CONFIG_SUP_DEMUXER 0
++#define CONFIG_SVAG_DEMUXER 0
++#define CONFIG_SVS_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_TAK_DEMUXER 0
++#define CONFIG_TEDCAPTIONS_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_THREEDOSTR_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_TY_DEMUXER 0
++#define CONFIG_V210_DEMUXER 0
++#define CONFIG_V210X_DEMUXER 0
++#define CONFIG_VAG_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VIVIDAS_DEMUXER 0
++#define CONFIG_VIVO_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOBSUB_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VPK_DEMUXER 0
++#define CONFIG_VPLAYER_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0
++#define CONFIG_WEBVTT_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WTV_DEMUXER 0
++#define CONFIG_WVE_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_XBIN_DEMUXER 0
++#define CONFIG_XMV_DEMUXER 0
++#define CONFIG_XVAG_DEMUXER 0
++#define CONFIG_XWMA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0
++#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0
++#define CONFIG_LIBGME_DEMUXER 0
++#define CONFIG_LIBMODPLUG_DEMUXER 0
++#define CONFIG_LIBOPENMPT_DEMUXER 0
++#define CONFIG_VAPOURSYNTH_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_ADX_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_ALP_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_AMV_MUXER 0
++#define CONFIG_APM_MUXER 0
++#define CONFIG_APNG_MUXER 0
++#define CONFIG_APTX_MUXER 0
++#define CONFIG_APTX_HD_MUXER 0
++#define CONFIG_ARGO_ASF_MUXER 0
++#define CONFIG_ARGO_CVG_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_AST_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_AVS2_MUXER 0
++#define CONFIG_BIT_MUXER 0
++#define CONFIG_CAF_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CODEC2_MUXER 0
++#define CONFIG_CODEC2RAW_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DASH_MUXER 0
++#define CONFIG_DATA_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_F4V_MUXER 0
++#define CONFIG_FFMETADATA_MUXER 0
++#define CONFIG_FIFO_MUXER 0
++#define CONFIG_FIFO_TEST_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FITS_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEHASH_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_G723_1_MUXER 0
++#define CONFIG_G726_MUXER 0
++#define CONFIG_G726LE_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GSM_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_HASH_MUXER 0
++#define CONFIG_HDS_MUXER 0
++#define CONFIG_HEVC_MUXER 0
++#define CONFIG_HLS_MUXER 0
++#define CONFIG_ICO_MUXER 0
++#define CONFIG_ILBC_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_IRCAM_MUXER 0
++#define CONFIG_ISMV_MUXER 0
++#define CONFIG_IVF_MUXER 0
++#define CONFIG_JACOSUB_MUXER 0
++#define CONFIG_KVAG_MUXER 0
++#define CONFIG_LATM_MUXER 0
++#define CONFIG_LRC_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MICRODVD_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_MXF_OPATOM_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OBU_MUXER 0
++#define CONFIG_OGA_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_OGV_MUXER 0
++#define CONFIG_OMA_MUXER 0
++#define CONFIG_OPUS_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_VIDC_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTP_MPEGTS_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SBC_MUXER 0
++#define CONFIG_SCC_MUXER 0
++#define CONFIG_SEGAFILM_MUXER 0
++#define CONFIG_SEGMENT_MUXER 0
++#define CONFIG_STREAM_SEGMENT_MUXER 0
++#define CONFIG_SMJPEG_MUXER 0
++#define CONFIG_SMOOTHSTREAMING_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_STREAMHASH_MUXER 0
++#define CONFIG_SUP_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TEE_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_MKVTIMESTAMP_V2_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_TTA_MUXER 0
++#define CONFIG_TTML_MUXER 0
++#define CONFIG_UNCODEDFRAMECRC_MUXER 0
++#define CONFIG_VC1_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_W64_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0
++#define CONFIG_WEBM_CHUNK_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_WEBVTT_MUXER 0
++#define CONFIG_WSAUD_MUXER 0
++#define CONFIG_WTV_MUXER 0
++#define CONFIG_WV_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_CHROMAPRINT_MUXER 0
++#define CONFIG_ASYNC_PROTOCOL 0
++#define CONFIG_BLURAY_PROTOCOL 0
++#define CONFIG_CACHE_PROTOCOL 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_CONCATF_PROTOCOL 0
++#define CONFIG_CRYPTO_PROTOCOL 0
++#define CONFIG_DATA_PROTOCOL 0
++#define CONFIG_FFRTMPCRYPT_PROTOCOL 0
++#define CONFIG_FFRTMPHTTP_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_FTP_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_GOPHERS_PROTOCOL 0
++#define CONFIG_HLS_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_HTTPPROXY_PROTOCOL 0
++#define CONFIG_HTTPS_PROTOCOL 0
++#define CONFIG_ICECAST_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_PROMPEG_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPTS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_SCTP_PROTOCOL 0
++#define CONFIG_SRTP_PROTOCOL 0
++#define CONFIG_SUBFILE_PROTOCOL 0
++#define CONFIG_TEE_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_TLS_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_UDPLITE_PROTOCOL 0
++#define CONFIG_UNIX_PROTOCOL 0
++#define CONFIG_LIBAMQP_PROTOCOL 0
++#define CONFIG_LIBRIST_PROTOCOL 0
++#define CONFIG_LIBRTMP_PROTOCOL 0
++#define CONFIG_LIBRTMPE_PROTOCOL 0
++#define CONFIG_LIBRTMPS_PROTOCOL 0
++#define CONFIG_LIBRTMPT_PROTOCOL 0
++#define CONFIG_LIBRTMPTE_PROTOCOL 0
++#define CONFIG_LIBSRT_PROTOCOL 0
++#define CONFIG_LIBSSH_PROTOCOL 0
++#define CONFIG_LIBSMBCLIENT_PROTOCOL 0
++#define CONFIG_LIBZMQ_PROTOCOL 0
++#endif /* FFMPEG_CONFIG_H */
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/bsf_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/bsf_list.c
+@@ -0,0 +1,2 @@
++static const AVBitStreamFilter * const bitstream_filters[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/codec_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/codec_list.c
+@@ -0,0 +1,18 @@
++static const AVCodec * const codec_list[] = {
++    &ff_theora_decoder,
++    &ff_vp3_decoder,
++    &ff_vp8_decoder,
++    &ff_flac_decoder,
++    &ff_mp3_decoder,
++    &ff_vorbis_decoder,
++    &ff_pcm_alaw_decoder,
++    &ff_pcm_f32le_decoder,
++    &ff_pcm_mulaw_decoder,
++    &ff_pcm_s16be_decoder,
++    &ff_pcm_s16le_decoder,
++    &ff_pcm_s24be_decoder,
++    &ff_pcm_s24le_decoder,
++    &ff_pcm_s32le_decoder,
++    &ff_pcm_u8_decoder,
++    &ff_libopus_decoder,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/parser_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavcodec/parser_list.c
+@@ -0,0 +1,9 @@
++static const AVCodecParser * const parser_list[] = {
++    &ff_flac_parser,
++    &ff_mpegaudio_parser,
++    &ff_opus_parser,
++    &ff_vorbis_parser,
++    &ff_vp3_parser,
++    &ff_vp8_parser,
++    &ff_vp9_parser,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/demuxer_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/demuxer_list.c
+@@ -0,0 +1,8 @@
++static const AVInputFormat * const demuxer_list[] = {
++    &ff_flac_demuxer,
++    &ff_matroska_demuxer,
++    &ff_mov_demuxer,
++    &ff_mp3_demuxer,
++    &ff_ogg_demuxer,
++    &ff_wav_demuxer,
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/muxer_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/muxer_list.c
+@@ -0,0 +1,2 @@
++static const AVOutputFormat * const muxer_list[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/protocol_list.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavformat/protocol_list.c
+@@ -0,0 +1,2 @@
++static const URLProtocol * const url_protocols[] = {
++    NULL };
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavutil/avconfig.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavutil/avconfig.h
+@@ -0,0 +1,6 @@
++/* Generated by ffmpeg configure */
++#ifndef AVUTIL_AVCONFIG_H
++#define AVUTIL_AVCONFIG_H
++#define AV_HAVE_BIGENDIAN 0
++#define AV_HAVE_FAST_UNALIGNED 1
++#endif /* AVUTIL_AVCONFIG_H */
+Index: chromium-99.0.4818.0/third_party/ffmpeg/ffmpeg_generated.gni
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/ffmpeg/ffmpeg_generated.gni
++++ chromium-99.0.4818.0/third_party/ffmpeg/ffmpeg_generated.gni
+@@ -375,6 +375,42 @@ if ((is_android && current_cpu == "arm"
+   ]
+ }
+ 
++if  (use_linux_config && current_cpu == "ppc64") {
++  ffmpeg_c_sources += [
++    "libavutil/ppc/float_dsp_init.c",
++    "libavutil/ppc/cpu.c",
++    "libavutil/ppc/float_dsp_altivec.c",
++    "libavutil/ppc/float_dsp_vsx.c",
++    "libavcodec/ppc/fft_init.c",
++    "libavcodec/ppc/fft_vsx.c",
++    "libavcodec/ppc/audiodsp.c",
++    "libavcodec/ppc/blockdsp.c",
++    "libavcodec/ppc/fdctdsp.c",
++    "libavcodec/ppc/fmtconvert_altivec.c",
++    "libavcodec/ppc/h264chroma_init.c",
++    "libavcodec/ppc/hpeldsp_altivec.c",
++    "libavcodec/ppc/idctdsp.c",
++    "libavcodec/ppc/lossless_audiodsp_altivec.c",
++    "libavcodec/ppc/lossless_videodsp_altivec.c",
++    "libavcodec/ppc/me_cmp.c",
++    "libavcodec/ppc/mpegaudiodsp_altivec.c",
++    "libavcodec/ppc/mpegvideo_altivec.c",
++    "libavcodec/ppc/mpegvideodsp.c",
++    "libavcodec/ppc/mpegvideoencdsp.c",
++    "libavcodec/ppc/pixblockdsp.c",
++    "libavcodec/ppc/svq1enc_altivec.c",
++    "libavcodec/ppc/vc1dsp_altivec.c",
++    "libavcodec/ppc/videodsp.c",
++    "libavcodec/ppc/vorbisdsp_altivec.c",
++    "libavcodec/ppc/vp3dsp_altivec.c",
++    "libavcodec/ppc/vp8dsp_altivec.c",
++  ]
++  ffmpeg_gas_sources += [
++    "libavcodec/ppc/asm.S",
++    "libavcodec/ppc/fft_altivec.S",
++  ]
++}
++
+ if ((is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/h264_qpel.c",
+Index: chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavutil/ffversion.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/ffmpeg/chromium/config/Chrome/linux/ppc64/libavutil/ffversion.h
+@@ -0,0 +1,5 @@
++/* Automatically generated by version.sh, do not manually edit! */
++#ifndef AVUTIL_FFVERSION_H
++#define AVUTIL_FFVERSION_H
++#define FFMPEG_VERSION "N-104707-g392d8a2d60"
++#endif /* AVUTIL_FFVERSION_H */
diff -urN a/debian/patches/ppc64le/third_party/0003-thirdparty-fix-dav1d-gn.patch b/debian/patches/ppc64le/third_party/0003-thirdparty-fix-dav1d-gn.patch
--- a/debian/patches/ppc64le/third_party/0003-thirdparty-fix-dav1d-gn.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0003-thirdparty-fix-dav1d-gn.patch	2022-02-13 01:38:45.731314597 +0000
@@ -0,0 +1,78 @@
+Index: chromium-99.0.4818.0/third_party/dav1d/generate_source.py
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/dav1d/generate_source.py
++++ chromium-99.0.4818.0/third_party/dav1d/generate_source.py
+@@ -57,6 +57,8 @@ def _WriteGn(fd):
+   _WriteArray(fd, "arm64_asm_sources", _Glob("libdav1d/src/arm/64/*.S"))
+   _WriteArray(fd, "arm_template_sources", _Glob("libdav1d/src/arm/*_tmpl.c"))
+ 
++  _WriteArray(fd, "ppc64_template_sources", _Glob("libdav1d/src/ppc/*_tmpl.c"))
++
+   template_sources = _Glob("libdav1d/src/*_tmpl.c")
+   _WriteArray(fd, "template_sources", template_sources)
+ 
+Index: chromium-99.0.4818.0/third_party/dav1d/dav1d_generated.gni
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/dav1d/dav1d_generated.gni
++++ chromium-99.0.4818.0/third_party/dav1d/dav1d_generated.gni
+@@ -1,4 +1,4 @@
+-# Copyright 2021 The Chromium Authors. All rights reserved.
++# Copyright 2022 The Chromium Authors. All rights reserved.
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
+@@ -112,6 +112,11 @@ arm_template_sources = [
+   "libdav1d/src/arm/mc_init_tmpl.c",
+ ]
+ 
++ppc64_template_sources = [
++  "libdav1d/src/ppc/cdef_init_tmpl.c",
++  "libdav1d/src/ppc/looprestoration_init_tmpl.c",
++]
++
+ template_sources = [
+   "libdav1d/src/cdef_apply_tmpl.c",
+   "libdav1d/src/cdef_tmpl.c",
+Index: chromium-99.0.4818.0/third_party/dav1d/config/linux/ppc64/config.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/dav1d/config/linux/ppc64/config.h
+@@ -0,0 +1,38 @@
++/*
++ * Autogenerated by the Meson build system.
++ * Do not edit, your changes will be lost.
++ */
++
++#pragma once
++
++#define ARCH_AARCH64 0
++
++#define ARCH_ARM 0
++
++#define ARCH_PPC64LE 1
++
++#define ARCH_X86 0
++
++#define ARCH_X86_32 0
++
++#define ARCH_X86_64 0
++
++#define CONFIG_16BPC 1
++
++#define CONFIG_8BPC 1
++
++// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
++
++#define ENDIANNESS_BIG 0
++
++#define HAVE_ASM 1
++
++#define HAVE_CLOCK_GETTIME 1
++
++#define HAVE_DLSYM 1
++
++#define HAVE_GETAUXVAL 1
++
++#define HAVE_POSIX_MEMALIGN 1
++
++#define HAVE_UNISTD_H 1
diff -urN a/debian/patches/ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch b/debian/patches/ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch
--- a/debian/patches/ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,4846 @@
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h
+@@ -0,0 +1,357 @@
++// This file is generated. Do not edit.
++#ifndef VP8_RTCD_H_
++#define VP8_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++/*
++ * VP8
++ */
++
++struct blockd;
++struct macroblockd;
++struct loop_filter_info;
++
++/* Encoder forward decls */
++struct block;
++struct macroblock;
++struct variance_vtable;
++union int_mv;
++struct yv12_buffer_config;
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void vp8_bilinear_predict16x16_c(unsigned char* src_ptr,
++                                 int src_pixels_per_line,
++                                 int xoffset,
++                                 int yoffset,
++                                 unsigned char* dst_ptr,
++                                 int dst_pitch);
++#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_c
++
++void vp8_bilinear_predict4x4_c(unsigned char* src_ptr,
++                               int src_pixels_per_line,
++                               int xoffset,
++                               int yoffset,
++                               unsigned char* dst_ptr,
++                               int dst_pitch);
++#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c
++
++void vp8_bilinear_predict8x4_c(unsigned char* src_ptr,
++                               int src_pixels_per_line,
++                               int xoffset,
++                               int yoffset,
++                               unsigned char* dst_ptr,
++                               int dst_pitch);
++#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_c
++
++void vp8_bilinear_predict8x8_c(unsigned char* src_ptr,
++                               int src_pixels_per_line,
++                               int xoffset,
++                               int yoffset,
++                               unsigned char* dst_ptr,
++                               int dst_pitch);
++#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_c
++
++void vp8_blend_b_c(unsigned char* y,
++                   unsigned char* u,
++                   unsigned char* v,
++                   int y_1,
++                   int u_1,
++                   int v_1,
++                   int alpha,
++                   int stride);
++#define vp8_blend_b vp8_blend_b_c
++
++void vp8_blend_mb_inner_c(unsigned char* y,
++                          unsigned char* u,
++                          unsigned char* v,
++                          int y_1,
++                          int u_1,
++                          int v_1,
++                          int alpha,
++                          int stride);
++#define vp8_blend_mb_inner vp8_blend_mb_inner_c
++
++void vp8_blend_mb_outer_c(unsigned char* y,
++                          unsigned char* u,
++                          unsigned char* v,
++                          int y_1,
++                          int u_1,
++                          int v_1,
++                          int alpha,
++                          int stride);
++#define vp8_blend_mb_outer vp8_blend_mb_outer_c
++
++int vp8_block_error_c(short* coeff, short* dqcoeff);
++#define vp8_block_error vp8_block_error_c
++
++void vp8_copy32xn_c(const unsigned char* src_ptr,
++                    int src_stride,
++                    unsigned char* dst_ptr,
++                    int dst_stride,
++                    int height);
++#define vp8_copy32xn vp8_copy32xn_c
++
++void vp8_copy_mem16x16_c(unsigned char* src,
++                         int src_stride,
++                         unsigned char* dst,
++                         int dst_stride);
++#define vp8_copy_mem16x16 vp8_copy_mem16x16_c
++
++void vp8_copy_mem8x4_c(unsigned char* src,
++                       int src_stride,
++                       unsigned char* dst,
++                       int dst_stride);
++#define vp8_copy_mem8x4 vp8_copy_mem8x4_c
++
++void vp8_copy_mem8x8_c(unsigned char* src,
++                       int src_stride,
++                       unsigned char* dst,
++                       int dst_stride);
++#define vp8_copy_mem8x8 vp8_copy_mem8x8_c
++
++void vp8_dc_only_idct_add_c(short input_dc,
++                            unsigned char* pred_ptr,
++                            int pred_stride,
++                            unsigned char* dst_ptr,
++                            int dst_stride);
++#define vp8_dc_only_idct_add vp8_dc_only_idct_add_c
++
++int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y,
++                          int mc_avg_y_stride,
++                          unsigned char* running_avg_y,
++                          int avg_y_stride,
++                          unsigned char* sig,
++                          int sig_stride,
++                          unsigned int motion_magnitude,
++                          int increase_denoising);
++#define vp8_denoiser_filter vp8_denoiser_filter_c
++
++int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg,
++                             int mc_avg_stride,
++                             unsigned char* running_avg,
++                             int avg_stride,
++                             unsigned char* sig,
++                             int sig_stride,
++                             unsigned int motion_magnitude,
++                             int increase_denoising);
++#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_c
++
++void vp8_dequant_idct_add_c(short* input,
++                            short* dq,
++                            unsigned char* dest,
++                            int stride);
++#define vp8_dequant_idct_add vp8_dequant_idct_add_c
++
++void vp8_dequant_idct_add_uv_block_c(short* q,
++                                     short* dq,
++                                     unsigned char* dst_u,
++                                     unsigned char* dst_v,
++                                     int stride,
++                                     char* eobs);
++#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_c
++
++void vp8_dequant_idct_add_y_block_c(short* q,
++                                    short* dq,
++                                    unsigned char* dst,
++                                    int stride,
++                                    char* eobs);
++#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_c
++
++void vp8_dequantize_b_c(struct blockd*, short* DQC);
++#define vp8_dequantize_b vp8_dequantize_b_c
++
++int vp8_diamond_search_sad_c(struct macroblock* x,
++                             struct block* b,
++                             struct blockd* d,
++                             union int_mv* ref_mv,
++                             union int_mv* best_mv,
++                             int search_param,
++                             int sad_per_bit,
++                             int* num00,
++                             struct variance_vtable* fn_ptr,
++                             int* mvcost[2],
++                             union int_mv* center_mv);
++#define vp8_diamond_search_sad vp8_diamond_search_sad_c
++
++void vp8_fast_quantize_b_c(struct block*, struct blockd*);
++#define vp8_fast_quantize_b vp8_fast_quantize_b_c
++
++void vp8_filter_by_weight16x16_c(unsigned char* src,
++                                 int src_stride,
++                                 unsigned char* dst,
++                                 int dst_stride,
++                                 int src_weight);
++#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
++
++void vp8_filter_by_weight4x4_c(unsigned char* src,
++                               int src_stride,
++                               unsigned char* dst,
++                               int dst_stride,
++                               int src_weight);
++#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
++
++void vp8_filter_by_weight8x8_c(unsigned char* src,
++                               int src_stride,
++                               unsigned char* dst,
++                               int dst_stride,
++                               int src_weight);
++#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
++
++int vp8_full_search_sad_c(struct macroblock* x,
++                          struct block* b,
++                          struct blockd* d,
++                          union int_mv* ref_mv,
++                          int sad_per_bit,
++                          int distance,
++                          struct variance_vtable* fn_ptr,
++                          int* mvcost[2],
++                          union int_mv* center_mv);
++#define vp8_full_search_sad vp8_full_search_sad_c
++
++void vp8_loop_filter_bh_c(unsigned char* y_ptr,
++                          unsigned char* u_ptr,
++                          unsigned char* v_ptr,
++                          int y_stride,
++                          int uv_stride,
++                          struct loop_filter_info* lfi);
++#define vp8_loop_filter_bh vp8_loop_filter_bh_c
++
++void vp8_loop_filter_bv_c(unsigned char* y_ptr,
++                          unsigned char* u_ptr,
++                          unsigned char* v_ptr,
++                          int y_stride,
++                          int uv_stride,
++                          struct loop_filter_info* lfi);
++#define vp8_loop_filter_bv vp8_loop_filter_bv_c
++
++void vp8_loop_filter_mbh_c(unsigned char* y_ptr,
++                           unsigned char* u_ptr,
++                           unsigned char* v_ptr,
++                           int y_stride,
++                           int uv_stride,
++                           struct loop_filter_info* lfi);
++#define vp8_loop_filter_mbh vp8_loop_filter_mbh_c
++
++void vp8_loop_filter_mbv_c(unsigned char* y_ptr,
++                           unsigned char* u_ptr,
++                           unsigned char* v_ptr,
++                           int y_stride,
++                           int uv_stride,
++                           struct loop_filter_info* lfi);
++#define vp8_loop_filter_mbv vp8_loop_filter_mbv_c
++
++void vp8_loop_filter_bhs_c(unsigned char* y_ptr,
++                           int y_stride,
++                           const unsigned char* blimit);
++#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c
++
++void vp8_loop_filter_bvs_c(unsigned char* y_ptr,
++                           int y_stride,
++                           const unsigned char* blimit);
++#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c
++
++void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y_ptr,
++                                              int y_stride,
++                                              const unsigned char* blimit);
++#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c
++
++void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y_ptr,
++                                            int y_stride,
++                                            const unsigned char* blimit);
++#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c
++
++int vp8_mbblock_error_c(struct macroblock* mb, int dc);
++#define vp8_mbblock_error vp8_mbblock_error_c
++
++int vp8_mbuverror_c(struct macroblock* mb);
++#define vp8_mbuverror vp8_mbuverror_c
++
++int vp8_refining_search_sad_c(struct macroblock* x,
++                              struct block* b,
++                              struct blockd* d,
++                              union int_mv* ref_mv,
++                              int error_per_bit,
++                              int search_range,
++                              struct variance_vtable* fn_ptr,
++                              int* mvcost[2],
++                              union int_mv* center_mv);
++#define vp8_refining_search_sad vp8_refining_search_sad_c
++
++void vp8_regular_quantize_b_c(struct block*, struct blockd*);
++#define vp8_regular_quantize_b vp8_regular_quantize_b_c
++
++void vp8_short_fdct4x4_c(short* input, short* output, int pitch);
++#define vp8_short_fdct4x4 vp8_short_fdct4x4_c
++
++void vp8_short_fdct8x4_c(short* input, short* output, int pitch);
++#define vp8_short_fdct8x4 vp8_short_fdct8x4_c
++
++void vp8_short_idct4x4llm_c(short* input,
++                            unsigned char* pred_ptr,
++                            int pred_stride,
++                            unsigned char* dst_ptr,
++                            int dst_stride);
++#define vp8_short_idct4x4llm vp8_short_idct4x4llm_c
++
++void vp8_short_inv_walsh4x4_c(short* input, short* mb_dqcoeff);
++#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_c
++
++void vp8_short_inv_walsh4x4_1_c(short* input, short* mb_dqcoeff);
++#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
++
++void vp8_short_walsh4x4_c(short* input, short* output, int pitch);
++#define vp8_short_walsh4x4 vp8_short_walsh4x4_c
++
++void vp8_sixtap_predict16x16_c(unsigned char* src_ptr,
++                               int src_pixels_per_line,
++                               int xoffset,
++                               int yoffset,
++                               unsigned char* dst_ptr,
++                               int dst_pitch);
++#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_c
++
++void vp8_sixtap_predict4x4_c(unsigned char* src_ptr,
++                             int src_pixels_per_line,
++                             int xoffset,
++                             int yoffset,
++                             unsigned char* dst_ptr,
++                             int dst_pitch);
++#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_c
++
++void vp8_sixtap_predict8x4_c(unsigned char* src_ptr,
++                             int src_pixels_per_line,
++                             int xoffset,
++                             int yoffset,
++                             unsigned char* dst_ptr,
++                             int dst_pitch);
++#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_c
++
++void vp8_sixtap_predict8x8_c(unsigned char* src_ptr,
++                             int src_pixels_per_line,
++                             int xoffset,
++                             int yoffset,
++                             unsigned char* dst_ptr,
++                             int dst_pitch);
++#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_c
++
++void vp8_rtcd(void);
++
++#include "vpx_config.h"
++
++#ifdef RTCD_C
++static void setup_rtcd_internal(void) {}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h
+@@ -0,0 +1,275 @@
++// This file is generated. Do not edit.
++#ifndef VP9_RTCD_H_
++#define VP9_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++/*
++ * VP9
++ */
++
++#include "vp9/common/vp9_common.h"
++#include "vp9/common/vp9_enums.h"
++#include "vp9/common/vp9_filter.h"
++#include "vpx/vpx_integer.h"
++
++struct macroblockd;
++
++/* Encoder forward decls */
++struct macroblock;
++struct vp9_variance_vtable;
++struct search_site_config;
++struct mv;
++union int_mv;
++struct yv12_buffer_config;
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++int64_t vp9_block_error_c(const tran_low_t* coeff,
++                          const tran_low_t* dqcoeff,
++                          intptr_t block_size,
++                          int64_t* ssz);
++#define vp9_block_error vp9_block_error_c
++
++int64_t vp9_block_error_fp_c(const tran_low_t* coeff,
++                             const tran_low_t* dqcoeff,
++                             int block_size);
++#define vp9_block_error_fp vp9_block_error_fp_c
++
++int vp9_denoiser_filter_c(const uint8_t* sig,
++                          int sig_stride,
++                          const uint8_t* mc_avg,
++                          int mc_avg_stride,
++                          uint8_t* avg,
++                          int avg_stride,
++                          int increase_denoising,
++                          BLOCK_SIZE bs,
++                          int motion_magnitude);
++#define vp9_denoiser_filter vp9_denoiser_filter_c
++
++int vp9_diamond_search_sad_c(const struct macroblock* x,
++                             const struct search_site_config* cfg,
++                             struct mv* ref_mv,
++                             struct mv* best_mv,
++                             int search_param,
++                             int sad_per_bit,
++                             int* num00,
++                             const struct vp9_variance_vtable* fn_ptr,
++                             const struct mv* center_mv);
++#define vp9_diamond_search_sad vp9_diamond_search_sad_c
++
++void vp9_fht16x16_c(const int16_t* input,
++                    tran_low_t* output,
++                    int stride,
++                    int tx_type);
++#define vp9_fht16x16 vp9_fht16x16_c
++
++void vp9_fht4x4_c(const int16_t* input,
++                  tran_low_t* output,
++                  int stride,
++                  int tx_type);
++#define vp9_fht4x4 vp9_fht4x4_c
++
++void vp9_fht8x8_c(const int16_t* input,
++                  tran_low_t* output,
++                  int stride,
++                  int tx_type);
++#define vp9_fht8x8 vp9_fht8x8_c
++
++void vp9_filter_by_weight16x16_c(const uint8_t* src,
++                                 int src_stride,
++                                 uint8_t* dst,
++                                 int dst_stride,
++                                 int src_weight);
++#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
++
++void vp9_filter_by_weight8x8_c(const uint8_t* src,
++                               int src_stride,
++                               uint8_t* dst,
++                               int dst_stride,
++                               int src_weight);
++#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
++
++void vp9_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
++#define vp9_fwht4x4 vp9_fwht4x4_c
++
++int64_t vp9_highbd_block_error_c(const tran_low_t* coeff,
++                                 const tran_low_t* dqcoeff,
++                                 intptr_t block_size,
++                                 int64_t* ssz,
++                                 int bd);
++#define vp9_highbd_block_error vp9_highbd_block_error_c
++
++void vp9_highbd_fht16x16_c(const int16_t* input,
++                           tran_low_t* output,
++                           int stride,
++                           int tx_type);
++#define vp9_highbd_fht16x16 vp9_highbd_fht16x16_c
++
++void vp9_highbd_fht4x4_c(const int16_t* input,
++                         tran_low_t* output,
++                         int stride,
++                         int tx_type);
++#define vp9_highbd_fht4x4 vp9_highbd_fht4x4_c
++
++void vp9_highbd_fht8x8_c(const int16_t* input,
++                         tran_low_t* output,
++                         int stride,
++                         int tx_type);
++#define vp9_highbd_fht8x8 vp9_highbd_fht8x8_c
++
++void vp9_highbd_fwht4x4_c(const int16_t* input, tran_low_t* output, int stride);
++#define vp9_highbd_fwht4x4 vp9_highbd_fwht4x4_c
++
++void vp9_highbd_iht16x16_256_add_c(const tran_low_t* input,
++                                   uint16_t* dest,
++                                   int stride,
++                                   int tx_type,
++                                   int bd);
++#define vp9_highbd_iht16x16_256_add vp9_highbd_iht16x16_256_add_c
++
++void vp9_highbd_iht4x4_16_add_c(const tran_low_t* input,
++                                uint16_t* dest,
++                                int stride,
++                                int tx_type,
++                                int bd);
++#define vp9_highbd_iht4x4_16_add vp9_highbd_iht4x4_16_add_c
++
++void vp9_highbd_iht8x8_64_add_c(const tran_low_t* input,
++                                uint16_t* dest,
++                                int stride,
++                                int tx_type,
++                                int bd);
++#define vp9_highbd_iht8x8_64_add vp9_highbd_iht8x8_64_add_c
++
++void vp9_highbd_mbpost_proc_across_ip_c(uint16_t* src,
++                                        int pitch,
++                                        int rows,
++                                        int cols,
++                                        int flimit);
++#define vp9_highbd_mbpost_proc_across_ip vp9_highbd_mbpost_proc_across_ip_c
++
++void vp9_highbd_mbpost_proc_down_c(uint16_t* dst,
++                                   int pitch,
++                                   int rows,
++                                   int cols,
++                                   int flimit);
++#define vp9_highbd_mbpost_proc_down vp9_highbd_mbpost_proc_down_c
++
++void vp9_highbd_post_proc_down_and_across_c(const uint16_t* src_ptr,
++                                            uint16_t* dst_ptr,
++                                            int src_pixels_per_line,
++                                            int dst_pixels_per_line,
++                                            int rows,
++                                            int cols,
++                                            int flimit);
++#define vp9_highbd_post_proc_down_and_across \
++  vp9_highbd_post_proc_down_and_across_c
++
++void vp9_highbd_quantize_fp_c(const tran_low_t* coeff_ptr,
++                              intptr_t n_coeffs,
++                              int skip_block,
++                              const int16_t* round_ptr,
++                              const int16_t* quant_ptr,
++                              tran_low_t* qcoeff_ptr,
++                              tran_low_t* dqcoeff_ptr,
++                              const int16_t* dequant_ptr,
++                              uint16_t* eob_ptr,
++                              const int16_t* scan,
++                              const int16_t* iscan);
++#define vp9_highbd_quantize_fp vp9_highbd_quantize_fp_c
++
++void vp9_highbd_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
++                                    intptr_t n_coeffs,
++                                    int skip_block,
++                                    const int16_t* round_ptr,
++                                    const int16_t* quant_ptr,
++                                    tran_low_t* qcoeff_ptr,
++                                    tran_low_t* dqcoeff_ptr,
++                                    const int16_t* dequant_ptr,
++                                    uint16_t* eob_ptr,
++                                    const int16_t* scan,
++                                    const int16_t* iscan);
++#define vp9_highbd_quantize_fp_32x32 vp9_highbd_quantize_fp_32x32_c
++
++void vp9_highbd_temporal_filter_apply_c(const uint8_t* frame1,
++                                        unsigned int stride,
++                                        const uint8_t* frame2,
++                                        unsigned int block_width,
++                                        unsigned int block_height,
++                                        int strength,
++                                        int* blk_fw,
++                                        int use_32x32,
++                                        uint32_t* accumulator,
++                                        uint16_t* count);
++#define vp9_highbd_temporal_filter_apply vp9_highbd_temporal_filter_apply_c
++
++void vp9_iht16x16_256_add_c(const tran_low_t* input,
++                            uint8_t* dest,
++                            int stride,
++                            int tx_type);
++#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
++
++void vp9_iht4x4_16_add_c(const tran_low_t* input,
++                         uint8_t* dest,
++                         int stride,
++                         int tx_type);
++#define vp9_iht4x4_16_add vp9_iht4x4_16_add_c
++
++void vp9_iht8x8_64_add_c(const tran_low_t* input,
++                         uint8_t* dest,
++                         int stride,
++                         int tx_type);
++#define vp9_iht8x8_64_add vp9_iht8x8_64_add_c
++
++void vp9_quantize_fp_c(const tran_low_t* coeff_ptr,
++                       intptr_t n_coeffs,
++                       int skip_block,
++                       const int16_t* round_ptr,
++                       const int16_t* quant_ptr,
++                       tran_low_t* qcoeff_ptr,
++                       tran_low_t* dqcoeff_ptr,
++                       const int16_t* dequant_ptr,
++                       uint16_t* eob_ptr,
++                       const int16_t* scan,
++                       const int16_t* iscan);
++#define vp9_quantize_fp vp9_quantize_fp_c
++
++void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
++                             intptr_t n_coeffs,
++                             int skip_block,
++                             const int16_t* round_ptr,
++                             const int16_t* quant_ptr,
++                             tran_low_t* qcoeff_ptr,
++                             tran_low_t* dqcoeff_ptr,
++                             const int16_t* dequant_ptr,
++                             uint16_t* eob_ptr,
++                             const int16_t* scan,
++                             const int16_t* iscan);
++#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
++
++void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src,
++                                  struct yv12_buffer_config* dst,
++                                  INTERP_FILTER filter_type,
++                                  int phase_scaler);
++#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c
++
++void vp9_rtcd(void);
++
++#include "vpx_config.h"
++
++#ifdef RTCD_C
++static void setup_rtcd_internal(void) {}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm
+@@ -0,0 +1,98 @@
++@ This file was created from a .asm file
++@  using the ads2gas.pl script.
++	.syntax unified
++.equ VPX_ARCH_ARM ,  0
++.equ ARCH_ARM ,  0
++.equ VPX_ARCH_MIPS ,  0
++.equ ARCH_MIPS ,  0
++.equ VPX_ARCH_X86 ,  0
++.equ ARCH_X86 ,  0
++.equ VPX_ARCH_X86_64 ,  0
++.equ ARCH_X86_64 ,  0
++.equ VPX_ARCH_PPC ,  0
++.equ ARCH_PPC ,  0
++.equ HAVE_NEON ,  0
++.equ HAVE_NEON_ASM ,  0
++.equ HAVE_MIPS32 ,  0
++.equ HAVE_DSPR2 ,  0
++.equ HAVE_MSA ,  0
++.equ HAVE_MIPS64 ,  0
++.equ HAVE_MMX ,  0
++.equ HAVE_SSE ,  0
++.equ HAVE_SSE2 ,  0
++.equ HAVE_SSE3 ,  0
++.equ HAVE_SSSE3 ,  0
++.equ HAVE_SSE4_1 ,  0
++.equ HAVE_AVX ,  0
++.equ HAVE_AVX2 ,  0
++.equ HAVE_AVX512 ,  0
++.equ HAVE_VSX ,  0
++.equ HAVE_MMI ,  0
++.equ HAVE_VPX_PORTS ,  1
++.equ HAVE_PTHREAD_H ,  1
++.equ HAVE_UNISTD_H ,  0
++.equ CONFIG_DEPENDENCY_TRACKING ,  1
++.equ CONFIG_EXTERNAL_BUILD ,  1
++.equ CONFIG_INSTALL_DOCS ,  0
++.equ CONFIG_INSTALL_BINS ,  1
++.equ CONFIG_INSTALL_LIBS ,  1
++.equ CONFIG_INSTALL_SRCS ,  0
++.equ CONFIG_DEBUG ,  0
++.equ CONFIG_GPROF ,  0
++.equ CONFIG_GCOV ,  0
++.equ CONFIG_RVCT ,  0
++.equ CONFIG_GCC ,  1
++.equ CONFIG_MSVS ,  0
++.equ CONFIG_PIC ,  0
++.equ CONFIG_BIG_ENDIAN ,  0
++.equ CONFIG_CODEC_SRCS ,  0
++.equ CONFIG_DEBUG_LIBS ,  0
++.equ CONFIG_DEQUANT_TOKENS ,  0
++.equ CONFIG_DC_RECON ,  0
++.equ CONFIG_RUNTIME_CPU_DETECT ,  0
++.equ CONFIG_POSTPROC ,  1
++.equ CONFIG_VP9_POSTPROC ,  1
++.equ CONFIG_MULTITHREAD ,  1
++.equ CONFIG_INTERNAL_STATS ,  0
++.equ CONFIG_VP8_ENCODER ,  1
++.equ CONFIG_VP8_DECODER ,  1
++.equ CONFIG_VP9_ENCODER ,  1
++.equ CONFIG_VP9_DECODER ,  1
++.equ CONFIG_VP8 ,  1
++.equ CONFIG_VP9 ,  1
++.equ CONFIG_ENCODERS ,  1
++.equ CONFIG_DECODERS ,  1
++.equ CONFIG_STATIC_MSVCRT ,  0
++.equ CONFIG_SPATIAL_RESAMPLING ,  1
++.equ CONFIG_REALTIME_ONLY ,  1
++.equ CONFIG_ONTHEFLY_BITPACKING ,  0
++.equ CONFIG_ERROR_CONCEALMENT ,  0
++.equ CONFIG_SHARED ,  0
++.equ CONFIG_STATIC ,  1
++.equ CONFIG_SMALL ,  0
++.equ CONFIG_POSTPROC_VISUALIZER ,  0
++.equ CONFIG_OS_SUPPORT ,  1
++.equ CONFIG_UNIT_TESTS ,  1
++.equ CONFIG_WEBM_IO ,  1
++.equ CONFIG_LIBYUV ,  0
++.equ CONFIG_DECODE_PERF_TESTS ,  0
++.equ CONFIG_ENCODE_PERF_TESTS ,  0
++.equ CONFIG_MULTI_RES_ENCODING ,  1
++.equ CONFIG_TEMPORAL_DENOISING ,  1
++.equ CONFIG_VP9_TEMPORAL_DENOISING ,  1
++.equ CONFIG_CONSISTENT_RECODE ,  0
++.equ CONFIG_COEFFICIENT_RANGE_CHECKING ,  0
++.equ CONFIG_VP9_HIGHBITDEPTH ,  1
++.equ CONFIG_BETTER_HW_COMPATIBILITY ,  0
++.equ CONFIG_EXPERIMENTAL ,  0
++.equ CONFIG_SIZE_LIMIT ,  1
++.equ CONFIG_ALWAYS_ADJUST_BPM ,  0
++.equ CONFIG_BITSTREAM_DEBUG ,  0
++.equ CONFIG_MISMATCH_DEBUG ,  0
++.equ CONFIG_FP_MB_STATS ,  0
++.equ CONFIG_EMULATE_HARDWARE ,  0
++.equ CONFIG_NON_GREEDY_MV ,  0
++.equ CONFIG_RATE_CTRL ,  0
++.equ DECODE_WIDTH_LIMIT ,  16384
++.equ DECODE_HEIGHT_LIMIT ,  16384
++	.section	.note.GNU-stack,"",%progbits
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.c
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.c
+@@ -0,0 +1,10 @@
++/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
++/*  */
++/* Use of this source code is governed by a BSD-style license */
++/* that can be found in the LICENSE file in the root of the source */
++/* tree. An additional intellectual property rights grant can be found */
++/* in the file PATENTS.  All contributing project authors may */
++/* be found in the AUTHORS file in the root of the source tree. */
++#include "vpx/vpx_codec.h"
++static const char* const cfg = "--target=generic-gnu --enable-vp9-highbitdepth --enable-external-build --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --size-limit=16384x16384 --enable-realtime-only --disable-install-docs --disable-libyuv";
++const char *vpx_codec_build_config(void) {return cfg;}
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_config.h
+@@ -0,0 +1,107 @@
++/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
++/*  */
++/* Use of this source code is governed by a BSD-style license */
++/* that can be found in the LICENSE file in the root of the source */
++/* tree. An additional intellectual property rights grant can be found */
++/* in the file PATENTS.  All contributing project authors may */
++/* be found in the AUTHORS file in the root of the source tree. */
++/* This file automatically generated by configure. Do not edit! */
++#ifndef VPX_CONFIG_H
++#define VPX_CONFIG_H
++#define RESTRICT    
++#define INLINE      inline
++#define VPX_ARCH_ARM 0
++#define ARCH_ARM 0
++#define VPX_ARCH_MIPS 0
++#define ARCH_MIPS 0
++#define VPX_ARCH_X86 0
++#define ARCH_X86 0
++#define VPX_ARCH_X86_64 0
++#define ARCH_X86_64 0
++#define VPX_ARCH_PPC 0
++#define ARCH_PPC 0
++#define HAVE_NEON 0
++#define HAVE_NEON_ASM 0
++#define HAVE_MIPS32 0
++#define HAVE_DSPR2 0
++#define HAVE_MSA 0
++#define HAVE_MIPS64 0
++#define HAVE_MMX 0
++#define HAVE_SSE 0
++#define HAVE_SSE2 0
++#define HAVE_SSE3 0
++#define HAVE_SSSE3 0
++#define HAVE_SSE4_1 0
++#define HAVE_AVX 0
++#define HAVE_AVX2 0
++#define HAVE_AVX512 0
++#define HAVE_VSX 0
++#define HAVE_MMI 0
++#define HAVE_VPX_PORTS 1
++#define HAVE_PTHREAD_H 1
++#define HAVE_UNISTD_H 0
++#define CONFIG_DEPENDENCY_TRACKING 1
++#define CONFIG_EXTERNAL_BUILD 1
++#define CONFIG_INSTALL_DOCS 0
++#define CONFIG_INSTALL_BINS 1
++#define CONFIG_INSTALL_LIBS 1
++#define CONFIG_INSTALL_SRCS 0
++#define CONFIG_DEBUG 0
++#define CONFIG_GPROF 0
++#define CONFIG_GCOV 0
++#define CONFIG_RVCT 0
++#define CONFIG_GCC 1
++#define CONFIG_MSVS 0
++#define CONFIG_PIC 0
++#define CONFIG_BIG_ENDIAN 0
++#define CONFIG_CODEC_SRCS 0
++#define CONFIG_DEBUG_LIBS 0
++#define CONFIG_DEQUANT_TOKENS 0
++#define CONFIG_DC_RECON 0
++#define CONFIG_RUNTIME_CPU_DETECT 0
++#define CONFIG_POSTPROC 1
++#define CONFIG_VP9_POSTPROC 1
++#define CONFIG_MULTITHREAD 1
++#define CONFIG_INTERNAL_STATS 0
++#define CONFIG_VP8_ENCODER 1
++#define CONFIG_VP8_DECODER 1
++#define CONFIG_VP9_ENCODER 1
++#define CONFIG_VP9_DECODER 1
++#define CONFIG_VP8 1
++#define CONFIG_VP9 1
++#define CONFIG_ENCODERS 1
++#define CONFIG_DECODERS 1
++#define CONFIG_STATIC_MSVCRT 0
++#define CONFIG_SPATIAL_RESAMPLING 1
++#define CONFIG_REALTIME_ONLY 1
++#define CONFIG_ONTHEFLY_BITPACKING 0
++#define CONFIG_ERROR_CONCEALMENT 0
++#define CONFIG_SHARED 0
++#define CONFIG_STATIC 1
++#define CONFIG_SMALL 0
++#define CONFIG_POSTPROC_VISUALIZER 0
++#define CONFIG_OS_SUPPORT 1
++#define CONFIG_UNIT_TESTS 1
++#define CONFIG_WEBM_IO 1
++#define CONFIG_LIBYUV 0
++#define CONFIG_DECODE_PERF_TESTS 0
++#define CONFIG_ENCODE_PERF_TESTS 0
++#define CONFIG_MULTI_RES_ENCODING 1
++#define CONFIG_TEMPORAL_DENOISING 1
++#define CONFIG_VP9_TEMPORAL_DENOISING 1
++#define CONFIG_CONSISTENT_RECODE 0
++#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
++#define CONFIG_VP9_HIGHBITDEPTH 1
++#define CONFIG_BETTER_HW_COMPATIBILITY 0
++#define CONFIG_EXPERIMENTAL 0
++#define CONFIG_SIZE_LIMIT 1
++#define CONFIG_ALWAYS_ADJUST_BPM 0
++#define CONFIG_BITSTREAM_DEBUG 0
++#define CONFIG_MISMATCH_DEBUG 0
++#define CONFIG_FP_MB_STATS 0
++#define CONFIG_EMULATE_HARDWARE 0
++#define CONFIG_NON_GREEDY_MV 0
++#define CONFIG_RATE_CTRL 0
++#define DECODE_WIDTH_LIMIT 16384
++#define DECODE_HEIGHT_LIMIT 16384
++#endif /* VPX_CONFIG_H */
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h
+@@ -0,0 +1,3868 @@
++// This file is generated. Do not edit.
++#ifndef VPX_DSP_RTCD_H_
++#define VPX_DSP_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++/*
++ * DSP
++ */
++
++#include "vpx/vpx_integer.h"
++#include "vpx_dsp/vpx_dsp_common.h"
++#include "vpx_dsp/vpx_filter.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++unsigned int vpx_avg_4x4_c(const uint8_t*, int p);
++#define vpx_avg_4x4 vpx_avg_4x4_c
++
++unsigned int vpx_avg_8x8_c(const uint8_t*, int p);
++#define vpx_avg_8x8 vpx_avg_8x8_c
++
++void vpx_comp_avg_pred_c(uint8_t* comp_pred,
++                         const uint8_t* pred,
++                         int width,
++                         int height,
++                         const uint8_t* ref,
++                         int ref_stride);
++#define vpx_comp_avg_pred vpx_comp_avg_pred_c
++
++void vpx_convolve8_c(const uint8_t* src,
++                     ptrdiff_t src_stride,
++                     uint8_t* dst,
++                     ptrdiff_t dst_stride,
++                     const InterpKernel* filter,
++                     int x0_q4,
++                     int x_step_q4,
++                     int y0_q4,
++                     int y_step_q4,
++                     int w,
++                     int h);
++#define vpx_convolve8 vpx_convolve8_c
++
++void vpx_convolve8_avg_c(const uint8_t* src,
++                         ptrdiff_t src_stride,
++                         uint8_t* dst,
++                         ptrdiff_t dst_stride,
++                         const InterpKernel* filter,
++                         int x0_q4,
++                         int x_step_q4,
++                         int y0_q4,
++                         int y_step_q4,
++                         int w,
++                         int h);
++#define vpx_convolve8_avg vpx_convolve8_avg_c
++
++void vpx_convolve8_avg_horiz_c(const uint8_t* src,
++                               ptrdiff_t src_stride,
++                               uint8_t* dst,
++                               ptrdiff_t dst_stride,
++                               const InterpKernel* filter,
++                               int x0_q4,
++                               int x_step_q4,
++                               int y0_q4,
++                               int y_step_q4,
++                               int w,
++                               int h);
++#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_c
++
++void vpx_convolve8_avg_vert_c(const uint8_t* src,
++                              ptrdiff_t src_stride,
++                              uint8_t* dst,
++                              ptrdiff_t dst_stride,
++                              const InterpKernel* filter,
++                              int x0_q4,
++                              int x_step_q4,
++                              int y0_q4,
++                              int y_step_q4,
++                              int w,
++                              int h);
++#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_c
++
++void vpx_convolve8_horiz_c(const uint8_t* src,
++                           ptrdiff_t src_stride,
++                           uint8_t* dst,
++                           ptrdiff_t dst_stride,
++                           const InterpKernel* filter,
++                           int x0_q4,
++                           int x_step_q4,
++                           int y0_q4,
++                           int y_step_q4,
++                           int w,
++                           int h);
++#define vpx_convolve8_horiz vpx_convolve8_horiz_c
++
++void vpx_convolve8_vert_c(const uint8_t* src,
++                          ptrdiff_t src_stride,
++                          uint8_t* dst,
++                          ptrdiff_t dst_stride,
++                          const InterpKernel* filter,
++                          int x0_q4,
++                          int x_step_q4,
++                          int y0_q4,
++                          int y_step_q4,
++                          int w,
++                          int h);
++#define vpx_convolve8_vert vpx_convolve8_vert_c
++
++void vpx_convolve_avg_c(const uint8_t* src,
++                        ptrdiff_t src_stride,
++                        uint8_t* dst,
++                        ptrdiff_t dst_stride,
++                        const InterpKernel* filter,
++                        int x0_q4,
++                        int x_step_q4,
++                        int y0_q4,
++                        int y_step_q4,
++                        int w,
++                        int h);
++#define vpx_convolve_avg vpx_convolve_avg_c
++
++void vpx_convolve_copy_c(const uint8_t* src,
++                         ptrdiff_t src_stride,
++                         uint8_t* dst,
++                         ptrdiff_t dst_stride,
++                         const InterpKernel* filter,
++                         int x0_q4,
++                         int x_step_q4,
++                         int y0_q4,
++                         int y_step_q4,
++                         int w,
++                         int h);
++#define vpx_convolve_copy vpx_convolve_copy_c
++
++void vpx_d117_predictor_16x16_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
++
++void vpx_d117_predictor_32x32_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
++
++void vpx_d117_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
++
++void vpx_d117_predictor_8x8_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
++
++void vpx_d135_predictor_16x16_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
++
++void vpx_d135_predictor_32x32_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
++
++void vpx_d135_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_c
++
++void vpx_d135_predictor_8x8_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
++
++void vpx_d153_predictor_16x16_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
++
++void vpx_d153_predictor_32x32_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
++
++void vpx_d153_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
++
++void vpx_d153_predictor_8x8_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
++
++void vpx_d207_predictor_16x16_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
++
++void vpx_d207_predictor_32x32_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
++
++void vpx_d207_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
++
++void vpx_d207_predictor_8x8_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
++
++void vpx_d45_predictor_16x16_c(uint8_t* dst,
++                               ptrdiff_t stride,
++                               const uint8_t* above,
++                               const uint8_t* left);
++#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_c
++
++void vpx_d45_predictor_32x32_c(uint8_t* dst,
++                               ptrdiff_t stride,
++                               const uint8_t* above,
++                               const uint8_t* left);
++#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
++
++void vpx_d45_predictor_4x4_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_c
++
++void vpx_d45_predictor_8x8_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_c
++
++void vpx_d45e_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
++
++void vpx_d63_predictor_16x16_c(uint8_t* dst,
++                               ptrdiff_t stride,
++                               const uint8_t* above,
++                               const uint8_t* left);
++#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
++
++void vpx_d63_predictor_32x32_c(uint8_t* dst,
++                               ptrdiff_t stride,
++                               const uint8_t* above,
++                               const uint8_t* left);
++#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
++
++void vpx_d63_predictor_4x4_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
++
++void vpx_d63_predictor_8x8_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
++
++void vpx_d63e_predictor_4x4_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
++
++void vpx_dc_128_predictor_16x16_c(uint8_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint8_t* above,
++                                  const uint8_t* left);
++#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_c
++
++void vpx_dc_128_predictor_32x32_c(uint8_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint8_t* above,
++                                  const uint8_t* left);
++#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_c
++
++void vpx_dc_128_predictor_4x4_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_c
++
++void vpx_dc_128_predictor_8x8_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_c
++
++void vpx_dc_left_predictor_16x16_c(uint8_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint8_t* above,
++                                   const uint8_t* left);
++#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_c
++
++void vpx_dc_left_predictor_32x32_c(uint8_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint8_t* above,
++                                   const uint8_t* left);
++#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_c
++
++void vpx_dc_left_predictor_4x4_c(uint8_t* dst,
++                                 ptrdiff_t stride,
++                                 const uint8_t* above,
++                                 const uint8_t* left);
++#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_c
++
++void vpx_dc_left_predictor_8x8_c(uint8_t* dst,
++                                 ptrdiff_t stride,
++                                 const uint8_t* above,
++                                 const uint8_t* left);
++#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_c
++
++void vpx_dc_predictor_16x16_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_c
++
++void vpx_dc_predictor_32x32_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_c
++
++void vpx_dc_predictor_4x4_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_c
++
++void vpx_dc_predictor_8x8_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_c
++
++void vpx_dc_top_predictor_16x16_c(uint8_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint8_t* above,
++                                  const uint8_t* left);
++#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_c
++
++void vpx_dc_top_predictor_32x32_c(uint8_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint8_t* above,
++                                  const uint8_t* left);
++#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_c
++
++void vpx_dc_top_predictor_4x4_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_c
++
++void vpx_dc_top_predictor_8x8_c(uint8_t* dst,
++                                ptrdiff_t stride,
++                                const uint8_t* above,
++                                const uint8_t* left);
++#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_c
++
++void vpx_fdct16x16_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct16x16 vpx_fdct16x16_c
++
++void vpx_fdct16x16_1_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct16x16_1 vpx_fdct16x16_1_c
++
++void vpx_fdct32x32_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct32x32 vpx_fdct32x32_c
++
++void vpx_fdct32x32_1_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct32x32_1 vpx_fdct32x32_1_c
++
++void vpx_fdct32x32_rd_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct32x32_rd vpx_fdct32x32_rd_c
++
++void vpx_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct4x4 vpx_fdct4x4_c
++
++void vpx_fdct4x4_1_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct4x4_1 vpx_fdct4x4_1_c
++
++void vpx_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct8x8 vpx_fdct8x8_c
++
++void vpx_fdct8x8_1_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_fdct8x8_1 vpx_fdct8x8_1_c
++
++void vpx_get16x16var_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* ref_ptr,
++                       int ref_stride,
++                       unsigned int* sse,
++                       int* sum);
++#define vpx_get16x16var vpx_get16x16var_c
++
++unsigned int vpx_get4x4sse_cs_c(const unsigned char* src_ptr,
++                                int src_stride,
++                                const unsigned char* ref_ptr,
++                                int ref_stride);
++#define vpx_get4x4sse_cs vpx_get4x4sse_cs_c
++
++void vpx_get8x8var_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* ref_ptr,
++                     int ref_stride,
++                     unsigned int* sse,
++                     int* sum);
++#define vpx_get8x8var vpx_get8x8var_c
++
++unsigned int vpx_get_mb_ss_c(const int16_t*);
++#define vpx_get_mb_ss vpx_get_mb_ss_c
++
++void vpx_h_predictor_16x16_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_c
++
++void vpx_h_predictor_32x32_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_c
++
++void vpx_h_predictor_4x4_c(uint8_t* dst,
++                           ptrdiff_t stride,
++                           const uint8_t* above,
++                           const uint8_t* left);
++#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_c
++
++void vpx_h_predictor_8x8_c(uint8_t* dst,
++                           ptrdiff_t stride,
++                           const uint8_t* above,
++                           const uint8_t* left);
++#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_c
++
++void vpx_hadamard_16x16_c(const int16_t* src_diff,
++                          ptrdiff_t src_stride,
++                          tran_low_t* coeff);
++#define vpx_hadamard_16x16 vpx_hadamard_16x16_c
++
++void vpx_hadamard_32x32_c(const int16_t* src_diff,
++                          ptrdiff_t src_stride,
++                          tran_low_t* coeff);
++#define vpx_hadamard_32x32 vpx_hadamard_32x32_c
++
++void vpx_hadamard_8x8_c(const int16_t* src_diff,
++                        ptrdiff_t src_stride,
++                        tran_low_t* coeff);
++#define vpx_hadamard_8x8 vpx_hadamard_8x8_c
++
++void vpx_he_predictor_4x4_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
++
++void vpx_highbd_10_get16x16var_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse,
++                                 int* sum);
++#define vpx_highbd_10_get16x16var vpx_highbd_10_get16x16var_c
++
++void vpx_highbd_10_get8x8var_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse,
++                               int* sum);
++#define vpx_highbd_10_get8x8var vpx_highbd_10_get8x8var_c
++
++unsigned int vpx_highbd_10_mse16x16_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      unsigned int* sse);
++#define vpx_highbd_10_mse16x16 vpx_highbd_10_mse16x16_c
++
++unsigned int vpx_highbd_10_mse16x8_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     unsigned int* sse);
++#define vpx_highbd_10_mse16x8 vpx_highbd_10_mse16x8_c
++
++unsigned int vpx_highbd_10_mse8x16_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     unsigned int* sse);
++#define vpx_highbd_10_mse8x16 vpx_highbd_10_mse8x16_c
++
++unsigned int vpx_highbd_10_mse8x8_c(const uint8_t* src_ptr,
++                                    int src_stride,
++                                    const uint8_t* ref_ptr,
++                                    int ref_stride,
++                                    unsigned int* sse);
++#define vpx_highbd_10_mse8x8 vpx_highbd_10_mse8x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance16x16_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance16x16 \
++  vpx_highbd_10_sub_pixel_avg_variance16x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance16x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance16x32 \
++  vpx_highbd_10_sub_pixel_avg_variance16x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance16x8 \
++  vpx_highbd_10_sub_pixel_avg_variance16x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance32x16_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance32x16 \
++  vpx_highbd_10_sub_pixel_avg_variance32x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance32x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance32x32 \
++  vpx_highbd_10_sub_pixel_avg_variance32x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance32x64_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance32x64 \
++  vpx_highbd_10_sub_pixel_avg_variance32x64_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance4x4 \
++  vpx_highbd_10_sub_pixel_avg_variance4x4_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance4x8 \
++  vpx_highbd_10_sub_pixel_avg_variance4x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance64x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance64x32 \
++  vpx_highbd_10_sub_pixel_avg_variance64x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance64x64_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance64x64 \
++  vpx_highbd_10_sub_pixel_avg_variance64x64_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance8x16 \
++  vpx_highbd_10_sub_pixel_avg_variance8x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance8x4 \
++  vpx_highbd_10_sub_pixel_avg_variance8x4_c
++
++uint32_t vpx_highbd_10_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_10_sub_pixel_avg_variance8x8 \
++  vpx_highbd_10_sub_pixel_avg_variance8x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance16x16_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance16x16 \
++  vpx_highbd_10_sub_pixel_variance16x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance16x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance16x32 \
++  vpx_highbd_10_sub_pixel_variance16x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance16x8_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance16x8 \
++  vpx_highbd_10_sub_pixel_variance16x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance32x16_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance32x16 \
++  vpx_highbd_10_sub_pixel_variance32x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance32x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance32x32 \
++  vpx_highbd_10_sub_pixel_variance32x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance32x64_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance32x64 \
++  vpx_highbd_10_sub_pixel_variance32x64_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance4x4_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance4x4 \
++  vpx_highbd_10_sub_pixel_variance4x4_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance4x8_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance4x8 \
++  vpx_highbd_10_sub_pixel_variance4x8_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance64x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance64x32 \
++  vpx_highbd_10_sub_pixel_variance64x32_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance64x64_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance64x64 \
++  vpx_highbd_10_sub_pixel_variance64x64_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance8x16_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance8x16 \
++  vpx_highbd_10_sub_pixel_variance8x16_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance8x4_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance8x4 \
++  vpx_highbd_10_sub_pixel_variance8x4_c
++
++uint32_t vpx_highbd_10_sub_pixel_variance8x8_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_10_sub_pixel_variance8x8 \
++  vpx_highbd_10_sub_pixel_variance8x8_c
++
++unsigned int vpx_highbd_10_variance16x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance16x16 vpx_highbd_10_variance16x16_c
++
++unsigned int vpx_highbd_10_variance16x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance16x32 vpx_highbd_10_variance16x32_c
++
++unsigned int vpx_highbd_10_variance16x8_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_10_variance16x8 vpx_highbd_10_variance16x8_c
++
++unsigned int vpx_highbd_10_variance32x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance32x16 vpx_highbd_10_variance32x16_c
++
++unsigned int vpx_highbd_10_variance32x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance32x32 vpx_highbd_10_variance32x32_c
++
++unsigned int vpx_highbd_10_variance32x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance32x64 vpx_highbd_10_variance32x64_c
++
++unsigned int vpx_highbd_10_variance4x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_10_variance4x4 vpx_highbd_10_variance4x4_c
++
++unsigned int vpx_highbd_10_variance4x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_10_variance4x8 vpx_highbd_10_variance4x8_c
++
++unsigned int vpx_highbd_10_variance64x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance64x32 vpx_highbd_10_variance64x32_c
++
++unsigned int vpx_highbd_10_variance64x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_10_variance64x64 vpx_highbd_10_variance64x64_c
++
++unsigned int vpx_highbd_10_variance8x16_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_10_variance8x16 vpx_highbd_10_variance8x16_c
++
++unsigned int vpx_highbd_10_variance8x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_10_variance8x4 vpx_highbd_10_variance8x4_c
++
++unsigned int vpx_highbd_10_variance8x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_10_variance8x8 vpx_highbd_10_variance8x8_c
++
++void vpx_highbd_12_get16x16var_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse,
++                                 int* sum);
++#define vpx_highbd_12_get16x16var vpx_highbd_12_get16x16var_c
++
++void vpx_highbd_12_get8x8var_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse,
++                               int* sum);
++#define vpx_highbd_12_get8x8var vpx_highbd_12_get8x8var_c
++
++unsigned int vpx_highbd_12_mse16x16_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      unsigned int* sse);
++#define vpx_highbd_12_mse16x16 vpx_highbd_12_mse16x16_c
++
++unsigned int vpx_highbd_12_mse16x8_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     unsigned int* sse);
++#define vpx_highbd_12_mse16x8 vpx_highbd_12_mse16x8_c
++
++unsigned int vpx_highbd_12_mse8x16_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     unsigned int* sse);
++#define vpx_highbd_12_mse8x16 vpx_highbd_12_mse8x16_c
++
++unsigned int vpx_highbd_12_mse8x8_c(const uint8_t* src_ptr,
++                                    int src_stride,
++                                    const uint8_t* ref_ptr,
++                                    int ref_stride,
++                                    unsigned int* sse);
++#define vpx_highbd_12_mse8x8 vpx_highbd_12_mse8x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance16x16_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance16x16 \
++  vpx_highbd_12_sub_pixel_avg_variance16x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance16x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance16x32 \
++  vpx_highbd_12_sub_pixel_avg_variance16x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance16x8 \
++  vpx_highbd_12_sub_pixel_avg_variance16x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance32x16_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance32x16 \
++  vpx_highbd_12_sub_pixel_avg_variance32x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance32x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance32x32 \
++  vpx_highbd_12_sub_pixel_avg_variance32x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance32x64_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance32x64 \
++  vpx_highbd_12_sub_pixel_avg_variance32x64_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance4x4 \
++  vpx_highbd_12_sub_pixel_avg_variance4x4_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance4x8 \
++  vpx_highbd_12_sub_pixel_avg_variance4x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance64x32_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance64x32 \
++  vpx_highbd_12_sub_pixel_avg_variance64x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance64x64_c(
++    const uint8_t* src_ptr,
++    int src_stride,
++    int x_offset,
++    int y_offset,
++    const uint8_t* ref_ptr,
++    int ref_stride,
++    uint32_t* sse,
++    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance64x64 \
++  vpx_highbd_12_sub_pixel_avg_variance64x64_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance8x16 \
++  vpx_highbd_12_sub_pixel_avg_variance8x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance8x4 \
++  vpx_highbd_12_sub_pixel_avg_variance8x4_c
++
++uint32_t vpx_highbd_12_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_12_sub_pixel_avg_variance8x8 \
++  vpx_highbd_12_sub_pixel_avg_variance8x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance16x16_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance16x16 \
++  vpx_highbd_12_sub_pixel_variance16x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance16x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance16x32 \
++  vpx_highbd_12_sub_pixel_variance16x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance16x8_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance16x8 \
++  vpx_highbd_12_sub_pixel_variance16x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance32x16_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance32x16 \
++  vpx_highbd_12_sub_pixel_variance32x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance32x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance32x32 \
++  vpx_highbd_12_sub_pixel_variance32x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance32x64_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance32x64 \
++  vpx_highbd_12_sub_pixel_variance32x64_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance4x4_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance4x4 \
++  vpx_highbd_12_sub_pixel_variance4x4_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance4x8_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance4x8 \
++  vpx_highbd_12_sub_pixel_variance4x8_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance64x32_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance64x32 \
++  vpx_highbd_12_sub_pixel_variance64x32_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance64x64_c(const uint8_t* src_ptr,
++                                                 int src_stride,
++                                                 int x_offset,
++                                                 int y_offset,
++                                                 const uint8_t* ref_ptr,
++                                                 int ref_stride,
++                                                 uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance64x64 \
++  vpx_highbd_12_sub_pixel_variance64x64_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance8x16_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance8x16 \
++  vpx_highbd_12_sub_pixel_variance8x16_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance8x4_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance8x4 \
++  vpx_highbd_12_sub_pixel_variance8x4_c
++
++uint32_t vpx_highbd_12_sub_pixel_variance8x8_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_12_sub_pixel_variance8x8 \
++  vpx_highbd_12_sub_pixel_variance8x8_c
++
++unsigned int vpx_highbd_12_variance16x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance16x16 vpx_highbd_12_variance16x16_c
++
++unsigned int vpx_highbd_12_variance16x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance16x32 vpx_highbd_12_variance16x32_c
++
++unsigned int vpx_highbd_12_variance16x8_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_12_variance16x8 vpx_highbd_12_variance16x8_c
++
++unsigned int vpx_highbd_12_variance32x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance32x16 vpx_highbd_12_variance32x16_c
++
++unsigned int vpx_highbd_12_variance32x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance32x32 vpx_highbd_12_variance32x32_c
++
++unsigned int vpx_highbd_12_variance32x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance32x64 vpx_highbd_12_variance32x64_c
++
++unsigned int vpx_highbd_12_variance4x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_12_variance4x4 vpx_highbd_12_variance4x4_c
++
++unsigned int vpx_highbd_12_variance4x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_12_variance4x8 vpx_highbd_12_variance4x8_c
++
++unsigned int vpx_highbd_12_variance64x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance64x32 vpx_highbd_12_variance64x32_c
++
++unsigned int vpx_highbd_12_variance64x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           unsigned int* sse);
++#define vpx_highbd_12_variance64x64 vpx_highbd_12_variance64x64_c
++
++unsigned int vpx_highbd_12_variance8x16_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_12_variance8x16 vpx_highbd_12_variance8x16_c
++
++unsigned int vpx_highbd_12_variance8x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_12_variance8x4 vpx_highbd_12_variance8x4_c
++
++unsigned int vpx_highbd_12_variance8x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_12_variance8x8 vpx_highbd_12_variance8x8_c
++
++void vpx_highbd_8_get16x16var_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                unsigned int* sse,
++                                int* sum);
++#define vpx_highbd_8_get16x16var vpx_highbd_8_get16x16var_c
++
++void vpx_highbd_8_get8x8var_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* ref_ptr,
++                              int ref_stride,
++                              unsigned int* sse,
++                              int* sum);
++#define vpx_highbd_8_get8x8var vpx_highbd_8_get8x8var_c
++
++unsigned int vpx_highbd_8_mse16x16_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     unsigned int* sse);
++#define vpx_highbd_8_mse16x16 vpx_highbd_8_mse16x16_c
++
++unsigned int vpx_highbd_8_mse16x8_c(const uint8_t* src_ptr,
++                                    int src_stride,
++                                    const uint8_t* ref_ptr,
++                                    int ref_stride,
++                                    unsigned int* sse);
++#define vpx_highbd_8_mse16x8 vpx_highbd_8_mse16x8_c
++
++unsigned int vpx_highbd_8_mse8x16_c(const uint8_t* src_ptr,
++                                    int src_stride,
++                                    const uint8_t* ref_ptr,
++                                    int ref_stride,
++                                    unsigned int* sse);
++#define vpx_highbd_8_mse8x16 vpx_highbd_8_mse8x16_c
++
++unsigned int vpx_highbd_8_mse8x8_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride,
++                                   unsigned int* sse);
++#define vpx_highbd_8_mse8x8 vpx_highbd_8_mse8x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance16x16 \
++  vpx_highbd_8_sub_pixel_avg_variance16x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance16x32 \
++  vpx_highbd_8_sub_pixel_avg_variance16x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance16x8 \
++  vpx_highbd_8_sub_pixel_avg_variance16x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance32x16 \
++  vpx_highbd_8_sub_pixel_avg_variance32x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance32x32 \
++  vpx_highbd_8_sub_pixel_avg_variance32x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance32x64 \
++  vpx_highbd_8_sub_pixel_avg_variance32x64_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr,
++                                                  int src_stride,
++                                                  int x_offset,
++                                                  int y_offset,
++                                                  const uint8_t* ref_ptr,
++                                                  int ref_stride,
++                                                  uint32_t* sse,
++                                                  const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance4x4 \
++  vpx_highbd_8_sub_pixel_avg_variance4x4_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr,
++                                                  int src_stride,
++                                                  int x_offset,
++                                                  int y_offset,
++                                                  const uint8_t* ref_ptr,
++                                                  int ref_stride,
++                                                  uint32_t* sse,
++                                                  const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance4x8 \
++  vpx_highbd_8_sub_pixel_avg_variance4x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance64x32 \
++  vpx_highbd_8_sub_pixel_avg_variance64x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr,
++                                                    int src_stride,
++                                                    int x_offset,
++                                                    int y_offset,
++                                                    const uint8_t* ref_ptr,
++                                                    int ref_stride,
++                                                    uint32_t* sse,
++                                                    const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance64x64 \
++  vpx_highbd_8_sub_pixel_avg_variance64x64_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr,
++                                                   int src_stride,
++                                                   int x_offset,
++                                                   int y_offset,
++                                                   const uint8_t* ref_ptr,
++                                                   int ref_stride,
++                                                   uint32_t* sse,
++                                                   const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance8x16 \
++  vpx_highbd_8_sub_pixel_avg_variance8x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr,
++                                                  int src_stride,
++                                                  int x_offset,
++                                                  int y_offset,
++                                                  const uint8_t* ref_ptr,
++                                                  int ref_stride,
++                                                  uint32_t* sse,
++                                                  const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance8x4 \
++  vpx_highbd_8_sub_pixel_avg_variance8x4_c
++
++uint32_t vpx_highbd_8_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr,
++                                                  int src_stride,
++                                                  int x_offset,
++                                                  int y_offset,
++                                                  const uint8_t* ref_ptr,
++                                                  int ref_stride,
++                                                  uint32_t* sse,
++                                                  const uint8_t* second_pred);
++#define vpx_highbd_8_sub_pixel_avg_variance8x8 \
++  vpx_highbd_8_sub_pixel_avg_variance8x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance16x16_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance16x16 \
++  vpx_highbd_8_sub_pixel_variance16x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance16x32_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance16x32 \
++  vpx_highbd_8_sub_pixel_variance16x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance16x8_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance16x8 \
++  vpx_highbd_8_sub_pixel_variance16x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance32x16_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance32x16 \
++  vpx_highbd_8_sub_pixel_variance32x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance32x32_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance32x32 \
++  vpx_highbd_8_sub_pixel_variance32x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance32x64_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance32x64 \
++  vpx_highbd_8_sub_pixel_variance32x64_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance4x4_c(const uint8_t* src_ptr,
++                                              int src_stride,
++                                              int x_offset,
++                                              int y_offset,
++                                              const uint8_t* ref_ptr,
++                                              int ref_stride,
++                                              uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance4x4 vpx_highbd_8_sub_pixel_variance4x4_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance4x8_c(const uint8_t* src_ptr,
++                                              int src_stride,
++                                              int x_offset,
++                                              int y_offset,
++                                              const uint8_t* ref_ptr,
++                                              int ref_stride,
++                                              uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance4x8 vpx_highbd_8_sub_pixel_variance4x8_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance64x32_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance64x32 \
++  vpx_highbd_8_sub_pixel_variance64x32_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance64x64_c(const uint8_t* src_ptr,
++                                                int src_stride,
++                                                int x_offset,
++                                                int y_offset,
++                                                const uint8_t* ref_ptr,
++                                                int ref_stride,
++                                                uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance64x64 \
++  vpx_highbd_8_sub_pixel_variance64x64_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance8x16_c(const uint8_t* src_ptr,
++                                               int src_stride,
++                                               int x_offset,
++                                               int y_offset,
++                                               const uint8_t* ref_ptr,
++                                               int ref_stride,
++                                               uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance8x16 \
++  vpx_highbd_8_sub_pixel_variance8x16_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance8x4_c(const uint8_t* src_ptr,
++                                              int src_stride,
++                                              int x_offset,
++                                              int y_offset,
++                                              const uint8_t* ref_ptr,
++                                              int ref_stride,
++                                              uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance8x4 vpx_highbd_8_sub_pixel_variance8x4_c
++
++uint32_t vpx_highbd_8_sub_pixel_variance8x8_c(const uint8_t* src_ptr,
++                                              int src_stride,
++                                              int x_offset,
++                                              int y_offset,
++                                              const uint8_t* ref_ptr,
++                                              int ref_stride,
++                                              uint32_t* sse);
++#define vpx_highbd_8_sub_pixel_variance8x8 vpx_highbd_8_sub_pixel_variance8x8_c
++
++unsigned int vpx_highbd_8_variance16x16_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance16x16 vpx_highbd_8_variance16x16_c
++
++unsigned int vpx_highbd_8_variance16x32_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance16x32 vpx_highbd_8_variance16x32_c
++
++unsigned int vpx_highbd_8_variance16x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_8_variance16x8 vpx_highbd_8_variance16x8_c
++
++unsigned int vpx_highbd_8_variance32x16_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance32x16 vpx_highbd_8_variance32x16_c
++
++unsigned int vpx_highbd_8_variance32x32_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance32x32 vpx_highbd_8_variance32x32_c
++
++unsigned int vpx_highbd_8_variance32x64_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance32x64 vpx_highbd_8_variance32x64_c
++
++unsigned int vpx_highbd_8_variance4x4_c(const uint8_t* src_ptr,
++                                        int src_stride,
++                                        const uint8_t* ref_ptr,
++                                        int ref_stride,
++                                        unsigned int* sse);
++#define vpx_highbd_8_variance4x4 vpx_highbd_8_variance4x4_c
++
++unsigned int vpx_highbd_8_variance4x8_c(const uint8_t* src_ptr,
++                                        int src_stride,
++                                        const uint8_t* ref_ptr,
++                                        int ref_stride,
++                                        unsigned int* sse);
++#define vpx_highbd_8_variance4x8 vpx_highbd_8_variance4x8_c
++
++unsigned int vpx_highbd_8_variance64x32_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance64x32 vpx_highbd_8_variance64x32_c
++
++unsigned int vpx_highbd_8_variance64x64_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          unsigned int* sse);
++#define vpx_highbd_8_variance64x64 vpx_highbd_8_variance64x64_c
++
++unsigned int vpx_highbd_8_variance8x16_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         unsigned int* sse);
++#define vpx_highbd_8_variance8x16 vpx_highbd_8_variance8x16_c
++
++unsigned int vpx_highbd_8_variance8x4_c(const uint8_t* src_ptr,
++                                        int src_stride,
++                                        const uint8_t* ref_ptr,
++                                        int ref_stride,
++                                        unsigned int* sse);
++#define vpx_highbd_8_variance8x4 vpx_highbd_8_variance8x4_c
++
++unsigned int vpx_highbd_8_variance8x8_c(const uint8_t* src_ptr,
++                                        int src_stride,
++                                        const uint8_t* ref_ptr,
++                                        int ref_stride,
++                                        unsigned int* sse);
++#define vpx_highbd_8_variance8x8 vpx_highbd_8_variance8x8_c
++
++unsigned int vpx_highbd_avg_4x4_c(const uint8_t* s8, int p);
++#define vpx_highbd_avg_4x4 vpx_highbd_avg_4x4_c
++
++unsigned int vpx_highbd_avg_8x8_c(const uint8_t* s8, int p);
++#define vpx_highbd_avg_8x8 vpx_highbd_avg_8x8_c
++
++void vpx_highbd_comp_avg_pred_c(uint16_t* comp_pred,
++                                const uint16_t* pred,
++                                int width,
++                                int height,
++                                const uint16_t* ref,
++                                int ref_stride);
++#define vpx_highbd_comp_avg_pred vpx_highbd_comp_avg_pred_c
++
++void vpx_highbd_convolve8_c(const uint16_t* src,
++                            ptrdiff_t src_stride,
++                            uint16_t* dst,
++                            ptrdiff_t dst_stride,
++                            const InterpKernel* filter,
++                            int x0_q4,
++                            int x_step_q4,
++                            int y0_q4,
++                            int y_step_q4,
++                            int w,
++                            int h,
++                            int bd);
++#define vpx_highbd_convolve8 vpx_highbd_convolve8_c
++
++void vpx_highbd_convolve8_avg_c(const uint16_t* src,
++                                ptrdiff_t src_stride,
++                                uint16_t* dst,
++                                ptrdiff_t dst_stride,
++                                const InterpKernel* filter,
++                                int x0_q4,
++                                int x_step_q4,
++                                int y0_q4,
++                                int y_step_q4,
++                                int w,
++                                int h,
++                                int bd);
++#define vpx_highbd_convolve8_avg vpx_highbd_convolve8_avg_c
++
++void vpx_highbd_convolve8_avg_horiz_c(const uint16_t* src,
++                                      ptrdiff_t src_stride,
++                                      uint16_t* dst,
++                                      ptrdiff_t dst_stride,
++                                      const InterpKernel* filter,
++                                      int x0_q4,
++                                      int x_step_q4,
++                                      int y0_q4,
++                                      int y_step_q4,
++                                      int w,
++                                      int h,
++                                      int bd);
++#define vpx_highbd_convolve8_avg_horiz vpx_highbd_convolve8_avg_horiz_c
++
++void vpx_highbd_convolve8_avg_vert_c(const uint16_t* src,
++                                     ptrdiff_t src_stride,
++                                     uint16_t* dst,
++                                     ptrdiff_t dst_stride,
++                                     const InterpKernel* filter,
++                                     int x0_q4,
++                                     int x_step_q4,
++                                     int y0_q4,
++                                     int y_step_q4,
++                                     int w,
++                                     int h,
++                                     int bd);
++#define vpx_highbd_convolve8_avg_vert vpx_highbd_convolve8_avg_vert_c
++
++void vpx_highbd_convolve8_horiz_c(const uint16_t* src,
++                                  ptrdiff_t src_stride,
++                                  uint16_t* dst,
++                                  ptrdiff_t dst_stride,
++                                  const InterpKernel* filter,
++                                  int x0_q4,
++                                  int x_step_q4,
++                                  int y0_q4,
++                                  int y_step_q4,
++                                  int w,
++                                  int h,
++                                  int bd);
++#define vpx_highbd_convolve8_horiz vpx_highbd_convolve8_horiz_c
++
++void vpx_highbd_convolve8_vert_c(const uint16_t* src,
++                                 ptrdiff_t src_stride,
++                                 uint16_t* dst,
++                                 ptrdiff_t dst_stride,
++                                 const InterpKernel* filter,
++                                 int x0_q4,
++                                 int x_step_q4,
++                                 int y0_q4,
++                                 int y_step_q4,
++                                 int w,
++                                 int h,
++                                 int bd);
++#define vpx_highbd_convolve8_vert vpx_highbd_convolve8_vert_c
++
++void vpx_highbd_convolve_avg_c(const uint16_t* src,
++                               ptrdiff_t src_stride,
++                               uint16_t* dst,
++                               ptrdiff_t dst_stride,
++                               const InterpKernel* filter,
++                               int x0_q4,
++                               int x_step_q4,
++                               int y0_q4,
++                               int y_step_q4,
++                               int w,
++                               int h,
++                               int bd);
++#define vpx_highbd_convolve_avg vpx_highbd_convolve_avg_c
++
++void vpx_highbd_convolve_copy_c(const uint16_t* src,
++                                ptrdiff_t src_stride,
++                                uint16_t* dst,
++                                ptrdiff_t dst_stride,
++                                const InterpKernel* filter,
++                                int x0_q4,
++                                int x_step_q4,
++                                int y0_q4,
++                                int y_step_q4,
++                                int w,
++                                int h,
++                                int bd);
++#define vpx_highbd_convolve_copy vpx_highbd_convolve_copy_c
++
++void vpx_highbd_d117_predictor_16x16_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d117_predictor_16x16 vpx_highbd_d117_predictor_16x16_c
++
++void vpx_highbd_d117_predictor_32x32_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d117_predictor_32x32 vpx_highbd_d117_predictor_32x32_c
++
++void vpx_highbd_d117_predictor_4x4_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d117_predictor_4x4 vpx_highbd_d117_predictor_4x4_c
++
++void vpx_highbd_d117_predictor_8x8_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d117_predictor_8x8 vpx_highbd_d117_predictor_8x8_c
++
++void vpx_highbd_d135_predictor_16x16_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d135_predictor_16x16 vpx_highbd_d135_predictor_16x16_c
++
++void vpx_highbd_d135_predictor_32x32_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d135_predictor_32x32 vpx_highbd_d135_predictor_32x32_c
++
++void vpx_highbd_d135_predictor_4x4_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d135_predictor_4x4 vpx_highbd_d135_predictor_4x4_c
++
++void vpx_highbd_d135_predictor_8x8_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d135_predictor_8x8 vpx_highbd_d135_predictor_8x8_c
++
++void vpx_highbd_d153_predictor_16x16_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d153_predictor_16x16 vpx_highbd_d153_predictor_16x16_c
++
++void vpx_highbd_d153_predictor_32x32_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d153_predictor_32x32 vpx_highbd_d153_predictor_32x32_c
++
++void vpx_highbd_d153_predictor_4x4_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d153_predictor_4x4 vpx_highbd_d153_predictor_4x4_c
++
++void vpx_highbd_d153_predictor_8x8_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d153_predictor_8x8 vpx_highbd_d153_predictor_8x8_c
++
++void vpx_highbd_d207_predictor_16x16_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d207_predictor_16x16 vpx_highbd_d207_predictor_16x16_c
++
++void vpx_highbd_d207_predictor_32x32_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_d207_predictor_32x32 vpx_highbd_d207_predictor_32x32_c
++
++void vpx_highbd_d207_predictor_4x4_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d207_predictor_4x4 vpx_highbd_d207_predictor_4x4_c
++
++void vpx_highbd_d207_predictor_8x8_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_d207_predictor_8x8 vpx_highbd_d207_predictor_8x8_c
++
++void vpx_highbd_d45_predictor_16x16_c(uint16_t* dst,
++                                      ptrdiff_t stride,
++                                      const uint16_t* above,
++                                      const uint16_t* left,
++                                      int bd);
++#define vpx_highbd_d45_predictor_16x16 vpx_highbd_d45_predictor_16x16_c
++
++void vpx_highbd_d45_predictor_32x32_c(uint16_t* dst,
++                                      ptrdiff_t stride,
++                                      const uint16_t* above,
++                                      const uint16_t* left,
++                                      int bd);
++#define vpx_highbd_d45_predictor_32x32 vpx_highbd_d45_predictor_32x32_c
++
++void vpx_highbd_d45_predictor_4x4_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_d45_predictor_4x4 vpx_highbd_d45_predictor_4x4_c
++
++void vpx_highbd_d45_predictor_8x8_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_d45_predictor_8x8 vpx_highbd_d45_predictor_8x8_c
++
++void vpx_highbd_d63_predictor_16x16_c(uint16_t* dst,
++                                      ptrdiff_t stride,
++                                      const uint16_t* above,
++                                      const uint16_t* left,
++                                      int bd);
++#define vpx_highbd_d63_predictor_16x16 vpx_highbd_d63_predictor_16x16_c
++
++void vpx_highbd_d63_predictor_32x32_c(uint16_t* dst,
++                                      ptrdiff_t stride,
++                                      const uint16_t* above,
++                                      const uint16_t* left,
++                                      int bd);
++#define vpx_highbd_d63_predictor_32x32 vpx_highbd_d63_predictor_32x32_c
++
++void vpx_highbd_d63_predictor_4x4_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_d63_predictor_4x4 vpx_highbd_d63_predictor_4x4_c
++
++void vpx_highbd_d63_predictor_8x8_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_d63_predictor_8x8 vpx_highbd_d63_predictor_8x8_c
++
++void vpx_highbd_dc_128_predictor_16x16_c(uint16_t* dst,
++                                         ptrdiff_t stride,
++                                         const uint16_t* above,
++                                         const uint16_t* left,
++                                         int bd);
++#define vpx_highbd_dc_128_predictor_16x16 vpx_highbd_dc_128_predictor_16x16_c
++
++void vpx_highbd_dc_128_predictor_32x32_c(uint16_t* dst,
++                                         ptrdiff_t stride,
++                                         const uint16_t* above,
++                                         const uint16_t* left,
++                                         int bd);
++#define vpx_highbd_dc_128_predictor_32x32 vpx_highbd_dc_128_predictor_32x32_c
++
++void vpx_highbd_dc_128_predictor_4x4_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_dc_128_predictor_4x4 vpx_highbd_dc_128_predictor_4x4_c
++
++void vpx_highbd_dc_128_predictor_8x8_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_dc_128_predictor_8x8 vpx_highbd_dc_128_predictor_8x8_c
++
++void vpx_highbd_dc_left_predictor_16x16_c(uint16_t* dst,
++                                          ptrdiff_t stride,
++                                          const uint16_t* above,
++                                          const uint16_t* left,
++                                          int bd);
++#define vpx_highbd_dc_left_predictor_16x16 vpx_highbd_dc_left_predictor_16x16_c
++
++void vpx_highbd_dc_left_predictor_32x32_c(uint16_t* dst,
++                                          ptrdiff_t stride,
++                                          const uint16_t* above,
++                                          const uint16_t* left,
++                                          int bd);
++#define vpx_highbd_dc_left_predictor_32x32 vpx_highbd_dc_left_predictor_32x32_c
++
++void vpx_highbd_dc_left_predictor_4x4_c(uint16_t* dst,
++                                        ptrdiff_t stride,
++                                        const uint16_t* above,
++                                        const uint16_t* left,
++                                        int bd);
++#define vpx_highbd_dc_left_predictor_4x4 vpx_highbd_dc_left_predictor_4x4_c
++
++void vpx_highbd_dc_left_predictor_8x8_c(uint16_t* dst,
++                                        ptrdiff_t stride,
++                                        const uint16_t* above,
++                                        const uint16_t* left,
++                                        int bd);
++#define vpx_highbd_dc_left_predictor_8x8 vpx_highbd_dc_left_predictor_8x8_c
++
++void vpx_highbd_dc_predictor_16x16_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_dc_predictor_16x16 vpx_highbd_dc_predictor_16x16_c
++
++void vpx_highbd_dc_predictor_32x32_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_dc_predictor_32x32 vpx_highbd_dc_predictor_32x32_c
++
++void vpx_highbd_dc_predictor_4x4_c(uint16_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint16_t* above,
++                                   const uint16_t* left,
++                                   int bd);
++#define vpx_highbd_dc_predictor_4x4 vpx_highbd_dc_predictor_4x4_c
++
++void vpx_highbd_dc_predictor_8x8_c(uint16_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint16_t* above,
++                                   const uint16_t* left,
++                                   int bd);
++#define vpx_highbd_dc_predictor_8x8 vpx_highbd_dc_predictor_8x8_c
++
++void vpx_highbd_dc_top_predictor_16x16_c(uint16_t* dst,
++                                         ptrdiff_t stride,
++                                         const uint16_t* above,
++                                         const uint16_t* left,
++                                         int bd);
++#define vpx_highbd_dc_top_predictor_16x16 vpx_highbd_dc_top_predictor_16x16_c
++
++void vpx_highbd_dc_top_predictor_32x32_c(uint16_t* dst,
++                                         ptrdiff_t stride,
++                                         const uint16_t* above,
++                                         const uint16_t* left,
++                                         int bd);
++#define vpx_highbd_dc_top_predictor_32x32 vpx_highbd_dc_top_predictor_32x32_c
++
++void vpx_highbd_dc_top_predictor_4x4_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_dc_top_predictor_4x4 vpx_highbd_dc_top_predictor_4x4_c
++
++void vpx_highbd_dc_top_predictor_8x8_c(uint16_t* dst,
++                                       ptrdiff_t stride,
++                                       const uint16_t* above,
++                                       const uint16_t* left,
++                                       int bd);
++#define vpx_highbd_dc_top_predictor_8x8 vpx_highbd_dc_top_predictor_8x8_c
++
++void vpx_highbd_fdct16x16_c(const int16_t* input,
++                            tran_low_t* output,
++                            int stride);
++#define vpx_highbd_fdct16x16 vpx_highbd_fdct16x16_c
++
++void vpx_highbd_fdct16x16_1_c(const int16_t* input,
++                              tran_low_t* output,
++                              int stride);
++#define vpx_highbd_fdct16x16_1 vpx_highbd_fdct16x16_1_c
++
++void vpx_highbd_fdct32x32_c(const int16_t* input,
++                            tran_low_t* output,
++                            int stride);
++#define vpx_highbd_fdct32x32 vpx_highbd_fdct32x32_c
++
++void vpx_highbd_fdct32x32_1_c(const int16_t* input,
++                              tran_low_t* output,
++                              int stride);
++#define vpx_highbd_fdct32x32_1 vpx_highbd_fdct32x32_1_c
++
++void vpx_highbd_fdct32x32_rd_c(const int16_t* input,
++                               tran_low_t* output,
++                               int stride);
++#define vpx_highbd_fdct32x32_rd vpx_highbd_fdct32x32_rd_c
++
++void vpx_highbd_fdct4x4_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_highbd_fdct4x4 vpx_highbd_fdct4x4_c
++
++void vpx_highbd_fdct8x8_c(const int16_t* input, tran_low_t* output, int stride);
++#define vpx_highbd_fdct8x8 vpx_highbd_fdct8x8_c
++
++void vpx_highbd_fdct8x8_1_c(const int16_t* input,
++                            tran_low_t* output,
++                            int stride);
++#define vpx_highbd_fdct8x8_1 vpx_highbd_fdct8x8_1_c
++
++void vpx_highbd_h_predictor_16x16_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_h_predictor_16x16 vpx_highbd_h_predictor_16x16_c
++
++void vpx_highbd_h_predictor_32x32_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_h_predictor_32x32 vpx_highbd_h_predictor_32x32_c
++
++void vpx_highbd_h_predictor_4x4_c(uint16_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint16_t* above,
++                                  const uint16_t* left,
++                                  int bd);
++#define vpx_highbd_h_predictor_4x4 vpx_highbd_h_predictor_4x4_c
++
++void vpx_highbd_h_predictor_8x8_c(uint16_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint16_t* above,
++                                  const uint16_t* left,
++                                  int bd);
++#define vpx_highbd_h_predictor_8x8 vpx_highbd_h_predictor_8x8_c
++
++void vpx_highbd_hadamard_16x16_c(const int16_t* src_diff,
++                                 ptrdiff_t src_stride,
++                                 tran_low_t* coeff);
++#define vpx_highbd_hadamard_16x16 vpx_highbd_hadamard_16x16_c
++
++void vpx_highbd_hadamard_32x32_c(const int16_t* src_diff,
++                                 ptrdiff_t src_stride,
++                                 tran_low_t* coeff);
++#define vpx_highbd_hadamard_32x32 vpx_highbd_hadamard_32x32_c
++
++void vpx_highbd_hadamard_8x8_c(const int16_t* src_diff,
++                               ptrdiff_t src_stride,
++                               tran_low_t* coeff);
++#define vpx_highbd_hadamard_8x8 vpx_highbd_hadamard_8x8_c
++
++void vpx_highbd_idct16x16_10_add_c(const tran_low_t* input,
++                                   uint16_t* dest,
++                                   int stride,
++                                   int bd);
++#define vpx_highbd_idct16x16_10_add vpx_highbd_idct16x16_10_add_c
++
++void vpx_highbd_idct16x16_1_add_c(const tran_low_t* input,
++                                  uint16_t* dest,
++                                  int stride,
++                                  int bd);
++#define vpx_highbd_idct16x16_1_add vpx_highbd_idct16x16_1_add_c
++
++void vpx_highbd_idct16x16_256_add_c(const tran_low_t* input,
++                                    uint16_t* dest,
++                                    int stride,
++                                    int bd);
++#define vpx_highbd_idct16x16_256_add vpx_highbd_idct16x16_256_add_c
++
++void vpx_highbd_idct16x16_38_add_c(const tran_low_t* input,
++                                   uint16_t* dest,
++                                   int stride,
++                                   int bd);
++#define vpx_highbd_idct16x16_38_add vpx_highbd_idct16x16_38_add_c
++
++void vpx_highbd_idct32x32_1024_add_c(const tran_low_t* input,
++                                     uint16_t* dest,
++                                     int stride,
++                                     int bd);
++#define vpx_highbd_idct32x32_1024_add vpx_highbd_idct32x32_1024_add_c
++
++void vpx_highbd_idct32x32_135_add_c(const tran_low_t* input,
++                                    uint16_t* dest,
++                                    int stride,
++                                    int bd);
++#define vpx_highbd_idct32x32_135_add vpx_highbd_idct32x32_135_add_c
++
++void vpx_highbd_idct32x32_1_add_c(const tran_low_t* input,
++                                  uint16_t* dest,
++                                  int stride,
++                                  int bd);
++#define vpx_highbd_idct32x32_1_add vpx_highbd_idct32x32_1_add_c
++
++void vpx_highbd_idct32x32_34_add_c(const tran_low_t* input,
++                                   uint16_t* dest,
++                                   int stride,
++                                   int bd);
++#define vpx_highbd_idct32x32_34_add vpx_highbd_idct32x32_34_add_c
++
++void vpx_highbd_idct4x4_16_add_c(const tran_low_t* input,
++                                 uint16_t* dest,
++                                 int stride,
++                                 int bd);
++#define vpx_highbd_idct4x4_16_add vpx_highbd_idct4x4_16_add_c
++
++void vpx_highbd_idct4x4_1_add_c(const tran_low_t* input,
++                                uint16_t* dest,
++                                int stride,
++                                int bd);
++#define vpx_highbd_idct4x4_1_add vpx_highbd_idct4x4_1_add_c
++
++void vpx_highbd_idct8x8_12_add_c(const tran_low_t* input,
++                                 uint16_t* dest,
++                                 int stride,
++                                 int bd);
++#define vpx_highbd_idct8x8_12_add vpx_highbd_idct8x8_12_add_c
++
++void vpx_highbd_idct8x8_1_add_c(const tran_low_t* input,
++                                uint16_t* dest,
++                                int stride,
++                                int bd);
++#define vpx_highbd_idct8x8_1_add vpx_highbd_idct8x8_1_add_c
++
++void vpx_highbd_idct8x8_64_add_c(const tran_low_t* input,
++                                 uint16_t* dest,
++                                 int stride,
++                                 int bd);
++#define vpx_highbd_idct8x8_64_add vpx_highbd_idct8x8_64_add_c
++
++void vpx_highbd_iwht4x4_16_add_c(const tran_low_t* input,
++                                 uint16_t* dest,
++                                 int stride,
++                                 int bd);
++#define vpx_highbd_iwht4x4_16_add vpx_highbd_iwht4x4_16_add_c
++
++void vpx_highbd_iwht4x4_1_add_c(const tran_low_t* input,
++                                uint16_t* dest,
++                                int stride,
++                                int bd);
++#define vpx_highbd_iwht4x4_1_add vpx_highbd_iwht4x4_1_add_c
++
++void vpx_highbd_lpf_horizontal_16_c(uint16_t* s,
++                                    int pitch,
++                                    const uint8_t* blimit,
++                                    const uint8_t* limit,
++                                    const uint8_t* thresh,
++                                    int bd);
++#define vpx_highbd_lpf_horizontal_16 vpx_highbd_lpf_horizontal_16_c
++
++void vpx_highbd_lpf_horizontal_16_dual_c(uint16_t* s,
++                                         int pitch,
++                                         const uint8_t* blimit,
++                                         const uint8_t* limit,
++                                         const uint8_t* thresh,
++                                         int bd);
++#define vpx_highbd_lpf_horizontal_16_dual vpx_highbd_lpf_horizontal_16_dual_c
++
++void vpx_highbd_lpf_horizontal_4_c(uint16_t* s,
++                                   int pitch,
++                                   const uint8_t* blimit,
++                                   const uint8_t* limit,
++                                   const uint8_t* thresh,
++                                   int bd);
++#define vpx_highbd_lpf_horizontal_4 vpx_highbd_lpf_horizontal_4_c
++
++void vpx_highbd_lpf_horizontal_4_dual_c(uint16_t* s,
++                                        int pitch,
++                                        const uint8_t* blimit0,
++                                        const uint8_t* limit0,
++                                        const uint8_t* thresh0,
++                                        const uint8_t* blimit1,
++                                        const uint8_t* limit1,
++                                        const uint8_t* thresh1,
++                                        int bd);
++#define vpx_highbd_lpf_horizontal_4_dual vpx_highbd_lpf_horizontal_4_dual_c
++
++void vpx_highbd_lpf_horizontal_8_c(uint16_t* s,
++                                   int pitch,
++                                   const uint8_t* blimit,
++                                   const uint8_t* limit,
++                                   const uint8_t* thresh,
++                                   int bd);
++#define vpx_highbd_lpf_horizontal_8 vpx_highbd_lpf_horizontal_8_c
++
++void vpx_highbd_lpf_horizontal_8_dual_c(uint16_t* s,
++                                        int pitch,
++                                        const uint8_t* blimit0,
++                                        const uint8_t* limit0,
++                                        const uint8_t* thresh0,
++                                        const uint8_t* blimit1,
++                                        const uint8_t* limit1,
++                                        const uint8_t* thresh1,
++                                        int bd);
++#define vpx_highbd_lpf_horizontal_8_dual vpx_highbd_lpf_horizontal_8_dual_c
++
++void vpx_highbd_lpf_vertical_16_c(uint16_t* s,
++                                  int pitch,
++                                  const uint8_t* blimit,
++                                  const uint8_t* limit,
++                                  const uint8_t* thresh,
++                                  int bd);
++#define vpx_highbd_lpf_vertical_16 vpx_highbd_lpf_vertical_16_c
++
++void vpx_highbd_lpf_vertical_16_dual_c(uint16_t* s,
++                                       int pitch,
++                                       const uint8_t* blimit,
++                                       const uint8_t* limit,
++                                       const uint8_t* thresh,
++                                       int bd);
++#define vpx_highbd_lpf_vertical_16_dual vpx_highbd_lpf_vertical_16_dual_c
++
++void vpx_highbd_lpf_vertical_4_c(uint16_t* s,
++                                 int pitch,
++                                 const uint8_t* blimit,
++                                 const uint8_t* limit,
++                                 const uint8_t* thresh,
++                                 int bd);
++#define vpx_highbd_lpf_vertical_4 vpx_highbd_lpf_vertical_4_c
++
++void vpx_highbd_lpf_vertical_4_dual_c(uint16_t* s,
++                                      int pitch,
++                                      const uint8_t* blimit0,
++                                      const uint8_t* limit0,
++                                      const uint8_t* thresh0,
++                                      const uint8_t* blimit1,
++                                      const uint8_t* limit1,
++                                      const uint8_t* thresh1,
++                                      int bd);
++#define vpx_highbd_lpf_vertical_4_dual vpx_highbd_lpf_vertical_4_dual_c
++
++void vpx_highbd_lpf_vertical_8_c(uint16_t* s,
++                                 int pitch,
++                                 const uint8_t* blimit,
++                                 const uint8_t* limit,
++                                 const uint8_t* thresh,
++                                 int bd);
++#define vpx_highbd_lpf_vertical_8 vpx_highbd_lpf_vertical_8_c
++
++void vpx_highbd_lpf_vertical_8_dual_c(uint16_t* s,
++                                      int pitch,
++                                      const uint8_t* blimit0,
++                                      const uint8_t* limit0,
++                                      const uint8_t* thresh0,
++                                      const uint8_t* blimit1,
++                                      const uint8_t* limit1,
++                                      const uint8_t* thresh1,
++                                      int bd);
++#define vpx_highbd_lpf_vertical_8_dual vpx_highbd_lpf_vertical_8_dual_c
++
++void vpx_highbd_minmax_8x8_c(const uint8_t* s8,
++                             int p,
++                             const uint8_t* d8,
++                             int dp,
++                             int* min,
++                             int* max);
++#define vpx_highbd_minmax_8x8 vpx_highbd_minmax_8x8_c
++
++void vpx_highbd_quantize_b_c(const tran_low_t* coeff_ptr,
++                             intptr_t n_coeffs,
++                             int skip_block,
++                             const int16_t* zbin_ptr,
++                             const int16_t* round_ptr,
++                             const int16_t* quant_ptr,
++                             const int16_t* quant_shift_ptr,
++                             tran_low_t* qcoeff_ptr,
++                             tran_low_t* dqcoeff_ptr,
++                             const int16_t* dequant_ptr,
++                             uint16_t* eob_ptr,
++                             const int16_t* scan,
++                             const int16_t* iscan);
++#define vpx_highbd_quantize_b vpx_highbd_quantize_b_c
++
++void vpx_highbd_quantize_b_32x32_c(const tran_low_t* coeff_ptr,
++                                   intptr_t n_coeffs,
++                                   int skip_block,
++                                   const int16_t* zbin_ptr,
++                                   const int16_t* round_ptr,
++                                   const int16_t* quant_ptr,
++                                   const int16_t* quant_shift_ptr,
++                                   tran_low_t* qcoeff_ptr,
++                                   tran_low_t* dqcoeff_ptr,
++                                   const int16_t* dequant_ptr,
++                                   uint16_t* eob_ptr,
++                                   const int16_t* scan,
++                                   const int16_t* iscan);
++#define vpx_highbd_quantize_b_32x32 vpx_highbd_quantize_b_32x32_c
++
++unsigned int vpx_highbd_sad16x16_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad16x16 vpx_highbd_sad16x16_c
++
++unsigned int vpx_highbd_sad16x16_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad16x16_avg vpx_highbd_sad16x16_avg_c
++
++void vpx_highbd_sad16x16x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad16x16x4d vpx_highbd_sad16x16x4d_c
++
++unsigned int vpx_highbd_sad16x32_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad16x32 vpx_highbd_sad16x32_c
++
++unsigned int vpx_highbd_sad16x32_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad16x32_avg vpx_highbd_sad16x32_avg_c
++
++void vpx_highbd_sad16x32x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad16x32x4d vpx_highbd_sad16x32x4d_c
++
++unsigned int vpx_highbd_sad16x8_c(const uint8_t* src_ptr,
++                                  int src_stride,
++                                  const uint8_t* ref_ptr,
++                                  int ref_stride);
++#define vpx_highbd_sad16x8 vpx_highbd_sad16x8_c
++
++unsigned int vpx_highbd_sad16x8_avg_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      const uint8_t* second_pred);
++#define vpx_highbd_sad16x8_avg vpx_highbd_sad16x8_avg_c
++
++void vpx_highbd_sad16x8x4d_c(const uint8_t* src_ptr,
++                             int src_stride,
++                             const uint8_t* const ref_array[],
++                             int ref_stride,
++                             uint32_t* sad_array);
++#define vpx_highbd_sad16x8x4d vpx_highbd_sad16x8x4d_c
++
++unsigned int vpx_highbd_sad32x16_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad32x16 vpx_highbd_sad32x16_c
++
++unsigned int vpx_highbd_sad32x16_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad32x16_avg vpx_highbd_sad32x16_avg_c
++
++void vpx_highbd_sad32x16x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad32x16x4d vpx_highbd_sad32x16x4d_c
++
++unsigned int vpx_highbd_sad32x32_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad32x32 vpx_highbd_sad32x32_c
++
++unsigned int vpx_highbd_sad32x32_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad32x32_avg vpx_highbd_sad32x32_avg_c
++
++void vpx_highbd_sad32x32x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad32x32x4d vpx_highbd_sad32x32x4d_c
++
++unsigned int vpx_highbd_sad32x64_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad32x64 vpx_highbd_sad32x64_c
++
++unsigned int vpx_highbd_sad32x64_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad32x64_avg vpx_highbd_sad32x64_avg_c
++
++void vpx_highbd_sad32x64x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad32x64x4d vpx_highbd_sad32x64x4d_c
++
++unsigned int vpx_highbd_sad4x4_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride);
++#define vpx_highbd_sad4x4 vpx_highbd_sad4x4_c
++
++unsigned int vpx_highbd_sad4x4_avg_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     const uint8_t* second_pred);
++#define vpx_highbd_sad4x4_avg vpx_highbd_sad4x4_avg_c
++
++void vpx_highbd_sad4x4x4d_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* const ref_array[],
++                            int ref_stride,
++                            uint32_t* sad_array);
++#define vpx_highbd_sad4x4x4d vpx_highbd_sad4x4x4d_c
++
++unsigned int vpx_highbd_sad4x8_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride);
++#define vpx_highbd_sad4x8 vpx_highbd_sad4x8_c
++
++unsigned int vpx_highbd_sad4x8_avg_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     const uint8_t* second_pred);
++#define vpx_highbd_sad4x8_avg vpx_highbd_sad4x8_avg_c
++
++void vpx_highbd_sad4x8x4d_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* const ref_array[],
++                            int ref_stride,
++                            uint32_t* sad_array);
++#define vpx_highbd_sad4x8x4d vpx_highbd_sad4x8x4d_c
++
++unsigned int vpx_highbd_sad64x32_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad64x32 vpx_highbd_sad64x32_c
++
++unsigned int vpx_highbd_sad64x32_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad64x32_avg vpx_highbd_sad64x32_avg_c
++
++void vpx_highbd_sad64x32x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad64x32x4d vpx_highbd_sad64x32x4d_c
++
++unsigned int vpx_highbd_sad64x64_c(const uint8_t* src_ptr,
++                                   int src_stride,
++                                   const uint8_t* ref_ptr,
++                                   int ref_stride);
++#define vpx_highbd_sad64x64 vpx_highbd_sad64x64_c
++
++unsigned int vpx_highbd_sad64x64_avg_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       const uint8_t* second_pred);
++#define vpx_highbd_sad64x64_avg vpx_highbd_sad64x64_avg_c
++
++void vpx_highbd_sad64x64x4d_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* const ref_array[],
++                              int ref_stride,
++                              uint32_t* sad_array);
++#define vpx_highbd_sad64x64x4d vpx_highbd_sad64x64x4d_c
++
++unsigned int vpx_highbd_sad8x16_c(const uint8_t* src_ptr,
++                                  int src_stride,
++                                  const uint8_t* ref_ptr,
++                                  int ref_stride);
++#define vpx_highbd_sad8x16 vpx_highbd_sad8x16_c
++
++unsigned int vpx_highbd_sad8x16_avg_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      const uint8_t* second_pred);
++#define vpx_highbd_sad8x16_avg vpx_highbd_sad8x16_avg_c
++
++void vpx_highbd_sad8x16x4d_c(const uint8_t* src_ptr,
++                             int src_stride,
++                             const uint8_t* const ref_array[],
++                             int ref_stride,
++                             uint32_t* sad_array);
++#define vpx_highbd_sad8x16x4d vpx_highbd_sad8x16x4d_c
++
++unsigned int vpx_highbd_sad8x4_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride);
++#define vpx_highbd_sad8x4 vpx_highbd_sad8x4_c
++
++unsigned int vpx_highbd_sad8x4_avg_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     const uint8_t* second_pred);
++#define vpx_highbd_sad8x4_avg vpx_highbd_sad8x4_avg_c
++
++void vpx_highbd_sad8x4x4d_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* const ref_array[],
++                            int ref_stride,
++                            uint32_t* sad_array);
++#define vpx_highbd_sad8x4x4d vpx_highbd_sad8x4x4d_c
++
++unsigned int vpx_highbd_sad8x8_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride);
++#define vpx_highbd_sad8x8 vpx_highbd_sad8x8_c
++
++unsigned int vpx_highbd_sad8x8_avg_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     const uint8_t* second_pred);
++#define vpx_highbd_sad8x8_avg vpx_highbd_sad8x8_avg_c
++
++void vpx_highbd_sad8x8x4d_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* const ref_array[],
++                            int ref_stride,
++                            uint32_t* sad_array);
++#define vpx_highbd_sad8x8x4d vpx_highbd_sad8x8x4d_c
++
++int vpx_highbd_satd_c(const tran_low_t* coeff, int length);
++#define vpx_highbd_satd vpx_highbd_satd_c
++
++void vpx_highbd_subtract_block_c(int rows,
++                                 int cols,
++                                 int16_t* diff_ptr,
++                                 ptrdiff_t diff_stride,
++                                 const uint8_t* src8_ptr,
++                                 ptrdiff_t src_stride,
++                                 const uint8_t* pred8_ptr,
++                                 ptrdiff_t pred_stride,
++                                 int bd);
++#define vpx_highbd_subtract_block vpx_highbd_subtract_block_c
++
++void vpx_highbd_tm_predictor_16x16_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_tm_predictor_16x16 vpx_highbd_tm_predictor_16x16_c
++
++void vpx_highbd_tm_predictor_32x32_c(uint16_t* dst,
++                                     ptrdiff_t stride,
++                                     const uint16_t* above,
++                                     const uint16_t* left,
++                                     int bd);
++#define vpx_highbd_tm_predictor_32x32 vpx_highbd_tm_predictor_32x32_c
++
++void vpx_highbd_tm_predictor_4x4_c(uint16_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint16_t* above,
++                                   const uint16_t* left,
++                                   int bd);
++#define vpx_highbd_tm_predictor_4x4 vpx_highbd_tm_predictor_4x4_c
++
++void vpx_highbd_tm_predictor_8x8_c(uint16_t* dst,
++                                   ptrdiff_t stride,
++                                   const uint16_t* above,
++                                   const uint16_t* left,
++                                   int bd);
++#define vpx_highbd_tm_predictor_8x8 vpx_highbd_tm_predictor_8x8_c
++
++void vpx_highbd_v_predictor_16x16_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_v_predictor_16x16 vpx_highbd_v_predictor_16x16_c
++
++void vpx_highbd_v_predictor_32x32_c(uint16_t* dst,
++                                    ptrdiff_t stride,
++                                    const uint16_t* above,
++                                    const uint16_t* left,
++                                    int bd);
++#define vpx_highbd_v_predictor_32x32 vpx_highbd_v_predictor_32x32_c
++
++void vpx_highbd_v_predictor_4x4_c(uint16_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint16_t* above,
++                                  const uint16_t* left,
++                                  int bd);
++#define vpx_highbd_v_predictor_4x4 vpx_highbd_v_predictor_4x4_c
++
++void vpx_highbd_v_predictor_8x8_c(uint16_t* dst,
++                                  ptrdiff_t stride,
++                                  const uint16_t* above,
++                                  const uint16_t* left,
++                                  int bd);
++#define vpx_highbd_v_predictor_8x8 vpx_highbd_v_predictor_8x8_c
++
++void vpx_idct16x16_10_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct16x16_10_add vpx_idct16x16_10_add_c
++
++void vpx_idct16x16_1_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct16x16_1_add vpx_idct16x16_1_add_c
++
++void vpx_idct16x16_256_add_c(const tran_low_t* input,
++                             uint8_t* dest,
++                             int stride);
++#define vpx_idct16x16_256_add vpx_idct16x16_256_add_c
++
++void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct16x16_38_add vpx_idct16x16_38_add_c
++
++void vpx_idct32x32_1024_add_c(const tran_low_t* input,
++                              uint8_t* dest,
++                              int stride);
++#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_c
++
++void vpx_idct32x32_135_add_c(const tran_low_t* input,
++                             uint8_t* dest,
++                             int stride);
++#define vpx_idct32x32_135_add vpx_idct32x32_135_add_c
++
++void vpx_idct32x32_1_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct32x32_1_add vpx_idct32x32_1_add_c
++
++void vpx_idct32x32_34_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct32x32_34_add vpx_idct32x32_34_add_c
++
++void vpx_idct4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct4x4_16_add vpx_idct4x4_16_add_c
++
++void vpx_idct4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct4x4_1_add vpx_idct4x4_1_add_c
++
++void vpx_idct8x8_12_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct8x8_12_add vpx_idct8x8_12_add_c
++
++void vpx_idct8x8_1_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct8x8_1_add vpx_idct8x8_1_add_c
++
++void vpx_idct8x8_64_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_idct8x8_64_add vpx_idct8x8_64_add_c
++
++int16_t vpx_int_pro_col_c(const uint8_t* ref, const int width);
++#define vpx_int_pro_col vpx_int_pro_col_c
++
++void vpx_int_pro_row_c(int16_t* hbuf,
++                       const uint8_t* ref,
++                       const int ref_stride,
++                       const int height);
++#define vpx_int_pro_row vpx_int_pro_row_c
++
++void vpx_iwht4x4_16_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
++
++void vpx_iwht4x4_1_add_c(const tran_low_t* input, uint8_t* dest, int stride);
++#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
++
++void vpx_lpf_horizontal_16_c(uint8_t* s,
++                             int pitch,
++                             const uint8_t* blimit,
++                             const uint8_t* limit,
++                             const uint8_t* thresh);
++#define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_c
++
++void vpx_lpf_horizontal_16_dual_c(uint8_t* s,
++                                  int pitch,
++                                  const uint8_t* blimit,
++                                  const uint8_t* limit,
++                                  const uint8_t* thresh);
++#define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_dual_c
++
++void vpx_lpf_horizontal_4_c(uint8_t* s,
++                            int pitch,
++                            const uint8_t* blimit,
++                            const uint8_t* limit,
++                            const uint8_t* thresh);
++#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_c
++
++void vpx_lpf_horizontal_4_dual_c(uint8_t* s,
++                                 int pitch,
++                                 const uint8_t* blimit0,
++                                 const uint8_t* limit0,
++                                 const uint8_t* thresh0,
++                                 const uint8_t* blimit1,
++                                 const uint8_t* limit1,
++                                 const uint8_t* thresh1);
++#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_c
++
++void vpx_lpf_horizontal_8_c(uint8_t* s,
++                            int pitch,
++                            const uint8_t* blimit,
++                            const uint8_t* limit,
++                            const uint8_t* thresh);
++#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_c
++
++void vpx_lpf_horizontal_8_dual_c(uint8_t* s,
++                                 int pitch,
++                                 const uint8_t* blimit0,
++                                 const uint8_t* limit0,
++                                 const uint8_t* thresh0,
++                                 const uint8_t* blimit1,
++                                 const uint8_t* limit1,
++                                 const uint8_t* thresh1);
++#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_c
++
++void vpx_lpf_vertical_16_c(uint8_t* s,
++                           int pitch,
++                           const uint8_t* blimit,
++                           const uint8_t* limit,
++                           const uint8_t* thresh);
++#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_c
++
++void vpx_lpf_vertical_16_dual_c(uint8_t* s,
++                                int pitch,
++                                const uint8_t* blimit,
++                                const uint8_t* limit,
++                                const uint8_t* thresh);
++#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_c
++
++void vpx_lpf_vertical_4_c(uint8_t* s,
++                          int pitch,
++                          const uint8_t* blimit,
++                          const uint8_t* limit,
++                          const uint8_t* thresh);
++#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_c
++
++void vpx_lpf_vertical_4_dual_c(uint8_t* s,
++                               int pitch,
++                               const uint8_t* blimit0,
++                               const uint8_t* limit0,
++                               const uint8_t* thresh0,
++                               const uint8_t* blimit1,
++                               const uint8_t* limit1,
++                               const uint8_t* thresh1);
++#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_c
++
++void vpx_lpf_vertical_8_c(uint8_t* s,
++                          int pitch,
++                          const uint8_t* blimit,
++                          const uint8_t* limit,
++                          const uint8_t* thresh);
++#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_c
++
++void vpx_lpf_vertical_8_dual_c(uint8_t* s,
++                               int pitch,
++                               const uint8_t* blimit0,
++                               const uint8_t* limit0,
++                               const uint8_t* thresh0,
++                               const uint8_t* blimit1,
++                               const uint8_t* limit1,
++                               const uint8_t* thresh1);
++#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_c
++
++void vpx_mbpost_proc_across_ip_c(unsigned char* src,
++                                 int pitch,
++                                 int rows,
++                                 int cols,
++                                 int flimit);
++#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_c
++
++void vpx_mbpost_proc_down_c(unsigned char* dst,
++                            int pitch,
++                            int rows,
++                            int cols,
++                            int flimit);
++#define vpx_mbpost_proc_down vpx_mbpost_proc_down_c
++
++void vpx_minmax_8x8_c(const uint8_t* s,
++                      int p,
++                      const uint8_t* d,
++                      int dp,
++                      int* min,
++                      int* max);
++#define vpx_minmax_8x8 vpx_minmax_8x8_c
++
++unsigned int vpx_mse16x16_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride,
++                            unsigned int* sse);
++#define vpx_mse16x16 vpx_mse16x16_c
++
++unsigned int vpx_mse16x8_c(const uint8_t* src_ptr,
++                           int src_stride,
++                           const uint8_t* ref_ptr,
++                           int ref_stride,
++                           unsigned int* sse);
++#define vpx_mse16x8 vpx_mse16x8_c
++
++unsigned int vpx_mse8x16_c(const uint8_t* src_ptr,
++                           int src_stride,
++                           const uint8_t* ref_ptr,
++                           int ref_stride,
++                           unsigned int* sse);
++#define vpx_mse8x16 vpx_mse8x16_c
++
++unsigned int vpx_mse8x8_c(const uint8_t* src_ptr,
++                          int src_stride,
++                          const uint8_t* ref_ptr,
++                          int ref_stride,
++                          unsigned int* sse);
++#define vpx_mse8x8 vpx_mse8x8_c
++
++void vpx_plane_add_noise_c(uint8_t* start,
++                           const int8_t* noise,
++                           int blackclamp,
++                           int whiteclamp,
++                           int width,
++                           int height,
++                           int pitch);
++#define vpx_plane_add_noise vpx_plane_add_noise_c
++
++void vpx_post_proc_down_and_across_mb_row_c(unsigned char* src,
++                                            unsigned char* dst,
++                                            int src_pitch,
++                                            int dst_pitch,
++                                            int cols,
++                                            unsigned char* flimits,
++                                            int size);
++#define vpx_post_proc_down_and_across_mb_row \
++  vpx_post_proc_down_and_across_mb_row_c
++
++void vpx_quantize_b_c(const tran_low_t* coeff_ptr,
++                      intptr_t n_coeffs,
++                      int skip_block,
++                      const int16_t* zbin_ptr,
++                      const int16_t* round_ptr,
++                      const int16_t* quant_ptr,
++                      const int16_t* quant_shift_ptr,
++                      tran_low_t* qcoeff_ptr,
++                      tran_low_t* dqcoeff_ptr,
++                      const int16_t* dequant_ptr,
++                      uint16_t* eob_ptr,
++                      const int16_t* scan,
++                      const int16_t* iscan);
++#define vpx_quantize_b vpx_quantize_b_c
++
++void vpx_quantize_b_32x32_c(const tran_low_t* coeff_ptr,
++                            intptr_t n_coeffs,
++                            int skip_block,
++                            const int16_t* zbin_ptr,
++                            const int16_t* round_ptr,
++                            const int16_t* quant_ptr,
++                            const int16_t* quant_shift_ptr,
++                            tran_low_t* qcoeff_ptr,
++                            tran_low_t* dqcoeff_ptr,
++                            const int16_t* dequant_ptr,
++                            uint16_t* eob_ptr,
++                            const int16_t* scan,
++                            const int16_t* iscan);
++#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_c
++
++unsigned int vpx_sad16x16_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad16x16 vpx_sad16x16_c
++
++unsigned int vpx_sad16x16_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad16x16_avg vpx_sad16x16_avg_c
++
++void vpx_sad16x16x3_c(const uint8_t* src_ptr,
++                      int src_stride,
++                      const uint8_t* ref_ptr,
++                      int ref_stride,
++                      uint32_t* sad_array);
++#define vpx_sad16x16x3 vpx_sad16x16x3_c
++
++void vpx_sad16x16x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad16x16x4d vpx_sad16x16x4d_c
++
++void vpx_sad16x16x8_c(const uint8_t* src_ptr,
++                      int src_stride,
++                      const uint8_t* ref_ptr,
++                      int ref_stride,
++                      uint32_t* sad_array);
++#define vpx_sad16x16x8 vpx_sad16x16x8_c
++
++unsigned int vpx_sad16x32_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad16x32 vpx_sad16x32_c
++
++unsigned int vpx_sad16x32_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad16x32_avg vpx_sad16x32_avg_c
++
++void vpx_sad16x32x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad16x32x4d vpx_sad16x32x4d_c
++
++unsigned int vpx_sad16x8_c(const uint8_t* src_ptr,
++                           int src_stride,
++                           const uint8_t* ref_ptr,
++                           int ref_stride);
++#define vpx_sad16x8 vpx_sad16x8_c
++
++unsigned int vpx_sad16x8_avg_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               const uint8_t* second_pred);
++#define vpx_sad16x8_avg vpx_sad16x8_avg_c
++
++void vpx_sad16x8x3_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* ref_ptr,
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad16x8x3 vpx_sad16x8x3_c
++
++void vpx_sad16x8x4d_c(const uint8_t* src_ptr,
++                      int src_stride,
++                      const uint8_t* const ref_array[],
++                      int ref_stride,
++                      uint32_t* sad_array);
++#define vpx_sad16x8x4d vpx_sad16x8x4d_c
++
++void vpx_sad16x8x8_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* ref_ptr,
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad16x8x8 vpx_sad16x8x8_c
++
++unsigned int vpx_sad32x16_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad32x16 vpx_sad32x16_c
++
++unsigned int vpx_sad32x16_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad32x16_avg vpx_sad32x16_avg_c
++
++void vpx_sad32x16x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad32x16x4d vpx_sad32x16x4d_c
++
++unsigned int vpx_sad32x32_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad32x32 vpx_sad32x32_c
++
++unsigned int vpx_sad32x32_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad32x32_avg vpx_sad32x32_avg_c
++
++void vpx_sad32x32x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad32x32x4d vpx_sad32x32x4d_c
++
++void vpx_sad32x32x8_c(const uint8_t* src_ptr,
++                      int src_stride,
++                      const uint8_t* ref_ptr,
++                      int ref_stride,
++                      uint32_t* sad_array);
++#define vpx_sad32x32x8 vpx_sad32x32x8_c
++
++unsigned int vpx_sad32x64_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad32x64 vpx_sad32x64_c
++
++unsigned int vpx_sad32x64_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad32x64_avg vpx_sad32x64_avg_c
++
++void vpx_sad32x64x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad32x64x4d vpx_sad32x64x4d_c
++
++unsigned int vpx_sad4x4_c(const uint8_t* src_ptr,
++                          int src_stride,
++                          const uint8_t* ref_ptr,
++                          int ref_stride);
++#define vpx_sad4x4 vpx_sad4x4_c
++
++unsigned int vpx_sad4x4_avg_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* ref_ptr,
++                              int ref_stride,
++                              const uint8_t* second_pred);
++#define vpx_sad4x4_avg vpx_sad4x4_avg_c
++
++void vpx_sad4x4x3_c(const uint8_t* src_ptr,
++                    int src_stride,
++                    const uint8_t* ref_ptr,
++                    int ref_stride,
++                    uint32_t* sad_array);
++#define vpx_sad4x4x3 vpx_sad4x4x3_c
++
++void vpx_sad4x4x4d_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* const ref_array[],
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad4x4x4d vpx_sad4x4x4d_c
++
++void vpx_sad4x4x8_c(const uint8_t* src_ptr,
++                    int src_stride,
++                    const uint8_t* ref_ptr,
++                    int ref_stride,
++                    uint32_t* sad_array);
++#define vpx_sad4x4x8 vpx_sad4x4x8_c
++
++unsigned int vpx_sad4x8_c(const uint8_t* src_ptr,
++                          int src_stride,
++                          const uint8_t* ref_ptr,
++                          int ref_stride);
++#define vpx_sad4x8 vpx_sad4x8_c
++
++unsigned int vpx_sad4x8_avg_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* ref_ptr,
++                              int ref_stride,
++                              const uint8_t* second_pred);
++#define vpx_sad4x8_avg vpx_sad4x8_avg_c
++
++void vpx_sad4x8x4d_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* const ref_array[],
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad4x8x4d vpx_sad4x8x4d_c
++
++unsigned int vpx_sad64x32_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad64x32 vpx_sad64x32_c
++
++unsigned int vpx_sad64x32_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad64x32_avg vpx_sad64x32_avg_c
++
++void vpx_sad64x32x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad64x32x4d vpx_sad64x32x4d_c
++
++unsigned int vpx_sad64x64_c(const uint8_t* src_ptr,
++                            int src_stride,
++                            const uint8_t* ref_ptr,
++                            int ref_stride);
++#define vpx_sad64x64 vpx_sad64x64_c
++
++unsigned int vpx_sad64x64_avg_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                const uint8_t* second_pred);
++#define vpx_sad64x64_avg vpx_sad64x64_avg_c
++
++void vpx_sad64x64x4d_c(const uint8_t* src_ptr,
++                       int src_stride,
++                       const uint8_t* const ref_array[],
++                       int ref_stride,
++                       uint32_t* sad_array);
++#define vpx_sad64x64x4d vpx_sad64x64x4d_c
++
++unsigned int vpx_sad8x16_c(const uint8_t* src_ptr,
++                           int src_stride,
++                           const uint8_t* ref_ptr,
++                           int ref_stride);
++#define vpx_sad8x16 vpx_sad8x16_c
++
++unsigned int vpx_sad8x16_avg_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               const uint8_t* second_pred);
++#define vpx_sad8x16_avg vpx_sad8x16_avg_c
++
++void vpx_sad8x16x3_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* ref_ptr,
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad8x16x3 vpx_sad8x16x3_c
++
++void vpx_sad8x16x4d_c(const uint8_t* src_ptr,
++                      int src_stride,
++                      const uint8_t* const ref_array[],
++                      int ref_stride,
++                      uint32_t* sad_array);
++#define vpx_sad8x16x4d vpx_sad8x16x4d_c
++
++void vpx_sad8x16x8_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* ref_ptr,
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad8x16x8 vpx_sad8x16x8_c
++
++unsigned int vpx_sad8x4_c(const uint8_t* src_ptr,
++                          int src_stride,
++                          const uint8_t* ref_ptr,
++                          int ref_stride);
++#define vpx_sad8x4 vpx_sad8x4_c
++
++unsigned int vpx_sad8x4_avg_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* ref_ptr,
++                              int ref_stride,
++                              const uint8_t* second_pred);
++#define vpx_sad8x4_avg vpx_sad8x4_avg_c
++
++void vpx_sad8x4x4d_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* const ref_array[],
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad8x4x4d vpx_sad8x4x4d_c
++
++unsigned int vpx_sad8x8_c(const uint8_t* src_ptr,
++                          int src_stride,
++                          const uint8_t* ref_ptr,
++                          int ref_stride);
++#define vpx_sad8x8 vpx_sad8x8_c
++
++unsigned int vpx_sad8x8_avg_c(const uint8_t* src_ptr,
++                              int src_stride,
++                              const uint8_t* ref_ptr,
++                              int ref_stride,
++                              const uint8_t* second_pred);
++#define vpx_sad8x8_avg vpx_sad8x8_avg_c
++
++void vpx_sad8x8x3_c(const uint8_t* src_ptr,
++                    int src_stride,
++                    const uint8_t* ref_ptr,
++                    int ref_stride,
++                    uint32_t* sad_array);
++#define vpx_sad8x8x3 vpx_sad8x8x3_c
++
++void vpx_sad8x8x4d_c(const uint8_t* src_ptr,
++                     int src_stride,
++                     const uint8_t* const ref_array[],
++                     int ref_stride,
++                     uint32_t* sad_array);
++#define vpx_sad8x8x4d vpx_sad8x8x4d_c
++
++void vpx_sad8x8x8_c(const uint8_t* src_ptr,
++                    int src_stride,
++                    const uint8_t* ref_ptr,
++                    int ref_stride,
++                    uint32_t* sad_array);
++#define vpx_sad8x8x8 vpx_sad8x8x8_c
++
++int vpx_satd_c(const tran_low_t* coeff, int length);
++#define vpx_satd vpx_satd_c
++
++void vpx_scaled_2d_c(const uint8_t* src,
++                     ptrdiff_t src_stride,
++                     uint8_t* dst,
++                     ptrdiff_t dst_stride,
++                     const InterpKernel* filter,
++                     int x0_q4,
++                     int x_step_q4,
++                     int y0_q4,
++                     int y_step_q4,
++                     int w,
++                     int h);
++#define vpx_scaled_2d vpx_scaled_2d_c
++
++void vpx_scaled_avg_2d_c(const uint8_t* src,
++                         ptrdiff_t src_stride,
++                         uint8_t* dst,
++                         ptrdiff_t dst_stride,
++                         const InterpKernel* filter,
++                         int x0_q4,
++                         int x_step_q4,
++                         int y0_q4,
++                         int y_step_q4,
++                         int w,
++                         int h);
++#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
++
++void vpx_scaled_avg_horiz_c(const uint8_t* src,
++                            ptrdiff_t src_stride,
++                            uint8_t* dst,
++                            ptrdiff_t dst_stride,
++                            const InterpKernel* filter,
++                            int x0_q4,
++                            int x_step_q4,
++                            int y0_q4,
++                            int y_step_q4,
++                            int w,
++                            int h);
++#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
++
++void vpx_scaled_avg_vert_c(const uint8_t* src,
++                           ptrdiff_t src_stride,
++                           uint8_t* dst,
++                           ptrdiff_t dst_stride,
++                           const InterpKernel* filter,
++                           int x0_q4,
++                           int x_step_q4,
++                           int y0_q4,
++                           int y_step_q4,
++                           int w,
++                           int h);
++#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
++
++void vpx_scaled_horiz_c(const uint8_t* src,
++                        ptrdiff_t src_stride,
++                        uint8_t* dst,
++                        ptrdiff_t dst_stride,
++                        const InterpKernel* filter,
++                        int x0_q4,
++                        int x_step_q4,
++                        int y0_q4,
++                        int y_step_q4,
++                        int w,
++                        int h);
++#define vpx_scaled_horiz vpx_scaled_horiz_c
++
++void vpx_scaled_vert_c(const uint8_t* src,
++                       ptrdiff_t src_stride,
++                       uint8_t* dst,
++                       ptrdiff_t dst_stride,
++                       const InterpKernel* filter,
++                       int x0_q4,
++                       int x_step_q4,
++                       int y0_q4,
++                       int y_step_q4,
++                       int w,
++                       int h);
++#define vpx_scaled_vert vpx_scaled_vert_c
++
++uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
++
++uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
++
++uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          int x_offset,
++                                          int y_offset,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          uint32_t* sse,
++                                          const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
++
++uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
++
++uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
++
++uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
++
++uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         int x_offset,
++                                         int y_offset,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         uint32_t* sse,
++                                         const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
++
++uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         int x_offset,
++                                         int y_offset,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         uint32_t* sse,
++                                         const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
++
++uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
++
++uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t* src_ptr,
++                                           int src_stride,
++                                           int x_offset,
++                                           int y_offset,
++                                           const uint8_t* ref_ptr,
++                                           int ref_stride,
++                                           uint32_t* sse,
++                                           const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_c
++
++uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t* src_ptr,
++                                          int src_stride,
++                                          int x_offset,
++                                          int y_offset,
++                                          const uint8_t* ref_ptr,
++                                          int ref_stride,
++                                          uint32_t* sse,
++                                          const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
++
++uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         int x_offset,
++                                         int y_offset,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         uint32_t* sse,
++                                         const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
++
++uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t* src_ptr,
++                                         int src_stride,
++                                         int x_offset,
++                                         int y_offset,
++                                         const uint8_t* ref_ptr,
++                                         int ref_stride,
++                                         uint32_t* sse,
++                                         const uint8_t* second_pred);
++#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
++
++uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_c
++
++uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
++
++uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      int x_offset,
++                                      int y_offset,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      uint32_t* sse);
++#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
++
++uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
++
++uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_c
++
++uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
++
++uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     int x_offset,
++                                     int y_offset,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     uint32_t* sse);
++#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
++
++uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     int x_offset,
++                                     int y_offset,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     uint32_t* sse);
++#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
++
++uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
++
++uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t* src_ptr,
++                                       int src_stride,
++                                       int x_offset,
++                                       int y_offset,
++                                       const uint8_t* ref_ptr,
++                                       int ref_stride,
++                                       uint32_t* sse);
++#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_c
++
++uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t* src_ptr,
++                                      int src_stride,
++                                      int x_offset,
++                                      int y_offset,
++                                      const uint8_t* ref_ptr,
++                                      int ref_stride,
++                                      uint32_t* sse);
++#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
++
++uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     int x_offset,
++                                     int y_offset,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     uint32_t* sse);
++#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
++
++uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t* src_ptr,
++                                     int src_stride,
++                                     int x_offset,
++                                     int y_offset,
++                                     const uint8_t* ref_ptr,
++                                     int ref_stride,
++                                     uint32_t* sse);
++#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_c
++
++void vpx_subtract_block_c(int rows,
++                          int cols,
++                          int16_t* diff_ptr,
++                          ptrdiff_t diff_stride,
++                          const uint8_t* src_ptr,
++                          ptrdiff_t src_stride,
++                          const uint8_t* pred_ptr,
++                          ptrdiff_t pred_stride);
++#define vpx_subtract_block vpx_subtract_block_c
++
++uint64_t vpx_sum_squares_2d_i16_c(const int16_t* src, int stride, int size);
++#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
++
++void vpx_tm_predictor_16x16_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_c
++
++void vpx_tm_predictor_32x32_c(uint8_t* dst,
++                              ptrdiff_t stride,
++                              const uint8_t* above,
++                              const uint8_t* left);
++#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_c
++
++void vpx_tm_predictor_4x4_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_c
++
++void vpx_tm_predictor_8x8_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_c
++
++void vpx_v_predictor_16x16_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_c
++
++void vpx_v_predictor_32x32_c(uint8_t* dst,
++                             ptrdiff_t stride,
++                             const uint8_t* above,
++                             const uint8_t* left);
++#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_c
++
++void vpx_v_predictor_4x4_c(uint8_t* dst,
++                           ptrdiff_t stride,
++                           const uint8_t* above,
++                           const uint8_t* left);
++#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_c
++
++void vpx_v_predictor_8x8_c(uint8_t* dst,
++                           ptrdiff_t stride,
++                           const uint8_t* above,
++                           const uint8_t* left);
++#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_c
++
++unsigned int vpx_variance16x16_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance16x16 vpx_variance16x16_c
++
++unsigned int vpx_variance16x32_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance16x32 vpx_variance16x32_c
++
++unsigned int vpx_variance16x8_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                unsigned int* sse);
++#define vpx_variance16x8 vpx_variance16x8_c
++
++unsigned int vpx_variance32x16_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance32x16 vpx_variance32x16_c
++
++unsigned int vpx_variance32x32_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance32x32 vpx_variance32x32_c
++
++unsigned int vpx_variance32x64_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance32x64 vpx_variance32x64_c
++
++unsigned int vpx_variance4x4_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse);
++#define vpx_variance4x4 vpx_variance4x4_c
++
++unsigned int vpx_variance4x8_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse);
++#define vpx_variance4x8 vpx_variance4x8_c
++
++unsigned int vpx_variance64x32_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance64x32 vpx_variance64x32_c
++
++unsigned int vpx_variance64x64_c(const uint8_t* src_ptr,
++                                 int src_stride,
++                                 const uint8_t* ref_ptr,
++                                 int ref_stride,
++                                 unsigned int* sse);
++#define vpx_variance64x64 vpx_variance64x64_c
++
++unsigned int vpx_variance8x16_c(const uint8_t* src_ptr,
++                                int src_stride,
++                                const uint8_t* ref_ptr,
++                                int ref_stride,
++                                unsigned int* sse);
++#define vpx_variance8x16 vpx_variance8x16_c
++
++unsigned int vpx_variance8x4_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse);
++#define vpx_variance8x4 vpx_variance8x4_c
++
++unsigned int vpx_variance8x8_c(const uint8_t* src_ptr,
++                               int src_stride,
++                               const uint8_t* ref_ptr,
++                               int ref_stride,
++                               unsigned int* sse);
++#define vpx_variance8x8 vpx_variance8x8_c
++
++void vpx_ve_predictor_4x4_c(uint8_t* dst,
++                            ptrdiff_t stride,
++                            const uint8_t* above,
++                            const uint8_t* left);
++#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
++
++int vpx_vector_var_c(const int16_t* ref, const int16_t* src, const int bwl);
++#define vpx_vector_var vpx_vector_var_c
++
++void vpx_dsp_rtcd(void);
++
++#include "vpx_config.h"
++
++#ifdef RTCD_C
++static void setup_rtcd_internal(void) {}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
+Index: chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h
+===================================================================
+--- /dev/null
++++ chromium-99.0.4818.0/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h
+@@ -0,0 +1,96 @@
++// This file is generated. Do not edit.
++#ifndef VPX_SCALE_RTCD_H_
++#define VPX_SCALE_RTCD_H_
++
++#ifdef RTCD_C
++#define RTCD_EXTERN
++#else
++#define RTCD_EXTERN extern
++#endif
++
++struct yv12_buffer_config;
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void vp8_horizontal_line_2_1_scale_c(const unsigned char* source,
++                                     unsigned int source_width,
++                                     unsigned char* dest,
++                                     unsigned int dest_width);
++#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
++
++void vp8_horizontal_line_5_3_scale_c(const unsigned char* source,
++                                     unsigned int source_width,
++                                     unsigned char* dest,
++                                     unsigned int dest_width);
++#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
++
++void vp8_horizontal_line_5_4_scale_c(const unsigned char* source,
++                                     unsigned int source_width,
++                                     unsigned char* dest,
++                                     unsigned int dest_width);
++#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
++
++void vp8_vertical_band_2_1_scale_c(unsigned char* source,
++                                   unsigned int src_pitch,
++                                   unsigned char* dest,
++                                   unsigned int dest_pitch,
++                                   unsigned int dest_width);
++#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
++
++void vp8_vertical_band_2_1_scale_i_c(unsigned char* source,
++                                     unsigned int src_pitch,
++                                     unsigned char* dest,
++                                     unsigned int dest_pitch,
++                                     unsigned int dest_width);
++#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
++
++void vp8_vertical_band_5_3_scale_c(unsigned char* source,
++                                   unsigned int src_pitch,
++                                   unsigned char* dest,
++                                   unsigned int dest_pitch,
++                                   unsigned int dest_width);
++#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
++
++void vp8_vertical_band_5_4_scale_c(unsigned char* source,
++                                   unsigned int src_pitch,
++                                   unsigned char* dest,
++                                   unsigned int dest_pitch,
++                                   unsigned int dest_width);
++#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
++
++void vp8_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc,
++                           struct yv12_buffer_config* dst_ybc);
++#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
++
++void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config* ybf);
++#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
++
++void vpx_extend_frame_borders_c(struct yv12_buffer_config* ybf);
++#define vpx_extend_frame_borders vpx_extend_frame_borders_c
++
++void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config* ybf);
++#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
++
++void vpx_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc,
++                           struct yv12_buffer_config* dst_ybc);
++#define vpx_yv12_copy_frame vpx_yv12_copy_frame_c
++
++void vpx_yv12_copy_y_c(const struct yv12_buffer_config* src_ybc,
++                       struct yv12_buffer_config* dst_ybc);
++#define vpx_yv12_copy_y vpx_yv12_copy_y_c
++
++void vpx_scale_rtcd(void);
++
++#include "vpx_config.h"
++
++#ifdef RTCD_C
++static void setup_rtcd_internal(void) {}
++#endif
++
++#ifdef __cplusplus
++}  // extern "C"
++#endif
++
++#endif
diff -urN a/debian/patches/ppc64le/third_party/0004-third_party-crashpad-port-curl-transport-ppc64.patch b/debian/patches/ppc64le/third_party/0004-third_party-crashpad-port-curl-transport-ppc64.patch
--- a/debian/patches/ppc64le/third_party/0004-third_party-crashpad-port-curl-transport-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0004-third_party-crashpad-port-curl-transport-ppc64.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,17 @@
+Index: chromium-99.0.4818.0/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
++++ chromium-99.0.4818.0/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
+@@ -237,6 +237,12 @@ std::string UserAgent() {
+ #elif defined(ARCH_CPU_BIG_ENDIAN)
+     static constexpr char arch[] = "aarch64_be";
+ #endif
++#elif defined(__powerpc64__)
++#if defined(ARCH_CPU_LITTLE_ENDIAN)
++    static constexpr char arch[] = "ppc64";
++#elif defined(ARCH_CPU_BIG_ENDIAN)
++    static constexpr char arch[] = "ppc64_be";
++#endif
+ #else
+ #error Port
+ #endif
diff -urN a/debian/patches/ppc64le/third_party/0004-third_party-libvpx-work-around-ambiguous-vsx.patch b/debian/patches/ppc64le/third_party/0004-third_party-libvpx-work-around-ambiguous-vsx.patch
--- a/debian/patches/ppc64le/third_party/0004-third_party-libvpx-work-around-ambiguous-vsx.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/0004-third_party-libvpx-work-around-ambiguous-vsx.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,376 @@
+Index: chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
++++ chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
+@@ -38,6 +38,28 @@ static INLINE int16x8_t vec_max_across(i
+   return vec_max(a, vec_perm(a, a, vec_perm16));
+ }
+ 
++static INLINE void
++vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
++{
++#ifndef WORDS_BIGENDIAN
++  __asm__ ("xxswapd %x0, %x1"
++	   : "=wa" (vecu64)
++	   : "wa" (vecu64));
++#endif
++#if __GNUC__ >= 4
++  if (__builtin_constant_p (offset) && offset == 0)
++    __asm__ ("stxvd2x %x0,0,%1\n\t"
++	     :
++	     : "wa" (vecu64), "r" ((uintptr_t)ptr)
++	     : "memory");
++  else
++#endif
++    __asm__ ("stxvd2x %x0,%1,%2\n\t"
++	     :
++	     : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
++	     : "memory", "r0");
++}
++
+ void vp9_quantize_fp_vsx(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
+                          int skip_block, const int16_t *round_ptr,
+                          const int16_t *quant_ptr, tran_low_t *qcoeff_ptr,
+@@ -63,10 +85,10 @@ void vp9_quantize_fp_vsx(const tran_low_
+   qcoeff0 = vec_mulhi(vec_vaddshs(vec_abs(coeff0), round), quant);
+   zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
+   qcoeff0 = vec_sign(qcoeff0, coeff0);
+-  vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
++  vec_u64_store(qcoeff0, 0, qcoeff_ptr);
+ 
+   dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
+-  vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
++  vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
+ 
+   // Remove DC value from round and quant
+   round = vec_splat(round, 1);
+@@ -79,10 +101,10 @@ void vp9_quantize_fp_vsx(const tran_low_
+   qcoeff1 = vec_mulhi(vec_vaddshs(vec_abs(coeff1), round), quant);
+   zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
+   qcoeff1 = vec_sign(qcoeff1, coeff1);
+-  vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
++  vec_u64_store(qcoeff1, 16, qcoeff_ptr);
+ 
+   dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
+-  vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
++  vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
+ 
+   eob = vec_max(vec_or(scan0, zero_coeff0), vec_or(scan1, zero_coeff1));
+ 
+@@ -110,23 +132,23 @@ void vp9_quantize_fp_vsx(const tran_low_
+       qcoeff0 = vec_mulhi(vec_vaddshs(vec_abs(coeff0), round), quant);
+       zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
+       qcoeff0 = vec_sign(qcoeff0, coeff0);
+-      vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
++      vec_u64_store(qcoeff0, off0, qcoeff_ptr);
+       dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
+-      vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
++      vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
+ 
+       qcoeff1 = vec_mulhi(vec_vaddshs(vec_abs(coeff1), round), quant);
+       zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
+       qcoeff1 = vec_sign(qcoeff1, coeff1);
+-      vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
++      vec_u64_store(qcoeff1, off1, qcoeff_ptr);
+       dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
+-      vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
++      vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
+ 
+       qcoeff2 = vec_mulhi(vec_vaddshs(vec_abs(coeff2), round), quant);
+       zero_coeff2 = vec_cmpeq(qcoeff2, vec_zeros_s16);
+       qcoeff2 = vec_sign(qcoeff2, coeff2);
+-      vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
++      vec_u64_store(qcoeff2, off2, qcoeff_ptr);
+       dqcoeff2 = vec_mladd(qcoeff2, dequant, vec_zeros_s16);
+-      vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
++      vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
+ 
+       eob = vec_max(eob, vec_or(scan0, zero_coeff0));
+       eob2 = vec_max(vec_or(scan1, zero_coeff1), vec_or(scan2, zero_coeff2));
+@@ -205,10 +227,10 @@ void vp9_quantize_fp_32x32_vsx(const tra
+   qcoeff0 = vec_and(qcoeff0, mask0);
+   zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
+   qcoeff0 = vec_sign(qcoeff0, coeff0);
+-  vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
++  vec_u64_store(qcoeff0, 0, qcoeff_ptr);
+ 
+   dqcoeff0 = dequantize_coeff_32(qcoeff0, dequant);
+-  vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
++  vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
+ 
+   // Remove DC value from thres, round, quant and dequant
+   thres = vec_splat(thres, 1);
+@@ -224,10 +246,10 @@ void vp9_quantize_fp_32x32_vsx(const tra
+   qcoeff1 = vec_and(qcoeff1, mask1);
+   zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
+   qcoeff1 = vec_sign(qcoeff1, coeff1);
+-  vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
++  vec_u64_store(qcoeff1, 16, qcoeff_ptr);
+ 
+   dqcoeff1 = dequantize_coeff_32(qcoeff1, dequant);
+-  vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
++  vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
+ 
+   eob = vec_max(vec_or(scan0, zero_coeff0), vec_or(scan1, zero_coeff1));
+ 
+@@ -265,17 +287,17 @@ void vp9_quantize_fp_32x32_vsx(const tra
+     qcoeff1 = vec_sign(qcoeff1, coeff1);
+     qcoeff2 = vec_sign(qcoeff2, coeff2);
+ 
+-    vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
+-    vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
+-    vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
++    vec_u64_store(qcoeff0, off0, qcoeff_ptr);
++    vec_u64_store(qcoeff1, off1, qcoeff_ptr);
++    vec_u64_store(qcoeff2, off2, qcoeff_ptr);
+ 
+     dqcoeff0 = dequantize_coeff_32(qcoeff0, dequant);
+     dqcoeff1 = dequantize_coeff_32(qcoeff1, dequant);
+     dqcoeff2 = dequantize_coeff_32(qcoeff2, dequant);
+ 
+-    vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
+-    vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
+-    vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
++    vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
++    vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
++    vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
+ 
+     eob = vec_max(eob, vec_or(scan0, zero_coeff0));
+     eob2 = vec_max(vec_or(scan1, zero_coeff1), vec_or(scan2, zero_coeff2));
+Index: chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
++++ chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
+@@ -15,6 +15,28 @@
+ #include "vpx_dsp/ppc/txfm_common_vsx.h"
+ #include "vpx_dsp/ppc/types_vsx.h"
+ 
++static INLINE void
++vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
++{
++#ifndef WORDS_BIGENDIAN
++  __asm__ ("xxswapd %x0, %x1"
++	   : "=wa" (vecu64)
++	   : "wa" (vecu64));
++#endif
++#if __GNUC__ >= 4
++  if (__builtin_constant_p (offset) && offset == 0)
++    __asm__ ("stxvd2x %x0,0,%1\n\t"
++	     :
++	     : "wa" (vecu64), "r" ((uintptr_t)ptr)
++	     : "memory");
++  else
++#endif
++    __asm__ ("stxvd2x %x0,%1,%2\n\t"
++	     :
++	     : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
++	     : "memory", "r0");
++}
++
+ // Returns ((a +/- b) * cospi16 + (2 << 13)) >> 14.
+ static INLINE void single_butterfly(int16x8_t a, int16x8_t b, int16x8_t *add,
+                                     int16x8_t *sub) {
+@@ -164,45 +186,45 @@ static INLINE void load(const int16_t *a
+ }
+ 
+ static INLINE void store(tran_low_t *a, const int16x8_t *b) {
+-  vec_vsx_st(b[0], 0, a);
+-  vec_vsx_st(b[8], 0, a + 8);
+-  vec_vsx_st(b[16], 0, a + 16);
+-  vec_vsx_st(b[24], 0, a + 24);
+-
+-  vec_vsx_st(b[1], 0, a + 32);
+-  vec_vsx_st(b[9], 0, a + 40);
+-  vec_vsx_st(b[17], 0, a + 48);
+-  vec_vsx_st(b[25], 0, a + 56);
+-
+-  vec_vsx_st(b[2], 0, a + 64);
+-  vec_vsx_st(b[10], 0, a + 72);
+-  vec_vsx_st(b[18], 0, a + 80);
+-  vec_vsx_st(b[26], 0, a + 88);
+-
+-  vec_vsx_st(b[3], 0, a + 96);
+-  vec_vsx_st(b[11], 0, a + 104);
+-  vec_vsx_st(b[19], 0, a + 112);
+-  vec_vsx_st(b[27], 0, a + 120);
+-
+-  vec_vsx_st(b[4], 0, a + 128);
+-  vec_vsx_st(b[12], 0, a + 136);
+-  vec_vsx_st(b[20], 0, a + 144);
+-  vec_vsx_st(b[28], 0, a + 152);
+-
+-  vec_vsx_st(b[5], 0, a + 160);
+-  vec_vsx_st(b[13], 0, a + 168);
+-  vec_vsx_st(b[21], 0, a + 176);
+-  vec_vsx_st(b[29], 0, a + 184);
+-
+-  vec_vsx_st(b[6], 0, a + 192);
+-  vec_vsx_st(b[14], 0, a + 200);
+-  vec_vsx_st(b[22], 0, a + 208);
+-  vec_vsx_st(b[30], 0, a + 216);
+-
+-  vec_vsx_st(b[7], 0, a + 224);
+-  vec_vsx_st(b[15], 0, a + 232);
+-  vec_vsx_st(b[23], 0, a + 240);
+-  vec_vsx_st(b[31], 0, a + 248);
++  vec_u64_store(b[0], 0, a);
++  vec_u64_store(b[8], 0, a + 8);
++  vec_u64_store(b[16], 0, a + 16);
++  vec_u64_store(b[24], 0, a + 24);
++
++  vec_u64_store(b[1], 0, a + 32);
++  vec_u64_store(b[9], 0, a + 40);
++  vec_u64_store(b[17], 0, a + 48);
++  vec_u64_store(b[25], 0, a + 56);
++
++  vec_u64_store(b[2], 0, a + 64);
++  vec_u64_store(b[10], 0, a + 72);
++  vec_u64_store(b[18], 0, a + 80);
++  vec_u64_store(b[26], 0, a + 88);
++
++  vec_u64_store(b[3], 0, a + 96);
++  vec_u64_store(b[11], 0, a + 104);
++  vec_u64_store(b[19], 0, a + 112);
++  vec_u64_store(b[27], 0, a + 120);
++
++  vec_u64_store(b[4], 0, a + 128);
++  vec_u64_store(b[12], 0, a + 136);
++  vec_u64_store(b[20], 0, a + 144);
++  vec_u64_store(b[28], 0, a + 152);
++
++  vec_u64_store(b[5], 0, a + 160);
++  vec_u64_store(b[13], 0, a + 168);
++  vec_u64_store(b[21], 0, a + 176);
++  vec_u64_store(b[29], 0, a + 184);
++
++  vec_u64_store(b[6], 0, a + 192);
++  vec_u64_store(b[14], 0, a + 200);
++  vec_u64_store(b[22], 0, a + 208);
++  vec_u64_store(b[30], 0, a + 216);
++
++  vec_u64_store(b[7], 0, a + 224);
++  vec_u64_store(b[15], 0, a + 232);
++  vec_u64_store(b[23], 0, a + 240);
++  vec_u64_store(b[31], 0, a + 248);
+ }
+ 
+ // Returns 1 if negative 0 if positive
+Index: chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
++++ chromium-99.0.4818.0/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
+@@ -13,6 +13,28 @@
+ #include "./vpx_dsp_rtcd.h"
+ #include "vpx_dsp/ppc/types_vsx.h"
+ 
++static INLINE void
++vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
++{
++#ifndef WORDS_BIGENDIAN
++  __asm__ ("xxswapd %x0, %x1"
++	   : "=wa" (vecu64)
++	   : "wa" (vecu64));
++#endif
++#if __GNUC__ >= 4
++  if (__builtin_constant_p (offset) && offset == 0)
++    __asm__ ("stxvd2x %x0,0,%1\n\t"
++	     :
++	     : "wa" (vecu64), "r" ((uintptr_t)ptr)
++	     : "memory");
++  else
++#endif
++    __asm__ ("stxvd2x %x0,%1,%2\n\t"
++	     :
++	     : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
++	     : "memory", "r0");
++}
++
+ // Negate 16-bit integers in a when the corresponding signed 16-bit
+ // integer in b is negative.
+ static INLINE int16x8_t vec_sign(int16x8_t a, int16x8_t b) {
+@@ -127,19 +149,19 @@ void vpx_quantize_b_vsx(const tran_low_t
+ 
+   qcoeff0 =
+       quantize_coeff(coeff0, coeff0_abs, round, quant, quant_shift, zero_mask0);
+-  vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
++  vec_u64_store(qcoeff0, 0, qcoeff_ptr);
+   round = vec_splat(round, 1);
+   quant = vec_splat(quant, 1);
+   quant_shift = vec_splat(quant_shift, 1);
+   qcoeff1 =
+       quantize_coeff(coeff1, coeff1_abs, round, quant, quant_shift, zero_mask1);
+-  vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
++  vec_u64_store(qcoeff1, 16, qcoeff_ptr);
+ 
+   dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
+-  vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
++  vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
+   dequant = vec_splat(dequant, 1);
+   dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
+-  vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
++  vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
+ 
+   eob = vec_max(nonzero_scanindex(qcoeff0, zero_mask0, iscan_ptr, 0),
+                 nonzero_scanindex(qcoeff1, zero_mask1, iscan_ptr, 16));
+@@ -167,17 +189,17 @@ void vpx_quantize_b_vsx(const tran_low_t
+                                zero_mask1);
+       qcoeff2 = quantize_coeff(coeff2, coeff2_abs, round, quant, quant_shift,
+                                zero_mask2);
+-      vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
+-      vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
+-      vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
++      vec_u64_store(qcoeff0, off0, qcoeff_ptr);
++      vec_u64_store(qcoeff1, off1, qcoeff_ptr);
++      vec_u64_store(qcoeff2, off2, qcoeff_ptr);
+ 
+       dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
+       dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
+       dqcoeff2 = vec_mladd(qcoeff2, dequant, vec_zeros_s16);
+ 
+-      vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
+-      vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
+-      vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
++      vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
++      vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
++      vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
+ 
+       eob =
+           vec_max(eob, nonzero_scanindex(qcoeff0, zero_mask0, iscan_ptr, off0));
+@@ -247,12 +269,12 @@ void vpx_quantize_b_32x32_vsx(
+   qcoeff1 = quantize_coeff_32(coeff1, coeff1_abs, round, quant, quant_shift,
+                               zero_mask1);
+ 
+-  vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
+-  vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
++  vec_u64_store(qcoeff0, 0, qcoeff_ptr);
++  vec_u64_store(qcoeff1, 16, qcoeff_ptr);
+ 
+-  vec_vsx_st(dequantize_coeff_32(qcoeff0, dequant), 0, dqcoeff_ptr);
++  vec_u64_store(dequantize_coeff_32(qcoeff0, dequant), 0, dqcoeff_ptr);
+   dequant = vec_splat(dequant, 1);  // remove DC from dequant
+-  vec_vsx_st(dequantize_coeff_32(qcoeff1, dequant), 16, dqcoeff_ptr);
++  vec_u64_store(dequantize_coeff_32(qcoeff1, dequant), 16, dqcoeff_ptr);
+ 
+   eob = vec_max(nonzero_scanindex(qcoeff0, zero_mask0, iscan_ptr, 0),
+                 nonzero_scanindex(qcoeff1, zero_mask1, iscan_ptr, 16));
+@@ -280,13 +302,13 @@ void vpx_quantize_b_32x32_vsx(
+     qcoeff2 = quantize_coeff_32(coeff2, coeff2_abs, round, quant, quant_shift,
+                                 zero_mask2);
+ 
+-    vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
+-    vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
+-    vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
+-
+-    vec_vsx_st(dequantize_coeff_32(qcoeff0, dequant), off0, dqcoeff_ptr);
+-    vec_vsx_st(dequantize_coeff_32(qcoeff1, dequant), off1, dqcoeff_ptr);
+-    vec_vsx_st(dequantize_coeff_32(qcoeff2, dequant), off2, dqcoeff_ptr);
++    vec_u64_store(qcoeff0, off0, qcoeff_ptr);
++    vec_u64_store(qcoeff1, off1, qcoeff_ptr);
++    vec_u64_store(qcoeff2, off2, qcoeff_ptr);
++
++    vec_u64_store(dequantize_coeff_32(qcoeff0, dequant), off0, dqcoeff_ptr);
++    vec_u64_store(dequantize_coeff_32(qcoeff1, dequant), off1, dqcoeff_ptr);
++    vec_u64_store(dequantize_coeff_32(qcoeff2, dequant), off2, dqcoeff_ptr);
+ 
+     eob = vec_max(eob, nonzero_scanindex(qcoeff0, zero_mask0, iscan_ptr, off0));
+     eob2 = vec_max(nonzero_scanindex(qcoeff1, zero_mask1, iscan_ptr, off1),
diff -urN a/debian/patches/ppc64le/third_party/skia-vsx-instructions.patch b/debian/patches/ppc64le/third_party/skia-vsx-instructions.patch
--- a/debian/patches/ppc64le/third_party/skia-vsx-instructions.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/skia-vsx-instructions.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,382 @@
+diff -ur a/third_party/skia/BUILD.gn b/third_party/skia/BUILD.gn
+--- a/third_party/skia/BUILD.gn	2022-01-28 11:01:18.000000000 -0600
++++ b/third_party/skia/BUILD.gn	2022-01-28 11:15:22.270835089 -0600
+@@ -151,7 +151,8 @@
+ is_x86 = current_cpu == "x64" || current_cpu == "x86"
+ 
+ opts("none") {
+-  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
++  enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64" &&
++      current_cpu != "ppc64"
+   sources = skia_opts.none_sources
+   cflags = []
+ }
+@@ -253,6 +254,11 @@
+   }
+ }
+ 
++opts("vsx") {
++  enabled = current_cpu == "ppc64"
++  sources = skia_opts.vsx_sources
++}
++
+ # Any feature of Skia that requires third-party code should be optional and use this template.
+ template("optional") {
+   if (invoker.enabled) {
+@@ -1277,6 +1283,7 @@
+     ":sse41",
+     ":sse42",
+     ":ssse3",
++    ":vsx",
+     ":webp_decode",
+     ":webp_encode",
+     ":wuffs",
+@@ -1454,6 +1461,7 @@
+     ":sse41",
+     ":sse42",
+     ":ssse3",
++    ":vsx",
+   ]
+ 
+   sources = []
+diff -ur a/third_party/skia/gn/shared_sources.gni b/third_party/skia/gn/shared_sources.gni
+--- a/third_party/skia/gn/shared_sources.gni	2022-01-20 04:37:51.000000000 -0600
++++ b/third_party/skia/gn/shared_sources.gni	2022-01-28 11:16:01.506171346 -0600
+@@ -28,4 +28,5 @@
+   avx_sources = avx
+   hsw_sources = hsw
+   skx_sources = skx
++  vsx_sources = ssse3
+ }
+diff -ur a/third_party/skia/gn/skia/BUILD.gn b/third_party/skia/gn/skia/BUILD.gn
+--- a/third_party/skia/gn/skia/BUILD.gn	2022-01-20 04:37:51.000000000 -0600
++++ b/third_party/skia/gn/skia/BUILD.gn	2022-01-28 11:15:22.274834613 -0600
+@@ -162,6 +162,8 @@
+       "-mfpmath=sse",
+     ]
+     ldflags += [ "-m32" ]
++  } else if (current_cpu == "ppc64") {
++    cflags += [ "-mcpu=power9", "-mtune=power9" ]
+   }
+ 
+   if (malloc != "" && !is_win) {
+diff -ur a/third_party/skia/include/core/SkTypes.h b/third_party/skia/include/core/SkTypes.h
+--- a/third_party/skia/include/core/SkTypes.h	2022-01-20 04:37:51.000000000 -0600
++++ b/third_party/skia/include/core/SkTypes.h	2022-01-28 11:15:22.282833662 -0600
+@@ -161,6 +161,42 @@
+     #define SK_ARM_HAS_CRC32
+ #endif
+ 
++//////////////////////////////////////////////////////////////////////
++// PPC defines
++
++#if defined(__powerpc64__) || defined(__PPC64__)
++    #define SK_CPU_PPC64
++#endif
++
++// Newer versions of clang and gcc for ppc64 ship with wrappers that translate
++// Intel vector intrinsics into PPC VSX instrinsics, so we can pretend to have
++// to be Intel. Currently, full API support for SSSE3 on POWER8 and later
++// processors.
++#if defined(__POWER8_VECTOR__) && defined(__has_include) && \
++  !defined(SK_CPU_SSE_LEVEL)
++
++    // Clang ships both Intel and PPC headers in its PPC version, storing the
++    // PPC compatibility in a subdirectory that the compiler will include before
++    // its standard library include directory.
++    #if (__has_include(<tmmintrin.h>) && !defined(__clang__)) || \
++         __has_include(<ppc_wrappers/tmmintrin.h>)
++        #define SK_CPU_SSE_LEVEL    SK_CPU_SSE_LEVEL_SSSE3
++    #elif (__has_include(<emmintrin.h>) && !defined(__clang__)) || \
++           __has_include(<ppc_wrappers/emmintrin.h>)
++        #define SK_CPU_SSE_LEVEL    SK_CPU_SSE_LEVEL_SSE2
++    #endif
++
++    #ifdef SK_CPU_SSE_LEVEL
++        #define SK_PPC64_HAS_SSE_COMPAT
++        #ifndef NO_WARN_X86_INTRINSICS
++            #define NO_WARN_X86_INTRINSICS
++        #endif
++        #if defined(__clang__)
++            #define SK_PPC64_CLANG_MFPPR_BUG
++        #endif
++    #endif
++#endif
++
+ 
+ // DLL/.so exports.
+ #if !defined(SKIA_IMPLEMENTATION)
+diff -ur a/third_party/skia/include/private/SkVx.h b/third_party/skia/include/private/SkVx.h
+--- a/third_party/skia/include/private/SkVx.h	2022-01-20 04:37:51.000000000 -0600
++++ b/third_party/skia/include/private/SkVx.h	2022-01-28 11:18:08.031132989 -0600
+@@ -32,6 +32,15 @@
+     #include <immintrin.h>
+ #elif defined(__ARM_NEON)
+     #include <arm_neon.h>
++#elif defined(__POWER8_VECTOR__) && defined(__has_include)
++    #if (__has_include(<emmintrin.h>) && !defined(__clang__)) || \
++         __has_include(<ppc_wrappers/emmintrin.h>)
++        #define HAS_PPC64_SSE_COMPAT
++        #ifndef NO_WARN_X86_INTRINSICS
++            #define NO_WARN_X86_INTRINSICS
++        #endif
++        #include <emmintrin.h>
++    #endif
+ #elif defined(__wasm_simd128__)
+     #include <wasm_simd128.h>
+ #endif
+@@ -612,7 +621,7 @@
+         return unchecked_bit_pun<Vec<N,int>>(_mm256_cvtps_epi32(unchecked_bit_pun<__m256>(x)));
+     }
+ #endif
+-#if defined(__SSE__)
++#if defined(__SSE__) || defined(HAS_PPC64_SSE_COMPAT)
+     if /*constexpr*/ (N == 4) {
+         return unchecked_bit_pun<Vec<N,int>>(_mm_cvtps_epi32(unchecked_bit_pun<__m128>(x)));
+     }
+@@ -860,7 +869,7 @@
+ IMPL_LOAD4_TRANSPOSED(16, int8_t, vld4q_s8);
+ IMPL_LOAD4_TRANSPOSED(4, float, vld4q_f32);
+ #undef IMPL_LOAD4_TRANSPOSED
+-#elif defined(__SSE__)
++#elif defined(__SSE__) || defined(HAS_PPC64_SSE_COMPAT)
+ SI void strided_load4(const float* v,
+                       Vec<4,float>& a,
+                       Vec<4,float>& b,
+@@ -926,5 +935,6 @@
+ #undef SIT
+ #undef SI
+ #undef SKVX_ALWAYS_INLINE
++#undef HAS_PPC64_SSE_COMPAT
+ 
+ #endif//SKVX_DEFINED
+diff -ur a/third_party/skia/src/core/SkSpinlock.cpp b/third_party/skia/src/core/SkSpinlock.cpp
+--- a/third_party/skia/src/core/SkSpinlock.cpp	2022-01-20 04:37:52.000000000 -0600
++++ b/third_party/skia/src/core/SkSpinlock.cpp	2022-01-28 11:15:22.286833187 -0600
+@@ -31,7 +31,8 @@
+ #endif
+ 
+ // Renamed from "pause" to avoid conflict with function defined in unistd.h
+-#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
++#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 && \
++    !defined(SK_PPC64_CLANG_MFPPR_BUG)
+     #include <emmintrin.h>
+     static void do_pause() { _mm_pause(); }
+ #else
+diff -ur a/third_party/skia/src/opts/SkBitmapProcState_opts.h b/third_party/skia/src/opts/SkBitmapProcState_opts.h
+--- a/third_party/skia/src/opts/SkBitmapProcState_opts.h	2022-01-20 04:37:52.000000000 -0600
++++ b/third_party/skia/src/opts/SkBitmapProcState_opts.h	2022-01-28 11:15:22.286833187 -0600
+@@ -21,7 +21,9 @@
+ // The rest are scattershot at the moment but I want to get them
+ // all migrated to be normal code inside SkBitmapProcState.cpp.
+ 
+-#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
++#if defined(SK_PPC64_HAS_SSE_COMPAT)
++    #include <emmintrin.h>
++#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
+     #include <immintrin.h>
+ #elif defined(SK_ARM_HAS_NEON)
+     #include <arm_neon.h>
+diff -ur a/third_party/skia/src/opts/SkBlitRow_opts.h b/third_party/skia/src/opts/SkBlitRow_opts.h
+--- a/third_party/skia/src/opts/SkBlitRow_opts.h	2022-01-20 04:37:52.000000000 -0600
++++ b/third_party/skia/src/opts/SkBlitRow_opts.h	2022-01-28 11:19:00.584887121 -0600
+@@ -100,7 +100,7 @@
+ #endif
+ 
+ #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
+-    #include <immintrin.h>
++    #include <emmintrin.h>
+ 
+     static inline __m128i SkPMSrcOver_SSE2(const __m128i& src, const __m128i& dst) {
+         __m128i scale = _mm_sub_epi32(_mm_set1_epi32(256),
+diff -ur a/third_party/skia/src/opts/SkRasterPipeline_opts.h b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h	2022-01-20 04:37:52.000000000 -0600
++++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h	2022-01-28 11:21:09.609554124 -0600
+@@ -69,6 +69,8 @@
+     #define JUMPER_IS_SCALAR
+ #elif defined(SK_ARM_HAS_NEON)
+     #define JUMPER_IS_NEON
++#elif defined(SK_PPC64_HAS_SSE_COMPAT)
++    #define JUMPER_IS_VSX
+ #elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SKX
+     #define JUMPER_IS_SKX
+ #elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_AVX2
+@@ -101,6 +103,8 @@
+     #include <math.h>
+ #elif defined(JUMPER_IS_NEON)
+     #include <arm_neon.h>
++#elif defined(JUMPER_IS_VSX)
++    #include <emmintrin.h>
+ #else
+     #include <immintrin.h>
+ #endif
+@@ -690,7 +694,7 @@
+         }
+     }
+ 
+-#elif defined(JUMPER_IS_SSE2) || defined(JUMPER_IS_SSE41) || defined(JUMPER_IS_AVX)
++#elif defined(JUMPER_IS_SSE2) || defined(JUMPER_IS_SSE41) || defined(JUMPER_IS_AVX) || defined(JUMPER_IS_VSX)
+ template <typename T> using V = T __attribute__((ext_vector_type(4)));
+     using F   = V<float   >;
+     using I32 = V< int32_t>;
+@@ -733,6 +737,8 @@
+     SI F floor_(F v) {
+     #if defined(JUMPER_IS_SSE41)
+         return _mm_floor_ps(v);
++    #elif defined(JUMPER_IS_VSX)
++        return vec_floor(v);
+     #else
+         F roundtrip = _mm_cvtepi32_ps(_mm_cvttps_epi32(v));
+         return roundtrip - if_then_else(roundtrip > v, 1, 0);
+@@ -1004,6 +1010,13 @@
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
+     return _mm256_cvtph_ps(h);
+ 
++#elif defined(JUMPER_IS_VSX) && __has_builtin(__builtin_vsx_xvcvhpsp)
++    #if defined(SK_CPU_LENDIAN)
++        return __builtin_vsx_xvcvhpsp({h[0], 0, h[1], 0, h[2], 0, h[3], 0});
++    #else
++        return __builtin_vsx_xvcvhpsp({0, h[0], 0, h[1], 0, h[2], 0, h[3]});
++    #endif
++
+ #else
+     // Remember, a half is 1-5-10 (sign-exponent-mantissa) with 15 exponent bias.
+     U32 sem = expand(h),
+@@ -1025,6 +1038,13 @@
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
+     return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);
+ 
++#elif defined(JUMPER_IS_VSX) && __has_builtin(__builtin_vsx_xvcvsphp)
++    __vector unsigned short v = __builtin_vsx_xvcvsphp(f);
++    #if defined(SK_CPU_LENDIAN)
++        return U16{v[0], v[2], v[4], v[6]};
++    #else
++        return U16{v[1], v[3], v[5], v[7]};
++    #endif
+ #else
+     // Remember, a float is 1-8-23 (sign-exponent-mantissa) with 127 exponent bias.
+     U32 sem = sk_bit_cast<U32>(f),
+@@ -1058,7 +1078,7 @@
+     // instead of {b,a} on the stack.  Narrow stages work best for __vectorcall.
+     #define ABI __vectorcall
+     #define JUMPER_NARROW_STAGES 1
+-#elif defined(__x86_64__) || defined(SK_CPU_ARM64)
++#elif defined(__x86_64__) || defined(SK_CPU_ARM64) || defined(SK_CPU_PPC64)
+     // These platforms are ideal for wider stages, and their default ABI is ideal.
+     #define ABI
+     #define JUMPER_NARROW_STAGES 0
+@@ -3159,7 +3179,8 @@
+     __m256 lo,hi;
+     split(x, &lo,&hi);
+     return join<F>(_mm256_sqrt_ps(lo), _mm256_sqrt_ps(hi));
+-#elif defined(JUMPER_IS_SSE2) || defined(JUMPER_IS_SSE41) || defined(JUMPER_IS_AVX)
++#elif defined(JUMPER_IS_SSE2) || defined(JUMPER_IS_SSE41) \
++  || defined(JUMPER_IS_AVX) || defined(JUMPER_IS_VSX)
+     __m128 lo,hi;
+     split(x, &lo,&hi);
+     return join<F>(_mm_sqrt_ps(lo), _mm_sqrt_ps(hi));
+@@ -3198,6 +3219,10 @@
+     __m128 lo,hi;
+     split(x, &lo,&hi);
+     return join<F>(_mm_floor_ps(lo), _mm_floor_ps(hi));
++#elif defined(JUMPER_IS_VSX)
++    __m128 lo,hi;
++    split(x, &lo,&hi);
++    return join<F>(vec_floor(lo), vec_floor(hi));
+ #else
+     F roundtrip = cast<F>(cast<I32>(x));
+     return roundtrip - if_then_else(roundtrip > x, F(1), F(0));
+diff -ur a/third_party/skia/src/opts/SkSwizzler_opts.h b/third_party/skia/src/opts/SkSwizzler_opts.h
+--- a/third_party/skia/src/opts/SkSwizzler_opts.h	2022-01-20 04:37:52.000000000 -0600
++++ b/third_party/skia/src/opts/SkSwizzler_opts.h	2022-01-28 11:15:22.290832712 -0600
+@@ -12,7 +12,9 @@
+ #include "include/private/SkVx.h"
+ #include <utility>
+ 
+-#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3
++#if defined(SK_PPC64_HAS_SSE_COMPAT)
++    #include <emmintrin.h>
++#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3
+     #include <immintrin.h>
+ #elif defined(SK_ARM_HAS_NEON)
+     #include <arm_neon.h>
+diff -ur a/third_party/skia/third_party/skcms/skcms.cc b/third_party/skia/third_party/skcms/skcms.cc
+--- a/third_party/skia/third_party/skcms/skcms.cc	2022-01-20 04:37:53.000000000 -0600
++++ b/third_party/skia/third_party/skcms/skcms.cc	2022-01-28 11:15:22.290832712 -0600
+@@ -30,6 +30,8 @@
+         #include <avx512fintrin.h>
+         #include <avx512dqintrin.h>
+     #endif
++#elif defined(__POWER8_VECTOR__)
++    #include <altivec.h>
+ #endif
+ 
+ static bool runtime_cpu_detection = true;
+diff -ur a/third_party/skia/third_party/skcms/src/Transform_inl.h b/third_party/skia/third_party/skcms/src/Transform_inl.h
+--- a/third_party/skia/third_party/skcms/src/Transform_inl.h	2022-01-20 04:37:53.000000000 -0600
++++ b/third_party/skia/third_party/skcms/src/Transform_inl.h	2022-01-28 11:15:22.294832236 -0600
+@@ -44,6 +44,9 @@
+ #if !defined(USING_AVX512F)  && N == 16 && defined(__AVX512F__)
+     #define  USING_AVX512F
+ #endif
++#if !defined(USING_VSX)      && defined(__POWER8_VECTOR__)
++    #define  USING_VSX
++#endif
+ 
+ // Similar to the AVX+ features, we define USING_NEON and USING_NEON_F16C.
+ // This is more for organizational clarity... skcms.cc doesn't force these.
+@@ -165,6 +168,22 @@
+ #elif defined(USING_AVX_F16C)
+     typedef int16_t __attribute__((vector_size(16))) I16;
+     return __builtin_ia32_vcvtph2ps256((I16)half);
++#elif defined(USING_VSX) && __has_builtin(__builtin_vsx_xvcvhpsp)
++    #if defined(__LITTLE_ENDIAN__)
++        return __builtin_vsx_xvcvhpsp({
++            half[0], 0,
++            half[1], 0,
++            half[2], 0,
++            half[3], 0
++        });
++    #else
++        return __builtin_vsx_xvcvhpsp({
++            0, half[0],
++            0, half[1],
++            0, half[2],
++            0, half[3]
++        });
++    #endif
+ #else
+     U32 wide = cast<U32>(half);
+     // A half is 1-5-10 sign-exponent-mantissa, with 15 exponent bias.
+@@ -193,6 +212,13 @@
+     return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
+ #elif defined(USING_AVX_F16C)
+     return (U16)__builtin_ia32_vcvtps2ph256(f, 0x04/*_MM_FROUND_CUR_DIRECTION*/);
++#elif defined(JUMPER_IS_VSX) && __has_builtin(__builtin_vsx_xvcvsphp)
++    __vector unsigned short v = __builtin_vsx_xvcvsphp(f);
++    #if defined(__LITTLE_ENDIAN__)
++        return U16{v[0], v[2], v[4], v[6]};
++    #else
++        return U16{v[1], v[3], v[5], v[7]};
++    #endif
+ #else
+     // A float is 1-8-23 sign-exponent-mantissa, with 127 exponent bias.
+     U32 sem = bit_pun<U32>(f),
+@@ -249,6 +275,8 @@
+     return __builtin_ia32_roundps256(x, 0x01/*_MM_FROUND_FLOOR*/);
+ #elif defined(__SSE4_1__)
+     return _mm_floor_ps(x);
++#elif defined(USING_VSX)
++    return vec_floor(x);
+ #else
+     // Round trip through integers with a truncating cast.
+     F roundtrip = cast<F>(cast<I32>(x));
+@@ -1603,5 +1631,8 @@
+ #if defined(USING_NEON_FP16)
+     #undef  USING_NEON_FP16
+ #endif
++#if defined(USING_VSX)
++    #undef  USING_VSX
++#endif
+ 
+ #undef FALLTHROUGH
diff -urN a/debian/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch b/debian/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch
--- a/debian/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,153 @@
+Index: chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
++++ chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/address_space_randomization.h
+@@ -140,30 +140,30 @@ AslrMask(uintptr_t bits) {
+         // AIX has 64 bits of virtual addressing, but we limit the address range
+         // to (a) minimize segment lookaside buffer (SLB) misses; and (b) use
+         // extra address space to isolate the mmap regions.
+-        constexpr ALWAYS_INLINE uintptr_t ASLRMask() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLRMask() {
+           return AslrMask(30);
+         }
+-        constexpr ALWAYS_INLINE uintptr_t ASLROffset() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLROffset() {
+           return AslrAddress(0x400000000000ULL);
+         }
+ 
+       #elif defined(ARCH_CPU_BIG_ENDIAN)
+ 
+         // Big-endian Linux PPC has 44 bits of virtual addressing. Use 42.
+-        constexpr ALWAYS_INLINE uintptr_t ASLRMask() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLRMask() {
+           return AslrMask(42);
+         }
+-        constexpr ALWAYS_INLINE uintptr_t ASLROffset() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLROffset() {
+           return AslrAddress(0);
+         }
+ 
+       #else  // !defined(OS_AIX) && !defined(ARCH_CPU_BIG_ENDIAN)
+ 
+         // Little-endian Linux PPC has 48 bits of virtual addressing. Use 46.
+-        constexpr ALWAYS_INLINE uintptr_t ASLRMask() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLRMask() {
+           return AslrMask(46);
+         }
+-        constexpr ALWAYS_INLINE uintptr_t ASLROffset() {
++        PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE uintptr_t ASLROffset() {
+           return AslrAddress(0);
+         }
+ 
+Index: chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
++++ chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_constants.h
+@@ -7,6 +7,10 @@
+ 
+ #include <stddef.h>
+ 
++#if defined(ARCH_CPU_PPC64)
++#include <unistd.h>
++#endif
++
+ #include "build/build_config.h"
+ #include "third_party/base/compiler_specific.h"
+ 
+@@ -24,6 +28,11 @@
+ // elimination.
+ #define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
+ 
++#elif defined(ARCH_CPU_PPC64)
++
++// PPC64 systems have a varying page size based on the currently active kernel
++#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR
++
+ #else
+ 
+ // When defined, page size constants are fixed at compile time. When not
+@@ -42,11 +51,7 @@ namespace {
+ #if !defined(OS_APPLE)
+ 
+ constexpr ALWAYS_INLINE int PageAllocationGranularityShift() {
+-#if defined(OS_WIN) || defined(ARCH_CPU_PPC64)
+-  // Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
+-  // sizes.  Since 64kB is the de facto standard on the platform and binaries
+-  // compiled for 64kB are likely to work on 4kB systems, 64kB is a good choice
+-  // here.
++#if defined(OS_WIN)
+   return 16;  // 64kB
+ #elif defined(_MIPS_ARCH_LOONGSON)
+   return 14;  // 16kB
+@@ -63,7 +68,17 @@ namespace base {
+ 
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
+ PageAllocationGranularity() {
+-#if defined(OS_APPLE)
++#if defined(ARCH_CPU_PPC64)
++  // PPC64 systems can use either 64k or 4k page sizes
++  // Unfortunately, specifying a 64k page size here will cause
++  // random crashes on 4k page size kernels due to missing
++  // validation in the TrimMapping post_slack calculations,
++  // resulting in negative sizes being passed to munmap()
++  // if the kernel page allocator happend to provide a 4k-
++  // aligned chunk of memory instead of a 64k-aligned chunk
++  // of memory...
++  return sysconf(_SC_PAGESIZE);
++#elif defined(OS_APPLE)
+   return vm_page_size;
+ #else
+   return 1ULL << PageAllocationGranularityShift();
+Index: chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
++++ chromium-99.0.4818.0/third_party/pdfium/third_party/base/allocator/partition_allocator/partition_alloc.cc
+@@ -163,6 +163,7 @@ static void PartitionAllocBaseInit(inter
+ void PartitionAllocGlobalInit(OomFunction on_out_of_memory) {
+   // Two partition pages are used as guard / metadata page so make sure the
+   // super page size is bigger.
++#if defined(PAGE_ALLOCATOR_CONSTANTS_ARE_CONSTEXPR)
+   STATIC_ASSERT_OR_CHECK(PartitionPageSize() * 4 <= kSuperPageSize,
+                          "ok super page size");
+   STATIC_ASSERT_OR_CHECK(!(kSuperPageSize % PartitionPageSize()),
+@@ -173,6 +174,7 @@ void PartitionAllocGlobalInit(OomFunctio
+                          "ok partition page size");
+   STATIC_ASSERT_OR_CHECK(!(PartitionPageSize() % SystemPageSize()),
+                          "ok partition page multiple");
++#endif
+   static_assert(sizeof(internal::PartitionPage) <= kPageMetadataSize,
+                 "PartitionPage should not be too big");
+   static_assert(sizeof(internal::PartitionBucket) <= kPageMetadataSize,
+@@ -180,6 +182,7 @@ void PartitionAllocGlobalInit(OomFunctio
+   static_assert(
+       sizeof(internal::PartitionSuperPageExtentEntry) <= kPageMetadataSize,
+       "PartitionSuperPageExtentEntry should not be too big");
++#if defined(PAGE_ALLOCATOR_CONSTANTS_ARE_CONSTEXPR)
+   STATIC_ASSERT_OR_CHECK(
+       kPageMetadataSize * NumPartitionPagesPerSuperPage() <= SystemPageSize(),
+       "page metadata fits in hole");
+@@ -187,11 +190,14 @@ void PartitionAllocGlobalInit(OomFunctio
+   STATIC_ASSERT_OR_CHECK(
+       GenericMaxDirectMapped() <= (1UL << 31) + PageAllocationGranularity(),
+       "maximum direct mapped allocation");
++#endif
+   // Check that some of our zanier calculations worked out as expected.
+   static_assert(kGenericSmallestBucket == 8, "generic smallest bucket");
+   static_assert(kGenericMaxBucketed == 983040, "generic max bucketed");
++#if defined(PAGE_ALLOCATOR_CONSTANTS_ARE_CONSTEXPR)
+   STATIC_ASSERT_OR_CHECK(MaxSystemPagesPerSlotSpan() < (1 << 8),
+                          "System pages per slot span must be less than 128.");
++#endif
+ 
+   DCHECK(on_out_of_memory);
+   internal::PartitionRootBase::g_oom_handling_function = on_out_of_memory;
+@@ -494,6 +500,9 @@ static size_t PartitionPurgePage(interna
+   constexpr size_t kMaxSlotCount = 4 * kMaxPartitionPagesPerSlotSpan;
+   CHECK(kMaxSlotCount == (PartitionPageSize() * kMaxPartitionPagesPerSlotSpan) /
+                              SystemPageSize());
++#else
++  size_t kMaxSlotCount =
++      (PartitionPageSize() * kMaxPartitionPagesPerSlotSpan) / SystemPageSize();
+ #endif
+   DCHECK(bucket_num_slots <= kMaxSlotCount);
+   DCHECK(page->num_unprovisioned_slots < bucket_num_slots);
diff -urN a/debian/patches/ppc64le/v8/0002-Add-ppc64-trap-instructions.patch b/debian/patches/ppc64le/v8/0002-Add-ppc64-trap-instructions.patch
--- a/debian/patches/ppc64le/v8/0002-Add-ppc64-trap-instructions.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/v8/0002-Add-ppc64-trap-instructions.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,18 @@
+Index: chromium-99.0.4818.0/v8/src/base/immediate-crash.h
+===================================================================
+--- chromium-99.0.4818.0.orig/v8/src/base/immediate-crash.h
++++ chromium-99.0.4818.0/v8/src/base/immediate-crash.h
+@@ -75,6 +75,13 @@
+ #define TRAP_SEQUENCE1_() asm volatile("brk #0")
+ #define TRAP_SEQUENCE2_() asm volatile("hlt #0")
+ 
++#elif V8_HOST_ARCH_PPC64
++
++#define TRAP_SEQUENCE1_() asm volatile("trap")
++// Intentionally empty: __builtin_unreachable() is always part of the sequence
++// (see IMMEDIATE_CRASH below)
++#define TRAP_SEQUENCE2_() asm volatile("")
++
+ #else
+ 
+ // Crash report accuracy will not be guaranteed on other architectures, but at
diff -urN a/debian/patches/ppc64le/webrtc/Modules-desktop_capture-differ_block.cc-PPC.patch b/debian/patches/ppc64le/webrtc/Modules-desktop_capture-differ_block.cc-PPC.patch
--- a/debian/patches/ppc64le/webrtc/Modules-desktop_capture-differ_block.cc-PPC.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/webrtc/Modules-desktop_capture-differ_block.cc-PPC.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,28 @@
+Index: chromium-99.0.4818.0/third_party/webrtc/modules/desktop_capture/differ_block.cc
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/webrtc/modules/desktop_capture/differ_block.cc
++++ chromium-99.0.4818.0/third_party/webrtc/modules/desktop_capture/differ_block.cc
+@@ -30,11 +30,7 @@ bool VectorDifference(const uint8_t* ima
+   static bool (*diff_proc)(const uint8_t*, const uint8_t*) = nullptr;
+ 
+   if (!diff_proc) {
+-#if defined(WEBRTC_ARCH_ARM_FAMILY) || defined(WEBRTC_ARCH_MIPS_FAMILY)
+-    // For ARM and MIPS processors, always use C version.
+-    // TODO(hclam): Implement a NEON version.
+-    diff_proc = &VectorDifference_C;
+-#else
++#if defined(WEBRTC_ARCH_X86_FAMILY)
+     bool have_sse2 = GetCPUInfo(kSSE2) != 0;
+     // For x86 processors, check if SSE2 is supported.
+     if (have_sse2 && kBlockSize == 32) {
+@@ -44,6 +40,10 @@ bool VectorDifference(const uint8_t* ima
+     } else {
+       diff_proc = &VectorDifference_C;
+     }
++#else
++    // For other processors, always use C version.
++    // TODO(hclam): Implement a NEON version.
++    diff_proc = &VectorDifference_C;
+ #endif
+   }
+ 
diff -urN a/debian/patches/ppc64le/webrtc/Rtc_base-system-arch.h-PPC.patch b/debian/patches/ppc64le/webrtc/Rtc_base-system-arch.h-PPC.patch
--- a/debian/patches/ppc64le/webrtc/Rtc_base-system-arch.h-PPC.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/webrtc/Rtc_base-system-arch.h-PPC.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,23 @@
+Index: chromium-99.0.4818.0/third_party/webrtc/rtc_base/system/arch.h
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/webrtc/rtc_base/system/arch.h
++++ chromium-99.0.4818.0/third_party/webrtc/rtc_base/system/arch.h
+@@ -46,6 +46,18 @@
+ #endif
+ #if defined(__MIPSEL__)
+ #define WEBRTC_ARCH_LITTLE_ENDIAN
++#elif defined(__PPC__)
++#define WEBRTC_ARCH_PPC_FAMILY
++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
++#define WEBRTC_ARCH_LITTLE_ENDIAN
++#else
++#define WEBRTC_ARCH_BIG_ENDIAN
++#endif
++#if defined(__LP64__)
++#define WEBRTC_ARCH_64_BITS
++#else
++#define WEBRTC_ARCH_32_BITS
++#endif
+ #else
+ #define WEBRTC_ARCH_BIG_ENDIAN
+ #endif
diff -urN a/debian/patches/ppc64le/workarounds/HACK-third_party-libvpx-use-generic-gnu.patch b/debian/patches/ppc64le/workarounds/HACK-third_party-libvpx-use-generic-gnu.patch
--- a/debian/patches/ppc64le/workarounds/HACK-third_party-libvpx-use-generic-gnu.patch	1970-01-01 00:00:00.000000000 +0000
+++ b/debian/patches/ppc64le/workarounds/HACK-third_party-libvpx-use-generic-gnu.patch	2022-02-13 01:38:45.735314128 +0000
@@ -0,0 +1,49 @@
+Index: chromium-99.0.4818.0/third_party/libvpx/generate_gni.sh
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/generate_gni.sh
++++ chromium-99.0.4818.0/third_party/libvpx/generate_gni.sh
+@@ -374,7 +374,8 @@ gen_config_files linux/arm-neon-highbd "
+ gen_config_files linux/arm64-highbd "--target=armv8-linux-gcc ${all_platforms} ${HIGHBD}"
+ gen_config_files linux/mipsel "--target=mips32-linux-gcc ${all_platforms}"
+ gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}"
+-gen_config_files linux/ppc64 "--target=ppc64le-linux-gcc ${all_platforms}"
++#gen_config_files linux/ppc64 "--target=ppc64le-linux-gcc ${all_platforms}"
++gen_config_files linux/ppc64 "--target=generic-gnu $HIGHBD ${all_platforms}"
+ gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}"
+ gen_config_files win/arm64 "--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD}"
+ gen_config_files win/ia32 "--target=x86-win32-vs14 ${all_platforms} ${x86_platforms}"
+Index: chromium-99.0.4818.0/third_party/libvpx/source/libvpx/build/make/rtcd.pl
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/source/libvpx/build/make/rtcd.pl
++++ chromium-99.0.4818.0/third_party/libvpx/source/libvpx/build/make/rtcd.pl
+@@ -460,8 +460,9 @@ if ($opts{arch} eq 'x86') {
+   &require("neon");
+   arm;
+ } elsif ($opts{arch} =~ /^ppc/ ) {
+-  @ALL_ARCHS = filter(qw/vsx/);
+-  ppc;
++  #@ALL_ARCHS = filter(qw/vsx/);
++  #ppc;
++  unoptimized;
+ } else {
+   unoptimized;
+ }
+Index: chromium-99.0.4818.0/third_party/libvpx/BUILD.gn
+===================================================================
+--- chromium-99.0.4818.0.orig/third_party/libvpx/BUILD.gn
++++ chromium-99.0.4818.0/third_party/libvpx/BUILD.gn
+@@ -86,6 +86,14 @@ config("libvpx_config") {
+       "-Wno-sign-compare",
+     ]
+   }
++
++  if (current_cpu == "ppc64") {
++    cflags += [
++      "-mcpu=power9",
++      "-maltivec",
++      "-mvsx",
++    ]
++  }
+ }
+ 
+ # This config is applied to targets that depend on libvpx.
diff -urN a/debian/patches/series b/debian/patches/series
--- a/debian/patches/series	2022-01-20 06:08:17.000000000 +0000
+++ b/debian/patches/series	2022-02-13 01:40:54.752164612 +0000
@@ -74,3 +74,65 @@
 upstream/prediction-common.patch
 fixes/icu-types.patch
 fixes/ts-resources.patch
+
+# Fix silent rollup.js generation failures
+fixes/use-system-terser.patch
+
+# POWER support
+ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch
+ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch
+ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch
+ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch
+ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch
+ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch
+ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch
+ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch
+ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch
+ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch
+ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch
+ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch
+ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch
+ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch
+ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch
+ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch
+
+ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch
+ppc64le/third_party/0001-third_party-boringssl-Properly-detect-ppc64le-in-BUI.patch
+ppc64le/third_party/0001-third_party-libvpx-Properly-generate-gni-on-ppc64.patch
+ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch
+ppc64le/third_party/0001-third_party-pffft-Include-altivec.h-on-ppc64-with-SI.patch
+ppc64le/third_party/0002-third_party-libvpx-Add-ppc64-sources-to-gni.patch
+ppc64le/third_party/0002-third_party-lss-kernel-structs.patch
+
+ppc64le/third_party/0001-Enable-third-party-libgav1-parser.patch
+
+ppc64le/webrtc/Modules-desktop_capture-differ_block.cc-PPC.patch
+ppc64le/webrtc/Rtc_base-system-arch.h-PPC.patch
+
+ppc64le/crashpad/0002-Include-cstddef-to-fix-build.patch
+ppc64le/third_party/0004-third_party-crashpad-port-curl-transport-ppc64.patch
+
+ppc64le/workarounds/HACK-third_party-libvpx-use-generic-gnu.patch
+
+ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch
+ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
+
+ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch
+ppc64le/third_party/0003-third_party-ffmpeg-Add-ppc64-generated-config.patch
+ppc64le/third_party/0004-third_party-libvpx-work-around-ambiguous-vsx.patch
+
+ppc64le/ffmpeg/0001-Add-support-for-ppc64.patch
+ppc64le/breakpad/0001-Implement-support-for-ppc64-on-Linux.patch
+ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch
+ppc64le/database/0001-Properly-detect-little-endian-PPC64-systems.patch
+ppc64le/third_party/0001-Force-baseline-POWER8-AltiVec-VSX-CPU-features-when-.patch
+ppc64le/fixes/fix-breakpad-compile.patch
+ppc64le/v8/0002-Add-ppc64-trap-instructions.patch
+
+ppc64le/third_party/0001-Add-PPC64-support-for-libdav1d.patch
+ppc64le/third_party/0001-Fix-libdav1d-compilation-on-clang-ppc.patch
+# Multiple Clang 11 bugs hit with VSX enabled, including bug #50520 (D103386)
+#ppc64le/third_party/skia-vsx-instructions.patch
+ppc64le/sandbox/fix-ppc64-linux-syscalls-headers.patch
+ppc64le/third_party/0003-thirdparty-fix-dav1d-gn.patch
+ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch
diff -urN a/debian/rules b/debian/rules
--- a/debian/rules	2022-01-19 03:58:53.000000000 +0000
+++ b/debian/rules	2022-02-13 01:38:45.735314128 +0000
@@ -57,6 +57,9 @@
 ifeq (armhf,$(DEB_HOST_ARCH))
 defines+=host_cpu=\"arm\" use_vaapi=false arm_use_neon=false
 endif
+ifeq (ppc64el,$(DEB_HOST_ARCH))
+defines+=host_cpu=\"ppc64\" use_vaapi=true
+endif
 
 # disabled features
 defines+=is_debug=false \
