diff --git a/README.md b/README.md index 3a4b6e0..6252930 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ Test applications are tagged with `ffmpeg-kit` release they depend on. | Platform | FFmpegKit Version | Tag | | :----: |:-----------------:|:---------------------------------------------------------------------------------:| +| Flutter | 6.0.0 | [6.0.0](https://github.com/arthenica/ffmpeg-kit-test/tree/flutter.v6.0.0) | +| Flutter | 6.0.0-LTS | [6.0.0-LTS](https://github.com/arthenica/ffmpeg-kit-test/tree/flutter.v6.0.0.lts) | | Android | 6.0 | [6.0](https://github.com/arthenica/ffmpeg-kit-test/tree/android.v6.0) | | Android | 6.0.LTS | [6.0.LTS](https://github.com/arthenica/ffmpeg-kit-test/tree/android.v6.0.lts) | | iOS | 6.0 | [6.0](https://github.com/arthenica/ffmpeg-kit-test/tree/ios.v6.0) | diff --git a/flutter/test-app-local-dependency/android/app/build.gradle b/flutter/test-app-local-dependency/android/app/build.gradle index ae2a9cf..d219c85 100644 --- a/flutter/test-app-local-dependency/android/app/build.gradle +++ b/flutter/test-app-local-dependency/android/app/build.gradle @@ -25,7 +25,11 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 31 + if (project.android.hasProperty("namespace")) { + namespace 'com.arthenica.ffmpegkit.flutter.android' + } + + compileSdkVersion 33 lintOptions { disable 'InvalidPackage' @@ -34,7 +38,7 @@ android { defaultConfig { applicationId "com.arthenica.ffmpegkit.flutter.android" minSdkVersion 24 - targetSdkVersion 31 + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -57,5 +61,5 @@ flutter { } dependencies { - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13.2' } diff --git a/flutter/test-app-local-dependency/android/build.gradle b/flutter/test-app-local-dependency/android/build.gradle index e29a443..8ce0f1d 100644 --- a/flutter/test-app-local-dependency/android/build.gradle +++ b/flutter/test-app-local-dependency/android/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.1.2' + classpath 'com.android.tools.build:gradle:8.1.0' } } @@ -24,6 +24,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/flutter/test-app-local-dependency/android/gradle/wrapper/gradle-wrapper.properties b/flutter/test-app-local-dependency/android/gradle/wrapper/gradle-wrapper.properties index 53d5a7c..9f4197d 100644 --- a/flutter/test-app-local-dependency/android/gradle/wrapper/gradle-wrapper.properties +++ b/flutter/test-app-local-dependency/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip diff --git a/flutter/test-app-local-dependency/ios/Podfile.lock b/flutter/test-app-local-dependency/ios/Podfile.lock index e0a15e6..e0fe12e 100644 --- a/flutter/test-app-local-dependency/ios/Podfile.lock +++ b/flutter/test-app-local-dependency/ios/Podfile.lock @@ -1,17 +1,18 @@ PODS: - - ffmpeg-kit-ios-https (5.1) - - ffmpeg_kit_flutter (5.1.0): - - ffmpeg_kit_flutter/https (= 5.1.0) + - ffmpeg-kit-ios-https (6.0) + - ffmpeg_kit_flutter (6.0.0): + - ffmpeg_kit_flutter/https (= 6.0.0) - Flutter - - ffmpeg_kit_flutter/https (5.1.0): - - ffmpeg-kit-ios-https (= 5.1) + - ffmpeg_kit_flutter/https (6.0.0): + - ffmpeg-kit-ios-https (= 6.0) - Flutter - Flutter (1.0.0) - fluttertoast (0.0.2): - Flutter - Toast - - path_provider_ios (0.0.1): + - path_provider_foundation (0.0.1): - Flutter + - FlutterMacOS - Toast (4.0.0) - video_player_avfoundation (0.0.1): - Flutter @@ -20,7 +21,7 @@ DEPENDENCIES: - ffmpeg_kit_flutter (from `.symlinks/plugins/ffmpeg_kit_flutter/ios`) - Flutter (from `Flutter`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`) SPEC REPOS: @@ -35,20 +36,20 @@ EXTERNAL SOURCES: :path: Flutter fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" - path_provider_ios: - :path: ".symlinks/plugins/path_provider_ios/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" video_player_avfoundation: :path: ".symlinks/plugins/video_player_avfoundation/ios" SPEC CHECKSUMS: - ffmpeg-kit-ios-https: 8dffbe1623a2f227be98fc314294847a97f818e4 - ffmpeg_kit_flutter: 17e9f35a4ec996ac55051c20be05240f2a0b53e8 + ffmpeg-kit-ios-https: f9c838aa5400a6c5ba12324c6b798f52197ba354 + ffmpeg_kit_flutter: 7b6a64db3b13e8961abe132f7ff63c9b9240027b Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - fluttertoast: 16fbe6039d06a763f3533670197d01fc73459037 - path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 + fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 - video_player_avfoundation: e489aac24ef5cf7af82702979ed16f2a5ef84cff + video_player_avfoundation: 81e49bb3d9fb63dccf9fa0f6d877dc3ddbeac126 PODFILE CHECKSUM: ccd901b1465efa56fa30557fdc5ae4eddcc3f504 -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.1 diff --git a/flutter/test-app-local-dependency/ios/Runner.xcodeproj/project.pbxproj b/flutter/test-app-local-dependency/ios/Runner.xcodeproj/project.pbxproj index 7036e29..0561b4a 100644 --- a/flutter/test-app-local-dependency/ios/Runner.xcodeproj/project.pbxproj +++ b/flutter/test-app-local-dependency/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -167,7 +167,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -232,10 +232,12 @@ }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -263,6 +265,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/flutter/test-app-local-dependency/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/test-app-local-dependency/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6..b52b2e6 100644 --- a/flutter/test-app-local-dependency/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/flutter/test-app-local-dependency/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ CADisableMinimumFrameDurationOnPhone + UIApplicationSupportsIndirectInputEvents + diff --git a/flutter/test-app-local-dependency/lib/https_tab.dart b/flutter/test-app-local-dependency/lib/https_tab.dart index 7e5b4ee..65274da 100644 --- a/flutter/test-app-local-dependency/lib/https_tab.dart +++ b/flutter/test-app-local-dependency/lib/https_tab.dart @@ -182,8 +182,8 @@ class HttpsTab { if (stream.getCodec() != null) { this.appendOutput("Stream codec: ${stream.getCodec()}\n"); } - if (stream.getFullCodec() != null) { - this.appendOutput("Stream full codec: ${stream.getFullCodec()}\n"); + if (stream.getCodecLong() != null) { + this.appendOutput("Stream codec long: ${stream.getCodecLong()}\n"); } if (stream.getFormat() != null) { this.appendOutput("Stream format: ${stream.getFormat()}\n"); diff --git a/flutter/test-app-local-dependency/lib/pipe_tab.dart b/flutter/test-app-local-dependency/lib/pipe_tab.dart index 0a127d0..953292d 100644 --- a/flutter/test-app-local-dependency/lib/pipe_tab.dart +++ b/flutter/test-app-local-dependency/lib/pipe_tab.dart @@ -160,7 +160,7 @@ class PipeTab implements PlayerTab { return; } - int timeInMilliseconds = this._statistics!.getTime(); + double timeInMilliseconds = this._statistics!.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-local-dependency/lib/saf_tab.dart b/flutter/test-app-local-dependency/lib/saf_tab.dart index faaeef5..0690333 100644 --- a/flutter/test-app-local-dependency/lib/saf_tab.dart +++ b/flutter/test-app-local-dependency/lib/saf_tab.dart @@ -164,7 +164,7 @@ class SafTab { return; } - int timeInMilliseconds = statistics.getTime(); + double timeInMilliseconds = statistics.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-local-dependency/lib/subtitle_tab.dart b/flutter/test-app-local-dependency/lib/subtitle_tab.dart index 75429eb..1a1a21b 100644 --- a/flutter/test-app-local-dependency/lib/subtitle_tab.dart +++ b/flutter/test-app-local-dependency/lib/subtitle_tab.dart @@ -212,7 +212,7 @@ class SubtitleTab implements PlayerTab { return; } - int timeInMilliseconds = this._statistics!.getTime(); + double timeInMilliseconds = this._statistics!.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-local-dependency/lib/test_api.dart b/flutter/test-app-local-dependency/lib/test_api.dart index 8796f92..cf87814 100644 --- a/flutter/test-app-local-dependency/lib/test_api.dart +++ b/flutter/test-app-local-dependency/lib/test_api.dart @@ -60,9 +60,9 @@ class Test { static void _testParseSimpleCommand() { var argumentArray = FFmpegKitConfig.parseArguments( - "-hide_banner -loop 1 -i file.jpg -filter_complex [0:v]setpts=PTS-STARTPTS[video] -map [video] -vsync 2 -async 1 video.mp4"); + "-hide_banner -loop 1 -i file.jpg -filter_complex [0:v]setpts=PTS-STARTPTS[video] -map [video] -fps_mode cfr video.mp4"); - assert(argumentArray.length == 14); + assert(argumentArray.length == 12); assert("-hide_banner" == argumentArray[0]); assert("-loop" == argumentArray[1]); @@ -73,11 +73,9 @@ class Test { assert("[0:v]setpts=PTS-STARTPTS[video]" == argumentArray[6]); assert("-map" == argumentArray[7]); assert("[video]" == argumentArray[8]); - assert("-vsync" == argumentArray[9]); - assert("2" == argumentArray[10]); - assert("-async" == argumentArray[11]); - assert("1" == argumentArray[12]); - assert("video.mp4" == argumentArray[13]); + assert("-fps_mode" == argumentArray[9]); + assert("cfr" == argumentArray[10]); + assert("video.mp4" == argumentArray[11]); } static void _testParseSingleQuotesInCommand() { diff --git a/flutter/test-app-local-dependency/lib/video_tab.dart b/flutter/test-app-local-dependency/lib/video_tab.dart index b71b235..9bc6e41 100644 --- a/flutter/test-app-local-dependency/lib/video_tab.dart +++ b/flutter/test-app-local-dependency/lib/video_tab.dart @@ -168,6 +168,12 @@ class VideoTab implements PlayerTab { case "x264": videoCodec = "libx264"; break; + case "h264_mediacodec": + videoCodec = "h264_mediacodec"; + break; + case "hevc_mediacodec": + videoCodec = "hevc_mediacodec"; + break; case "openh264": videoCodec = "libopenh264"; break; @@ -216,7 +222,7 @@ class VideoTab implements PlayerTab { extension = "mov"; break; default: - // mpeg4, x264, x265, xvid, kvazaar + // mpeg4, x264, h264_mediacodec, hevc_mediacodec, x265, xvid, kvazaar extension = "mp4"; break; } @@ -243,7 +249,7 @@ class VideoTab implements PlayerTab { case "hap": return "-format hap_q "; default: - // kvazaar, mpeg4, x264, xvid + // kvazaar, mpeg4, x264, h264_mediacodec, hevc_mediacodec, xvid return ""; } } @@ -253,39 +259,45 @@ class VideoTab implements PlayerTab { list.add(new DropdownMenuItem( value: "mpeg4", - child: SizedBox(width: 100, child: Center(child: new Text("mpeg4"))))); + child: SizedBox(width: 130, child: Center(child: new Text("mpeg4"))))); list.add(new DropdownMenuItem( value: "x264", - child: SizedBox(width: 100, child: Center(child: new Text("x264"))))); + child: SizedBox(width: 130, child: Center(child: new Text("x264"))))); + list.add(new DropdownMenuItem( + value: "h264_mediacodec", + child: SizedBox(width: 130, child: Center(child: new Text("h264_mediacodec"))))); + list.add(new DropdownMenuItem( + value: "hevc_mediacodec", + child: SizedBox(width: 130, child: Center(child: new Text("hevc_mediacodec"))))); list.add(new DropdownMenuItem( value: "openh264", child: - SizedBox(width: 100, child: Center(child: new Text("openh264"))))); + SizedBox(width: 130, child: Center(child: new Text("openh264"))))); list.add(new DropdownMenuItem( value: "x265", - child: SizedBox(width: 100, child: Center(child: new Text("x265"))))); + child: SizedBox(width: 130, child: Center(child: new Text("x265"))))); list.add(new DropdownMenuItem( value: "xvid", - child: SizedBox(width: 100, child: Center(child: new Text("xvid"))))); + child: SizedBox(width: 130, child: Center(child: new Text("xvid"))))); list.add(new DropdownMenuItem( value: "vp8", - child: SizedBox(width: 100, child: Center(child: new Text("vp8"))))); + child: SizedBox(width: 130, child: Center(child: new Text("vp8"))))); list.add(new DropdownMenuItem( value: "vp9", - child: SizedBox(width: 100, child: Center(child: new Text("vp9"))))); + child: SizedBox(width: 130, child: Center(child: new Text("vp9"))))); list.add(new DropdownMenuItem( value: "aom", - child: SizedBox(width: 100, child: Center(child: new Text("aom"))))); + child: SizedBox(width: 130, child: Center(child: new Text("aom"))))); list.add(new DropdownMenuItem( value: "kvazaar", child: - SizedBox(width: 100, child: Center(child: new Text("kvazaar"))))); + SizedBox(width: 130, child: Center(child: new Text("kvazaar"))))); list.add(new DropdownMenuItem( value: "theora", - child: SizedBox(width: 100, child: Center(child: new Text("theora"))))); + child: SizedBox(width: 130, child: Center(child: new Text("theora"))))); list.add(new DropdownMenuItem( value: "hap", - child: SizedBox(width: 100, child: Center(child: new Text("hap"))))); + child: SizedBox(width: 130, child: Center(child: new Text("hap"))))); return list; } @@ -302,7 +314,7 @@ class VideoTab implements PlayerTab { return; } - int timeInMilliseconds = statistics.getTime(); + double timeInMilliseconds = statistics.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-local-dependency/lib/video_util.dart b/flutter/test-app-local-dependency/lib/video_util.dart index 28c8f5d..453017b 100644 --- a/flutter/test-app-local-dependency/lib/video_util.dart +++ b/flutter/test-app-local-dependency/lib/video_util.dart @@ -140,7 +140,7 @@ class VideoUtil { "[stream1overlaid][stream2blended][stream2overlaid][stream3blended][stream3overlaid]concat=n=5:v=1:a=0,scale=w=640:h=424,format=" + pixelFormat + "[video]\"" + - " -map [video] -vsync 2 -async 1 " + + " -map [video] -fps_mode cfr " + customOptions + "-c:v " + videoCodec + @@ -174,7 +174,7 @@ class VideoUtil { "[3:v][stream2overlaid]overlay=x=\'2*mod(n,4)\':y=\'2*mod(n,2)\',trim=duration=3[stream2shaking];" + "[3:v][stream3overlaid]overlay=x=\'2*mod(n,4)\':y=\'2*mod(n,2)\',trim=duration=3[stream3shaking];" + "[stream1shaking][stream2shaking][stream3shaking]concat=n=3:v=1:a=0,scale=w=640:h=424,format=yuv420p[video]\"" + - " -map [video] -vsync 2 -async 1 -c:v mpeg4 -r 30 " + + " -map [video] -fps_mode cfr -c:v mpeg4 -r 30 " + videoFilePath; } @@ -205,7 +205,7 @@ class VideoUtil { "[stream2starting][stream1ending]blend=all_expr=\'if(gte(X,(W/2)*T/1)*lte(X,W-(W/2)*T/1),B,A)\':shortest=1[stream2blended];" + "[stream3starting][stream2ending]blend=all_expr=\'if(gte(X,(W/2)*T/1)*lte(X,W-(W/2)*T/1),B,A)\':shortest=1[stream3blended];" + "[stream1overlaid][stream2blended][stream2overlaid][stream3blended][stream3overlaid]concat=n=5:v=1:a=0,scale=w=640:h=424,format=yuv420p[video]\"" + - " -map [video] -vsync 2 -async 1 -c:v mpeg4 -r 30 " + + " -map [video] -fps_mode cfr -c:v mpeg4 -r 30 " + videoFilePath; } diff --git a/flutter/test-app-local-dependency/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter/test-app-local-dependency/macos/Flutter/GeneratedPluginRegistrant.swift index f43fea8..ae6b0e1 100644 --- a/flutter/test-app-local-dependency/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter/test-app-local-dependency/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,7 +6,7 @@ import FlutterMacOS import Foundation import ffmpeg_kit_flutter -import path_provider_macos +import path_provider_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FFmpegKitFlutterPlugin.register(with: registry.registrar(forPlugin: "FFmpegKitFlutterPlugin")) diff --git a/flutter/test-app-local-dependency/macos/Podfile.lock b/flutter/test-app-local-dependency/macos/Podfile.lock index f82aa74..cf65637 100644 --- a/flutter/test-app-local-dependency/macos/Podfile.lock +++ b/flutter/test-app-local-dependency/macos/Podfile.lock @@ -1,19 +1,20 @@ PODS: - - ffmpeg-kit-macos-https (5.1) - - ffmpeg_kit_flutter (5.1.0): - - ffmpeg_kit_flutter/https (= 5.1.0) + - ffmpeg-kit-macos-https (6.0) + - ffmpeg_kit_flutter (6.0.0): + - ffmpeg_kit_flutter/https (= 6.0.0) - FlutterMacOS - - ffmpeg_kit_flutter/https (5.1.0): - - ffmpeg-kit-macos-https (= 5.1) + - ffmpeg_kit_flutter/https (6.0.0): + - ffmpeg-kit-macos-https (= 6.0) - FlutterMacOS - FlutterMacOS (1.0.0) - - path_provider_macos (0.0.1): + - path_provider_foundation (0.0.1): + - Flutter - FlutterMacOS DEPENDENCIES: - ffmpeg_kit_flutter (from `Flutter/ephemeral/.symlinks/plugins/ffmpeg_kit_flutter/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - - path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) SPEC REPOS: trunk: @@ -24,15 +25,15 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/ffmpeg_kit_flutter/macos FlutterMacOS: :path: Flutter/ephemeral - path_provider_macos: - :path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin SPEC CHECKSUMS: - ffmpeg-kit-macos-https: ff9c8479ed36b20a4e07b265e1bddd36d62a7d7b - ffmpeg_kit_flutter: de6ad9df446c3b70c34033f49a163d05313eea61 - FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811 - path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19 + ffmpeg-kit-macos-https: 60de703db964ccca7fd0d4d1611f4c102a8139cc + ffmpeg_kit_flutter: 2d707a142ffd3fb37f517faeb67164a68319bcc0 + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PODFILE CHECKSUM: 0d3963a09fc94f580682bd88480486da345dc3f0 -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.1 diff --git a/flutter/test-app-local-dependency/macos/Runner.xcodeproj/project.pbxproj b/flutter/test-app-local-dependency/macos/Runner.xcodeproj/project.pbxproj index 9ef2d14..30bff36 100644 --- a/flutter/test-app-local-dependency/macos/Runner.xcodeproj/project.pbxproj +++ b/flutter/test-app-local-dependency/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -202,7 +202,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -255,6 +255,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/flutter/test-app-local-dependency/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/test-app-local-dependency/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 833e8ee..0c56bee 100644 --- a/flutter/test-app-local-dependency/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/flutter/test-app-local-dependency/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =2.17.0 <3.0.0" - flutter: ">=3.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" + flutter: ">=3.3.0" diff --git a/flutter/test-app-local-dependency/pubspec.yaml b/flutter/test-app-local-dependency/pubspec.yaml index 596b99b..e9ebc6f 100644 --- a/flutter/test-app-local-dependency/pubspec.yaml +++ b/flutter/test-app-local-dependency/pubspec.yaml @@ -1,10 +1,10 @@ name: ffmpeg_kit_flutter_test description: Demonstrates how to use the ffmpeg_kit_flutter plugin. -version: 5.1.0 +version: 6.0.0 publish_to: 'none' environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.12.0 <4.0.0" dependencies: flutter: @@ -12,10 +12,12 @@ dependencies: ffmpeg_kit_flutter: path: ../../../ffmpeg-kit/flutter/flutter cupertino_icons: ^1.0.5 - path_provider: ^2.0.11 - path: ^1.8.2 - fluttertoast: ^8.0.9 - video_player: ^2.4.7 + path_provider: ^2.1.0 + path: ^1.8.3 + fluttertoast: + git: + url: https://github.com/ponnamkarthik/FlutterToast.git + video_player: ^2.7.0 dev_dependencies: flutter_test: diff --git a/flutter/test-app-pub/android/app/build.gradle b/flutter/test-app-pub/android/app/build.gradle index ae2a9cf..d219c85 100644 --- a/flutter/test-app-pub/android/app/build.gradle +++ b/flutter/test-app-pub/android/app/build.gradle @@ -25,7 +25,11 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 31 + if (project.android.hasProperty("namespace")) { + namespace 'com.arthenica.ffmpegkit.flutter.android' + } + + compileSdkVersion 33 lintOptions { disable 'InvalidPackage' @@ -34,7 +38,7 @@ android { defaultConfig { applicationId "com.arthenica.ffmpegkit.flutter.android" minSdkVersion 24 - targetSdkVersion 31 + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -57,5 +61,5 @@ flutter { } dependencies { - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13.2' } diff --git a/flutter/test-app-pub/android/build.gradle b/flutter/test-app-pub/android/build.gradle index 89589d4..8ce0f1d 100644 --- a/flutter/test-app-pub/android/build.gradle +++ b/flutter/test-app-pub/android/build.gradle @@ -1,13 +1,11 @@ buildscript { - ext.kotlin_version = "1.6.10" repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.1.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.android.tools.build:gradle:8.1.0' } } @@ -26,6 +24,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/flutter/test-app-pub/android/gradle/wrapper/gradle-wrapper.properties b/flutter/test-app-pub/android/gradle/wrapper/gradle-wrapper.properties index 53d5a7c..9f4197d 100644 --- a/flutter/test-app-pub/android/gradle/wrapper/gradle-wrapper.properties +++ b/flutter/test-app-pub/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip diff --git a/flutter/test-app-pub/ios/Podfile.lock b/flutter/test-app-pub/ios/Podfile.lock index 22fdc3e..570dc51 100644 --- a/flutter/test-app-pub/ios/Podfile.lock +++ b/flutter/test-app-pub/ios/Podfile.lock @@ -1,17 +1,18 @@ PODS: - - ffmpeg-kit-ios-video (5.1.LTS) - - ffmpeg_kit_flutter_video (5.1.0.LTS): - - ffmpeg_kit_flutter_video/video-lts (= 5.1.0.LTS) + - ffmpeg-kit-ios-video (6.0.LTS) + - ffmpeg_kit_flutter_video (6.0.0.LTS): + - ffmpeg_kit_flutter_video/video-lts (= 6.0.0.LTS) - Flutter - - ffmpeg_kit_flutter_video/video-lts (5.1.0.LTS): - - ffmpeg-kit-ios-video (= 5.1.LTS) + - ffmpeg_kit_flutter_video/video-lts (6.0.0.LTS): + - ffmpeg-kit-ios-video (= 6.0.LTS) - Flutter - Flutter (1.0.0) - fluttertoast (0.0.2): - Flutter - Toast - - path_provider_ios (0.0.1): + - path_provider_foundation (0.0.1): - Flutter + - FlutterMacOS - Toast (4.0.0) - video_player_avfoundation (0.0.1): - Flutter @@ -20,7 +21,7 @@ DEPENDENCIES: - ffmpeg_kit_flutter_video (from `.symlinks/plugins/ffmpeg_kit_flutter_video/ios`) - Flutter (from `Flutter`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`) SPEC REPOS: @@ -35,20 +36,20 @@ EXTERNAL SOURCES: :path: Flutter fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" - path_provider_ios: - :path: ".symlinks/plugins/path_provider_ios/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" video_player_avfoundation: :path: ".symlinks/plugins/video_player_avfoundation/ios" SPEC CHECKSUMS: - ffmpeg-kit-ios-video: 9b99ee4cd072497e1c75fc4abcd3564012e6f59c - ffmpeg_kit_flutter_video: 10a76e270d62817adc2810f3cb92c9b1310cd4dc + ffmpeg-kit-ios-video: ca334e2a4b9a6b2c739a531d262384f6e9e0e853 + ffmpeg_kit_flutter_video: 9d895b71d8ec55a86bda260f66d9a38f944e8cbc Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - fluttertoast: 16fbe6039d06a763f3533670197d01fc73459037 - path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 + fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 - video_player_avfoundation: e489aac24ef5cf7af82702979ed16f2a5ef84cff + video_player_avfoundation: 81e49bb3d9fb63dccf9fa0f6d877dc3ddbeac126 PODFILE CHECKSUM: ccd901b1465efa56fa30557fdc5ae4eddcc3f504 -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.1 diff --git a/flutter/test-app-pub/ios/Runner.xcodeproj/project.pbxproj b/flutter/test-app-pub/ios/Runner.xcodeproj/project.pbxproj index c9317b6..4d9bb76 100644 --- a/flutter/test-app-pub/ios/Runner.xcodeproj/project.pbxproj +++ b/flutter/test-app-pub/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -167,7 +167,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -232,10 +232,12 @@ }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -263,6 +265,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/flutter/test-app-pub/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/test-app-pub/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6..b52b2e6 100644 --- a/flutter/test-app-pub/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/flutter/test-app-pub/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ CADisableMinimumFrameDurationOnPhone + UIApplicationSupportsIndirectInputEvents + diff --git a/flutter/test-app-pub/lib/https_tab.dart b/flutter/test-app-pub/lib/https_tab.dart index 399079d..8676fec 100644 --- a/flutter/test-app-pub/lib/https_tab.dart +++ b/flutter/test-app-pub/lib/https_tab.dart @@ -182,8 +182,8 @@ class HttpsTab { if (stream.getCodec() != null) { this.appendOutput("Stream codec: ${stream.getCodec()}\n"); } - if (stream.getFullCodec() != null) { - this.appendOutput("Stream full codec: ${stream.getFullCodec()}\n"); + if (stream.getCodecLong() != null) { + this.appendOutput("Stream codec long: ${stream.getCodecLong()}\n"); } if (stream.getFormat() != null) { this.appendOutput("Stream format: ${stream.getFormat()}\n"); diff --git a/flutter/test-app-pub/lib/pipe_tab.dart b/flutter/test-app-pub/lib/pipe_tab.dart index 1ad4d63..6563697 100644 --- a/flutter/test-app-pub/lib/pipe_tab.dart +++ b/flutter/test-app-pub/lib/pipe_tab.dart @@ -160,7 +160,7 @@ class PipeTab implements PlayerTab { return; } - int timeInMilliseconds = this._statistics!.getTime(); + double timeInMilliseconds = this._statistics!.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-pub/lib/saf_tab.dart b/flutter/test-app-pub/lib/saf_tab.dart index fe91899..409b7d7 100644 --- a/flutter/test-app-pub/lib/saf_tab.dart +++ b/flutter/test-app-pub/lib/saf_tab.dart @@ -164,7 +164,7 @@ class SafTab { return; } - int timeInMilliseconds = statistics.getTime(); + double timeInMilliseconds = statistics.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-pub/lib/subtitle_tab.dart b/flutter/test-app-pub/lib/subtitle_tab.dart index de27f49..339666d 100644 --- a/flutter/test-app-pub/lib/subtitle_tab.dart +++ b/flutter/test-app-pub/lib/subtitle_tab.dart @@ -212,7 +212,7 @@ class SubtitleTab implements PlayerTab { return; } - int timeInMilliseconds = this._statistics!.getTime(); + double timeInMilliseconds = this._statistics!.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-pub/lib/test_api.dart b/flutter/test-app-pub/lib/test_api.dart index 3f4a369..7944127 100644 --- a/flutter/test-app-pub/lib/test_api.dart +++ b/flutter/test-app-pub/lib/test_api.dart @@ -60,9 +60,9 @@ class Test { static void _testParseSimpleCommand() { var argumentArray = FFmpegKitConfig.parseArguments( - "-hide_banner -loop 1 -i file.jpg -filter_complex [0:v]setpts=PTS-STARTPTS[video] -map [video] -vsync 2 -async 1 video.mp4"); + "-hide_banner -loop 1 -i file.jpg -filter_complex [0:v]setpts=PTS-STARTPTS[video] -map [video] -fps_mode cfr video.mp4"); - assert(argumentArray.length == 14); + assert(argumentArray.length == 12); assert("-hide_banner" == argumentArray[0]); assert("-loop" == argumentArray[1]); @@ -73,11 +73,9 @@ class Test { assert("[0:v]setpts=PTS-STARTPTS[video]" == argumentArray[6]); assert("-map" == argumentArray[7]); assert("[video]" == argumentArray[8]); - assert("-vsync" == argumentArray[9]); - assert("2" == argumentArray[10]); - assert("-async" == argumentArray[11]); - assert("1" == argumentArray[12]); - assert("video.mp4" == argumentArray[13]); + assert("-fps_mode" == argumentArray[9]); + assert("cfr" == argumentArray[10]); + assert("video.mp4" == argumentArray[11]); } static void _testParseSingleQuotesInCommand() { diff --git a/flutter/test-app-pub/lib/video_tab.dart b/flutter/test-app-pub/lib/video_tab.dart index 0bcf07f..d788630 100644 --- a/flutter/test-app-pub/lib/video_tab.dart +++ b/flutter/test-app-pub/lib/video_tab.dart @@ -168,6 +168,12 @@ class VideoTab implements PlayerTab { case "x264": videoCodec = "libx264"; break; + case "h264_mediacodec": + videoCodec = "h264_mediacodec"; + break; + case "hevc_mediacodec": + videoCodec = "hevc_mediacodec"; + break; case "openh264": videoCodec = "libopenh264"; break; @@ -216,7 +222,7 @@ class VideoTab implements PlayerTab { extension = "mov"; break; default: - // mpeg4, x264, x265, xvid, kvazaar + // mpeg4, x264, h264_mediacodec, hevc_mediacodec, x265, xvid, kvazaar extension = "mp4"; break; } @@ -243,7 +249,7 @@ class VideoTab implements PlayerTab { case "hap": return "-format hap_q "; default: - // kvazaar, mpeg4, x264, xvid + // kvazaar, mpeg4, x264, h264_mediacodec, hevc_mediacodec, xvid return ""; } } @@ -253,39 +259,45 @@ class VideoTab implements PlayerTab { list.add(new DropdownMenuItem( value: "mpeg4", - child: SizedBox(width: 100, child: Center(child: new Text("mpeg4"))))); + child: SizedBox(width: 130, child: Center(child: new Text("mpeg4"))))); list.add(new DropdownMenuItem( value: "x264", - child: SizedBox(width: 100, child: Center(child: new Text("x264"))))); + child: SizedBox(width: 130, child: Center(child: new Text("x264"))))); + list.add(new DropdownMenuItem( + value: "h264_mediacodec", + child: SizedBox(width: 130, child: Center(child: new Text("h264_mediacodec"))))); + list.add(new DropdownMenuItem( + value: "hevc_mediacodec", + child: SizedBox(width: 130, child: Center(child: new Text("hevc_mediacodec"))))); list.add(new DropdownMenuItem( value: "openh264", child: - SizedBox(width: 100, child: Center(child: new Text("openh264"))))); + SizedBox(width: 130, child: Center(child: new Text("openh264"))))); list.add(new DropdownMenuItem( value: "x265", - child: SizedBox(width: 100, child: Center(child: new Text("x265"))))); + child: SizedBox(width: 130, child: Center(child: new Text("x265"))))); list.add(new DropdownMenuItem( value: "xvid", - child: SizedBox(width: 100, child: Center(child: new Text("xvid"))))); + child: SizedBox(width: 130, child: Center(child: new Text("xvid"))))); list.add(new DropdownMenuItem( value: "vp8", - child: SizedBox(width: 100, child: Center(child: new Text("vp8"))))); + child: SizedBox(width: 130, child: Center(child: new Text("vp8"))))); list.add(new DropdownMenuItem( value: "vp9", - child: SizedBox(width: 100, child: Center(child: new Text("vp9"))))); + child: SizedBox(width: 130, child: Center(child: new Text("vp9"))))); list.add(new DropdownMenuItem( value: "aom", - child: SizedBox(width: 100, child: Center(child: new Text("aom"))))); + child: SizedBox(width: 130, child: Center(child: new Text("aom"))))); list.add(new DropdownMenuItem( value: "kvazaar", child: - SizedBox(width: 100, child: Center(child: new Text("kvazaar"))))); + SizedBox(width: 130, child: Center(child: new Text("kvazaar"))))); list.add(new DropdownMenuItem( value: "theora", - child: SizedBox(width: 100, child: Center(child: new Text("theora"))))); + child: SizedBox(width: 130, child: Center(child: new Text("theora"))))); list.add(new DropdownMenuItem( value: "hap", - child: SizedBox(width: 100, child: Center(child: new Text("hap"))))); + child: SizedBox(width: 130, child: Center(child: new Text("hap"))))); return list; } @@ -302,7 +314,7 @@ class VideoTab implements PlayerTab { return; } - int timeInMilliseconds = statistics.getTime(); + double timeInMilliseconds = statistics.getTime(); int totalVideoDuration = 9000; int completePercentage = (timeInMilliseconds * 100) ~/ totalVideoDuration; diff --git a/flutter/test-app-pub/lib/video_util.dart b/flutter/test-app-pub/lib/video_util.dart index b9539ab..00f4a29 100644 --- a/flutter/test-app-pub/lib/video_util.dart +++ b/flutter/test-app-pub/lib/video_util.dart @@ -140,7 +140,7 @@ class VideoUtil { "[stream1overlaid][stream2blended][stream2overlaid][stream3blended][stream3overlaid]concat=n=5:v=1:a=0,scale=w=640:h=424,format=" + pixelFormat + "[video]\"" + - " -map [video] -vsync 2 -async 1 " + + " -map [video] -fps_mode cfr " + customOptions + "-c:v " + videoCodec + @@ -174,7 +174,7 @@ class VideoUtil { "[3:v][stream2overlaid]overlay=x=\'2*mod(n,4)\':y=\'2*mod(n,2)\',trim=duration=3[stream2shaking];" + "[3:v][stream3overlaid]overlay=x=\'2*mod(n,4)\':y=\'2*mod(n,2)\',trim=duration=3[stream3shaking];" + "[stream1shaking][stream2shaking][stream3shaking]concat=n=3:v=1:a=0,scale=w=640:h=424,format=yuv420p[video]\"" + - " -map [video] -vsync 2 -async 1 -c:v mpeg4 -r 30 " + + " -map [video] -fps_mode cfr -c:v mpeg4 -r 30 " + videoFilePath; } @@ -205,7 +205,7 @@ class VideoUtil { "[stream2starting][stream1ending]blend=all_expr=\'if(gte(X,(W/2)*T/1)*lte(X,W-(W/2)*T/1),B,A)\':shortest=1[stream2blended];" + "[stream3starting][stream2ending]blend=all_expr=\'if(gte(X,(W/2)*T/1)*lte(X,W-(W/2)*T/1),B,A)\':shortest=1[stream3blended];" + "[stream1overlaid][stream2blended][stream2overlaid][stream3blended][stream3overlaid]concat=n=5:v=1:a=0,scale=w=640:h=424,format=yuv420p[video]\"" + - " -map [video] -vsync 2 -async 1 -c:v mpeg4 -r 30 " + + " -map [video] -fps_mode cfr -c:v mpeg4 -r 30 " + videoFilePath; } diff --git a/flutter/test-app-pub/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter/test-app-pub/macos/Flutter/GeneratedPluginRegistrant.swift index c7a5213..7e85f16 100644 --- a/flutter/test-app-pub/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter/test-app-pub/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,7 +6,7 @@ import FlutterMacOS import Foundation import ffmpeg_kit_flutter_video -import path_provider_macos +import path_provider_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FFmpegKitFlutterPlugin.register(with: registry.registrar(forPlugin: "FFmpegKitFlutterPlugin")) diff --git a/flutter/test-app-pub/macos/Podfile.lock b/flutter/test-app-pub/macos/Podfile.lock index fb71941..a7ffb49 100644 --- a/flutter/test-app-pub/macos/Podfile.lock +++ b/flutter/test-app-pub/macos/Podfile.lock @@ -1,19 +1,20 @@ PODS: - - ffmpeg-kit-macos-video (5.1.LTS) - - ffmpeg_kit_flutter_video (5.1.0.LTS): - - ffmpeg_kit_flutter_video/video-lts (= 5.1.0.LTS) + - ffmpeg-kit-macos-video (6.0.LTS) + - ffmpeg_kit_flutter_video (6.0.0.LTS): + - ffmpeg_kit_flutter_video/video-lts (= 6.0.0.LTS) - FlutterMacOS - - ffmpeg_kit_flutter_video/video-lts (5.1.0.LTS): - - ffmpeg-kit-macos-video (= 5.1.LTS) + - ffmpeg_kit_flutter_video/video-lts (6.0.0.LTS): + - ffmpeg-kit-macos-video (= 6.0.LTS) - FlutterMacOS - FlutterMacOS (1.0.0) - - path_provider_macos (0.0.1): + - path_provider_foundation (0.0.1): + - Flutter - FlutterMacOS DEPENDENCIES: - ffmpeg_kit_flutter_video (from `Flutter/ephemeral/.symlinks/plugins/ffmpeg_kit_flutter_video/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - - path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) SPEC REPOS: trunk: @@ -24,15 +25,15 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/ffmpeg_kit_flutter_video/macos FlutterMacOS: :path: Flutter/ephemeral - path_provider_macos: - :path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin SPEC CHECKSUMS: - ffmpeg-kit-macos-video: 761ececb9e35e5b0b1ec860e139cd6144fc2b1d9 - ffmpeg_kit_flutter_video: 95174daee4bbcd7590060c3f66838eeaacbfb9de - FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811 - path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19 + ffmpeg-kit-macos-video: 77d7dc3ed55acdf79974bd78bfc288cc5c27397a + ffmpeg_kit_flutter_video: f006ba216bcfa3704ea9b74ba03bfb105f363bb4 + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PODFILE CHECKSUM: 0d3963a09fc94f580682bd88480486da345dc3f0 -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.1 diff --git a/flutter/test-app-pub/macos/Runner.xcodeproj/project.pbxproj b/flutter/test-app-pub/macos/Runner.xcodeproj/project.pbxproj index 9ef2d14..30bff36 100644 --- a/flutter/test-app-pub/macos/Runner.xcodeproj/project.pbxproj +++ b/flutter/test-app-pub/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXAggregateTarget section */ @@ -202,7 +202,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -255,6 +255,7 @@ /* Begin PBXShellScriptBuildPhase section */ 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/flutter/test-app-pub/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/test-app-pub/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 833e8ee..0c56bee 100644 --- a/flutter/test-app-pub/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/flutter/test-app-pub/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =2.17.0 <3.0.0" - flutter: ">=3.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" + flutter: ">=3.3.0" diff --git a/flutter/test-app-pub/pubspec.yaml b/flutter/test-app-pub/pubspec.yaml index 167e5ef..5b2c544 100644 --- a/flutter/test-app-pub/pubspec.yaml +++ b/flutter/test-app-pub/pubspec.yaml @@ -1,20 +1,22 @@ name: ffmpeg_kit_flutter_test description: Demonstrates how to use the ffmpeg_kit_flutter plugin. -version: 5.1.0 +version: 6.0.0 publish_to: 'none' environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.12.0 <4.0.0" dependencies: flutter: sdk: flutter - ffmpeg_kit_flutter_video: 5.1.0-LTS + ffmpeg_kit_flutter_video: 6.0.0-LTS cupertino_icons: ^1.0.5 - path_provider: ^2.0.11 - path: ^1.8.2 - fluttertoast: ^8.0.9 - video_player: ^2.4.7 + path_provider: ^2.1.0 + path: ^1.8.3 + fluttertoast: + git: + url: https://github.com/ponnamkarthik/FlutterToast.git + video_player: ^2.7.0 dev_dependencies: flutter_test: