From 11d224befa0393cb70620a46d4424622b7aec5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Sat, 9 Aug 2025 01:38:18 +0200 Subject: [PATCH] spa: libcamera: source: set chunk flags on error Set `SPA_CHUNK_FLAG_CORRUPTED` if the frame buffer metadata signals anything other than success. (cherry picked from commit 25075bb3d7190e84606dce934814e27f986a56de) --- spa/plugins/libcamera/libcamera-source.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spa/plugins/libcamera/libcamera-source.cpp b/spa/plugins/libcamera/libcamera-source.cpp index 0fb40688d..a342bda7d 100644 --- a/spa/plugins/libcamera/libcamera-source.cpp +++ b/spa/plugins/libcamera/libcamera-source.cpp @@ -1075,6 +1075,15 @@ void handle_completed_request(struct impl *impl, libcamera::Request *request) b->h->dts_offset = 0; } + for (std::size_t i = 0; i < b->outbuf->n_datas; i++) { + auto *d = &b->outbuf->datas[i]; + + d->chunk->flags = 0; + + if (fmd.status != libcamera::FrameMetadata::Status::FrameSuccess) + d->chunk->flags |= SPA_CHUNK_FLAG_CORRUPTED; + } + request->reuse(libcamera::Request::ReuseFlag::ReuseBuffers); spa_list_append(&port->queue, &b->link);