#1395 new todo

resolve integration of BufferProvider with DataSink

Reported by: Ichthyostega Owned by:
Priority: grave Milestone: 0integration
Component: lumieraSteam Keywords: render data interfaces cleanup
Sub Tickets: #657, #824, #1367, #1410, #1415 Parent Tickets: #671, #713, #1287, #1308, #1369, #1396

Description

As a Lumiera developer,
I want to represent output buffers through BuffHandle,
so that I can use uniform buffer access in accordance to the Buffer Provider protocol

make two similar protocols congruent

Both the buffer handling and the output designation and data sink handling were defined around the same time, and both were defined in terms of a protocol (and both still seem largely adequate today). From the implementation perspective of media processing, it is irrelevant if the destination buffer is provided from a memory pool, is actually attached to the frame cache, or represents a data block tied to I/O — in all cases, the buffer must be provided exclusively, and marked complete when done.

But the default implementations for both frameworks do not mesh up well with that observation; notably the DataDink indeed exposes a BuffHandle, but expects it to be treated in a special way. It seems the default implementation is too tightly interconnected with the interface and protocol aspects here, making it impossible to let the BuffHandle act as an uniform proxy.

Acceptance Criteria

The existing Render Node invocation code can handle an OutputSink correctly, while just adhering to the Buffer Provider protocol

Change history (4)

comment:1 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 657, 824, 1367
blocking: 671, 713, 1287, 1308, 1369, 1396
Parent Tickets: 671, 713, 1287, 1308, 1369, 1396
Sub Tickets: 657, 824, 1367

comment:2 by Ichthyostega, at 2026-02-09T22:04:46Z

Sub Tickets: 657, 824, 1367657, 824, 1367, 1410

Add subticket #1410 (clean-up BufferProvider base implementation).

comment:3 by Ichthyostega, at 2026-02-19T23:17:42Z

Sub Tickets: 657, 824, 1367, 1410657, 824, 1367, 1410, 1415

Add subticket #1415 (setup proxying through BufferProvider).

comment:4 by Ichthyostega <prg@…>, at 2026-02-19T23:23:20Z

In 722c12e3/Lumiera:

BufferProvider: assess status and consider approach to OutputSlot (see #1395)

The first round of the BufferProvider clean-up is roughly complete.

  • a much cleaner diagnostic interface has been defined and implemented
  • this allowed to modernise the DiagnosticBufferProvider_test and the BufferProviderProtocol_test
  • the implementation scheme has been split in two realms
  • the old heap-memory based implementation has been re-arranged, so that the aforementioned tests are green again.

Now is the point to draft a solution to get the interfaces of
BufferProvider and OutputSlot aligned, so that the latter
can expose its lifecycle through the former.

Today, I have analysed various aspects and developed a pathway
to get into that task, and next I will reshape the previously
failed OutputProxyProvider_test into a prototype to
validate this idea

Note: See TracTickets for help on using tickets.