fixWebmDuration function
Reads blob, patches the WebM Duration field to durationMs, and returns
a new Blob. Returns blob unchanged if it already has a valid duration or
the structure cannot be parsed.
Implementation
Future<web.Blob> fixWebmDuration(web.Blob blob, int durationMs) async {
final jsBuffer = await blob.arrayBuffer().toDart;
final src = jsBuffer.toDart.asUint8List();
final patched = _patchDuration(src, durationMs.toDouble());
if (patched == null) return blob;
return web.Blob([patched.toJS].toJS, web.BlobPropertyBag(type: blob.type));
}