miniav 0.7.2
miniav: ^0.7.2 copied to clipboard
A cross-platform capture library for audio and video providing a standard buffer with GPU path
miniav CHANGELOG #
0.7.2 #
- released 08/13/26 - MR
0.7.1 #
- Picks up miniav_ffi 0.7.1: destroying a Windows camera context no longer frees the Media Foundation source-reader callback while MF still holds it, and COM/MF initialisation is now process-lifetime rather than driven from individual FFI calls (the Dart VM runs an isolate's calls on threads borrowed from a pool, so per-call CoInitializeEx/CoUninitialize could not be balanced). No API change in this package.
0.7.0 #
GPU buffer handoff contract (Windows) #
-
FIXED (leak): the shared NT handle on the GPU path is now closed by miniav. Previously
MiniAV.releaseBufferonly logged that the app was responsible for closing it and no caller ever did — one leaked kernel handle per captured GPU frame (60/s at 60 fps). miniav now owns the handle and closes it in the release path.- Contract: finish importing the handle (
OpenSharedResource1, minigpuimportVideoFrame, …) before callingreleaseBuffer/releaseBufferSync, and do notCloseHandleit yourself. Release every buffer, including ones you skip — the handle is only closed on release.
- Contract: finish importing the handle (
-
DOCS FIX: the README GPU example said the handle lives in
planes[0]. It does not: it is innativeHandles[0](a plain Dartint). On the GPU pathplanes[0]is a non-null but emptyUint8Listwith stride 0, soplanes[0] != nullis not a CPU/GPU discriminator — usebuffer.contentType. -
MiniAVNativeFenceis documented as unimplemented. No backend populates it:d3d11FencePtr/metalSharedEventPtr/metalFenceValueare always0,syncFdalways-1. The Windows backends instead insert aD3D11_QUERY_EVENT,Flush(), and busy-poll for ≤16 ms — on timeout they hand the frame over anyway, so a consumer can receive a texture whose producer-side copy has not finished. -
MiniScreen.setIOSAppGroup(String)— register the App Group shared with the iOS Broadcast Upload Extension before configuring thesystem_screen_broadcastdisplay.
0.6.0 #
0.5.11 #
0.5.10 #
0.5.9 #
- add
MiniAV.releaseBufferSync(): synchronous, fire-and-forget variant ofreleaseBuffer()for hot paths (e.g. a per-frame capture callback) that must avoid a per-callFuture/microtask allocation. Delegates to the platform's synchronous release where available.
0.5.8 #
- fix audio buffer allocations and leak issue
0.5.7 #
- Fix logger noisiness
0.5.6 #
- fix FormatException on non-UTF-8 bytes in MiniAV log callback: use Utf8Decoder(allowMalformed: true) instead of toDartString()
- add setLogCallback and installStderrLogger to route native MiniAV C library logs to a Dart callback
0.5.5 #
- fix wasapi loopback issue
0.5.4 #
- adds bindings observer lib to fix crash on hot restart
0.5.3 #
- Fix crash bug on hot refresh, fix crash on second use of recorder
0.5.2 #
- adds shared textures
0.5.1 #
- adds subscriptions and fixes lost device crashes
0.5.0 #
- adding input support
0.4.7 #
- fix loopback crackles
0.4.6 #
- fix build hook null
- update cmake toolchain
0.4.5 #
0.4.1 #
- fix issue with num frames not being reported for audio_inputs
1.0.0 #
- Initial version.