Raw native processing¶
NativePlanarBus<S> describes channel counts and borrowed planar pointer arrays.
Its matching C layouts are in include/RavetNativeAudio.h; the header defines
no product symbols or registration API. process_native accepts buses in exact
preparation order, active frames, borrowed portable events and block-start
Transport. Zero frames permit null sample/pointer arrays but still require the
prepared bus counts and valid zero-offset events.
The unsafe caller supplies live aligned ranges and serialized ownership. Metadata, events, processor and adapter storage cannot overlap writable samples. Sample inputs may alias outputs across any channels/buses. The adapter validates shapes, pointers and disjoint output ranges, then copies all inputs before any host output write. Private preallocated planes form safe main/auxiliary views. Complete portable event validation precedes processor invocation, including valid prefixes followed by invalid events. Supplied transport is passed exactly, including unknown playing and extended details; format serialization/validation remain consumer work.
Successful processing copies initialized output prefixes and returns typed generated events borrowed until the next adapter call. Consumers perform native event translation/delivery and own host refusal. Faults silence supported declared output prefixes, retain tails and expose no generated events. Backend faults may retain advanced processor history. A contained processing/reset panic poisons the adapter; subsequent calls reject without invoking the processor, and reset cannot recover it. Prepare a fresh adapter/processor configuration on control to recover. Normal processing/reset avoids heap actions; exceptional panic handlers may allocate. No native allocation or callback deadline guarantee is inferred.