main function

void main()

Implementation

void main() {
  self.onMessage.listen((e) async {
    String basePath = '.';
    final String path = e.data['path'];
    final int fps = e.data['fps'];
    final int width = e.data['width'] ?? -1;
    final int height = e.data['height'] ?? -1;
    final bool forceOriginalAspectRatio = e.data['forceOriginalAspectRatio'];
    final String? textMessages = e.data['textMessages'];
    final Completer completer = Completer();
    late List<int> data;

    self.importScripts('$basePath/ffmpeg-core/ffmpeg-core.js');
    self.importScripts('$basePath/ffmpeg.min.js');
    self.importScripts('$basePath/get_gif.js');

    getGifFromVideo(
      path,
      fps,
      width,
      height,
      forceOriginalAspectRatio,
      textMessages,
      universal_js.allowInterop((results) {
        final byteBuffer = results as ByteBuffer;
        data = byteBuffer.asUint8List();
        completer.complete();
      }),
    );
    await completer.future;
    self.postMessage(data, null);
  });
}