Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libva-utils for openSUSE:Factory checked in at 2026-01-06 17:46:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libva-utils (Old) and /work/SRC/openSUSE:Factory/.libva-utils.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libva-utils" Tue Jan 6 17:46:29 2026 rev:29 rq:1325623 version:2.23.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libva-utils/libva-utils.changes 2024-07-10 16:57:53.702056788 +0200 +++ /work/SRC/openSUSE:Factory/.libva-utils.new.1928/libva-utils.changes 2026-01-06 17:47:40.845269456 +0100 @@ -1,0 +2,11 @@ +Sun Dec 28 23:08:46 UTC 2025 - Dirk Müller <[email protected]> + +- update to 2.23.0: + * fix:Fixed build with -std=c++20 + * fix:usr ptr surface type not set ext buffer flag + * fix:Fix coverity overflowed issues + * fix: remove useless code and fix code copy typo + * android: Support Android build + * sample: [HEVCe] update header logic + +------------------------------------------------------------------- Old: ---- libva-utils-2.22.0.tar.gz New: ---- libva-utils-2.23.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libva-utils.spec ++++++ --- /var/tmp/diff_new_pack.EdOM0K/_old 2026-01-06 17:47:41.321289039 +0100 +++ /var/tmp/diff_new_pack.EdOM0K/_new 2026-01-06 17:47:41.325289203 +0100 @@ -1,7 +1,7 @@ # # spec file for package libva-utils # -# Copyright (c) 2024 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 @@ -17,7 +17,7 @@ Name: libva-utils -Version: 2.22.0 +Version: 2.23.0 Release: 0 Summary: A collection of utilities and examples to exercise VA-API License: EPL-1.0 AND MIT ++++++ libva-utils-2.22.0.tar.gz -> libva-utils-2.23.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/.github/workflows/ubuntu.yml new/libva-utils-2.23.0/.github/workflows/ubuntu.yml --- old/libva-utils-2.22.0/.github/workflows/ubuntu.yml 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/.github/workflows/ubuntu.yml 2025-12-12 09:24:42.000000000 +0100 @@ -13,16 +13,16 @@ permissions: read-all jobs: - ubuntu-20-04: - runs-on: ubuntu-20.04 + ubuntu-24-04: + runs-on: ubuntu-24.04 steps: - name: checkout libva - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: intel/libva path: libva - name: checkout libva-utils - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: libva-utils - name: install prerequisites diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/Android.bp new/libva-utils-2.23.0/Android.bp --- old/libva-utils-2.22.0/Android.bp 1970-01-01 01:00:00.000000000 +0100 +++ new/libva-utils-2.23.0/Android.bp 2025-12-12 09:24:42.000000000 +0100 @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2024 Intel Corporation. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package { + default_applicable_licenses: ["external_libva-utils_license"], +} + +license { + name: "external_libva-utils_license", + visibility: [":__subpackages__"], + license_kinds: [ + "SPDX-license-identifier-Apache-2.0", + "SPDX-license-identifier-BSD", + "SPDX-license-identifier-ISC", + "SPDX-license-identifier-MIT", + ], + license_text: [ + "LICENSE", + ], +} + +cc_defaults { + name: "libva_utils_defaults", + shared_libs: [ + "libva", + "libdl", + "libcutils", + "libutils", + "libgui", + "libdrm", + ], + + vendor: true, + enabled: false, + arch: { + x86_64: { + enabled: true, + }, + }, +} + +cc_library { + name: "libva_utils_common", + + defaults: ["libva_utils_defaults"], + + srcs: [ + "common/va_display.c", + "common/va_display_drm.c", + ], + + export_include_dirs: ["common/"], + + cflags: ["-DHAVE_VA_DRM"], + + visibility: [":__subpackages__"], +} + +cc_defaults { + name: "libva_utils_bin_defaults", + + defaults: ["libva_utils_defaults"], + + shared_libs: [ + "libva_utils_common", + ], +} + +// decode directory + +cc_binary { + name: "vampeg2vldemo", + + srcs: [ + "decode/mpeg2vldemo.cpp", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "valoadjpeg", + + srcs: [ + "decode/loadjpeg.c", + "decode/tinyjpeg.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +// encode directory + +cc_binary { + name: "vah264encode", + + srcs: [ + "encode/h264encode.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vaavcenc", + + srcs: [ + "encode/avcenc.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vavp8enc", + + srcs: [ + "encode/vp8enc.c", + ], + + cflags: [ + "-Wno-gnu-variable-sized-type-not-at-end", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vavp9enc", + + srcs: [ + "encode/vp9enc.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vajpegenc", + + srcs: [ + "encode/jpegenc.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vampeg2vaenc", + + srcs: [ + "encode/mpeg2vaenc.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +cc_binary { + name: "vasvctenc", + + srcs: [ + "encode/svctenc.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +// vainfo directory + +cc_binary { + name: "vainfo", + + srcs: [ + "vainfo/vainfo.c", + ], + + defaults: ["libva_utils_bin_defaults"], +} + +// videoprocess directory +cc_binary { + name: "vavpp", + + srcs: [ + "videoprocess/vavpp.cpp", + ], + + defaults: ["libva_utils_bin_defaults"], +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/Android.mk new/libva-utils-2.23.0/Android.mk --- old/libva-utils-2.22.0/Android.mk 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/Android.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -# Recursive call sub-folder Android.mk -# - - include $(call all-subdir-makefiles) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/NEWS new/libva-utils-2.23.0/NEWS --- old/libva-utils-2.22.0/NEWS 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/NEWS 2025-12-12 09:24:42.000000000 +0100 @@ -1,5 +1,13 @@ -libva-utils NEWS -- summary of changes. 2024-06-20 -Copyright (C) 2009-2024 Intel Corporation +libva-utils NEWS -- summary of changes. 2025-12-12 +Copyright (C) 2009-2025 Intel Corporation + +Version 2.23.0 - 12.Dec.2025 +* fix:Fixed build with -std=c++20 +* fix:usr ptr surface type not set ext buffer flag +* fix:Fix coveirty overflowed issues +* fix: remove useless code and fix code copy typo +* android: Support Android build +* sample: [HEVCe] update header logic Version 2.22.0 - 20.Jun.2024 * ci: correct the permission of workflows diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/common/va_display.c new/libva-utils-2.23.0/common/va_display.c --- old/libva-utils-2.22.0/common/va_display.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/common/va_display.c 2025-12-12 09:24:42.000000000 +0100 @@ -40,9 +40,6 @@ static const VADisplayHooks *g_display_hooks; static const VADisplayHooks *g_display_hooks_available[] = { -#ifdef ANDROID - &va_display_hooks_android, -#else #ifdef HAVE_VA_WIN32 &va_display_hooks_win32, #endif @@ -55,9 +52,7 @@ #ifdef HAVE_VA_DRM &va_display_hooks_drm, #endif -#endif - NULL -}; + NULL}; static const char *g_display_name; const char *g_device_name; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/common/va_display_android.cpp new/libva-utils-2.23.0/common/va_display_android.cpp --- old/libva-utils-2.22.0/common/va_display_android.cpp 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/common/va_display_android.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2018 Intel Corporation. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include <va/va_android.h> -#include "va_display.h" - -static unsigned int fake_display = 0xdeada01d; - -static VADisplay -va_open_display_android(void) -{ - return vaGetDisplay(&fake_display); -} - -static void -va_close_display_android(VADisplay va_dpy) -{ -} - -static VAStatus -va_put_surface_android( - VADisplay va_dpy, - VASurfaceID surface, - const VARectangle *src_rect, - const VARectangle *dst_rect -) -{ - return VA_STATUS_ERROR_UNIMPLEMENTED; -} - -extern "C" -const VADisplayHooks va_display_hooks_android = { - "android", - va_open_display_android, - va_close_display_android, - va_put_surface_android -}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/configure.ac new/libva-utils-2.23.0/configure.ac --- old/libva-utils-2.22.0/configure.ac 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/configure.ac 2025-12-12 09:24:42.000000000 +0100 @@ -29,7 +29,7 @@ # - micro version is libva_micro_version # - pre version is libva_pre_version, usually development version m4_define([libva_utils_major_version], [2]) -m4_define([libva_utils_minor_version], [22]) +m4_define([libva_utils_minor_version], [23]) m4_define([libva_utils_micro_version], [0]) m4_define([libva_utils_pre_version], [0]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/decode/Android.mk new/libva-utils-2.23.0/decode/Android.mk --- old/libva-utils-2.22.0/decode/Android.mk 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/decode/Android.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,46 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -# mpeg2vldemo -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - mpeg2vldemo.cpp \ - ../common/va_display.c \ - ../common/va_display_android.cpp - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := mpeg2vldemo - -LOCAL_SHARED_LIBRARIES := libva libva-android libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - -# loadjpeg -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - loadjpeg.c \ - tinyjpeg.c \ - ../common/va_display.c \ - ../common/va_display_android.cpp - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := loadjpeg - -LOCAL_SHARED_LIBRARIES := libva libva-android libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/decode/loadjpeg.c new/libva-utils-2.23.0/decode/loadjpeg.c --- old/libva-utils-2.22.0/decode/loadjpeg.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/decode/loadjpeg.c 2025-12-12 09:24:42.000000000 +0100 @@ -138,7 +138,3 @@ return 0; } - - - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/decode/mpeg2vldemo.cpp new/libva-utils-2.23.0/decode/mpeg2vldemo.cpp --- old/libva-utils-2.22.0/decode/mpeg2vldemo.cpp 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/decode/mpeg2vldemo.cpp 2025-12-12 09:24:42.000000000 +0100 @@ -73,37 +73,36 @@ * please see picture mpeg2-I.jpg for bitstream details */ static VAPictureParameterBufferMPEG2 pic_param = { - horizontal_size: 16, - vertical_size: 16, - forward_reference_picture: 0xffffffff, - backward_reference_picture: 0xffffffff, - picture_coding_type: 1, - f_code: 0xffff, - { - { - intra_dc_precision: 0, - picture_structure: 3, - top_field_first: 0, - frame_pred_frame_dct: 1, - concealment_motion_vectors: 0, - q_scale_type: 0, - intra_vlc_format: 0, - alternate_scan: 0, - repeat_first_field: 0, - progressive_frame: 1, - is_first_field: 1 + .horizontal_size = 16, + .vertical_size = 16, + .forward_reference_picture = 0xffffffff, + .backward_reference_picture = 0xffffffff, + .picture_coding_type = 1, + .f_code = 0xffff, + .picture_coding_extension = { + .bits = { + .intra_dc_precision = 0, + .picture_structure = 3, + .top_field_first = 0, + .frame_pred_frame_dct = 1, + .concealment_motion_vectors = 0, + .q_scale_type = 0, + .intra_vlc_format = 0, + .alternate_scan = 0, + .repeat_first_field = 0, + .progressive_frame = 1, + .is_first_field = 1 }, } }; /* see MPEG2 spec65 for the defines of matrix */ static VAIQMatrixBufferMPEG2 iq_matrix = { - load_intra_quantiser_matrix: 1, - load_non_intra_quantiser_matrix: 1, - load_chroma_intra_quantiser_matrix: 0, - load_chroma_non_intra_quantiser_matrix: 0, -intra_quantiser_matrix: - { + .load_intra_quantiser_matrix = 1, + .load_non_intra_quantiser_matrix = 1, + .load_chroma_intra_quantiser_matrix = 0, + .load_chroma_non_intra_quantiser_matrix = 0, + .intra_quantiser_matrix = { 8, 16, 16, 19, 16, 19, 22, 22, 22, 22, 22, 22, 26, 24, 26, 27, 27, 27, 26, 26, 26, 26, 27, 27, @@ -112,25 +111,22 @@ 34, 34, 37, 38, 37, 35, 35, 34, 35, 38, 38, 40, 40, 40, 48, 48, 46, 46, 56, 56, 58, 69, 69, 83 - }, -non_intra_quantiser_matrix: - {16}, -chroma_intra_quantiser_matrix: - {0}, -chroma_non_intra_quantiser_matrix: - {0} + }, + .non_intra_quantiser_matrix = {16}, + .chroma_intra_quantiser_matrix = {0}, + .chroma_non_intra_quantiser_matrix ={0} }; #if 1 static VASliceParameterBufferMPEG2 slice_param = { - slice_data_size: 150, - slice_data_offset: 0, - slice_data_flag: 0, - macroblock_offset: 38, /* 4byte + 6bits=38bits */ - slice_horizontal_position: 0, - slice_vertical_position: 0, - quantiser_scale_code: 2, - intra_slice_flag: 0 + .slice_data_size = 150, + .slice_data_offset = 0, + .slice_data_flag = 0, + .macroblock_offset = 38, /* 4byte + 6bits=38bits */ + .slice_horizontal_position = 0, + .slice_vertical_position = 0, + .quantiser_scale_code = 2, + .intra_slice_flag = 0 }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/Android.mk new/libva-utils-2.23.0/encode/Android.mk --- old/libva-utils-2.22.0/encode/Android.mk 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/Android.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,133 +0,0 @@ -# h264encode -# -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - h264encode.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := h264encode - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui libm - -include $(BUILD_EXECUTABLE) - -# avcenc -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - avcenc.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := avcenc - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - -# vp9enc -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - vp9enc.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := vp9enc - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - -# jpegenc -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - jpegenc.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := jpegenc - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - -# mpeg2vaenc -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - mpeg2vaenc.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := mpeg2vaenc - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - -# svctenc -# -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - svctenc.c - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := svctenc - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/av1encode.c new/libva-utils-2.23.0/encode/av1encode.c --- old/libva-utils-2.22.0/encode/av1encode.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/av1encode.c 2025-12-12 09:24:42.000000000 +0100 @@ -2536,6 +2536,7 @@ if(encode_order == 0) { //first frame + CHECK_CONDITION(coded_size >= 44); unsigned int ivf_size = coded_size - 32 - 12; ret = fseek(coded_fp, frame_start + 32, SEEK_SET); CHECK_CONDITION(ret == 0); @@ -2547,6 +2548,7 @@ else { //other frames + CHECK_CONDITION(coded_size >= 12); unsigned int ivf_size = coded_size - 12; ret = fseek(coded_fp, frame_start, SEEK_SET); CHECK_CONDITION(ret == 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/avcenc.c new/libva-utils-2.23.0/encode/avcenc.c --- old/libva-utils-2.22.0/encode/avcenc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/avcenc.c 2025-12-12 09:24:42.000000000 +0100 @@ -592,9 +592,10 @@ u_src = newImageBuffer + y_size; /* UV offset for NV12 */ v_src = newImageBuffer + y_size + u_size; - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ - v_dst = surface_p + surface_image.offsets[2]; + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + + surface_image.offsets[1]; /* UV offset for NV12 */ + v_dst = (unsigned char *)surface_p + surface_image.offsets[2]; /* Y plane */ for (row = 0; row < surface_image.height; row++) { @@ -619,8 +620,8 @@ const int U = surface_image.format.fourcc == VA_FOURCC_I420 ? 1 : 2; const int V = surface_image.format.fourcc == VA_FOURCC_I420 ? 2 : 1; - u_dst = surface_p + surface_image.offsets[U]; - v_dst = surface_p + surface_image.offsets[V]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[U]; + v_dst = (unsigned char *)surface_p + surface_image.offsets[V]; for (row = 0; row < surface_image.height / 2; row++) { memcpy(u_dst, u_src, surface_image.width / 2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/h264encode.c new/libva-utils-2.23.0/encode/h264encode.c --- old/libva-utils-2.22.0/encode/h264encode.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/h264encode.c 2025-12-12 09:24:42.000000000 +0100 @@ -1113,7 +1113,7 @@ selected_entrypoint = entrypoints[slice_entrypoint]; break; } - } else if ((entrypoints[slice_entrypoint] == requested_entrypoint)) { + } else if (entrypoints[slice_entrypoint] == requested_entrypoint) { //Select the entry point based on what was requested in cmd line option support_encode = 1; selected_entrypoint = entrypoints[slice_entrypoint]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/hevcencode.c new/libva-utils-2.23.0/encode/hevcencode.c --- old/libva-utils-2.22.0/encode/hevcencode.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/hevcencode.c 2025-12-12 09:24:42.000000000 +0100 @@ -841,9 +841,9 @@ sps->log2_min_luma_transform_block_size_minus2) : 3; sps->max_transform_hierarchy_depth_inter = use_block_sizes ? block_sizes.max_max_transform_hierarchy_depth_inter : 2; sps->max_transform_hierarchy_depth_intra = use_block_sizes ? block_sizes.max_max_transform_hierarchy_depth_intra : 2; - sps->scaling_list_enabled_flag = use_features ? features.scaling_lists : 0; - sps->sps_scaling_list_data_present_flag = 0; - sps->amp_enabled_flag = use_features ? features.amp : 1; + sps->scaling_list_enabled_flag = 0; + //sps->sps_scaling_list_data_present_flag; // ignore since scaling_list_enabled_flag equal to 0 + sps->amp_enabled_flag = use_features ? features.amp >= 1 : 1; sps->sample_adaptive_offset_enabled_flag = use_features ? features.sao : 1; sps->pcm_enabled_flag = use_features ? features.pcm : 0; /* ignore below parameters seting since pcm_enabled_flag equal to 0 @@ -899,7 +899,7 @@ pps->init_qp_minus26 = initial_qp - 26; pps->constrained_intra_pred_flag = use_features ? features.constrained_intra_pred : 0; pps->transform_skip_enabled_flag = use_features ? features.transform_skip : 0; - pps->cu_qp_delta_enabled_flag = use_features ? features.cu_qp_delta : 1; + pps->cu_qp_delta_enabled_flag = use_features ? features.cu_qp_delta >= 1 : 1; if (pps->cu_qp_delta_enabled_flag) pps->diff_cu_qp_delta_depth = 2; pps->pps_cb_qp_offset = 0; @@ -1986,6 +1986,7 @@ VAEntrypoint *entrypoints; int num_entrypoints, slice_entrypoint; int support_encode = 0; + int support_lpEntryPoint = 0; int major_ver, minor_ver; VAStatus va_status; unsigned int i; @@ -2009,10 +2010,12 @@ hevc_profile = profile_list[i]; vaQueryConfigEntrypoints(va_dpy, hevc_profile, entrypoints, &num_entrypoints); for (slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) { - if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice || - entrypoints[slice_entrypoint] == VAEntrypointEncSliceLP ) { + if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice) { support_encode = 1; - break; + } + else if (entrypoints[slice_entrypoint] == VAEntrypointEncSliceLP) { + support_encode = 1; + support_lpEntryPoint = 1; } } if (support_encode == 1) @@ -2048,8 +2051,10 @@ if (lowpower) { - entryPoint = VAEntrypointEncSliceLP; LCU_SIZE = 64; + if (support_lpEntryPoint == 1) { + entryPoint = VAEntrypointEncSliceLP; + } } va_status = vaGetConfigAttributes(va_dpy, hevc_profile, entryPoint, @@ -2697,7 +2702,7 @@ } if (packedpic_data_bufid != VA_INVALID_ID) { vaDestroyBuffer(va_dpy, packedpic_data_bufid); - packedpic_para_bufid = VA_INVALID_ID; + packedpic_data_bufid = VA_INVALID_ID; } return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/jpegenc.c new/libva-utils-2.23.0/encode/jpegenc.c --- old/libva-utils-2.22.0/encode/jpegenc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/jpegenc.c 2025-12-12 09:24:42.000000000 +0100 @@ -521,8 +521,8 @@ u_src = newImageBuffer + y_size; /* UV offset for NV12 */ v_src = newImageBuffer + y_size + u_size; - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ if ((yuvComp.fourcc_val == VA_FOURCC_NV12) || (yuvComp.fourcc_val == VA_FOURCC_I420) || (yuvComp.fourcc_val == VA_FOURCC_Y800)) { @@ -1001,4 +1001,3 @@ return 0; } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/mpeg2vaenc.c new/libva-utils-2.23.0/encode/mpeg2vaenc.c --- old/libva-utils-2.22.0/encode/mpeg2vaenc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/mpeg2vaenc.c 2025-12-12 09:24:42.000000000 +0100 @@ -37,6 +37,7 @@ #include <sys/types.h> #include <fcntl.h> #include <time.h> +#include <math.h> #include <pthread.h> #include <va/va.h> @@ -277,9 +278,9 @@ for (i = 0; i < sizeof(frame_rate_tab) / sizeof(frame_rate_tab[0]); i++) { - if (abs(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value) < delta) { + if (fabsf(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value) < delta) { code = frame_rate_tab[i].code; - delta = abs(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value); + delta = fabsf(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value); } } @@ -466,9 +467,9 @@ u_src = ctx->frame_data_buffer + y_size; /* UV offset for NV12 */ v_src = ctx->frame_data_buffer + y_size + u_size; - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ - v_dst = surface_p + surface_image.offsets[2]; + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ + v_dst = (unsigned char *)surface_p + surface_image.offsets[2]; /* Y plane */ for (row = 0; row < surface_image.height; row++) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/svctenc.c new/libva-utils-2.23.0/encode/svctenc.c --- old/libva-utils-2.22.0/encode/svctenc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/svctenc.c 2025-12-12 09:24:42.000000000 +0100 @@ -1183,9 +1183,9 @@ u_src = ctx->frame_data_buffer + y_size; /* UV offset for NV12 */ v_src = ctx->frame_data_buffer + y_size + u_size; - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ - v_dst = surface_p + surface_image.offsets[2]; + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ + v_dst = (unsigned char *)surface_p + surface_image.offsets[2]; /* Y plane */ for (row = 0; row < surface_image.height; row++) { @@ -1719,12 +1719,7 @@ pic_param->pic_fields.bits.reference_pic_flag = !!current_surface->is_ref; pic_param->pic_fields.bits.deblocking_filter_control_present_flag = 1; - if (ctx->profile_idc == PROFILE_IDC_BASELINE || - ctx->profile_idc == PROFILE_IDC_MAIN || - ctx->profile_idc == PROFILE_IDC_SCALABLE_BASELINE) - pic_param->pic_fields.bits.transform_8x8_mode_flag = 0; - else - pic_param->pic_fields.bits.transform_8x8_mode_flag = 0; + pic_param->pic_fields.bits.transform_8x8_mode_flag = 0; /* Allocate the new picture parameter buffer */ va_status = vaCreateBuffer(ctx->va_dpy, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/vp8enc.c new/libva-utils-2.23.0/encode/vp8enc.c --- old/libva-utils-2.22.0/encode/vp8enc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/vp8enc.c 2025-12-12 09:24:42.000000000 +0100 @@ -343,10 +343,10 @@ vaMapBuffer(vaapi_context.display, surface_image.buf, &surface_p); assert(VA_STATUS_SUCCESS == va_status); - - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ - v_dst = surface_p + surface_image.offsets[2]; + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + + surface_image.offsets[1]; /* UV offset for NV12 */ + v_dst = (unsigned char *)surface_p + surface_image.offsets[2]; /* Y plane */ for (row = 0; row < surface_image.height; row++) { @@ -371,8 +371,8 @@ const int U = surface_image.format.fourcc == VA_FOURCC_I420 ? 1 : 2; const int V = surface_image.format.fourcc == VA_FOURCC_I420 ? 2 : 1; - u_dst = surface_p + surface_image.offsets[U]; - v_dst = surface_p + surface_image.offsets[V]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[U]; + v_dst = (unsigned char *)surface_p + surface_image.offsets[V]; for (row = 0; row < surface_image.height / 2; row++) { memcpy(u_dst, u_src, surface_image.width / 2); @@ -598,6 +598,7 @@ fprintf(stderr, "Error: No unused surface found!\n"); assert(0); + return VA_INVALID_ID; // should never happen } VASurfaceID vp8enc_update_reference(VASurfaceID current_surface, VASurfaceID second_copy_surface, bool refresh_with_recon, int copy_flag) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/encode/vp9enc.c new/libva-utils-2.23.0/encode/vp9enc.c --- old/libva-utils-2.22.0/encode/vp9enc.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/encode/vp9enc.c 2025-12-12 09:24:42.000000000 +0100 @@ -555,9 +555,10 @@ u_src = newImageBuffer + y_size; /* UV offset for NV12 */ v_src = newImageBuffer + y_size + u_size; - y_dst = surface_p + surface_image.offsets[0]; - u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */ - v_dst = surface_p + surface_image.offsets[2]; + y_dst = (unsigned char *)surface_p + surface_image.offsets[0]; + u_dst = (unsigned char *)surface_p + + surface_image.offsets[1]; /* UV offset for NV12 */ + v_dst = (unsigned char *)surface_p + surface_image.offsets[2]; /* Y plane */ for (row = 0; row < surface_image.height; row++) { @@ -582,8 +583,8 @@ const int U = surface_image.format.fourcc == VA_FOURCC_I420 ? 1 : 2; const int V = surface_image.format.fourcc == VA_FOURCC_I420 ? 2 : 1; - u_dst = surface_p + surface_image.offsets[U]; - v_dst = surface_p + surface_image.offsets[V]; + u_dst = (unsigned char *)surface_p + surface_image.offsets[U]; + v_dst = (unsigned char *)surface_p + surface_image.offsets[V]; for (row = 0; row < surface_image.height / 2; row++) { memcpy(u_dst, u_src, surface_image.width / 2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/meson.build new/libva-utils-2.23.0/meson.build --- old/libva-utils-2.22.0/meson.build 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/meson.build 2025-12-12 09:24:42.000000000 +0100 @@ -1,5 +1,5 @@ project('libva-utils', 'c', 'cpp', - version : '2.22.0', + version : '2.23.0', default_options : [ 'warning_level=2', 'c_std=gnu99', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/vainfo/Android.mk new/libva-utils-2.23.0/vainfo/Android.mk --- old/libva-utils-2.22.0/vainfo/Android.mk 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/vainfo/Android.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,25 +0,0 @@ -# For vainfo -# ===================================================== - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - vainfo.c \ - ../common/va_display.c \ - ../common/va_display_android.cpp - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := vainfo - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui - -include $(BUILD_EXECUTABLE) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/vainfo/vainfo.c new/libva-utils-2.23.0/vainfo/vainfo.c --- old/libva-utils-2.22.0/vainfo/vainfo.c 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/vainfo/vainfo.c 2025-12-12 09:24:42.000000000 +0100 @@ -34,13 +34,6 @@ #include "va_display.h" -#ifdef ANDROID - -/* Macros generated from configure */ -#define LIBVA_VERSION_S "2.0.0" - -#endif - #define CHECK_VASTATUS(va_status,func, ret) \ if (va_status != VA_STATUS_SUCCESS) { \ fprintf(stderr,"%s failed with error code %d (%s),exit\n",func, va_status, vaErrorStr(va_status)); \ @@ -532,8 +525,13 @@ va_status = vaInitialize(va_dpy, &major_version, &minor_version); CHECK_VASTATUS(va_status, "vaInitialize", 3); - printf("%s: VA-API version: %d.%d (libva %s)\n", - name, major_version, minor_version, LIBVA_VERSION_S); + printf("%s: VA-API version: %d.%d", + name, major_version, minor_version); +#ifdef ANDROID + printf("\n"); +#else + printf(" (libva %s)\n", LIBVA_VERSION_S); +#endif // ANDROID driver = vaQueryVendorString(va_dpy); printf("%s: Driver version: %s\n", name, driver ? driver : "<unknown>"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/videoprocess/Android.mk new/libva-utils-2.23.0/videoprocess/Android.mk --- old/libva-utils-2.22.0/videoprocess/Android.mk 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/videoprocess/Android.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -# vavpp -# -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - ../common/va_display.c \ - ../common/va_display_android.cpp \ - vavpp.cpp - -LOCAL_CFLAGS += \ - -DANDROID - -LOCAL_C_INCLUDES += \ - $(LOCAL_PATH)/../common - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := vavpp - -LOCAL_SHARED_LIBRARIES := libva-android libva libdl libcutils libutils libgui libm - -include $(BUILD_EXECUTABLE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/videoprocess/vacopy.cpp new/libva-utils-2.23.0/videoprocess/vacopy.cpp --- old/libva-utils-2.22.0/videoprocess/vacopy.cpp 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/videoprocess/vacopy.cpp 2025-12-12 09:24:42.000000000 +0100 @@ -241,7 +241,6 @@ extBuffer.num_buffers = 1; extBuffer.buffers = &(surf.ptrb); extBuffer.buffers[0] = (uintptr_t)(surf.pBufBase); - extBuffer.flags = VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR; va_status = vaCreateSurfaces(va_dpy, surf.format, surf.width, surf.height, p_surface_id, 1, surfaceAttrib, 3); CHECK_VASTATUS(va_status, "vaCreateSurfaces"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-utils-2.22.0/videoprocess/vppscaling_n_out_usrptr.cpp new/libva-utils-2.23.0/videoprocess/vppscaling_n_out_usrptr.cpp --- old/libva-utils-2.22.0/videoprocess/vppscaling_n_out_usrptr.cpp 2024-06-20 10:05:10.000000000 +0200 +++ new/libva-utils-2.23.0/videoprocess/vppscaling_n_out_usrptr.cpp 2025-12-12 09:24:42.000000000 +0100 @@ -277,7 +277,6 @@ extBuffer.buffers = &(img_info.ptrb); extBuffer.buffers[0] = (uintptr_t)(img_info.pUserBase); - extBuffer.flags = VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR; va_status = vaCreateSurfaces(va_dpy, img_info.rtformat, img_info.pic_width, img_info.pic_height, p_surface_id, 1, surfaceAttrib, 3); CHECK_VASTATUS(va_status, "vaCreateSurfaces"); }
