Phase 4: FFmpeg conditional import (web-safe), remove unused dio + pointycastle (~230KB saved)
This commit is contained in:
parent
96468521cf
commit
6cb0a921c9
|
|
@ -1,7 +1,6 @@
|
|||
import 'dart:io';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
import '../services/media/ffmpeg.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import '../services/auth_service.dart';
|
||||
import '../services/api_service.dart';
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
import 'dart:io';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
import '../../services/media/ffmpeg.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import '../../services/image_upload_service.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:video_player/video_player.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
import '../../services/media/ffmpeg.dart';
|
||||
|
||||
import '../../models/sojorn_media_result.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ import 'dart:io';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:video_player/video_player.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
import '../../../services/media/ffmpeg.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import '../../../providers/quip_upload_provider.dart';
|
||||
import '../../../services/image_upload_service.dart';
|
||||
|
|
|
|||
2
sojorn_app/lib/services/media/ffmpeg.dart
Normal file
2
sojorn_app/lib/services/media/ffmpeg.dart
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/// Conditional export: web gets the stub, mobile/desktop gets the real package.
|
||||
export 'ffmpeg_stub.dart' if (dart.library.io) 'ffmpeg_io.dart';
|
||||
4
sojorn_app/lib/services/media/ffmpeg_io.dart
Normal file
4
sojorn_app/lib/services/media/ffmpeg_io.dart
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
/// Mobile/desktop: re-export the real ffmpeg_kit_flutter_new classes.
|
||||
export 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
export 'package:ffmpeg_kit_flutter_new/ffmpeg_session.dart';
|
||||
export 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
48
sojorn_app/lib/services/media/ffmpeg_stub.dart
Normal file
48
sojorn_app/lib/services/media/ffmpeg_stub.dart
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/// Web-safe stubs that mirror the ffmpeg_kit_flutter_new API surface.
|
||||
/// These classes compile on web but always return failure / no-op.
|
||||
|
||||
class FFmpegKit {
|
||||
static Future<FFmpegSession> execute(String command) async {
|
||||
return FFmpegSession._();
|
||||
}
|
||||
|
||||
static Future<FFmpegSession> executeAsync(
|
||||
String command, [
|
||||
Function? completeCallback,
|
||||
Function? logCallback,
|
||||
Function? statisticsCallback,
|
||||
]) async {
|
||||
final session = FFmpegSession._();
|
||||
completeCallback?.call(session);
|
||||
return session;
|
||||
}
|
||||
|
||||
static Future<FFmpegSession> executeWithArguments(
|
||||
List<String> arguments, [
|
||||
Function? completeCallback,
|
||||
Function? logCallback,
|
||||
Function? statisticsCallback,
|
||||
]) async {
|
||||
final session = FFmpegSession._();
|
||||
completeCallback?.call(session);
|
||||
return session;
|
||||
}
|
||||
}
|
||||
|
||||
class FFmpegSession {
|
||||
FFmpegSession._();
|
||||
|
||||
Future<ReturnCode?> getReturnCode() async => ReturnCode._(-1);
|
||||
Future<String?> getOutput() async => null;
|
||||
Future<String?> getAllLogsAsString() async => null;
|
||||
}
|
||||
|
||||
class ReturnCode {
|
||||
final int _value;
|
||||
ReturnCode._(this._value);
|
||||
|
||||
static bool isSuccess(ReturnCode? code) => false;
|
||||
|
||||
@override
|
||||
String toString() => 'ReturnCode($_value)';
|
||||
}
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
import 'dart:io';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_kit.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/ffmpeg_session.dart';
|
||||
import 'package:ffmpeg_kit_flutter_new/return_code.dart';
|
||||
import 'media/ffmpeg.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
class VideoStitchingService {
|
||||
|
|
|
|||
|
|
@ -345,22 +345,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.1"
|
||||
dio:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: dio
|
||||
sha256: b9d46faecab38fc8cc286f80bc4d61a3bb5d4ac49e51ed877b4d6706efe57b25
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.9.1"
|
||||
dio_web_adapter:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: dio_web_adapter
|
||||
sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1469,14 +1453,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.8"
|
||||
pointycastle:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: pointycastle
|
||||
sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
pool:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ dependencies:
|
|||
|
||||
# HTTP & API
|
||||
http: ^1.2.2
|
||||
dio: ^5.7.0
|
||||
|
||||
# UI & Utilities
|
||||
cupertino_icons: ^1.0.8
|
||||
|
|
@ -63,7 +62,6 @@ dependencies:
|
|||
# E2EE Cryptography
|
||||
cryptography: ^2.5.0
|
||||
convert: ^3.1.1
|
||||
pointycastle: ^4.0.0
|
||||
file_picker: ^10.3.10
|
||||
universal_html: ^2.0.8
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue