forked from pool/libaom
Compare commits
11 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| af483cc1d0 | |||
| 77d3c963cc | |||
| 074480d36f | |||
| a36af9e0f8 | |||
| dfb29a03e4 | |||
| 9b74982e93 | |||
| 190aeeecdf | |||
| 4a2eb1be3f | |||
| af11e9615b | |||
| 61773f1a05 | |||
| 3883c5007d |
2
_service
2
_service
@@ -5,7 +5,7 @@
|
||||
<param name="filename">libaom</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="versionrewrite-pattern">v([0-9\.]*)</param>
|
||||
<param name="revision">v3.7.2</param>
|
||||
<param name="revision">v3.13.1</param>
|
||||
<param name="exclude">third_party/googletest/*</param>
|
||||
<param name="exclude">third_party/libyuv/*</param>
|
||||
</service>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
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()
|
||||
diff -rub libaom-3.12.1.orig/build/cmake/aom_configure.cmake libaom-3.12.1/build/cmake/aom_configure.cmake
|
||||
--- libaom-3.12.1.orig/build/cmake/aom_configure.cmake 2025-04-12 04:37:49.000000000 +0800
|
||||
+++ libaom-3.12.1/build/cmake/aom_configure.cmake 2025-08-05 17:01:20.862061300 +0800
|
||||
@@ -398,9 +398,6 @@
|
||||
add_compiler_flag_if_supported("-Werror")
|
||||
endif()
|
||||
|
||||
@@ -11,4 +10,4 @@ index 43d60ae3d..175339178 100644
|
||||
- endif()
|
||||
add_compiler_flag_if_supported("-D_LARGEFILE_SOURCE")
|
||||
add_compiler_flag_if_supported("-D_FILE_OFFSET_BITS=64")
|
||||
endif()
|
||||
|
||||
|
||||
3
libaom-3.13.1.obscpio
Normal file
3
libaom-3.13.1.obscpio
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:24bbdaf7517598aa15aaebf9242e49862244aaa3c9d65b6a7d6de81a787a0d9e
|
||||
size 32108045
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b5889c237f0bb3757572f0167a6c4314c8e8d58721dc255700b80277e2a27aa3
|
||||
size 25603597
|
||||
29
libaom-cmake.patch
Normal file
29
libaom-cmake.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
diff -purN a/build/cmake/aom_install.cmake b/build/cmake/aom_install.cmake
|
||||
--- a/build/cmake/aom_install.cmake 2025-09-06 00:10:37.000000000 +0200
|
||||
+++ b/build/cmake/aom_install.cmake 2026-01-04 15:27:13.010586657 +0100
|
||||
@@ -79,7 +79,7 @@ macro(setup_aom_install_targets)
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
- set(AOM_INSTALL_LIBS aom aom_static)
|
||||
+ set(AOM_INSTALL_LIBS aom)
|
||||
else()
|
||||
set(AOM_INSTALL_LIBS aom)
|
||||
endif()
|
||||
diff -purN a/build/cmake/config.cmake.in b/build/cmake/config.cmake.in
|
||||
--- a/build/cmake/config.cmake.in 2025-09-06 00:10:37.000000000 +0200
|
||||
+++ b/build/cmake/config.cmake.in 2026-01-04 15:26:06.418675895 +0100
|
||||
@@ -10,13 +10,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/@AOM_
|
||||
|
||||
set_and_check(@PROJECT_NAME@_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||
|
||||
-# @PROJECT_NAME@::aom_static is defined only if BUILD_SHARED_LIBS=1 when libaom
|
||||
-# was configured. When it is false, @PROJECT_NAME@::aom is a static library.
|
||||
-if(TARGET @PROJECT_NAME@::aom_static)
|
||||
- set(@PROJECT_NAME@_STATIC_LIBRARIES "@PROJECT_NAME@::aom_static")
|
||||
-else()
|
||||
- set(@PROJECT_NAME@_STATIC_LIBRARIES "@PROJECT_NAME@::aom")
|
||||
-endif()
|
||||
set(@PROJECT_NAME@_LIBRARIES "@PROJECT_NAME@::aom")
|
||||
|
||||
check_required_components(@PROJECT_NAME@)
|
||||
116
libaom.changes
116
libaom.changes
@@ -1,3 +1,119 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 4 14:46:46 UTC 2026 - Arjen de Korte <suse+build@de-korte.org>
|
||||
|
||||
- Require aom-tools from the libaom-devel subpackage as the binaries
|
||||
it supplies are in AOMTargets.cmake
|
||||
- Remove static library from AOMTargets.cmake [boo#1255861]
|
||||
+ libaom-cmake.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 8 19:56:25 UTC 2025 - Mia Herkt <mia@0x0.st>
|
||||
|
||||
- Update to version 3.13.1
|
||||
* New Features
|
||||
+ New tuning mode AOM_TUNE_SSIMULACRA2 for the AOME_SET_TUNING
|
||||
codec control (--tune=ssimulacra2) in all-intra mode.
|
||||
The feature detection macro AOM_HAVE_TUNE_SSIMULACRA2,
|
||||
if defined, indicates that AOM_TUNE_SSIMULACRA2 is available.
|
||||
AOM_TUNE_SSIMULACRA2 was developed to maximize SSIMULACRA 2
|
||||
scores.
|
||||
+ New codec control AV1E_SET_SCREEN_CONTENT_DETECTION_MODE
|
||||
(--screen-detection-mode).
|
||||
This codec control helps select between two screen detection
|
||||
modes:
|
||||
Mode 1: standard (default)
|
||||
Mode 2: anti-aliased text and graphics aware
|
||||
+ New codec control AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS
|
||||
(--enable-adaptive-sharpness). When enabled, it modulates
|
||||
sharpness based on frame QP, which helps mitigate blocking
|
||||
artifacts in the low to medium quality range.
|
||||
+ Added low complexity decode mode for 720p vertical videos.
|
||||
+ ROI feature implemented for RTC: for delta QP, skip encoding,
|
||||
and reference selection.
|
||||
+ External scaling feature for SVC: allow downscaled images to
|
||||
be passed into encoder for spatial layers without
|
||||
reconfiguring it.
|
||||
+ Allow per-frame calculation of PSNR (contribution from Meta).
|
||||
|
||||
- Compression Efficiency Improvements
|
||||
+ Variance Boost is now enabled for tuning modes AOM_TUNE_IQ
|
||||
and AOM_TUNE_SSIMULACRA2 at speeds 8 and 9 (2-5% SSIMULACRA 2
|
||||
BD-Rate gains)
|
||||
+ Several quality/time tradeoff improvements and bug fixes for
|
||||
all intra mode speeds 8 and 9.
|
||||
Up to 6.9% SSIMULACRA 2 BD-Rate gains for speed 8
|
||||
Up to 2.2% SSIMULACRA 2 BD-Rate gains for speed 9
|
||||
|
||||
- Perceptual Quality Improvements
|
||||
+ RTC: Visual quality improvements for screen content mode.
|
||||
+ RTC: Visual quality improvements for video mode for
|
||||
resolutions >= 720p.
|
||||
|
||||
- Speedups
|
||||
+ Optimize intraBC search for better speed/efficiency tradeoffs
|
||||
for all intra mode speeds >= 1
|
||||
+ Optimize intraBC block hashing process
|
||||
+ RTC Screen: speed feature added to speed 12 for ~2x speedup
|
||||
on slide/scene changes, for resolutions >= 720p.
|
||||
+ ML based speedup improvement on the partition pruning for
|
||||
speed <= 2
|
||||
|
||||
- Other Improvements
|
||||
+ Fixes for RPS (reference picture selection) for RTC: Based on
|
||||
av1_discuss issue:
|
||||
https://groups.google.com/a/aomedia.org/g/av1-discuss/c/sqFad980SsA
|
||||
|
||||
- Bug Fixes
|
||||
+ b:421196988: all intra speed 8: overuse of palette mode
|
||||
unnecessarily inflating file sizes
|
||||
+ b:423804955: Improve quality for 4K Screencast
|
||||
+ webrtc:388070060: Allow per-frame calculation of PSNR
|
||||
+ b:433046392, b:432035817: Fix to SVC crash triggered with
|
||||
Jitsi video conference app.
|
||||
+ b:419622699: Fix integer overflow in update_buffer_level
|
||||
+ b:407813259: Fix to update seq_params for number of layers
|
||||
change
|
||||
+ b:400885218: External scaling for AV1
|
||||
+ b:391849810: High AV1 frame encode time on slide changes
|
||||
+ b:399575647: Too aggressive QP backoff at scene changes
|
||||
+ b:383306740: Quality degradation at horizontal scrolling
|
||||
- Enable VMAF tuning
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 5 08:44:10 UTC 2025 - anenasa <anenasaa@yahoo.com>
|
||||
|
||||
- Update to version 3.12.1:
|
||||
* This release includes new codec interfaces, compression efficiency and
|
||||
perceptual improvements, speedup and memory optimizations, and bug
|
||||
fixes.
|
||||
- See https://aomedia.googlesource.com/aom/+/refs/tags/v3.12.1/CHANGELOG
|
||||
for detailed changes since version 3.11.0
|
||||
- Updated patches
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 22 07:01:32 UTC 2025 - Timothy Brown <stimut@gmail.com>
|
||||
|
||||
- Update to version 3.11.0:
|
||||
* This release includes perceptual quality improvements, binary
|
||||
size reduction under certain configurations, new codec interfaces,
|
||||
speedup and memory optimizations, and many bug fixes.
|
||||
* Default encoder configuration changed for the
|
||||
AOM_USAGE_REALTIME mode
|
||||
- See https://aomedia.googlesource.com/aom/+/refs/tags/v3.11.0/CHANGELOG
|
||||
for detailed changes since version 3.9.1
|
||||
- Updated patches
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 10:46:42 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 3.9.1:
|
||||
* This release includes new codec interfaces, compression
|
||||
efficiency and perceptual improvements, speedup for RTC for both
|
||||
video and screen content, and many bug fixes.
|
||||
- Please see https://aomedia.googlesource.com/aom/+/refs/tags/v3.9.1/CHANGELOG
|
||||
for detailed changes since version 3.7.2
|
||||
- Rebase patches with quilt.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 25 17:43:03 UTC 2024 - Enrico Belleri <kilgore.trout@idesmi.eu>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: libaom
|
||||
version: 3.7.2
|
||||
mtime: 1705592807
|
||||
commit: 79a355d2fceafe8181ac7fc4d8abded26d56bdf9
|
||||
version: 3.13.1
|
||||
mtime: 1757110237
|
||||
commit: d772e334cc724105040382a977ebb10dfd393293
|
||||
|
||||
14
libaom.spec
14
libaom.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file
|
||||
# spec file for package libaom
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC and contributors
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -27,7 +27,7 @@
|
||||
%define __builder ninja
|
||||
%define __builddir _build
|
||||
Name: libaom%{psuffix}
|
||||
Version: 3.7.2
|
||||
Version: 3.13.1
|
||||
Release: 0
|
||||
%if "%{flavor}" == ""
|
||||
Summary: AV1 codec library
|
||||
@@ -45,11 +45,13 @@ Source99: baselibs.conf
|
||||
Patch0: libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch
|
||||
Patch1: system-gtest.patch
|
||||
Patch2: system-yuv.patch
|
||||
Patch3: libaom-cmake.patch
|
||||
|
||||
BuildRequires: c++_compiler
|
||||
BuildRequires: cmake >= 3.9
|
||||
BuildRequires: ninja
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(libvmaf)
|
||||
BuildRequires: pkgconfig(libyuv)
|
||||
%ifarch x86_64 %ix86
|
||||
BuildRequires: yasm
|
||||
@@ -84,6 +86,7 @@ video coding format designed for video transmissions over the Internet.
|
||||
Summary: Development files for libaom, an AV1 codec library
|
||||
Group: Development/Languages/C and C++
|
||||
Requires: %{name}%{sover}%{_isa} = %{version}
|
||||
Requires: aom-tools
|
||||
|
||||
%description devel
|
||||
This package contains the development headers and library files for
|
||||
@@ -112,7 +115,8 @@ sed -E -i 's|#include "third_party/googletest/src/googletest/include/([^"]*)"|#i
|
||||
-DENABLE_TESTS=OFF \
|
||||
-DENABLE_TESTDATA=OFF \
|
||||
\
|
||||
-DCONFIG_LOWBITDEPTH=1 \
|
||||
-DCONFIG_AV1_TEMPORAL_DENOISING=1 \
|
||||
-DCONFIG_TUNE_VMAF=1 \
|
||||
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
|
||||
%ifnarch aarch64 %arm %ix86 x86_64 %x86_64 ppc %power64
|
||||
-DAOM_TARGET_CPU=generic \
|
||||
@@ -150,7 +154,6 @@ sed -E -i 's|#include "third_party/googletest/src/googletest/include/([^"]*)"|#i
|
||||
%install
|
||||
%if "%{flavor}" == ""
|
||||
%cmake_install
|
||||
rm %{buildroot}%{_libdir}/%{name}.a
|
||||
|
||||
%ldconfig_scriptlets -n %{name}%{sover}
|
||||
|
||||
@@ -163,6 +166,7 @@ rm %{buildroot}%{_libdir}/%{name}.a
|
||||
%{_includedir}/aom
|
||||
%{_libdir}/%{name}.so
|
||||
%{_libdir}/pkgconfig/aom.pc
|
||||
%{_libdir}/cmake/AOM
|
||||
|
||||
%files -n aom-tools
|
||||
%{_bindir}/aomdec
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
--- a/test/test.cmake 2022-06-17 19:46:18.000000000 +0200
|
||||
+++ b/test/test.cmake 2022-08-30 12:26:32.563379100 +0200
|
||||
diff -rub libaom-3.12.1.orig/test/test.cmake libaom-3.12.1/test/test.cmake
|
||||
--- libaom-3.12.1.orig/test/test.cmake 2025-04-12 04:37:49.000000000 +0800
|
||||
+++ libaom-3.12.1/test/test.cmake 2025-08-05 18:26:19.933461978 +0800
|
||||
@@ -14,6 +14,7 @@
|
||||
set(AOM_TEST_TEST_CMAKE_ 1)
|
||||
|
||||
@@ -8,7 +9,7 @@
|
||||
|
||||
include("${AOM_ROOT}/test/test_data_util.cmake")
|
||||
|
||||
@@ -362,34 +363,21 @@
|
||||
@@ -414,27 +415,21 @@
|
||||
set(CMAKE_MACOSX_RPATH 1)
|
||||
endif()
|
||||
|
||||
@@ -16,8 +17,11 @@
|
||||
- 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})
|
||||
- # There are -Wundef warnings in the gtest headers. Tell the compiler to treat
|
||||
- # the gtest include directories as system include directories and suppress
|
||||
- # compiler warnings in the gtest headers.
|
||||
- target_include_directories(
|
||||
- aom_gtest
|
||||
- aom_gtest SYSTEM
|
||||
- PUBLIC "${AOM_ROOT}/third_party/googletest/src/googletest/include"
|
||||
- PRIVATE "${AOM_ROOT}/third_party/googletest/src/googletest")
|
||||
-
|
||||
@@ -30,16 +34,6 @@
|
||||
- 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})
|
||||
|
||||
@@ -1,12 +1,48 @@
|
||||
--- 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 @@
|
||||
diff -rub libaom-3.12.1.orig/apps/aomdec.c libaom-3.12.1/apps/aomdec.c
|
||||
--- libaom-3.12.1.orig/apps/aomdec.c 2025-04-12 04:37:49.000000000 +0800
|
||||
+++ libaom-3.12.1/apps/aomdec.c 2025-08-05 18:27:51.862471098 +0800
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "common/y4menc.h"
|
||||
|
||||
#if CONFIG_LIBYUV
|
||||
-#include "third_party/libyuv/include/libyuv/scale.h"
|
||||
+#include <libyuv/scale.h>
|
||||
#endif
|
||||
|
||||
static const char *exec_name;
|
||||
diff -rub libaom-3.12.1.orig/apps/aomenc.c libaom-3.12.1/apps/aomenc.c
|
||||
--- libaom-3.12.1.orig/apps/aomenc.c 2025-04-12 04:37:49.000000000 +0800
|
||||
+++ libaom-3.12.1/apps/aomenc.c 2025-08-05 18:27:51.862735438 +0800
|
||||
@@ -47,7 +47,7 @@
|
||||
#include "stats/rate_hist.h"
|
||||
|
||||
#if CONFIG_LIBYUV
|
||||
-#include "third_party/libyuv/include/libyuv/scale.h"
|
||||
+#include <libyuv/scale.h>
|
||||
#endif
|
||||
|
||||
/* Swallow warnings about unused results of fread/fwrite */
|
||||
diff -rub libaom-3.12.1.orig/CMakeLists.txt libaom-3.12.1/CMakeLists.txt
|
||||
--- libaom-3.12.1.orig/CMakeLists.txt 2025-04-12 04:37:49.000000000 +0800
|
||||
+++ libaom-3.12.1/CMakeLists.txt 2025-08-05 18:27:51.862239400 +0800
|
||||
@@ -473,22 +473,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)
|
||||
- # Many functions in libyuv trigger this warning when enabled with gcc and
|
||||
- # clang.
|
||||
- is_flag_present(AOM_CXX_FLAGS "-Wmissing-declarations" flag_present)
|
||||
- if(flag_present)
|
||||
- target_compile_options(yuv PRIVATE -Wno-missing-declarations)
|
||||
- endif()
|
||||
- # Many functions in libyuv trigger this warning when enabled with clang.
|
||||
- is_flag_present(AOM_CXX_FLAGS "-Wmissing-prototypes" flag_present)
|
||||
- if(flag_present)
|
||||
- target_compile_options(yuv PRIVATE -Wno-missing-prototypes)
|
||||
- endif()
|
||||
- endif()
|
||||
- include_directories("${AOM_ROOT}/third_party/libyuv/include")
|
||||
+ find_package(PkgConfig REQUIRED)
|
||||
@@ -20,7 +56,7 @@
|
||||
endif()
|
||||
|
||||
if(CONFIG_AV1_ENCODER)
|
||||
@@ -579,10 +583,10 @@
|
||||
@@ -611,10 +603,10 @@
|
||||
set_target_properties(aom_static PROPERTIES LINKER_LANGUAGE CXX)
|
||||
endif()
|
||||
|
||||
@@ -34,7 +70,7 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -732,7 +736,7 @@
|
||||
@@ -763,7 +755,7 @@
|
||||
if(CONFIG_LIBYUV)
|
||||
# Add to existing targets.
|
||||
foreach(aom_app ${AOM_APP_TARGETS})
|
||||
@@ -43,36 +79,3 @@
|
||||
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_OBJECTS:yuv>)
|
||||
+ target_link_libraries(test_libaom PRIVATE system_libyuv)
|
||||
endif()
|
||||
if(CONFIG_WEBM_IO)
|
||||
target_sources(test_libaom PRIVATE $<TARGET_OBJECTS:webm>)
|
||||
--- 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 <libyuv/scale.h>
|
||||
#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 <libyuv/scale.h>
|
||||
#endif
|
||||
|
||||
/* Swallow warnings about unused results of fread/fwrite */
|
||||
|
||||
Reference in New Issue
Block a user