From cfb1500bcc54c9746cd20c9b5c32a43b97f17ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 8 Jan 2024 08:09:59 +0100 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 libaom revision 6e4c011dae010699bd5c8625a838f97d --- .gitattributes | 23 + _multibuild | 3 + _service | 16 + baselibs.conf | 1 + ...-0001-Do-not-disable-_FORTIFY_SOURCE.patch | 14 + libaom-3.7.1.obscpio | 3 + libaom.changes | 771 ++++++++++++++++++ libaom.obsinfo | 4 + libaom.spec | 180 ++++ system-gtest.patch | 60 ++ system-yuv.patch | 78 ++ 11 files changed, 1153 insertions(+) create mode 100644 .gitattributes create mode 100644 _multibuild create mode 100644 _service create mode 100644 baselibs.conf create mode 100644 libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch create mode 100644 libaom-3.7.1.obscpio create mode 100644 libaom.changes create mode 100644 libaom.obsinfo create mode 100644 libaom.spec create mode 100644 system-gtest.patch create mode 100644 system-yuv.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..44d10a1 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + doc + diff --git a/_service b/_service new file mode 100644 index 0000000..e3eb117 --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + git + https://aomedia.googlesource.com/aom.git + libaom + @PARENT_TAG@ + v([0-9\.]*) + v3.7.1 + + + + *.tar + zst + + + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..687e5c7 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libaom3 diff --git a/libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch b/libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch new file mode 100644 index 0000000..b9ff0e1 --- /dev/null +++ b/libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch @@ -0,0 +1,14 @@ +diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake +index 43d60ae3d..175339178 100644 +--- a/build/cmake/aom_configure.cmake ++++ b/build/cmake/aom_configure.cmake +@@ -321,9 +321,6 @@ else() + add_compiler_flag_if_supported("-Werror") + endif() + +- if(build_type_lowercase MATCHES "rel") +- add_compiler_flag_if_supported("-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0") +- endif() + add_compiler_flag_if_supported("-D_LARGEFILE_SOURCE") + add_compiler_flag_if_supported("-D_FILE_OFFSET_BITS=64") + endif() diff --git a/libaom-3.7.1.obscpio b/libaom-3.7.1.obscpio new file mode 100644 index 0000000..8b6bef8 --- /dev/null +++ b/libaom-3.7.1.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca6b72973a1c77d4898294d4e634eb22fc4a526232d3e332381ca847e945998 +size 29797389 diff --git a/libaom.changes b/libaom.changes new file mode 100644 index 0000000..63948c0 --- /dev/null +++ b/libaom.changes @@ -0,0 +1,771 @@ +------------------------------------------------------------------- +Tue Dec 5 19:20:33 UTC 2023 - Bjørn Lie + +- Update to version 3.7.1: + * Bug Fixes: + - aomedia:3349: heap overflow when increasing resolution + - aomedia:3478: GCC 12.2.0 emits a -Wstringop-overflow warning + on aom/av1/encoder/motion_search_facade.c + - aomedia:3489: Detect encoder and image high bit depth + mismatch + - aomedia:3491: heap-buffer-overflow on frame size change + - b/303023614: Segfault at encoding time for high bit depth + images +- Switch buildtime compression to zst. + +------------------------------------------------------------------- +Tue Sep 5 17:21:29 UTC 2023 - Bruno Pitrus + +- Split docs to multibuild to avoid dependency cycle + +------------------------------------------------------------------- +Fri Sep 1 21:23:32 UTC 2023 - Bruno Pitrus + +- New upstream release 3.7.0 + - New Features + * New codec controls: + * AV1E_SET_QUANTIZER_ONE_PASS: Set quantizer for each frame. + * AV1E_ENABLE_RATE_GUIDE_DELTAQ: enable the rate distribution guided delta + quantization in all intra mode. The "enable-rate-guide-deltaq" option is + added for this control. + * AV1E_SET_RATE_DISTRIBUTION_INFO: set the input file for rate + distribution used in all intra mode. The "rate-distribution-info" option + is added for this control. + * AV1E_GET_LUMA_CDEF_STRENGTH + * AV1E_SET_BITRATE_ONE_PASS_CBR + * AOM_SCALING_MODE is extended to include 2/3 and 1/3 scaling. + * aom_tune_metric is extended to include AOM_TUNE_VMAF_SALIENCY_MAP. + The "tune" option is extended to include "vmaf_saliency_map". + * SVC example encoder svc_encoder_rtc is able to use the rate control + library. + * Loopfilter level and CDEF filter level is supported by RTC rate control + library. + * New speed (--cpu-used) 11, intended for RTC screen sharing, added for + faster encoding with ~3% bdrate loss with 16% IC (instruction count) + speedup compared to speed 10. + - Compression Efficiency Improvements + * Improved VoD encoding performance + * 0.1-0.6% BDrate gains for encoding speeds 2 to 6 + * Rate control accuracy improvement in VBR mode + * RTC encoding improvements + * Screen content mode: 10-19% BDrate gains for speeds 6 - 10 + * Temporal layers video mode, for speed 10: + * 2 temporal layers on low resolutions: 13-15% BDrate gain + * 3 temporal layers on VGA/HD: 3-4% BDrate gain + - Perceptual Quality Improvements + * Fixed multiple block and color artifacts for RTC screen content by + * Incorporating color into RD cost for IDTX + * Reducing thresholds for palette mode in non RD mode + * Allowing more palette mode testing + * Improved color sensitivity for altref in non-RD mode. + * Reduced video flickering for temporal layer encoding. + - Speedup and Memory Optimizations + * Speed up the VoD encoder + * 2-5% for encoding speed 2 to 4 + * 9-15% for encoding speed 5 to 6 + * ARM + * Standard bitdepth + * speed 5: +31% + * speed 4: +2% + * speed 3: +9% + * speed 2: +157% + * High bitdepth + * speed 5: +85% + * RTC speedups + * Screen content mode + * 15% IC speedup for speeds 6-8 + * ARM: 7% for speed 9, 3% for speed 10 + * Temporal layers video mode + * 7% speedup for 3 temporal layers on VGA/HD, for speed 10 + * Single layer video + * x86: 2% IC speedup for speeds 7-10 + * ARM: 2-4% speedup across speeds 5-10 + - Bug Fixes + * aomedia:3261 Assertion failed when encoding av1 with film grain and + '--monochrome' flag + * aomedia:3276 ensure all allocations are checked (partial fix) + * aomedia:3451 The libaom library calls exit() + * aomedia:3450 enable -Wshadow for C++ sources + * aomedia:3449 Test Seg Faults After + b459af3e345be402db052a143fcc5383d4b74cbd + * aomedia:3416 prune unused symbols / restrict symbol visibility + * aomedia:3443 Jenkins failure: + UninstantiatedParameterizedTestSuite + * aomedia:3434 realtime failures with CONFIG_BITSTREAM_DEBUG=1 + * aomedia:3433 DeltaqModeTest crash w/row_mt=0 + * aomedia:3429 Encoder crash when turn on both ExternalResize and + g_threads > 2 + * aomedia:3438 Build failure with + `-DSANITIZE=address -DBUILD_SHARED_LIBS=ON` when using clang. + * aomedia:3435 Block artifacts when scrolling with AV1 in screen sharing + scenarios + * aomedia:3170 vmaf tune presets produce extreme glitches in one scene + * aomedia:3401 Building shared libaom with MSVC results in a race condition + with the export library + * aomedia:3420 Floating point exception in av1_tpl_get_frame_importance() + * aomedia:3424 heap-buffer-overflow in ScaleFilterCols_16_C() (SIGABRT) + * aomedia:3417 examples/svc_encoder_rtc.c is using internal macros and + functions + * aomedia:3372 SEGV in assign_frame_buffer_p av1_common_int.h + * aomedia:3130 'cpu-features.h' file not found on Android NDK 22 + * aomedia:3415 Encoder/decoder mismatch for svc_encoder_rtc running + 1 SL 3 TL + * aomedia:3412 Lossless Mode Fails Loopback Bit Test + * aomedia:3409 The use of AV1_VAR_OFFS in av1/encoder/var_based_part.c is + incorrect for high bit depths + * aomedia:3403 test_libaom fails with error message + "feenableexcept() failed" on Linux arm + * aomedia:3370 Random color block at fast motion area + * aomedia:3393 Assertion failure in av1_convolve_2d_sr_c() + * aomedia:3392 Strong artifacting for high bit-depth real-time + * aomedia:3376 aomenc --threads=10 --deltaq-mode=3 crashes after + "Allintra: multi-threading of calculating differential contrast" + * aomedia:3380 Crashes and ASan and TSan errors in deltaq-mode=3 + multithreading code + * chromium:1410766 heap-buffer-overflow in aom_yv12_copy_v_c + * Cannot set level via AV1E_SET_TARGET_SEQ_LEVEL_IDX + * Encoding failure due to the use of loop restoration with unintended use of + lossless mode. + * Signed integer overflow in scan_past_frames + * Signed integer overflow in update_a_sep_sym + * Flickering in AV1 1440p/2160p HDR transcodes + * Fixed artifacts with screen share at encoder speed 10 + * Fixed prediction setup for IDTX +- Use system libraries instead of vendored ones + * system-gtest.patch + * system-yuv.patch +- Enable debuginfo also on modules written in assembly +- Enable building PowerPC-specific optimizations +- Enable Neon optimized code on ARM and fix runtime CPU detection +- Fix missing images in documentation + +------------------------------------------------------------------- +Wed May 10 21:07:49 UTC 2023 - Bjørn Lie + +- Update to version 3.6.1: + * aomedia:2871: Guard the support of the 7.x and 8.x levels for + AV1 under the CONFIG_CWG_C013 config flag, and only output the + 7.x and 8.x levels when explicitly requested. + * aomedia:3382: Choose sb_size by ppi instead of svc. + * aomedia:3384: Fix fullpel search limits. + * aomedia:3388: Replace left shift of xq_active by + multiplication. + * aomedia:3389: Fix MV clamping in av1_mv_pred. + * aomedia:3390: set_ld_layer_depth: cap max_layer_depth to + MAX_ARF_LAYERS. + * aomedia:3418: Fix MV clamping in av1_int_pro_motion_estimation. + * aomedia:3429: Move lpf thread data init to + lpf_pipeline_mt_init(). + * b:266719111: Fix undefined behavior in Arm Neon code. + * b:269840681: nonrd_opt: align scan tables. + * rtc: Fix is_key_frame setting in variance partition. + * Build: Fix build with clang-cl and Visual Studio. + +------------------------------------------------------------------- +Tue May 2 13:29:18 UTC 2023 - Frederic Crozat + +- Revert to BSD-2-Clause licence tag to only use SPDX valid + license tag. + +------------------------------------------------------------------- +Thu Apr 20 07:25:56 UTC 2023 - Frederic Crozat + +- Fix license tag to BSD-2-Clause and AOMPL-1.0. + +------------------------------------------------------------------- +Wed Feb 8 11:53:41 UTC 2023 - Bjørn Lie + +- Update to version 3.6.0: + * This release includes compression efficiency and perceptual + quality improvements, speedup and memory optimizations, and + some new features. This release is ABI compatible with the last + release. + * New Features: + - New values 20-27 (corresponding to levels 7.0-7.3 and + 8.0-8.3) for the encoder control + AV1E_SET_TARGET_SEQ_LEVEL_IDX (note that the proposal to add + the new levels are still in draft status). The original + special value 24 (keep level stats only for level monitoring) + is renumbered as 32. + - New encoder control AV1E_SET_SKIP_POSTPROC_FILTERING to skip + the application of post-processing filters on reconstructed + frame in all intra mode. + - New encoder option "kf-max-pyr-height": Maximum height of + pyramid structure used for the GOP starting with a key frame + (-1 to 5). + - Make SVC work for screen content. + - Rate control improvements to reduce frame-size spikes for + screen content coding. + - RISC-V architecture support with gcc toolchain. + * Compression Efficiency Improvements: + - Peak compression efficiency in VOD setting is improved by 1%. + - 0.7% - 2.2% RTC encoding BDrate gains for real time speed 8 + to 10. + - 15% RTC encoding BDrate gains for screen content speed 10. + * Perceptual Quality Improvements: + - Resolved a visual quality issue that was reported for high + resolution clips (2K) for speed 4 and above in VOD use case. + - Visual quality improvements to screen content coding. + - Quality improvements to temporal layer RTC coding. + * Speedup and Memory Optimizations: + - RTC single-thread encoder speedup: + . ~6% instruction count reduction for speed 5 and 6. + . ~15% instruction count reduction for speed 7. + . ~10% instruction count reduction for speed 8 to 10 (>=360p + resolutions). + - RTC multi-thread encoder speedup (beyond single-thread + speedup): + . 5-8% encode time reduction for speed 7 to 10. + - RTC screen-content encoder speedup: + . 11% instruction count reduction for speed 9 and 10 (>=720p + resolutions). + - ~5% reduction in heap memory requirements for RTC, speed 6 to + 10. + * AVIF: + . 4-5% speedup for speed 9 in still-picture encoding mode. + . 3-4% heap memory reduction in still-picture encoding mode + for 360p-720p resolutions with multiple threads. + * Bug Fixes: + - Added a workaround for an AV1 specification bug which makes + TRANSLATION type global motion models unusable. + - Fixed AddressSanitizer global-buffer-overflow errors in + av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c. + - Fixed AddressSanitizer heap-buffer-overflow error in + av1_wiener_convolve_add_src_neon(). + - chromium:1393384 Avoid scene detection on spatial resize. + - aomedia:3308 Remove color artifacts under high motion. + - aomedia:3310 Avoid out of memory failures with Visual Studio + 2017, 2019, and 2022 for Win32 x86 builds. + - aomedia:3346 Make SVC work properly for screen content. + - aomedia:3348 Fix a bug where an uninitialized search_site is + used. + - aomedia:3365 Work around what seems like a Visual Studio 2022 + compiler optimization bug. + - aomedia:3369 Incorrect PSNR values reported by libaom for + 12-bit encode. +- Modernize spec, use cmake_build and ldconfig_scriptlets macros. + +------------------------------------------------------------------- +Thu Sep 22 14:56:11 UTC 2022 - Bjørn Lie + +- Update to version 3.5.0: + * This release is ABI compatible with the last one, including + speedup and memory optimizations, and new APIs and features. + * New Features + - Support for frame parallel encode for larger number of + threads. --fp-mt flag is available for all build + configurations. + - New codec control AV1E_GET_NUM_OPERATING_POINTS + * Speedup and Memory Optimizations + - Speed-up multithreaded encoding for good quality mode for + larger number of threads through frame parallel encoding: + . 30-34% encode time reduction for 1080p, 16 threads, 1x1 + tile configuration (tile_rows x tile_columns) + . 18-28% encode time reduction for 1080p, 16 threads, 2x4 + tile configuration + . 18-20% encode time reduction for 2160p, 32 threads, 2x4 + tile configuration + - 16-20% speed-up for speed=6 to 8 in still-picture encoding + mode + - 5-6% heap memory reduction for speed=6 to 10 in real-time + encoding mode + - Improvements to the speed for speed=7, 8 in real-time + encoding mode + - Improvements to the speed for speed=9, 10 in real-time screen + encoding mode + - Optimizations to improve multi-thread efficiency in real-time + encoding mode + - 10-15% speed up for SVC with temporal layers + - SIMD optimizations: + . Improve av1_quantize_fp_32x32_neon() 1.05x to 1.24x faster + . Add aom_highbd_quantize_b{,_32x32,_64x64}_adaptive_neon() + 3.15x to 5.6x faster than "C" + . Improve av1_quantize_fp_64x64_neon() 1.17x to 1.66x faster + . Add aom_quantize_b_avx2() 1.4x to 1.7x faster than + aom_quantize_b_avx() + . Add aom_quantize_b_32x32_avx2() 1.4x to 2.3x faster than + aom_quantize_b_32x32_avx() + . Add aom_quantize_b_64x64_avx2() 2.0x to 2.4x faster than + aom_quantize_b_64x64_ssse3() + . Add aom_highbd_quantize_b_32x32_avx2() 9.0x to 10.5x faster + than aom_highbd_quantize_b_32x32_c() + . Add aom_highbd_quantize_b_64x64_avx2() 7.3x to 9.7x faster + than aom_highbd_quantize_b_64x64_c() + . Improve aom_highbd_quantize_b_avx2() 1.07x to 1.20x faster + . Improve av1_quantize_fp_avx2() 1.13x to 1.49x faster + . Improve av1_quantize_fp_32x32_avx2() 1.07x to 1.54x faster + . Improve av1_quantize_fp_64x64_avx2() 1.03x to 1.25x faster + . Improve av1_quantize_lp_avx2() 1.07x to 1.16x faster + * Bug fixes including but not limited to + - aomedia:3206 Assert that skip_width > 0 for deconvolve + function + - aomedia:3278 row_mt enc: Delay top-right sync when intraBC is + enabled + - aomedia:3282 blend_a64_*_neon: fix bus error in armv7 + - aomedia:3283 FRAME_PARALLEL: Propagate border size to all + cpis + - aomedia:3283 RESIZE_MODE: Fix incorrect strides being used + for motion search + - aomedia:3286 rtc-svc: Fix to dynamic_enable spatial layers + - aomedia:3289 rtc-screen: Fix to skipping inter-mode test in + nonrd + - aomedia:3289 rtc-screen: Fix for skip newmv on flat blocks + - aomedia:3299 Fix build failure with CONFIG_TUNE_VMAF=1 + - aomedia:3296 Fix the conflict --enable-tx-size-search=0 with + nonrd mode --enable-tx-size-search will be ignored in non-rd + pick mode + - aomedia:3304 Fix off-by-one error of max w/h in + validate_config + - aomedia:3306 Do not use pthread_setname_np on GNU/Hurd + - aomedia:3325 row-multithreading produces invalid bitstream in + some cases + - chromium:1346938, chromium:1338114 + - compiler_flags.cmake: fix flag detection w/cmake 3.17-3.18.2 + - tools/*.py: update to python3 + - aom_configure.cmake: detect PIE and set CONFIG_PIC + - test/simd_cmp_impl: use explicit types w/CompareSimd* + - rtc: Fix to disable segm for aq-mode=3 + - rtc: Fix to color_sensitivity in variance partition + - rtc-screen: Fix bsize in model rd computation for intra + chroma + - Fixes to ensure the correct behavior of the encoder + algorithms (like segmentation, computation of statistics, + etc.) + +------------------------------------------------------------------- +Sun Sep 4 19:28:41 UTC 2022 - Bjørn Lie + +- Update to version 3.4.0: + * This release includes compression efficiency and perceptual + quality improvements, speedup and memory optimizations, and + some new features. There are no ABI or API breaking changes in + this release. + * New Features: + - New --dist-metric flag with "qm-psnr" value to use + quantization matrices in the distortion computation for RD + search. The default value is "psnr". + - New command line option "--auto-intra-tools-off=1" to make + all-intra encoding faster for high bit rate under + "--deltaq-mode=3" mode. + - New rate control library aom_av1_rc for real-time hardware + encoders. Supports CBR for both one spatial layer and SVC. + - New image format AOM_IMG_FMT_NV12 can be used as input to the + encoder. The presence of AOM_IMG_FMT_NV12 can be detected at + compile time by checking if the macro AOM_HAVE_IMG_FMT_NV12 + is defined. + - New codec controls for the encoder: + o AV1E_SET_AUTO_INTRA_TOOLS_OFF. Only in effect if + --deltaq-mode=3. + o AV1E_SET_RTC_EXTERNAL_RC + o AV1E_SET_FP_MT. Only supported if libaom is built with + -DCONFIG_FRAME_PARALLEL_ENCODE=1. + o AV1E_GET_TARGET_SEQ_LEVEL_IDX + - New key-value pairs for the key-value API: + o --auto-intra-tools-off=0 (default) or 1. Only in effect if + --deltaq-mode=3. + o --strict-level-conformance=0 (default) or 1 + o --fp-mt=0 (default) or 1. Only supported if libaom is built + with -DCONFIG_FRAME_PARALLEL_ENCODE=1. + - New aomenc options (not supported by the key-value API): + o --nv12 + * Compression Efficiency Improvements: + - Correctly calculate SSE for high bitdepth in skip mode, 0.2% + to 0.6% coding gain. + - RTC at speed 9/10: BD-rate gain of ~4/5% + - RTC screen content coding: many improvements for real-time + screen at speed 10 (quality, speedup, and rate control), up + to high resolutions (1080p). + - RTC-SVC: fixes to make intra-only frames work for spatial + layers. + - RTC-SVC: quality improvements for temporal layers. + - AV1 RT: A new passive rate control strategy for screen + content, an average of 7.5% coding gain, with some clips of + 20+%. The feature is turned off by default due to higher bit + rate variation. + * Perceptual Quality Improvements: + - RTC: Visual quality improvements for high speeds (9/10) + - Improvements in coding quality for all intra mode + * Speedup and Memory Optimizations: + - ~10% speedup in good quality mode encoding. + - ~7% heap memory reduction in good quality encoding mode for + speed 5 and 6. + - Ongoing improvements to intra-frame encoding performance on + Arm + - Faster encoding speed for "--deltaq-mode=3" mode. + - ~10% speedup for speed 5/6, ~15% speedup for speed 7/8, and + ~10% speedup for speed 9/10 in real time encoding mode + - ~20% heap memory reduction in still-picture encoding mode for + 360p-720p resolutions with multiple threads + - ~13% speedup for speed 6 and ~12% speedup for speed 9 in + still-picture encoding mode. + - Optimizations to improve multi-thread efficiency for + still-picture encoding mode. + * Bug Fixes: + - b/204460717: README.md: replace master with main + - b/210677928: libaom disable_order is surprising for + max_reference_frames=3 + - b/222461449: -DCONFIG_TUNE_BUTTERAUGLI=1 broken + - b/227207606: write_greyscale writes incorrect chroma in + highbd mode + - b/229955363: Integer-overflow in linsolve_wiener + - https://crbug.com/aomedia/2032 + - https://crbug.com/aomedia/2397 + - https://crbug.com/aomedia/2563 + - https://crbug.com/aomedia/2815 + - https://crbug.com/aomedia/3009 + - https://crbug.com/aomedia/3018 + - https://crbug.com/aomedia/3045 + - https://crbug.com/aomedia/3101 + - https://crbug.com/aomedia/3130 + - https://crbug.com/aomedia/3173 + - https://crbug.com/aomedia/3184 + - https://crbug.com/aomedia/3187 + - https://crbug.com/aomedia/3190 + - https://crbug.com/aomedia/3195 + - https://crbug.com/aomedia/3197 + - https://crbug.com/aomedia/3201 + - https://crbug.com/aomedia/3202 + - https://crbug.com/aomedia/3204 + - https://crbug.com/aomedia/3205 + - https://crbug.com/aomedia/3207 + - https://crbug.com/aomedia/3208 + - https://crbug.com/aomedia/3209 + - https://crbug.com/aomedia/3213 + - https://crbug.com/aomedia/3214 + - https://crbug.com/aomedia/3219 + - https://crbug.com/aomedia/3222 + - https://crbug.com/aomedia/3223 + - https://crbug.com/aomedia/3225 + - https://crbug.com/aomedia/3226 + - https://crbug.com/aomedia/3228 + - https://crbug.com/aomedia/3232 + - https://crbug.com/aomedia/3236 + - https://crbug.com/aomedia/3237 + - https://crbug.com/aomedia/3238 + - https://crbug.com/aomedia/3240 + - https://crbug.com/aomedia/3243 + - https://crbug.com/aomedia/3244 + - https://crbug.com/aomedia/3246 + - https://crbug.com/aomedia/3248 + - https://crbug.com/aomedia/3250 + - https://crbug.com/aomedia/3251 + - https://crbug.com/aomedia/3252 + - https://crbug.com/aomedia/3255 + - https://crbug.com/aomedia/3257 + - https://crbug.com/aomedia/3259 + - https://crbug.com/aomedia/3260 + - https://crbug.com/aomedia/3267 + - https://crbug.com/aomedia/3268 + - https://crbug.com/aomedia/3269 + - https://crbug.com/aomedia/3276 + - https://crbug.com/aomedia/3278 + - https://crbug.com/chromium/1290068 + - https://crbug.com/chromium/1303237 + - https://crbug.com/chromium/1304990 + - https://crbug.com/chromium/1321141 + - https://crbug.com/chromium/1321388 + - https://crbug.com/oss-fuzz/44846 + - https://crbug.com/oss-fuzz/44856 + - https://crbug.com/oss-fuzz/44862 + - https://crbug.com/oss-fuzz/44904 + - https://crbug.com/oss-fuzz/45056 + +------------------------------------------------------------------- +Fri Feb 18 16:09:00 UTC 2022 - Bjørn Lie + +- Update to version 3.3.0: + * This release includes compression efficiency and perceptual + quality improvements, speedup and memory optimizations, some + new features, and several bug fixes. + * New Features + - AV1 RT: Introducing CDEF search level 5 + - Changed real time speed 4 to behave the same as real time + speed 5 + - Add --deltaq-strength + - rtc: Allow scene-change and overshoot detection for svc + - rtc: Intra-only frame for svc + - AV1 RT: Option 2 for codec control AV1E_SET_ENABLE_CDEF to + disable CDEF on non-ref frames + - New codec controls AV1E_SET_LOOPFILTER_CONTROL and + AOME_GET_LOOPFILTER_LEVEL + - Improvements to three pass encoding + * Compression Efficiency Improvements: Overall compression gains: + 0.6% + * Perceptual Quality Improvements + - Improves the perceptual quality of high QP encoding for + delta-q mode 4 + - Auto select noise synthesis level for all intra + * Speedup and Memory Optimizations + - Added many SSE2 optimizations. + - Good quality 2-pass encoder speedups: + o Speed 2: 9% + o Speed 3: 12.5% + o Speed 4: 8% + o Speed 5: 3% + o Speed 6: 4% + - Real time mode encoder speedups: + o Speed 5: 2.6% BDRate gain, 4% speedup + o Speed 6: 3.5% BDRate gain, 4% speedup + o Speed 9: 1% BDRate gain, 3% speedup + o Speed 10: 3% BDRate gain, neutral speedup + - All intra encoding speedups (AVIF): + o Single thread - speed 6: 8% + o Single thread - speed 9: 15% + o Multi thread(8) - speed 6: 14% + o Multi thread(8) - speed 9: 34% + * Bug Fixes + - Issue 3163: Segmentation fault when using + --enable-keyframe-filtering=2 + - Issue 2436: Integer overflow in av1_warp_affine_c() + - Issue 3226: armv7 build failure due to gcc-11 + - Issue 3195: Bug report on libaom (AddressSanitizer: + heap-buffer-overflow) + - Issue 3191: Bug report on libaom (AddressSanitizer: SEGV on + unknown address) +- Drop libaom-devel Requires from libaom-devel-doc sub-package: We + do not need the devel package to be able to read the devel + documentation. + +------------------------------------------------------------------- +Fri Oct 15 17:54:17 UTC 2021 - bjorn.lie@gmail.com + +- Update to version 3.2.0: + * This release includes compression efficiency and perceptual + quality improvements, speedup and memory optimizations, as well + as some new features. + * New Features: + + Introduced speeds 7, 8, and 9 for all intra mode. + + Introduced speed 10 for real time mode. + + Introduced an API that allows external partition decisions. + + SVC: added support for compound prediction. + + SVC: added support for fixed SVC modes. + * Compression Efficiency Improvements: + + Intra-mode search improvement. + + Improved real time (RT) mode BDrate savings by ~5% (RT speed + 5) and ~12% (RT speed 6). The improvement was measured on the + video conference set. + + Improved real time mode for nonrd path (speed 7, 8, 9): + BDrate gains of ~3-5%. + + Rate control and RD adjustments based on ML research in VP9. + Gains of ~0.5-1.0% for HD. + * Perceptual Quality Improvements: + + Added a new mode --deltaq-mode=3 to improve perceptual + quality based on a differential contrast model for still + images. + + Added a new mode –deltaq-mode=4 to improve perceptual quality + based on user rated cq_level data set for still images. + + Weighting of some intra mode and partition size choices to + better manage and retain texture. + * Speedup and Memory Optimizations: + + Further improved 2-pass good quality encoder speed: + . Speed 2 speedup: 18% + . Speed 3 speedup: 22% + . Speed 4 speedup: 37% + . Speed 5 speedup: 30% + . Speed 6 speedup: 20% + + Optimized the real time encoder (measured on the video + conference set): + . RT speed 5 speedup: 110% + . RT speed 6 speedup: 77% + * Bug Fixes + + Issue 3069: Fix one-pass mode keyframe placement off-by-one + error. + + Issue 3156: Fix a bug in av1_quantize_lp AVX2 optimization. +- Drop libaom-CVE-2021-30474.patch: Fixed upstream. +- Drop libaom-CVE-2021-30475.patch: Fixed upstream. +- Remove changesgenerate option from _service file, use data from + CHANGELOG to fill .changes instead as it it much nicer and human + readable than just a list of commit messages. + +------------------------------------------------------------------- +Wed Oct 13 18:20:02 UTC 2021 - Callum Farmer + +- fix service data + +------------------------------------------------------------------- +Fri Oct 08 11:01:26 UTC 2021 - gmbr3@opensuse.org + +- Update to version 3.1.3: + * Update CHANGELOG for v3.1.3-rc2 + * Detect chroma subsampling more directly + * Detect chroma subsampling more directly + * image2yuvconfig() should calculate uv_crop_width + * aom/aom_encoder.h: remove configure option reference + * aom_encoder.h: fix rc_overshoot_pct range + * Update AUTHORS,CHANGELOG,CMakeLists.txt for v3.1.3 + * aom_install: don't exclude msvc from install + * aom_install: use relpath for install + * aom_install: Install lib dlls to bindir + +------------------------------------------------------------------- +Thu Sep 9 13:47:19 UTC 2021 - pgajdos@suse.com + +- security update +- added patches + fix CVE-2021-30474 [bsc#1186799], aom_dsp/grain_table.c in libaom in AOMedia before 2021-03-30 has a use-after-free. + + libaom-CVE-2021-30474.patch + +------------------------------------------------------------------- +Wed Aug 25 09:13:44 UTC 2021 - pgajdos@suse.com + +- security update +- added patches + fix CVE-2021-30475 [bsc#1189497], Buffer overflow in aom_dsp/noise_model.c + + libaom-CVE-2021-30475.patch + +------------------------------------------------------------------- +Wed Aug 25 08:32:17 UTC 2021 - pgajdos@suse.com + +- Update to version 3.1.2: + * Update AUTHORS,CHANGELOG,CMakeLists.txt for v3.1.2 + * Avoid chroma resampling for 420mpeg2 input + * Check array has two elements before using index 1 + * Fix DecodeScalabilityTest failure in realtime only + * Store temporal_id and spatial_id of decoded frame + * exports.cmake: use APPLE and WIN32 and use def for mingw-w64 + +------------------------------------------------------------------- +Fri Jul 2 18:39:38 UTC 2021 - Ferdinand Thiessen + +- Update to version 3.1.1 + * Fix vmaf model initialization error when not set to tune=vmaf + * Fix consistent crash on near-static screen content, keyframe + related + * Fix tune=butteraugli mode +- Disable NEON on arm where not available. + +------------------------------------------------------------------- +Mon May 10 14:00:23 UTC 2021 - daniel.molkentin@suse.com + +- Update to version 3.1.0 (bsc#1185843): + https://aomedia.googlesource.com/aom/+/refs/tags/v3.1.0 + + This release adds an "all intra" mode to the encoder, which significantly + speeds up the encoding of AVIF still images at speed 6. + + - Upgrading: + All intra mode for encoding AVIF still images and AV1 all intra videos: + AOM_USAGE_ALL_INTRA (2) can be passed as the 'usage' argument to + aom_codec_enc_config_default(). + + New encoder control IDs added: + - AV1E_SET_ENABLE_DIAGONAL_INTRA: Enable diagonal (D45 to D203) intra + prediction modes (0: false, 1: true (default)). Also available as + "enable-diagonal-intra" for the aom_codec_set_option() function. + + New aom_tune_metric enum value: AOM_TUNE_BUTTERAUGLI. The new aomenc option + --tune=butteraugli was added to optimize the encoder’s perceptual quality by + optimizing the Butteraugli metric. Install libjxl (JPEG XL) and then pass + -DCONFIG_TUNE_BUTTERAUGLI=1 to the cmake command to enable it. + + +- Includes 3.0 + https://aomedia.googlesource.com/aom/+/refs/tags/v3.0.0 +This release includes compression efficiency improvement, speed improvement +for realtime mode, as well as some new APIs. + + - Upgrading: + + Support for PSNR calculation based on stream bit-depth. + + New encoder control IDs added: + - AV1E_SET_ENABLE_RECT_TX + - AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP + - AV1E_GET_BASELINE_GF_INTERVAL + - AV1E_SET_ENABLE_DNL_DENOISING + + New decoder control IDs added: + - AOMD_GET_FWD_KF_PRESENT + - AOMD_GET_FRAME_FLAGS + - AOMD_GET_ALTREF_PRESENT + - AOMD_GET_TILE_INFO + - AOMD_GET_SCREEN_CONTENT_TOOLS_INFO + - AOMD_GET_STILL_PICTURE + - AOMD_GET_SB_SIZE + - AOMD_GET_SHOW_EXISTING_FRAME_FLAG + - AOMD_GET_S_FRAME_INFO + + New aom_tune_content enum value: AOM_CONTENT_FILM + + New aom_tune_metric enum value: AOM_TUNE_VMAF_NEG_MAX_GAIN + + Coefficient and mode update can be turned off via + AV1E_SET_{COEFF/MODE}_COST_UPD_FREQ. + + New key & value API added, available with aom_codec_set_option() function. + Scaling API expanded to include 1/4, 3/4 and 1/8. + + - Enhancements: + + Better multithreading performance with realtime mode. + New speed 9 setting for faster realtime encoding. + Smaller binary size with low bitdepth and realtime only build. + Temporal denoiser and its optimizations on x86 and Neon. + Optimizations for scaling. + Faster encoding with speed settings 2 to 6 for good encoding mode. + Improved documentation throughout the library, with function level + documentation, tree view and support for the dot tool. + + - Bug fixes: + Aside from those mentioned in v2.0.1 and v2.0.2, this release includes the + following bug fixes: + + Issue 2940: Segfault when encoding with --use-16bit-internal and --limit > 1 + Issue 2941: Decoder mismatch with --rt --bit-depth=10 and --cpu-used=8 + Issue 2895: mingw-w64 i686 gcc fails to build + Issue 2874: Separate ssse3 functions from sse2 file. + +------------------------------------------------------------------- +Mon Mar 01 20:25:43 UTC 2021 - elimat@opensuse.org + +- Update to version 2.0.2: + * Prepare for the libaom v2.0.2 release + * Call av1_setup_frame_size() when dropping a frame + * Avoid memset in filter_intra_predictor module + * Fix a typo bug in apply_temporal_filter_planewise + * Modify the assertion in temporal filter intrinsics + * Fix unit test ThreadTestLarge.EncoderResultTest/49 + * Add -Wimplicit-function-declaration as C flag only + * Update CHANGELOG for libaom v2.0.1 + * Set allow_screen_content_tools to 0 in rt mode + * chroma_check: don't access UV planes if monochrome + +------------------------------------------------------------------- +Tue May 19 12:32:12 UTC 2020 - daniel.molkentin@suse.com + +- Update to version 2.0.0 "Applejack": + + This is the first official release of libaom. It has real-time + mode and SVC support, as well as substantial documentation + improvement and clean-ups. + + Important changes: + * Decouple library version and so version. + * Move functions into a header file + * Remove av1_ prefix from static functions + * Remove aom_ prefix from static functions + * Remove aom_ prefix for static functions + * Remove av1_ prefix for a static function +- Drop libaom-0002-link-threading-lib-with-shared-library.patch and + libaom-0003-update-CHANGELOG.patch + +------------------------------------------------------------------- +Tue Jul 31 21:29:49 UTC 2018 - 9+suse@cirno.systems + +- Enable CONFIG_LOWBITDEPTH. Makes 8-bit decoding faster. The only + reason this confusingly-named option is not enabled by default + is that its behavior might not match the 16-bit reference code + path, and that hardware vendors want to be able to validate + their designs against it. No actual mismatches have been found. + See https://bugs.chromium.org/p/aomedia/issues/detail?id=2062 + +------------------------------------------------------------------- +Mon Jul 30 13:09:23 UTC 2018 - bjorn.lie@gmail.com + +- Pass conditional AOM_TARGET_CPU to cmake, fix build for arm and + ppc, as well as optimize target cpu for other arches. + +------------------------------------------------------------------- +Fri Jul 27 14:42:25 UTC 2018 - 9+suse@cirno.systems + +- Init, v1.0.0 diff --git a/libaom.obsinfo b/libaom.obsinfo new file mode 100644 index 0000000..a4054dd --- /dev/null +++ b/libaom.obsinfo @@ -0,0 +1,4 @@ +name: libaom +version: 3.7.1 +mtime: 1700269070 +commit: aca387522ccc0a1775716923d5489dd2d4b1e628 diff --git a/libaom.spec b/libaom.spec new file mode 100644 index 0000000..cceba52 --- /dev/null +++ b/libaom.spec @@ -0,0 +1,180 @@ +# +# spec file +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "" +%define psuffix %{nil} +%else +%define psuffix -devel-doc +%endif + +%define sover 3 +%define __builder ninja +%define __builddir _build +Name: libaom%{psuffix} +Version: 3.7.1 +Release: 0 +%if "%{flavor}" == "" +Summary: AV1 codec library +Group: Productivity/Multimedia/Other +%endif +%if "%{flavor}" == "doc" +Summary: Documentation for the libaom API +Group: Documentation/HTML +BuildArch: noarch +%endif +License: BSD-2-Clause +URL: https://aomedia.googlesource.com/aom/ +Source0: libaom-%{version}.tar.zst +Source99: baselibs.conf +Patch0: libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch +Patch1: system-gtest.patch +Patch2: system-yuv.patch + +BuildRequires: c++_compiler +BuildRequires: cmake >= 3.6 +BuildRequires: ninja +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libyuv) +%ifarch x86_64 %ix86 +BuildRequires: yasm +%endif + +%if "%{flavor}" == "doc" +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: graphviz-gnome +%endif + +%description +%if "%{flavor}" == "" +This is a library for AOMedia Video 1 (AV1), an open, royalty-free +video coding format designed for video transmissions over the Internet. +%endif +%if "%{flavor}" == "doc" +This package contains the API documentation for libaom, a library +for the AOMedia Video 1 (AV1) video coding format. +%endif + +%if "%{flavor}" == "" +%package -n %{name}%{sover} +Summary: AV1 codec library +Group: System/Libraries + +%description -n %{name}%{sover} +This is a library for AOMedia Video 1 (AV1), an open, royalty-free +video coding format designed for video transmissions over the Internet. + +%package devel +Summary: Development files for libaom, an AV1 codec library +Group: Development/Languages/C and C++ +Requires: %{name}%{sover}%{_isa} = %{version} + +%description devel +This package contains the development headers and library files for +libaom, a library for the AOMedia Video 1 (AV1) video coding format. + +%package -n aom-tools +Summary: AV1 Codec Library Tools +Group: Productivity/Multimedia/Other + +%description -n aom-tools +This package contains tools included with libaom, a library for +the AOMedia Video 1 (AV1) video coding format. +%endif + +%prep +%autosetup -n libaom-%{version} -p1 +# Remove vendored dependencies +rm -rf third_party/{googletest,libyuv} +sed -E -i 's|#include "third_party/googletest/src/googletest/include/([^"]*)"|#include <\1>|' test/*.{cc,h} + +%build +%cmake \ + -DAOM_AS_FLAGS=-gdwarf2 \ +%if "%{flavor}" == "" + -DENABLE_DOCS=OFF \ +%endif +`# Do not build unit tests, they require non-free external files.` \ + -DENABLE_TESTS=OFF \ + -DENABLE_TESTDATA=OFF \ +\ + -DCONFIG_LOWBITDEPTH=1 \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ +%ifnarch aarch64 %arm %ix86 x86_64 %x86_64 ppc %power64 + -DAOM_TARGET_CPU=generic \ +%endif +%ifarch %arm +`# see regex in build/cmake/rtcd.pl (this actually work for armv6hl too)` \ + -DAOM_TARGET_CPU=armv7 \ +`# Fix missing flag for neon code` \ +`# See aom_ports/arm_cpudetect.c` \ + -DENABLE_NEON=ON \ + -DAOM_NEON_INTRIN_FLAG=-mfpu=neon \ +%endif +%ifarch aarch64 + -DAOM_TARGET_CPU=arm64 \ +%endif +%ifarch ppc %power64 + -DAOM_TARGET_CPU=ppc \ +%endif +%ifarch %ix86 + -DAOM_TARGET_CPU=x86 \ +%endif +%ifarch x86_64 %x86_64 + -DAOM_TARGET_CPU=x86_64 \ +%endif + %{nil} + +%if "%{flavor}" == "" +%cmake_build +%endif + +%if "%{flavor}" == "doc" +%cmake_build docs +%endif + +%install +%if "%{flavor}" == "" +%cmake_install +rm %{buildroot}%{_libdir}/%{name}.a + +%ldconfig_scriptlets -n %{name}%{sover} + +%files -n %{name}%{sover} +%license LICENSE PATENTS +%doc AUTHORS CHANGELOG +%{_libdir}/%{name}.so.* + +%files devel +%{_includedir}/aom +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/aom.pc + +%files -n aom-tools +%{_bindir}/aomdec +%{_bindir}/aomenc + +%endif + +%if "%{flavor}" == "doc" +%files +%doc %{__builddir}/docs/html/* +%endif + +%changelog diff --git a/system-gtest.patch b/system-gtest.patch new file mode 100644 index 0000000..cd0565b --- /dev/null +++ b/system-gtest.patch @@ -0,0 +1,60 @@ +--- a/test/test.cmake 2022-06-17 19:46:18.000000000 +0200 ++++ b/test/test.cmake 2022-08-30 12:26:32.563379100 +0200 +@@ -14,6 +14,7 @@ + set(AOM_TEST_TEST_CMAKE_ 1) + + include(ProcessorCount) ++find_package(PkgConfig REQUIRED) + + include("${AOM_ROOT}/test/test_data_util.cmake") + +@@ -362,34 +363,21 @@ + set(CMAKE_MACOSX_RPATH 1) + endif() + +- add_library( +- aom_gtest STATIC +- "${AOM_ROOT}/third_party/googletest/src/googletest/src/gtest-all.cc") +- set_property(TARGET aom_gtest PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER}) +- target_include_directories( +- aom_gtest +- PUBLIC "${AOM_ROOT}/third_party/googletest/src/googletest/include" +- PRIVATE "${AOM_ROOT}/third_party/googletest/src/googletest") +- +- # The definition of GTEST_HAS_PTHREAD must be public, since it's checked by +- # interface headers, not just by the implementation. +- if(NOT (MSVC OR WIN32)) +- if(CONFIG_MULTITHREAD AND CMAKE_USE_PTHREADS_INIT) +- target_compile_definitions(aom_gtest PUBLIC GTEST_HAS_PTHREAD=1) +- else() +- target_compile_definitions(aom_gtest PUBLIC GTEST_HAS_PTHREAD=0) +- endif() +- endif() +- +- add_library( +- aom_gmock STATIC +- "${AOM_ROOT}/third_party/googletest/src/googlemock/src/gmock-all.cc") +- set_property(TARGET aom_gmock PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER}) +- target_include_directories( +- aom_gmock +- PUBLIC "${AOM_ROOT}/third_party/googletest/src/googlemock/include" +- PRIVATE "${AOM_ROOT}/third_party/googletest/src/googlemock") +- target_link_libraries(aom_gmock ${AOM_LIB_LINK_TYPE} aom_gtest) ++ pkg_check_modules(gtest REQUIRED gtest) ++ add_library(aom_gtest INTERFACE) ++ target_link_libraries(aom_gtest INTERFACE ${gtest_LIBRARIES}) ++ target_link_directories(aom_gtest INTERFACE ${gtest_LIBRARY_DIRS}) ++ target_link_options(aom_gtest INTERFACE ${gtest_LDFLAGS_OTHER}) ++ target_include_directories(aom_gtest INTERFACE ${gtest_INCLUDE_DIRS}) ++ target_compile_options(aom_gtest INTERFACE ${gtest_CFLAGS_OTHER}) ++ ++ pkg_check_modules(gmock REQUIRED gmock) ++ add_library(aom_gmock INTERFACE) ++ target_link_libraries(aom_gmock INTERFACE ${gmock_LIBRARIES}) ++ target_link_directories(aom_gmock INTERFACE ${gmock_LIBRARY_DIRS}) ++ target_link_options(aom_gmock INTERFACE ${gmock_LDFLAGS_OTHER}) ++ target_include_directories(aom_gmock INTERFACE ${gmock_INCLUDE_DIRS}) ++ target_compile_options(aom_gmock INTERFACE ${gmock_CFLAGS_OTHER}) + endif() + + # Setup testdata download targets, test build targets, and test run targets. The diff --git a/system-yuv.patch b/system-yuv.patch new file mode 100644 index 0000000..214baca --- /dev/null +++ b/system-yuv.patch @@ -0,0 +1,78 @@ +--- a/CMakeLists.txt.old 2022-06-17 19:46:18.000000000 +0200 ++++ b/CMakeLists.txt 2022-08-30 12:58:06.276718500 +0200 +@@ -457,11 +457,14 @@ + endif() + + if(CONFIG_LIBYUV OR CONFIG_TUNE_BUTTERAUGLI) +- add_library(yuv OBJECT ${AOM_LIBYUV_SOURCES}) +- if(NOT MSVC) +- target_compile_options(yuv PRIVATE -Wno-shadow) +- endif() +- include_directories("${AOM_ROOT}/third_party/libyuv/include") ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(libyuv REQUIRED libyuv) ++ add_library(system_libyuv INTERFACE) ++ target_link_libraries(system_libyuv INTERFACE ${libyuv_LIBRARIES}) ++ target_link_directories(system_libyuv INTERFACE ${libyuv_LIBRARY_DIRS}) ++ target_link_options(system_libyuv INTERFACE ${libyuv_LDFLAGS_OTHER}) ++ target_include_directories(system_libyuv INTERFACE ${libyuv_INCLUDE_DIRS}) ++ target_compile_options(system_libyuv INTERFACE ${libyuv_CFLAGS_OTHER}) + endif() + + if(CONFIG_AV1_ENCODER) +@@ -579,10 +583,10 @@ + set_target_properties(aom_static PROPERTIES LINKER_LANGUAGE CXX) + endif() + +- list(APPEND AOM_LIB_TARGETS yuv) +- target_sources(aom PRIVATE $) ++ list(APPEND AOM_LIB_TARGETS system_libyuv) ++ target_link_libraries(aom PRIVATE system_libyuv) + if(BUILD_SHARED_LIBS) +- target_sources(aom_static PRIVATE $) ++ target_link_libraries(aom_static PRIVATE system_libyuv) + endif() + endif() + +@@ -732,7 +736,7 @@ + if(CONFIG_LIBYUV) + # Add to existing targets. + foreach(aom_app ${AOM_APP_TARGETS}) +- target_sources(${aom_app} PRIVATE $) ++ target_link_libraries(${aom_app} PRIVATE system_libyuv) + set_property(TARGET ${aom_app} PROPERTY LINKER_LANGUAGE CXX) + endforeach() + endif() +--- a/test/test.cmake ++++ b/test/test.cmake +@@ -458,7 +458,7 @@ + target_link_libraries(test_libaom ${AOM_LIB_LINK_TYPE} aom aom_gtest) + + if(CONFIG_LIBYUV) +- target_sources(test_libaom PRIVATE $) ++ target_link_libraries(test_libaom PRIVATE system_libyuv) + endif() + if(CONFIG_WEBM_IO) + target_sources(test_libaom PRIVATE $) +--- a/apps/aomdec.c ++++ b/apps/aomdec.c +@@ -44,7 +44,7 @@ + #include "common/y4menc.h" + + #if CONFIG_LIBYUV +-#include "third_party/libyuv/include/libyuv/scale.h" ++#include + #endif + + static const char *exec_name; +--- a/apps/aomenc.c ++++ b/apps/aomenc.c +@@ -47,7 +47,7 @@ + #include "stats/rate_hist.h" + + #if CONFIG_LIBYUV +-#include "third_party/libyuv/include/libyuv/scale.h" ++#include + #endif + + /* Swallow warnings about unused results of fread/fwrite */