123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import 'dart:convert';
- import 'dart:typed_data';
- import 'package:fis_common/env/env.dart';
- import 'package:fis_vid/data_host/interface/data_host.dart';
- import 'package:fis_vid/data_host/vid_download.dart';
- import 'package:fis_vid/data_host/env.dart';
- import 'package:fis_vid/processors/base.dart';
- import 'package:fis_jsonrpc/rpc.dart';
- import 'package:fis_vid/processors/brightness.dart';
- import 'package:fis_vid/processors/contrast.dart';
- import 'package:flutter/painting.dart';
- import 'package:vid/us/vid_us_image.dart';
- import 'package:vid/us/vid_us_image_data.dart';
- import 'package:vid/us/vid_us_probe.dart';
- part 'broswer.dart';
- part 'shell.dart';
- class VidDataHost implements VidDataHostInterface {
- VidDataHost(this.url);
- VidDataHostInterface? _hostInstance;
- @override
- final String url;
- @override
- int get frameCount => _hostInstance!.frameCount;
- @override
- VidUsProbe get probe => _hostInstance!.probe;
- @override
- Future<VidUsImageData?> getData() async => await _hostInstance?.getData();
- @override
- Future<VidUsImage?> getFrame<TProcessor extends VidFrameProcessor>(
- int index, {
- List<TProcessor>? processors,
- }) {
- if (_hostInstance == null) {
- throw Exception(
- "[VidDataHost] getFrame: must call load first and data is not null.");
- }
- return _hostInstance!.getFrame(index, processors: processors);
- }
- @override
- Future<VidDataHostLoadInfo?> load() async {
- if (_hostInstance != null) {
- await _hostInstance!.release();
- _hostInstance = null;
- }
- _hostInstance = VidDataHostEnv.isShell
- ? _VidDataHostShell(url)
- : _VidDataHostBroswer(url);
- return await _hostInstance!.load();
- }
- @override
- Future<void> release() async {
- await _hostInstance?.release();
- _hostInstance = null;
- }
- }
|