From 43992bb6b380bbaa5f257bdb374c09f1c832b613 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 29 Oct 2026 01:27:07 +0100 Subject: [PATCH] Expose codec resource ownership to host fault tests --- tools/chatgui-android/video-tests/build.gradle.kts | 2 +- .../src/main/kotlin/android/media/HostCameraImages.kt | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/chatgui-android/video-tests/build.gradle.kts b/tools/chatgui-android/video-tests/build.gradle.kts index 30335613..c9968858 100644 --- a/tools/chatgui-android/video-tests/build.gradle.kts +++ b/tools/chatgui-android/video-tests/build.gradle.kts @@ -7,7 +7,7 @@ kotlin { kotlin.srcDir("../app/src/main/java") kotlin.include("android/**", "com/utun/chat/data/VideoHost.kt", "com/utun/chat/data/CallVideoPlayer.kt", "com/utun/chat/data/CallVideoFormat.kt", "com/utun/chat/data/StreamVideoCodec.kt", "com/utun/chat/data/H264AnnexB.kt", - "com/utun/chat/data/StreamPreview.kt") + "com/utun/chat/data/StreamPreview.kt", "com/utun/chat/data/VideoCodecResources.kt") kotlin.include("com/utun/chat/VideoHostApp.kt", "com/utun/chat/data/VideoEngineHost.kt", "com/utun/chat/data/CallVideoEngine.kt", "com/utun/chat/data/CallVideoBitrateRange.kt", "com/utun/chat/data/CallVideoCadence.kt", "com/utun/chat/data/CallVideoOrientation.kt") diff --git a/tools/chatgui-android/video-tests/src/main/kotlin/android/media/HostCameraImages.kt b/tools/chatgui-android/video-tests/src/main/kotlin/android/media/HostCameraImages.kt index 4de7efd5..4bed9203 100644 --- a/tools/chatgui-android/video-tests/src/main/kotlin/android/media/HostCameraImages.kt +++ b/tools/chatgui-android/video-tests/src/main/kotlin/android/media/HostCameraImages.kt @@ -6,9 +6,15 @@ import java.util.concurrent.ConcurrentLinkedQueue import java.util.concurrent.CopyOnWriteArrayList class Image(val timestamp: Long = System.nanoTime()) { + var failures = emptySet() + var closeCalls = 0 + private set var closed = false private set - fun close() { closed = true } + fun close() { + closeCalls++; check("close" !in failures) { "Image close failed" }; closed = true + check("close after" !in failures) { "Image close failed after effect" } + } } /** Camera2 output без графических буферов; reader/Surface остаются наблюдаемыми при отказе close. */