Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libva for openSUSE:Factory checked in at 2026-07-09 22:18:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libva (Old) and /work/SRC/openSUSE:Factory/.libva.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libva" Thu Jul 9 22:18:31 2026 rev:78 rq:1364509 version:2.24.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libva/libva.changes 2026-01-07 16:01:01.430141120 +0100 +++ /work/SRC/openSUSE:Factory/.libva.new.1991/libva.changes 2026-07-09 22:18:52.701102816 +0200 @@ -1,0 +2,10 @@ +Sat Jul 4 09:59:55 UTC 2026 - Michael Pujos <[email protected]> + +- update to 2.24.0: + * va: Add VA_PICTURE_H264_NON_EXISTING flag + * va: use secure_getenv instead of getenv in va_x11.c + * doc: fix libva av1 link for doxygen + * trace: dump input/output data in va_TraceProtectedSessionExecute + * trace: Add ProtectedSession Related Log in Trace + +------------------------------------------------------------------- Old: ---- libva-2.23.0.tar.gz New: ---- libva-2.24.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libva.spec ++++++ --- /var/tmp/diff_new_pack.dMAJRY/_old 2026-07-09 22:18:53.413127056 +0200 +++ /var/tmp/diff_new_pack.dMAJRY/_new 2026-07-09 22:18:53.413127056 +0200 @@ -1,7 +1,7 @@ # # spec file for package libva # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 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 @@ -30,7 +30,7 @@ Name: libva%{name_suffix} %define _name libva -Version: 2.23.0 +Version: 2.24.0 Release: 0 Summary: Video Acceleration (VA) API License: MIT ++++++ libva-2.23.0.tar.gz -> libva-2.24.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/docs.yml new/libva-2.24.0/.github/workflows/docs.yml --- old/libva-2.23.0/.github/workflows/docs.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/docs.yml 2026-07-02 07:46:11.000000000 +0200 @@ -17,7 +17,7 @@ build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: install prerequisites run: | sudo apt-get update diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/freebsd.yml new/libva-2.24.0/.github/workflows/freebsd.yml --- old/libva-2.23.0/.github/workflows/freebsd.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/freebsd.yml 2026-07-02 07:46:11.000000000 +0200 @@ -10,7 +10,7 @@ runs-on: ubuntu-latest steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Install prerequisites and build' uses: vmactions/freebsd-vm@v1 with: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/ghpages.yml new/libva-2.24.0/.github/workflows/ghpages.yml --- old/libva-2.23.0/.github/workflows/ghpages.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/ghpages.yml 2026-07-02 07:46:11.000000000 +0200 @@ -22,7 +22,7 @@ runs-on: ubuntu-22.04 steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 - name: 'Get latest tag' @@ -47,11 +47,11 @@ - name: 'Upload the artifacts' if: github.ref_name == env.GIT_LATEST_TAG - uses: actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@v5 with: path: "_build/doc/html-out" - name: 'Deploy to GitHub Pages' if: github.ref_name == env.GIT_LATEST_TAG id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/style.yml new/libva-2.24.0/.github/workflows/style.yml --- old/libva-2.23.0/.github/workflows/style.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/style.yml 2026-07-02 07:46:11.000000000 +0200 @@ -10,7 +10,7 @@ runs-on: ubuntu-22.04 steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Install prerequisites' run: | sudo apt-get update diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/ubuntu.yml new/libva-2.24.0/.github/workflows/ubuntu.yml --- old/libva-2.23.0/.github/workflows/ubuntu.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/ubuntu.yml 2026-07-02 07:46:11.000000000 +0200 @@ -21,7 +21,7 @@ DISTRO: ${{ matrix.os }} steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Install toolchain' if: ${{ (matrix.compiler == 'clang') && (matrix.os == 'ubuntu-22.04') }} run: .github/workflows/install-clang.sh 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/.github/workflows/windows.yml new/libva-2.24.0/.github/workflows/windows.yml --- old/libva-2.23.0/.github/workflows/windows.yml 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/.github/workflows/windows.yml 2026-07-02 07:46:11.000000000 +0200 @@ -10,7 +10,7 @@ runs-on: windows-2022 steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Setup Python' uses: actions/setup-python@v6 with: @@ -31,7 +31,7 @@ runs-on: windows-2022 steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Setup Python' uses: actions/setup-python@v6 with: @@ -57,7 +57,7 @@ shell: msys2 {0} steps: - name: 'Checkout' - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: 'Setup MSYS2' uses: msys2/setup-msys2@v2 with: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/NEWS new/libva-2.24.0/NEWS --- old/libva-2.23.0/NEWS 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/NEWS 2026-07-02 07:46:11.000000000 +0200 @@ -1,5 +1,12 @@ -libva NEWS -- summary of user visible changes. 2025-12-12 -Copyright (C) 2009-2025 Intel Corporation +libva NEWS -- summary of user visible changes. 2026-7-2 +Copyright (C) 2009-2026 Intel Corporation + +version 2.24.0 - 02.Jul.2026 +* va: Add VA_PICTURE_H264_NON_EXISTING flag +* va: use secure_getenv instead of getenv in va_x11.c +* doc: fix libva av1 link for doxygen +* trace: dump input/output data in va_TraceProtectedSessionExecute +* trace: Add ProtectedSession Related Log in Trace version 2.23.0 - 12.Dec.2025 * va: add VAProfileH264High422 @@ -271,7 +278,7 @@ version 2.8.0 - 18.Jun.2020 * trace: enable return value trace for successful function call -* trace: divide va_TraceEndPicture to two seperate function +* trace: divide va_TraceEndPicture to two separate function * trace: add support for VAProfileHEVCSccMain444_10 * fix:Fixes file descriptor leak * add fourcc code for P012 format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/configure.ac new/libva-2.24.0/configure.ac --- old/libva-2.23.0/configure.ac 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/configure.ac 2026-07-02 07:46:11.000000000 +0200 @@ -27,7 +27,7 @@ # - reset micro version to zero when minor version is incremented # - reset minor version to zero when major version is incremented m4_define([va_api_major_version], [1]) -m4_define([va_api_minor_version], [23]) +m4_define([va_api_minor_version], [24]) m4_define([va_api_micro_version], [0]) m4_define([va_api_version], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/doc/Makefile.am new/libva-2.24.0/doc/Makefile.am --- old/libva-2.23.0/doc/Makefile.am 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/doc/Makefile.am 2026-07-02 07:46:11.000000000 +0200 @@ -37,6 +37,7 @@ $(VA_HEADER_DIR)/va_enc_hevc.h \ $(VA_HEADER_DIR)/va_enc_vp8.h \ $(VA_HEADER_DIR)/va_enc_vp9.h \ + $(VA_HEADER_DIR)/va_enc_av1.h \ $(VA_HEADER_DIR)/va_fei.h \ $(VA_HEADER_DIR)/va_fei_h264.h \ $(VA_HEADER_DIR)/va_fei_hevc.h \ @@ -45,6 +46,7 @@ $(VA_HEADER_DIR)/va_dec_vp8.h \ $(VA_HEADER_DIR)/va_dec_vp9.h \ $(VA_HEADER_DIR)/va_dec_av1.h \ + $(VA_HEADER_DIR)/va_dec_vvc.h \ $(VA_HEADER_DIR)/va_prot.h \ $(VA_HEADER_DIR)/va_vpp.h \ $(NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/doc/meson.build new/libva-2.24.0/doc/meson.build --- old/libva-2.23.0/doc/meson.build 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/doc/meson.build 2026-07-02 07:46:11.000000000 +0200 @@ -22,6 +22,7 @@ 'va_dec_vp8.h', 'va_dec_vp9.h', 'va_dec_av1.h', + 'va_dec_vvc.h', 'va_prot.h', 'va_vpp.h' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/meson.build new/libva-2.24.0/meson.build --- old/libva-2.23.0/meson.build 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/meson.build 2026-07-02 07:46:11.000000000 +0200 @@ -7,7 +7,7 @@ # - reset micro version to zero when VA-API major or minor version is changed project( 'libva', 'c', - version : '2.23.0', + version : '2.24.0', meson_version : '>= 0.53.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -19,7 +19,7 @@ # - reset micro version to zero when minor version is incremented # - reset minor version to zero when major version is incremented va_api_major_version = 1 -va_api_minor_version = 23 +va_api_minor_version = 24 va_api_micro_version = 0 va_api_version = '@0@.@1@.@2@'.format(va_api_major_version, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/compat_win32.h new/libva-2.24.0/va/compat_win32.h --- old/libva-2.23.0/va/compat_win32.h 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/compat_win32.h 2026-07-02 07:46:11.000000000 +0200 @@ -53,6 +53,7 @@ #if _MSC_VER #define getenv _getenv +#undef secure_getenv #define secure_getenv _getenv #define HAVE_SECURE_GETENV inline char* _getenv(const char *varname) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/va.c new/libva-2.24.0/va/va.c --- old/libva-2.23.0/va/va.c 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/va.c 2026-07-02 07:46:11.000000000 +0200 @@ -59,19 +59,6 @@ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -#ifndef HAVE_SECURE_GETENV -static char * secure_getenv(const char *name) -{ -#if defined(__MINGW32__) || defined(__MINGW64__) - if (getuid() == geteuid()) -#else - if (getuid() == geteuid() && getgid() == getegid()) -#endif - return getenv(name); - else - return NULL; -} -#endif /* * read a config "env" for libva.conf or from environment setting @@ -2373,6 +2360,8 @@ CreateProtectedSession, (ctx, config_id, protected_session) ); + VA_TRACE_LOG(va_TraceCreateProtectedSession, dpy, config_id, protected_session); + VA_TRACE_RET(dpy, status); return status; @@ -2392,6 +2381,8 @@ DestroyProtectedSession, (ctx, protected_session) ); + VA_TRACE_LOG(va_TraceDestroyProtectedSession, dpy, protected_session); + VA_TRACE_RET(dpy, status); return status; @@ -2412,6 +2403,8 @@ AttachProtectedSession, (ctx, context, protected_session) ); + VA_TRACE_LOG(va_TraceAttachProtectedSession, dpy, context, protected_session); + VA_TRACE_RET(dpy, status); return status; @@ -2431,6 +2424,8 @@ DetachProtectedSession, (ctx, context) ); + VA_TRACE_LOG(va_TraceDetachProtectedSession, dpy, context); + VA_TRACE_RET(dpy, status); return status; @@ -2451,6 +2446,8 @@ ProtectedSessionExecute, (ctx, protected_session, data) ); + VA_TRACE_LOG(va_TraceProtectedSessionExecute, dpy, protected_session, data); + VA_TRACE_RET(dpy, status); return status; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/va.h new/libva-2.24.0/va/va.h --- old/libva-2.23.0/va/va.h 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/va.h 2026-07-02 07:46:11.000000000 +0200 @@ -112,7 +112,7 @@ * * VA-API is split into several modules: * - \ref api_core - * - Encoder (H264, HEVC, JPEG, MPEG2, VP8, VP9) + * - Encoder (H264, HEVC, JPEG, MPEG2, VP8, VP9, AV1) * - \ref api_enc_h264 * - \ref api_enc_hevc * - \ref api_enc_jpeg @@ -3585,6 +3585,11 @@ #define VA_PICTURE_H264_BOTTOM_FIELD 0x00000004 #define VA_PICTURE_H264_SHORT_TERM_REFERENCE 0x00000008 #define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010 +/** \brief Non existing picture + * This flag indicates that the picture is marked + * as “non-existing” (spec section 8.2.5.2) + */ +#define VA_PICTURE_H264_NON_EXISTING 0x00000020 /** H.264 Picture Parameter Buffer */ /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/va_internal.h new/libva-2.24.0/va/va_internal.h --- old/libva-2.23.0/va/va_internal.h 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/va_internal.h 2026-07-02 07:46:11.000000000 +0200 @@ -29,6 +29,21 @@ extern "C" { #endif +#ifndef HAVE_SECURE_GETENV +#ifdef _WIN32 +/* No setuid/setgid on Windows, secure_getenv is just getenv */ +#define secure_getenv getenv +#else +static inline char * secure_getenv(const char *name) +{ + if (getuid() == geteuid() && getgid() == getegid()) + return getenv(name); + else + return NULL; +} +#endif +#endif + #define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) #define CHECK_DISPLAY(dpy) if (!vaDisplayIsValid(dpy)) { return VA_STATUS_ERROR_INVALID_DISPLAY; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/va_trace.c new/libva-2.24.0/va/va_trace.c --- old/libva-2.23.0/va/va_trace.c 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/va_trace.c 2026-07-02 07:46:11.000000000 +0200 @@ -4612,6 +4612,85 @@ return; } +static void va_TraceVAEncryptionParameters( + VADisplay dpy, + VAContextID context, + VABufferID buffer, + VABufferType type, + unsigned int size, + unsigned int num_elements, + void *data +) +{ + VAEncryptionParameters *p = (VAEncryptionParameters *)data; + unsigned int i; + + DPY2TRACECTX(dpy, context, VA_INVALID_ID); + + va_TraceMsg(trace_ctx, "--VAEncryptionParameters\n"); + va_TraceMsg(trace_ctx, "\tencryption_type = 0x%08x\n", p->encryption_type); + + if (p->encryption_type & VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR) + va_TraceMsg(trace_ctx, "\t\tVA_ENCRYPTION_TYPE_FULLSAMPLE_CTR\n"); + if (p->encryption_type & VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC) + va_TraceMsg(trace_ctx, "\t\tVA_ENCRYPTION_TYPE_FULLSAMPLE_CBC\n"); + if (p->encryption_type & VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR) + va_TraceMsg(trace_ctx, "\t\tVA_ENCRYPTION_TYPE_SUBSAMPLE_CTR\n"); + if (p->encryption_type & VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC) + va_TraceMsg(trace_ctx, "\t\tVA_ENCRYPTION_TYPE_SUBSAMPLE_CBC\n"); + + va_TraceMsg(trace_ctx, "\tnum_segments = %u\n", p->num_segments); + va_TraceMsg(trace_ctx, "\tsegment_info = %p\n", p->segment_info); + + if (p->segment_info && p->num_segments > 0) { + for (i = 0; i < p->num_segments && i < 16; i++) { + va_TraceMsg(trace_ctx, "\t\tsegment[%u]:\n", i); + va_TraceMsg(trace_ctx, "\t\t\tsegment_start_offset = %u\n", + p->segment_info[i].segment_start_offset); + va_TraceMsg(trace_ctx, "\t\t\tsegment_length = %u\n", + p->segment_info[i].segment_length); + va_TraceMsg(trace_ctx, "\t\t\tpartial_aes_block_size = %u\n", + p->segment_info[i].partial_aes_block_size); + va_TraceMsg(trace_ctx, "\t\t\tinit_byte_length = %u\n", + p->segment_info[i].init_byte_length); + + /* Print first 16 bytes of IV/CTR */ + va_TraceMsg(trace_ctx, "\t\t\taes_cbc_iv_or_ctr = "); + for (unsigned int j = 0; j < 16 && j < sizeof(p->segment_info[i].aes_cbc_iv_or_ctr); j++) { + va_TracePrint(trace_ctx, "%02x ", p->segment_info[i].aes_cbc_iv_or_ctr[j]); + } + va_TracePrint(trace_ctx, "\n"); + } + if (p->num_segments > 16) { + va_TraceMsg(trace_ctx, "\t\t... (%u more segments not shown)\n", + p->num_segments - 16); + } + } + + va_TraceMsg(trace_ctx, "\tstatus_report_index = %u\n", p->status_report_index); + va_TraceMsg(trace_ctx, "\tsize_of_length = %u\n", p->size_of_length); + va_TraceMsg(trace_ctx, "\tkey_blob_size = %u\n", p->key_blob_size); + va_TraceMsg(trace_ctx, "\tblocks_stripe_encrypted = %u\n", p->blocks_stripe_encrypted); + va_TraceMsg(trace_ctx, "\tblocks_stripe_clear = %u\n", p->blocks_stripe_clear); + + /* Print wrapped decrypt blob (first 16 bytes) */ + va_TraceMsg(trace_ctx, "\twrapped_decrypt_blob = "); + for (i = 0; i < 16 && i < sizeof(p->wrapped_decrypt_blob); i++) { + va_TracePrint(trace_ctx, "%02x ", p->wrapped_decrypt_blob[i]); + } + va_TracePrint(trace_ctx, "...\n"); + + /* Print wrapped encrypt blob (first 16 bytes) */ + va_TraceMsg(trace_ctx, "\twrapped_encrypt_blob = "); + for (i = 0; i < 16 && i < sizeof(p->wrapped_encrypt_blob); i++) { + va_TracePrint(trace_ctx, "%02x ", p->wrapped_encrypt_blob[i]); + } + va_TracePrint(trace_ctx, "...\n"); + + va_TraceMsg(trace_ctx, NULL); +} + + static void va_TraceVAEncMiscParameterBuffer( VADisplay dpy, VAContextID context, @@ -6400,6 +6479,10 @@ case VAEncMiscParameterBufferType: va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); break; + case VAEncryptionParameterBufferType: + va_TraceVAEncryptionParameters(dpy, context, buffer, type, size, num_elements, pbuf); + break; + default: va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); break; @@ -6468,10 +6551,14 @@ case VAEncPackedHeaderParameterBufferType: va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf); break; - case VAEncMiscParameterBufferType: va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); break; + case VAEncryptionParameterBufferType: + va_TraceVAEncryptionParameters(dpy, context, buffer, type, size, num_elements, pbuf); + break; + + default: va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); break; @@ -6570,6 +6657,10 @@ case VAEncMiscParameterBufferType: va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf); break; + case VAEncryptionParameterBufferType: + va_TraceVAEncryptionParameters(dpy, context, buffer, type, size, num_elements, pbuf); + break; + default: va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); break; @@ -6610,6 +6701,10 @@ case VAEncPackedHeaderParameterBufferType: va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf); break; + case VAEncryptionParameterBufferType: + va_TraceVAEncryptionParameters(dpy, context, buffer, type, size, num_elements, pbuf); + break; + default: va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf); break; @@ -7368,6 +7463,154 @@ } +void va_TraceCreateProtectedSession( + VADisplay dpy, + VAConfigID config_id, + VAProtectedSessionID *protected_session +) +{ + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "\tconfig_id = 0x%08x\n", config_id); + if (protected_session) + va_TraceMsg(trace_ctx, "\tprotected_session = 0x%08x\n", *protected_session); + else + va_TraceMsg(trace_ctx, "\tprotected_session = (NULL)\n"); + + va_TraceMsg(trace_ctx, NULL); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} + +void va_TraceDestroyProtectedSession( + VADisplay dpy, + VAProtectedSessionID protected_session +) +{ + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "\tprotected_session = 0x%08x\n", protected_session); + + va_TraceMsg(trace_ctx, NULL); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} + +void va_TraceAttachProtectedSession( + VADisplay dpy, + VAContextID context, + VAProtectedSessionID protected_session +) +{ + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context); + va_TraceMsg(trace_ctx, "\tprotected_session = 0x%08x\n", protected_session); + + va_TraceMsg(trace_ctx, NULL); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} + +void va_TraceDetachProtectedSession( + VADisplay dpy, + VAContextID context +) +{ + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context); + + va_TraceMsg(trace_ctx, NULL); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); +} + +void va_TraceProtectedSessionExecute( + VADisplay dpy, + VAProtectedSessionID protected_session, + VABufferID buf_id +) +{ + VABufferType type; + unsigned int size; + unsigned int num_elements; + unsigned int i; + unsigned char *p; + bool buf_valid = false; + VAProtectedSessionExecuteBuffer *execute_buf = NULL; + + /* Try to get buffer info and map the buffer*/ + if (vaBufferInfo(dpy, VA_INVALID_ID, buf_id, &type, &size, &num_elements) == VA_STATUS_SUCCESS) { + if (type == VAProtectedSessionExecuteBufferType) { + if (vaMapBuffer(dpy, buf_id, (void **)&execute_buf) == VA_STATUS_SUCCESS && execute_buf) { + buf_valid = true; + } + } + } + + DPY2TRACE_VIRCTX(dpy); + + TRACE_FUNCNAME(idx); + + va_TraceMsg(trace_ctx, "\tprotected_session = 0x%08x\n", protected_session); + va_TraceMsg(trace_ctx, "\tbuf_id = 0x%08x\n", buf_id); + + if (buf_valid) { + va_TraceMsg(trace_ctx, "\tbuffer type = %s\n", vaBufferTypeStr(type)); + va_TraceMsg(trace_ctx, "\tbuffer size = %u\n", size); + va_TraceMsg(trace_ctx, "\tnum_elements = %u\n", num_elements); + va_TraceMsg(trace_ctx, "\tVAProtectedSessionExecuteBuffer:\n"); + va_TraceMsg(trace_ctx, "\t\tfunction_id = 0x%08x\n", execute_buf->function_id); + va_TraceMsg(trace_ctx, "\t\tinput.data = 0x%p\n", execute_buf->input.data); + va_TraceMsg(trace_ctx, "\t\tinput.data_size = %u\n", execute_buf->input.data_size); + va_TraceMsg(trace_ctx, "\t\tinput.max_data_size = %u\n", execute_buf->input.max_data_size); + va_TraceMsg(trace_ctx, "\t\toutput.data = 0x%p\n", execute_buf->output.data); + va_TraceMsg(trace_ctx, "\t\toutput.data_size = %u\n", execute_buf->output.data_size); + va_TraceMsg(trace_ctx, "\t\toutput.max_data_size = %u\n", execute_buf->output.max_data_size); + va_TraceMsg(trace_ctx, "\t\tstatus = 0x%08x\n", execute_buf->status); + + if (va_trace_flag & VA_TRACE_FLAG_BUFDATA) { + if (execute_buf->input.data && execute_buf->input.data_size > 0) { + p = (unsigned char *)execute_buf->input.data; + for (i = 0; i < execute_buf->input.data_size; i++) { + if ((i % 16) == 0) + va_TraceMsg(trace_ctx, "\t\tinput.data[0x%04x]:", i); + va_TracePrint(trace_ctx, " %02x", p[i]); + if (((i % 16) == 15) || (i == execute_buf->input.data_size - 1)) + va_TracePrint(trace_ctx, "\n"); + } + } + if (execute_buf->output.data && execute_buf->output.data_size > 0) { + p = (unsigned char *)execute_buf->output.data; + for (i = 0; i < execute_buf->output.data_size; i++) { + if ((i % 16) == 0) + va_TraceMsg(trace_ctx, "\t\toutput.data[0x%04x]:", i); + va_TracePrint(trace_ctx, " %02x", p[i]); + if (((i % 16) == 15) || (i == execute_buf->output.data_size - 1)) + va_TracePrint(trace_ctx, "\n"); + } + } + } + } else { + va_TraceMsg(trace_ctx, "\tbuffer is not valid\n"); + } + va_TraceMsg(trace_ctx, NULL); + + DPY2TRACE_VIRCTX_EXIT(pva_trace); + + vaUnmapBuffer(dpy, buf_id); +} + + void va_TracePutSurface( VADisplay dpy, VASurfaceID surface, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/va_trace.h new/libva-2.24.0/va/va_trace.h --- old/libva-2.23.0/va/va_trace.h 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/va_trace.h 2026-07-02 07:46:11.000000000 +0200 @@ -460,6 +460,40 @@ int num_attributes ); +DLL_HIDDEN +void va_TraceCreateProtectedSession( + VADisplay dpy, + VAConfigID config_id, + VAProtectedSessionID *protected_session +); + +DLL_HIDDEN +void va_TraceDestroyProtectedSession( + VADisplay dpy, + VAProtectedSessionID protected_session +); + +DLL_HIDDEN +void va_TraceAttachProtectedSession( + VADisplay dpy, + VAContextID context, + VAProtectedSessionID protected_session +); + +DLL_HIDDEN +void va_TraceDetachProtectedSession( + VADisplay dpy, + VAContextID context +); + +DLL_HIDDEN +void va_TraceProtectedSessionExecute( + VADisplay dpy, + VAProtectedSessionID protected_session, + VABufferID buf_id +); + + /* extern function called by display side */ void va_TracePutSurface( VADisplay dpy, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libva-2.23.0/va/x11/va_x11.c new/libva-2.24.0/va/x11/va_x11.c --- old/libva-2.23.0/va/x11/va_x11.c 2025-12-12 08:58:13.000000000 +0100 +++ new/libva-2.24.0/va/x11/va_x11.c 2026-07-02 07:46:11.000000000 +0200 @@ -77,7 +77,7 @@ { VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; - if (!getenv("LIBVA_DRI3_DISABLE")) + if (!secure_getenv("LIBVA_DRI3_DISABLE")) vaStatus = va_DRI3_GetDriverNames(pDisplayContext, drivers, num_drivers); if (vaStatus != VA_STATUS_SUCCESS) vaStatus = va_DRI2_GetDriverNames(pDisplayContext, drivers, num_drivers);
