Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package QSVEnc for openSUSE:Factory checked in at 2026-09-17 16:59:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/QSVEnc (Old) and /work/SRC/openSUSE:Factory/.QSVEnc.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "QSVEnc" Thu Sep 17 16:59:26 2026 rev:5 rq:1378479 version:8.30+0 Changes: -------- --- /work/SRC/openSUSE:Factory/QSVEnc/QSVEnc.changes 2026-01-08 15:28:37.944065567 +0100 +++ /work/SRC/openSUSE:Factory/.QSVEnc.new.383539/QSVEnc.changes 2026-09-17 16:59:29.112280918 +0200 @@ -1,0 +2,29 @@ +Wed Sep 16 20:35:40 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 8.30+0: + * Add --vmaf to calculate VMAF of the encoded video + * Add --vpp-kfm inverse telecine, --vpp-rtgmc deinterlace and + --vpp-degrain + * Add further VPP filters (bm3d, dehaze, clahe, lenscorrection + and others) + * Support track exclusion with ! for audio/subtitle/data + selection + * Follow mid-stream input resolution changes + (--adapt-resolution) + * Default --avsync to vfr to reduce audio desync on TS drops + * Multi-thread OpenCL pipeline on Ice Lake and later + * Improve Linux support with the Intel Xe kernel driver + * Fix OpenCL artifacts with --avhw, y4m timestamps and P010 + 10-bit output + * Many more filters, fixes and performance work; see upstream's + release notes for the full list +- Switch the Linux build from configure to meson +- Pass -Wl,-z,noexecstack (replaces the old configure extra-ldflags) +- Drop QSVEnc-remove-git.patch and QSVEnc-enable-vulkan.patch +- Add QSVEnc-system-libs.patch: use system libvpl, skip bundled + libhdr10plus-rs, and accept Factory VapourSynth V4-only headers +- Enable Vulkan, libplacebo and VMAF via meson options +- Convert obs_scm and set_version service modes from disabled to + manual + +------------------------------------------------------------------- Old: ---- QSVEnc-8.04+0.obscpio QSVEnc-enable-vulkan.patch QSVEnc-remove-git.patch New: ---- QSVEnc-8.30+0.obscpio QSVEnc-system-libs.patch ----------(Old B)---------- Old:- Pass -Wl,-z,noexecstack (replaces the old configure extra-ldflags) - Drop QSVEnc-remove-git.patch and QSVEnc-enable-vulkan.patch - Add QSVEnc-system-libs.patch: use system libvpl, skip bundled Old:- Pass -Wl,-z,noexecstack (replaces the old configure extra-ldflags) - Drop QSVEnc-remove-git.patch and QSVEnc-enable-vulkan.patch - Add QSVEnc-system-libs.patch: use system libvpl, skip bundled ----------(Old E)---------- ----------(New B)---------- New:- Drop QSVEnc-remove-git.patch and QSVEnc-enable-vulkan.patch - Add QSVEnc-system-libs.patch: use system libvpl, skip bundled libhdr10plus-rs, and accept Factory VapourSynth V4-only headers ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ QSVEnc.spec ++++++ --- /var/tmp/diff_new_pack.yY9NFl/_old 2026-09-17 16:59:31.562383590 +0200 +++ /var/tmp/diff_new_pack.yY9NFl/_new 2026-09-17 16:59:31.566383758 +0200 @@ -18,49 +18,66 @@ Name: QSVEnc -Version: 8.04+0 +Version: 8.30+0 Release: 0 Summary: HW encoder (QSV) testing License: MIT URL: https://github.com/rigaya/QSVEnc Source0: %{name}-%{version}.tar.xz -#PATCH-FIX-OPENSUSE QSVEnc-remove-git.patch [email protected] -- Remove git call for ENCODER_REV -Patch0: QSVEnc-remove-git.patch -#PATCH-FIX-OPENSUSE QSVEnc-enable-vulkan.patch [email protected] -- Enable Vulkan and Placebo. -Patch1: QSVEnc-enable-vulkan.patch -BuildRequires: cmake +# PATCH-FIX-OPENSUSE QSVEnc-system-libs.patch -- System libvpl; skip bundled hdr10plus; VapourSynth V4-only +Patch0: QSVEnc-system-libs.patch BuildRequires: gcc-c++ -BuildRequires: git +BuildRequires: meson +BuildRequires: ninja BuildRequires: opencl-headers +BuildRequires: pkgconfig BuildRequires: pkgconfig(dovi) BuildRequires: pkgconfig(libass) BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavdevice) +BuildRequires: pkgconfig(libavfilter) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libplacebo) +BuildRequires: pkgconfig(libswresample) BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(libva-x11) +BuildRequires: pkgconfig(libvmaf) BuildRequires: pkgconfig(vapoursynth) +BuildRequires: pkgconfig(vpl) BuildRequires: pkgconfig(vulkan) -ExclusiveArch: %ix86 x86_64 +ExclusiveArch: %{ix86} x86_64 %description Investigate performance and image quality of HW encoder (QSV) of Intel. %prep -%autosetup +%autosetup -p1 # Fix end of line encoding warning sed -i 's/\r//' QSVEncC_Options.en.md; sed -i 's/\r//' ReleaseNotes.md; %build -./configure --prefix=%{_prefix} \ - --disable-avisynth \ - --disable-dtl \ - --enable-lto \ - --extra-ldflags="-Wl,-z,noexecstack" -%make_build +%meson \ + -Dc_link_args=-Wl,-z,noexecstack \ + -Dcpp_link_args=-Wl,-z,noexecstack \ + -Denable_avisynth=false \ + -Denable_vapoursynth=true \ + -Denable_libass=true \ + -Dlibass_static=false \ + -Denable_libplacebo=true \ + -Dlibplacebo_static_link=false \ + -Denable_vulkan=true \ + -Denable_vmaf=enabled \ + -Dlibvmaf_static=false \ + -Denable_openvino=false \ + -Denable_libvship=disabled +%meson_build %install -install -d -m 0755 %{buildroot}%{_bindir} -install -m 0755 qsvencc %{buildroot}%{_bindir}/qsvencc +%meson_install %files %license license.txt ++++++ QSVEnc-8.04+0.obscpio -> QSVEnc-8.30+0.obscpio ++++++ ++++ 171802 lines of diff (skipped) ++++++ QSVEnc-system-libs.patch ++++++ --- a/meson.build 2026-09-11 14:10:19.000000000 +0200 +++ b/meson.build 2026-09-16 22:47:30.114576525 +0200 @@ -45,38 +45,13 @@ libdrm_dep = dependency('libdrm', required: false) have_libva = libva_dep.found() or libva_drm_dep.found() or libva_x11_dep.found() -# Build bundled oneVPL (out-of-tree) -vpl_install_root = build_root / 'buildVPL' -vpl_build_root = build_root / 'buildVPL_build' -if not fs.is_file(vpl_install_root / 'lib/libvpl.a') and not fs.is_file(vpl_install_root / 'lib64/libvpl.a') - vpl_cmd = [ - 'cmake -S "' + source_root + '/libvpl" -B "' + vpl_build_root + '"', - '-DCMAKE_INSTALL_PREFIX="' + vpl_install_root + '"', - '-DBUILD_DEV=OFF', - '-DBUILD_TOOLS=OFF', - '-DBUILD_SHARED_LIBS=OFF', - '-DBUILD_EXAMPLES=OFF', - '-DBUILD_PYTHON_BINDING=OFF', - '-DCMAKE_C_FLAGS_RELEASE="-Os -DONEVPL_EXPERIMENTAL"', - '-DCMAKE_CXX_FLAGS_RELEASE="-Os -DONEVPL_EXPERIMENTAL"', - '&& cmake --build "' + vpl_build_root + '" --config Release', - '&& cmake --install "' + vpl_build_root + '" --config Release', - ] - vpl_build_result = run_command('bash', '-c', ' '.join(vpl_cmd), check: false) - if vpl_build_result.returncode() != 0 - error('Failed to build bundled oneVPL') - endif -endif - -vpl_lib_dirs = [] -if fs.is_file(vpl_install_root / 'lib/libvpl.a') - vpl_lib_dirs += vpl_install_root / 'lib' -elif fs.is_file(vpl_install_root / 'lib64/libvpl.a') - vpl_lib_dirs += vpl_install_root / 'lib64' -else - error('libvpl.a not found after bundled oneVPL build') -endif -vpl_dep = cpp.find_library('vpl', dirs: vpl_lib_dirs, static: true, required: true) +# Distro: use system oneVPL (headers live in includedir/vpl) +vpl_pkg = dependency('vpl', required: true) +vpl_incdir = vpl_pkg.get_variable('includedir', default_value: '/usr/include') +vpl_dep = declare_dependency( + dependencies: vpl_pkg, + compile_args: ['-I' + vpl_incdir + '/vpl', '-DONEVPL_EXPERIMENTAL'], +) # OpenCL headers opencl_inc_args = [] @@ -188,31 +163,10 @@ args: get_option('cpp_args'), ) - have_vapoursynth_headers = have_vapoursynth_v3_headers and have_vapoursynth_v4_headers + # Factory vapoursynth-devel ships V4 headers only (no VapourSynth.h / VSScript.h). + have_vapoursynth_headers = have_vapoursynth_v3_headers or have_vapoursynth_v4_headers if not have_vapoursynth_headers - _fetch = run_command( - 'sh', '-c', _fetch_vpy_sh, 'fetch_vpy', _ext_headers_dir, - check: false, - ) - if _fetch.returncode() == 0 - vapoursynth_compile_dep = declare_dependency( - compile_args: ['-I' + _vpy_fetched_inc], - ) - have_vapoursynth_v3_headers = cpp.compiles( - vapoursynth_v3_headers_code, - dependencies: vapoursynth_compile_dep, - args: get_option('cpp_args'), - ) - have_vapoursynth_v4_headers = cpp.compiles( - vapoursynth_v4_headers_code, - dependencies: vapoursynth_compile_dep, - args: get_option('cpp_args'), - ) - have_vapoursynth_headers = have_vapoursynth_v3_headers and have_vapoursynth_v4_headers - endif - if not have_vapoursynth_headers - error('VapourSynth headers not found (require V3: VapourSynth.h/VSScript.h and V4: VSScript4.h)') - endif + error('VapourSynth headers not found (need VSScript4.h or VapourSynth.h/VSScript.h)') endif endif @@ -443,116 +397,13 @@ endif endif -# libdovi / libhdr10plus: system優先、なければ同梱build (configure互換) -cargo_prog = find_program('cargo', required: false) -if cargo_prog.found() - cargo_home_dir = source_root / '.cargo_home' - cargo_c_check = run_command( - 'env', - 'CARGO_HOME=' + cargo_home_dir, - cargo_prog.full_path(), - 'cinstall', - '--version', - check: false, - ) - if cargo_c_check.returncode() != 0 - cargo_c_install = run_command( - 'env', - 'CARGO_HOME=' + cargo_home_dir, - cargo_prog.full_path(), - 'install', - 'cargo-c', - '--locked', - check: false, - ) - if cargo_c_install.returncode() != 0 - error('Failed to install cargo-c (exit=' + cargo_c_install.returncode().to_string() + ')\nstdout:\n' + cargo_c_install.stdout().strip() + '\nstderr:\n' + cargo_c_install.stderr().strip()) - endif - endif -endif - -libdovi_dep = dependency('dovi', required: false) -if not libdovi_dep.found() - if not cargo_prog.found() - error('cargo is required to build bundled libdovi when system dovi is not available') - endif - libdovi_install_dir = build_root / 'rust_libs' / 'libdovi' - libdovi_build_result = run_command( - 'env', - 'CARGO_HOME=' + cargo_home_dir, - 'CARGO=' + cargo_prog.full_path(), - 'bash', - source_root / 'build_libdovi.sh', - libdovi_install_dir, - check: false, - ) - if libdovi_build_result.returncode() != 0 - error('Failed to build bundled libdovi (exit=' + libdovi_build_result.returncode().to_string() + ')\nstdout:\n' + libdovi_build_result.stdout().strip() + '\nstderr:\n' + libdovi_build_result.stderr().strip()) - endif - libdovi_lib_dirs = [] - if fs.is_file(libdovi_install_dir / 'lib/x86_64-linux-gnu/libdovi.a') - libdovi_lib_dirs += libdovi_install_dir / 'lib/x86_64-linux-gnu' - elif fs.is_file(libdovi_install_dir / 'lib64/libdovi.a') - libdovi_lib_dirs += libdovi_install_dir / 'lib64' - elif fs.is_file(libdovi_install_dir / 'lib/libdovi.a') - libdovi_lib_dirs += libdovi_install_dir / 'lib' - endif - if libdovi_lib_dirs.length() == 0 - error('Bundled libdovi build succeeded but libdovi.a was not found') - endif - libdovi_lib = cpp.find_library('dovi', dirs: libdovi_lib_dirs, static: true, required: true) - libdovi_dep = declare_dependency( - dependencies: libdovi_lib, - compile_args: ['-I' + (libdovi_install_dir / 'include')], - ) - if not cpp.compiles( - '#include <libdovi/rpu_parser.h>\nint main(void){ dovi_parse_rpu(nullptr, 0); return 0; }', - dependencies: libdovi_dep, - ) - error('Bundled libdovi check failed (libdovi/rpu_parser.h)') - endif -endif +# Distro: system libdovi only; libhdr10plus-rs is not in Factory. +libdovi_dep = dependency('dovi', required: true) libhdr10plus_dep = dependency('hdr10plus-rs', required: false) if not libhdr10plus_dep.found() - if not cargo_prog.found() - error('cargo is required to build bundled libhdr10plus-rs when system hdr10plus-rs is not available') - endif - libhdr10plus_install_dir = build_root / 'rust_libs' / 'libhdr10plus' - libhdr10plus_build_result = run_command( - 'env', - 'CARGO_HOME=' + cargo_home_dir, - 'CARGO=' + cargo_prog.full_path(), - 'bash', - source_root / 'build_libhdr10plus.sh', - libhdr10plus_install_dir, - check: false, - ) - if libhdr10plus_build_result.returncode() != 0 - error('Failed to build bundled libhdr10plus-rs (exit=' + libhdr10plus_build_result.returncode().to_string() + ')\nstdout:\n' + libhdr10plus_build_result.stdout().strip() + '\nstderr:\n' + libhdr10plus_build_result.stderr().strip()) - endif - libhdr10plus_lib_dirs = [] - if fs.is_file(libhdr10plus_install_dir / 'lib/x86_64-linux-gnu/libhdr10plus-rs.a') - libhdr10plus_lib_dirs += libhdr10plus_install_dir / 'lib/x86_64-linux-gnu' - elif fs.is_file(libhdr10plus_install_dir / 'lib64/libhdr10plus-rs.a') - libhdr10plus_lib_dirs += libhdr10plus_install_dir / 'lib64' - elif fs.is_file(libhdr10plus_install_dir / 'lib/libhdr10plus-rs.a') - libhdr10plus_lib_dirs += libhdr10plus_install_dir / 'lib' - endif - if libhdr10plus_lib_dirs.length() == 0 - error('Bundled libhdr10plus-rs build succeeded but libhdr10plus-rs.a was not found') - endif - libhdr10plus_lib = cpp.find_library('hdr10plus-rs', dirs: libhdr10plus_lib_dirs, static: true, required: true) - libhdr10plus_dep = declare_dependency( - dependencies: libhdr10plus_lib, - compile_args: ['-I' + (libhdr10plus_install_dir / 'include')], - ) - if not cpp.compiles( - '#include <libhdr10plus-rs/hdr10plus.h>\nint main(void){ hdr10plus_rs_parse_json(nullptr); return 0; }', - dependencies: libhdr10plus_dep, - ) - error('Bundled libhdr10plus-rs check failed (libhdr10plus-rs/hdr10plus.h)') - endif + message('hdr10plus-rs not found; HDR10+ support disabled') + libhdr10plus_dep = disabler() endif # FFmpeg API checks @@ -681,7 +532,6 @@ 'dtl', 'cppcodec', 'clRNG/src/include', - 'libvpl/api/vpl', ] common_include_dirs = include_directories(common_include_dir_paths) --- a/QSVPipeline/rgy_vapoursynth_wrapper_v3.cpp 2026-09-11 14:10:19.000000000 +0200 +++ b/QSVPipeline/rgy_vapoursynth_wrapper_v3.cpp 2026-09-16 22:48:16.775818322 +0200 @@ -14,7 +14,7 @@ #include "rgy_log.h" #if ENABLE_VAPOURSYNTH_READER - +#if defined(__has_include) && __has_include("VapourSynth.h") && __has_include("VSScript.h") #include <algorithm> #include <utility> @@ -329,6 +329,11 @@ return p; } +#else // no V3 headers +std::unique_ptr<RGYVapourSynthWrapper> CreateVapourSynthWrapperV3(const tstring&, bool, RGYLog*) { + return nullptr; +} +#endif // __has_include V3 #endif // ENABLE_VAPOURSYNTH_READER ++++++ QSVEnc.obsinfo ++++++ --- /var/tmp/diff_new_pack.yY9NFl/_old 2026-09-17 16:59:36.040571252 +0200 +++ /var/tmp/diff_new_pack.yY9NFl/_new 2026-09-17 16:59:36.045571461 +0200 @@ -1,5 +1,5 @@ name: QSVEnc -version: 8.04+0 -mtime: 1767354990 -commit: 8a203f8a2d1124efa936f7c77a6c8f8269069e00 +version: 8.30+0 +mtime: 1789128619 +commit: 2a30dcb0c4fd06b35d3978b23711271e05d70a31 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.yY9NFl/_old 2026-09-17 16:59:36.076572761 +0200 +++ /var/tmp/diff_new_pack.yY9NFl/_new 2026-09-17 16:59:36.086573180 +0200 @@ -1,10 +1,9 @@ <services> - <service mode="disabled" name="obs_scm"> + <service mode="manual" name="obs_scm"> <param name="url">https://github.com/rigaya/QSVEnc.git</param> <param name="scm">git</param> <param name="submodules">enable</param> - <param name="revision">master</param> - <param name="changesgenerate">enable</param> + <param name="revision">8.30</param> <param name="filename">QSVEnc</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">v([^\+]*)(?:\+0)?((?:\+[1-9][0-9]*)?)+\1\2</param> @@ -15,6 +14,6 @@ <param name="file">*.tar</param> <param name="compression">xz</param> </service> - <service mode="disabled" name="set_version" /> + <service mode="manual" name="set_version" /> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.yY9NFl/_old 2026-09-17 16:59:36.128574940 +0200 +++ /var/tmp/diff_new_pack.yY9NFl/_new 2026-09-17 16:59:36.135575233 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/rigaya/QSVEnc.git</param> - <param name="changesrevision">8a203f8a2d1124efa936f7c77a6c8f8269069e00</param></service></servicedata> + <param name="changesrevision">2a30dcb0c4fd06b35d3978b23711271e05d70a31</param></service></servicedata> (No newline at EOF)
