fixWebmDuration function

Future<Blob> fixWebmDuration(
  1. Blob blob,
  2. int durationMs
)

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));
}