1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import 'dart:typed_data';
- import 'package:fis_vid/data_host/base/data_host.dart';
- import 'package:vid/us/vid_us_image_data.dart';
- import 'package:fis_vid/data_host/interface/data_host.dart';
- import 'package:vid/us/vid_us_image.dart';
- import 'package:vid/us/vid_us_probe.dart';
- class VidDataHostLocal extends VidDataHostBase {
- VidDataHostLocal(this.fileContent) : super("empty_url");
- VidUsImageData? _data;
- final Uint8List fileContent;
- @override
- VidUsProbe get probe => _data!.probe;
- @override
- Future<VidDataHostLoadInfo?> load() async {
- final vidFileBuffer = fileContent;
- _data = VidUsImageData(vidFileBuffer);
- return VidDataHostLoadInfo(probe);
- }
- @override
- Future<VidUsImageData?> getData() async => _data;
- @override
- Future<VidUsImage> getFrame(int index) async {
- if (_data == null) {
- throw Exception(
- "[VidDataHost] getFrame: must call load first and data is not null.");
- }
- final frame = _data!.getImage(index);
- frameLoaded.emit(this, frame);
- return frame;
- }
- @override
- Future<void> release() async {
- _data = null;
- }
- @override
- int get frameCount => _data == null ? -1 : _data!.imageCount;
- }
|