From 27af848e9c64af08c005d01c995a12e1840d853c Mon Sep 17 00:00:00 2001 From: Taner Sener Date: Tue, 9 Nov 2021 09:31:44 +0000 Subject: [PATCH 1/3] more detailed docs for async execute methods --- .../com/arthenica/ffmpegkit/FFmpegKit.java | 56 ++++++++---- .../arthenica/ffmpegkit/FFmpegKitConfig.java | 30 +++++-- .../com/arthenica/ffmpegkit/FFprobeKit.java | 89 ++++++++++++++----- apple/src/FFmpegKit.h | 56 ++++++++---- apple/src/FFmpegKitConfig.h | 30 +++++-- apple/src/FFprobeKit.h | 82 ++++++++++++----- flutter/flutter/lib/ffmpeg_kit.dart | 11 ++- flutter/flutter/lib/ffmpeg_kit_config.dart | 15 +++- flutter/flutter/lib/ffprobe_kit.dart | 30 +++++-- react-native/src/index.js | 55 +++++++++--- 10 files changed, 338 insertions(+), 116 deletions(-) diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKit.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKit.java index 1dd41f6..150e723 100644 --- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKit.java +++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKit.java @@ -24,8 +24,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; /** - *

Main class to run FFmpeg commands. Supports executing commands both - * synchronously and asynchronously. + *

Main class to run FFmpeg commands. Supports executing commands both synchronously and + * asynchronously. *

  * FFmpegSession session = FFmpegKit.execute("-i file1.mp4 -c:v libxvid file1.avi");
  *
@@ -64,7 +64,10 @@ public class FFmpegKit {
     }
 
     /**
-     * 

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -80,7 +83,10 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -100,7 +106,10 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -118,7 +127,10 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -152,9 +164,11 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -166,9 +180,11 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -184,9 +200,11 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -204,9 +222,11 @@ public class FFmpegKit { } /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java index 8ec348d..3891850 100644 --- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java +++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFmpegKitConfig.java @@ -656,7 +656,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the FFmpeg session provided. + *

Starts an asynchronous FFmpeg execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param ffmpegSession FFmpeg session which includes command options/arguments */ @@ -667,7 +670,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the FFmpeg session provided. + *

Starts an asynchronous FFmpeg execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param ffmpegSession FFmpeg session which includes command options/arguments * @param executorService executor service that will be used to run this asynchronous operation @@ -679,7 +685,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the FFprobe session provided. + *

Starts an asynchronous FFprobe execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param ffprobeSession FFprobe session which includes command options/arguments */ @@ -690,7 +699,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the FFprobe session provided. + *

Starts an asynchronous FFprobe execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param ffprobeSession FFprobe session which includes command options/arguments * @param executorService executor service that will be used to run this asynchronous operation @@ -702,7 +714,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the media information session provided. + *

Starts an asynchronous FFprobe execution for the given media information session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param mediaInformationSession media information session which includes command options/arguments * @param waitTimeout max time to wait until media information is transmitted @@ -714,7 +729,10 @@ public class FFmpegKitConfig { } /** - *

Asynchronously executes the media information session provided. + *

Starts an asynchronous FFprobe execution for the given media information session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param mediaInformationSession media information session which includes command options/arguments * @param executorService executor service that will be used to run this asynchronous operation diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFprobeKit.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFprobeKit.java index 860a289..3db4611 100644 --- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFprobeKit.java +++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/FFprobeKit.java @@ -23,8 +23,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; /** - *

Main class to run FFprobe commands. Supports executing commands both - * synchronously and asynchronously. + *

Main class to run FFprobe commands. Supports executing commands both synchronously and + * asynchronously. *

  * FFprobeSession session = FFprobeKit.execute("-hide_banner -v error -show_entries format=size -of default=noprint_wrappers=1 file1.mp4");
  *
@@ -67,7 +67,10 @@ public class FFprobeKit {
     }
 
     /**
-     * 

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -83,7 +86,10 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be notified when execution is completed @@ -101,7 +107,10 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -119,7 +128,10 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be notified when execution is completed @@ -151,9 +163,11 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -165,9 +179,11 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be notified when execution is completed @@ -181,9 +197,11 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -201,9 +219,11 @@ public class FFprobeKit { } /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -253,7 +273,10 @@ public class FFprobeKit { } /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be called when the execution is completed @@ -269,7 +292,10 @@ public class FFprobeKit { } /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be notified when execution is completed @@ -289,7 +315,10 @@ public class FFprobeKit { } /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be called when the execution is completed @@ -307,7 +336,10 @@ public class FFprobeKit { } /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be notified when execution is completed @@ -343,7 +375,11 @@ public class FFprobeKit { } /** - *

Extracts media information using the command provided asynchronously. + *

Starts an asynchronous FFprobe execution to extract media information using a command. The command passed to + * this method must generate the output in JSON format in order to successfully extract media information from it. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param command FFprobe command that prints media information for a file in JSON format * @param executeCallback callback that will be notified when execution is completed @@ -359,7 +395,12 @@ public class FFprobeKit { } /** - * Extracts media information using the command arguments provided asynchronously. + *

Starts an asynchronous FFprobe execution to extract media information using command arguments. The command + * passed to this method must generate the output in JSON format in order to successfully extract media information + * from it. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * {@jlink ExecuteCallback} if you want to be notified about the result. * * @param arguments FFprobe command arguments that print media information for a file in JSON format * @param executeCallback callback that will be notified when execution is completed diff --git a/apple/src/FFmpegKit.h b/apple/src/FFmpegKit.h index 286621f..bcf8c85 100644 --- a/apple/src/FFmpegKit.h +++ b/apple/src/FFmpegKit.h @@ -29,8 +29,8 @@ #import "StatisticsCallback.h" /** - *

Main class to run FFmpeg commands. Supports executing commands both - * synchronously and asynchronously. + *

Main class to run FFmpeg commands. Supports executing commands both synchronously and + * asynchronously. *

  * FFmpegSession *session = [FFmpegKit execute:@"-i file1.mp4 -c:v libxvid file1.avi"];
  *
@@ -52,7 +52,10 @@
 + (FFmpegSession*)executeWithArguments:(NSArray*)arguments;
 
 /**
- * 

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -61,7 +64,10 @@ + (FFmpegSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback; /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -72,7 +78,10 @@ + (FFmpegSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback withLogCallback:(LogCallback)logCallback withStatisticsCallback:(StatisticsCallback)statisticsCallback; /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -82,7 +91,10 @@ + (FFmpegSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -104,9 +116,11 @@ + (FFmpegSession*)execute:(NSString*)command; /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -115,9 +129,11 @@ + (FFmpegSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback; /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -128,9 +144,11 @@ + (FFmpegSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback withLogCallback:(LogCallback)logCallback withStatisticsCallback:(StatisticsCallback)statisticsCallback; /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -140,9 +158,11 @@ + (FFmpegSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes FFmpeg command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed diff --git a/apple/src/FFmpegKitConfig.h b/apple/src/FFmpegKitConfig.h index a7f9a69..59ddb62 100644 --- a/apple/src/FFmpegKitConfig.h +++ b/apple/src/FFmpegKitConfig.h @@ -189,14 +189,20 @@ typedef NS_ENUM(NSUInteger, Signal) { + (void)getMediaInformationExecute:(MediaInformationSession*)mediaInformationSession withTimeout:(int)waitTimeout; /** - *

Asynchronously executes the FFmpeg session provided. + *

Starts an asynchronous FFmpeg execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffmpegSession FFmpeg session which includes command options/arguments */ + (void)asyncFFmpegExecute:(FFmpegSession*)ffmpegSession; /** - *

Asynchronously executes the FFmpeg session provided. + *

Starts an asynchronous FFmpeg execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffmpegSession FFmpeg session which includes command options/arguments * @param queue dispatch queue that will be used to run this asynchronous operation @@ -204,14 +210,20 @@ typedef NS_ENUM(NSUInteger, Signal) { + (void)asyncFFmpegExecute:(FFmpegSession*)ffmpegSession onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes the FFprobe session provided. + *

Starts an asynchronous FFprobe execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffprobeSession FFprobe session which includes command options/arguments */ + (void)asyncFFprobeExecute:(FFprobeSession*)ffprobeSession; /** - *

Asynchronously executes the FFprobe session provided. + *

Starts an asynchronous FFprobe execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffprobeSession FFprobe session which includes command options/arguments * @param queue dispatch queue that will be used to run this asynchronous operation @@ -219,7 +231,10 @@ typedef NS_ENUM(NSUInteger, Signal) { + (void)asyncFFprobeExecute:(FFprobeSession*)ffprobeSession onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes the media information session provided. + *

Starts an asynchronous FFprobe execution for the given media information session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param mediaInformationSession media information session which includes command options/arguments * @param waitTimeout max time to wait until media information is transmitted @@ -227,7 +242,10 @@ typedef NS_ENUM(NSUInteger, Signal) { + (void)asyncGetMediaInformationExecute:(MediaInformationSession*)mediaInformationSession withTimeout:(int)waitTimeout; /** - *

Asynchronously executes the media information session provided. + *

Starts an asynchronous FFprobe execution for the given media information session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param mediaInformationSession media information session which includes command options/arguments * @param queue dispatch queue that will be used to run this asynchronous operation diff --git a/apple/src/FFprobeKit.h b/apple/src/FFprobeKit.h index 1a11c90..132e644 100644 --- a/apple/src/FFprobeKit.h +++ b/apple/src/FFprobeKit.h @@ -27,8 +27,8 @@ #import "MediaInformationJsonParser.h" /** - *

Main class to run FFprobe commands. Supports executing commands both - * synchronously and asynchronously. + *

Main class to run FFprobe commands. Supports executing commands both synchronously and + * asynchronously. *

  * FFprobeSession *session = [FFprobeKit execute:@"-hide_banner -v error -show_entries format=size -of default=noprint_wrappers=1 file1.mp4"];
  *
@@ -54,7 +54,10 @@
 + (FFprobeSession*)executeWithArguments:(NSArray*)arguments;
 
 /**
- * 

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -63,7 +66,10 @@ + (FFprobeSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback; /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be notified when execution is completed @@ -73,7 +79,10 @@ + (FFprobeSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback withLogCallback:(LogCallback)logCallback; /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -83,7 +92,10 @@ + (FFprobeSession*)executeWithArgumentsAsync:(NSArray*)arguments withExecuteCallback:(ExecuteCallback)executeCallback onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param arguments FFprobe command options/arguments as string array * @param executeCallback callback that will be notified when execution is completed @@ -104,9 +116,11 @@ + (FFprobeSession*)execute:(NSString*)command; /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -115,9 +129,11 @@ + (FFprobeSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback; /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be notified when execution is completed @@ -127,9 +143,11 @@ + (FFprobeSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback withLogCallback:(LogCallback)logCallback; /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -139,9 +157,11 @@ + (FFprobeSession*)executeAsync:(NSString*)command withExecuteCallback:(ExecuteCallback)executeCallback onDispatchQueue:(dispatch_queue_t)queue; /** - *

Asynchronously executes FFprobe command provided. Space character is used to split command - * into arguments. You can use single or double quote characters to specify arguments inside - * your command. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -169,7 +189,10 @@ + (MediaInformationSession*)getMediaInformation:(NSString*)path withTimeout:(int)waitTimeout; /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be called when the execution is completed @@ -178,7 +201,10 @@ + (MediaInformationSession*)getMediaInformationAsync:(NSString*)path withExecuteCallback:(ExecuteCallback)executeCallback; /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be notified when execution is completed @@ -189,7 +215,10 @@ + (MediaInformationSession*)getMediaInformationAsync:(NSString*)path withExecuteCallback:(ExecuteCallback)executeCallback withLogCallback:(LogCallback)logCallback withTimeout:(int)waitTimeout; /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be called when the execution is completed @@ -199,7 +228,10 @@ + (MediaInformationSession*)getMediaInformationAsync:(NSString*)path withExecuteCallback:(ExecuteCallback)executeCallback onDispatchQueue:(dispatch_queue_t)queue; /** - *

Extracts media information for the file specified with path asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be notified when execution is completed @@ -219,7 +251,11 @@ + (MediaInformationSession*)getMediaInformationFromCommand:(NSString*)command; /** - *

Extracts media information using the command provided asynchronously. + *

Starts an asynchronous FFprobe execution to extract media information using a command. The command passed to + * this method must generate the output in JSON format in order to successfully extract media information from it. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command that prints media information for a file in JSON format * @param executeCallback callback that will be notified when execution is completed diff --git a/flutter/flutter/lib/ffmpeg_kit.dart b/flutter/flutter/lib/ffmpeg_kit.dart index 0478592..c19efe2 100644 --- a/flutter/flutter/lib/ffmpeg_kit.dart +++ b/flutter/flutter/lib/ffmpeg_kit.dart @@ -31,7 +31,11 @@ import 'statistics_callback.dart'; class FFmpegKit { static FFmpegKitPlatform _platform = FFmpegKitPlatform.instance; - /// Asynchronously executes FFmpeg with command provided. + /// Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + /// into arguments. You can use single or double quote characters to specify arguments inside your command. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future executeAsync(String command, [ExecuteCallback? executeCallback = null, LogCallback? logCallback = null, @@ -42,7 +46,10 @@ class FFmpegKit { logCallback, statisticsCallback); - /// Asynchronously executes FFmpeg with arguments provided. + /// Starts an asynchronous FFmpeg execution with arguments provided. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future executeWithArgumentsAsync( List commandArguments, [ExecuteCallback? executeCallback = null, diff --git a/flutter/flutter/lib/ffmpeg_kit_config.dart b/flutter/flutter/lib/ffmpeg_kit_config.dart index 5f36189..b2c037e 100644 --- a/flutter/flutter/lib/ffmpeg_kit_config.dart +++ b/flutter/flutter/lib/ffmpeg_kit_config.dart @@ -215,7 +215,10 @@ class FFmpegKitConfig { } } - /// Asynchronously executes the [ffmpegSession] provided. + /// Starts an asynchronous FFmpeg execution for the given session. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future asyncFFmpegExecute(FFmpegSession ffmpegSession) async { try { await init(); @@ -227,7 +230,10 @@ class FFmpegKitConfig { } } - /// Asynchronously executes the [ffprobeSession] provided. + /// Starts an asynchronous FFprobe execution for the given session. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future asyncFFprobeExecute(FFprobeSession ffprobeSession) async { try { await init(); @@ -239,7 +245,10 @@ class FFmpegKitConfig { } } - /// Asynchronously executes the [mediaInformationSession] provided. + /// Starts an asynchronous FFprobe execution for the given media information session. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future asyncGetMediaInformationExecute( MediaInformationSession mediaInformationSession, [int? waitTimeout = null]) async { diff --git a/flutter/flutter/lib/ffprobe_kit.dart b/flutter/flutter/lib/ffprobe_kit.dart index 93cf3a3..87e2aff 100644 --- a/flutter/flutter/lib/ffprobe_kit.dart +++ b/flutter/flutter/lib/ffprobe_kit.dart @@ -31,7 +31,11 @@ import 'src/ffmpeg_kit_factory.dart'; class FFprobeKit { static FFmpegKitPlatform _platform = FFmpegKitPlatform.instance; - /// Asynchronously executes FFprobe with [command] provided. + /// Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + /// into arguments. You can use single or double quote characters to specify arguments inside your command. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future executeAsync(String command, [ExecuteCallback? executeCallback = null, LogCallback? logCallback = null]) async => @@ -40,7 +44,10 @@ class FFprobeKit { executeCallback, logCallback); - /// Asynchronously executes FFprobe with [commandArguments] provided. + /// Starts an asynchronous FFprobe execution with arguments provided. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future executeWithArgumentsAsync( List commandArguments, [ExecuteCallback? executeCallback = null, @@ -53,7 +60,10 @@ class FFprobeKit { return session; } - /// Extracts the media information for the file at [path] asynchronously. + /// Starts an asynchronous FFprobe execution to extract the media information for the specified file. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future getMediaInformationAsync(String path, [ExecuteCallback? executeCallback = null, LogCallback? logCallback = null, @@ -73,7 +83,11 @@ class FFprobeKit { commandArguments, executeCallback, logCallback, waitTimeout); } - /// Extracts media information using the [command] provided asynchronously. + /// Starts an asynchronous FFprobe execution to extract media information using a command. The command passed to + /// this method must generate the output in JSON format in order to successfully extract media information from it. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future getMediaInformationFromCommandAsync( String command, [ExecuteCallback? executeCallback = null, @@ -85,8 +99,12 @@ class FFprobeKit { logCallback, waitTimeout); - /// Extracts media information using the [commandArguments] provided - /// asynchronously. + /// Starts an asynchronous FFprobe execution to extract media information using command arguments. The command + /// passed to this method must generate the output in JSON format in order to successfully extract media information + /// from it. + /// + /// Note that this method returns immediately and does not wait the execution to complete. You must use an + /// [ExecuteCallback] if you want to be notified about the result. static Future getMediaInformationFromCommandArgumentsAsync( List commandArguments, diff --git a/react-native/src/index.js b/react-native/src/index.js index 467608a..8bc1857 100644 --- a/react-native/src/index.js +++ b/react-native/src/index.js @@ -710,7 +710,11 @@ export class ArchDetect { export class FFmpegKit { /** - *

Asynchronously executes FFmpeg with command provided. + *

Starts an asynchronous FFmpeg execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFmpeg command * @param executeCallback callback that will be called when the execution is completed @@ -723,7 +727,10 @@ export class FFmpegKit { } /** - *

Asynchronously executes FFmpeg with arguments provided. + *

Starts an asynchronous FFmpeg execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param commandArguments FFmpeg command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -951,7 +958,10 @@ export class FFmpegKitConfig { } /** - *

Asynchronously executes the FFmpeg session provided. + *

Starts an asynchronous FFmpeg execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffmpegSession FFmpeg session which includes command options/arguments */ @@ -962,7 +972,10 @@ export class FFmpegKitConfig { } /** - *

Asynchronously executes the FFprobe session provided. + *

Starts an asynchronous FFprobe execution for the given session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param ffprobeSession FFprobe session which includes command options/arguments */ @@ -973,7 +986,10 @@ export class FFmpegKitConfig { } /** - *

Asynchronously executes the media information session provided. + *

Starts an asynchronous FFprobe execution for the given media information session. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param mediaInformationSession media information session which includes command options/arguments * @param waitTimeout max time to wait until media information is transmitted @@ -1812,7 +1828,11 @@ export class FFmpegSession extends AbstractSession { export class FFprobeKit { /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution for the given command. Space character is used to split the command + * into arguments. You can use single or double quote characters to specify arguments inside your command. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command * @param executeCallback callback that will be called when the execution is completed @@ -1824,7 +1844,10 @@ export class FFprobeKit { } /** - *

Asynchronously executes FFprobe with arguments provided. + *

Starts an asynchronous FFprobe execution with arguments provided. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param commandArguments FFprobe command options/arguments as string array * @param executeCallback callback that will be called when the execution is completed @@ -1840,7 +1863,10 @@ export class FFprobeKit { } /** - *

Extracts the media information for the specified file asynchronously. + *

Starts an asynchronous FFprobe execution to extract the media information for the specified file. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param path path or uri of a media file * @param executeCallback callback that will be notified when execution is completed @@ -1854,7 +1880,11 @@ export class FFprobeKit { } /** - *

Extracts media information using the command provided asynchronously. + *

Starts an asynchronous FFprobe execution to extract media information using a command. The command passed to + * this method must generate the output in JSON format in order to successfully extract media information from it. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param command FFprobe command that prints media information for a file in JSON format * @param executeCallback callback that will be notified when execution is completed @@ -1867,7 +1897,12 @@ export class FFprobeKit { } /** - *

Extracts media information using the command arguments provided asynchronously. + *

Starts an asynchronous FFprobe execution to extract media information using command arguments. The command + * passed to this method must generate the output in JSON format in order to successfully extract media information + * from it. + * + *

Note that this method returns immediately and does not wait the execution to complete. You must use an + * ExecuteCallback if you want to be notified about the result. * * @param commandArguments FFprobe command arguments that prints media information for a file in JSON format * @param executeCallback callback that will be notified when execution is completed From 2368b5b6430f3ed9b35bb54120cfa1870cee3450 Mon Sep 17 00:00:00 2001 From: Taner Sener Date: Tue, 9 Nov 2021 09:32:41 +0000 Subject: [PATCH 2/3] document api level and min deployment target requirements in hybrid framework readmes --- flutter/flutter/README.md | 27 ++++++++++ react-native/README.md | 107 ++++++++++++++++++++++++++++++++++---- 2 files changed, 123 insertions(+), 11 deletions(-) diff --git a/flutter/flutter/README.md b/flutter/flutter/README.md index 3c2ae0b..b521434 100644 --- a/flutter/flutter/README.md +++ b/flutter/flutter/README.md @@ -77,6 +77,33 @@ same source code but is built with different settings (Architectures, API Level, [LTS Releases](https://github.com/tanersener/ffmpeg-kit#10-lts-releases) section of the project README to see how they compare to each other. +#### 2.5 Android and iOS Support + +The following table shows the Android API level and iOS deployment target required in `ffmpeg_kit_flutter` releases. + + + + + + + + + + + + + + + + + + + + + + +
Main ReleaseLTS Release
Android
API Level
iOS Minimum
Deployment Target
Android
API Level
iOS Minimum
Deployment Target
2412.1169.3
+ ### 3. Using 1. Execute FFmpeg commands. diff --git a/react-native/README.md b/react-native/README.md index 08e5357..87bbbd4 100644 --- a/react-native/README.md +++ b/react-native/README.md @@ -45,18 +45,103 @@ of those packages and external libraries included in each of them. ##### 2.1.1 Package Names -The following table shows all package names defined for `ffmpeg-kit-react-native`. +The following table shows all package names and their respective API levels, iOS deployment targets defined in +`ffmpeg-kit-react-native`. -| Package | Main Release | LTS Release | -| :----: | :----: | :----: | -| min | min | min-lts | -| min-gpl | min-gpl | min-gpl-lts | -| https | https | https-lts | -| https-gpl | https-gpl | https-gpl-lts | -| audio | audio | audio-lts | -| video | video | video-lts | -| full | full | full-lts | -| full-gpl | full-gpl | full-gpl-lts | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PackageMain ReleaseLTS Release
NameAndroid
API Level
iOS Minimum
Deployment Target
NameAndroid
API Level
iOS Minimum
Deployment Target
minmin2412.1min-lts169.3
min-gplmin-gpl2412.1min-gpl-lts169.3
https(*) https2412.1https-lts169.3
https-gplhttps-gpl2412.1https-gpl-lts169.3
audioaudio2412.1audio-lts169.3
videovideo2412.1video-lts169.3
fullfull2412.1full-lts169.3
full-gplfull-gpl2412.1full-gpl-lts169.3
+ +(*) - Main `https` package is the default package #### 2.2 Enabling Packages From 50f4f7ef877779c67b749dc0a388e97d0c33526b Mon Sep 17 00:00:00 2001 From: Taner Sener Date: Tue, 9 Nov 2021 09:40:26 +0000 Subject: [PATCH 3/3] update the links of platform readmes --- README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7d5417c..a934fde 100644 --- a/README.md +++ b/README.md @@ -19,23 +19,19 @@ It includes scripts to build `FFmpeg` native libraries, a wrapper library to run ### 2. Android -See [Android](https://github.com/tanersener/ffmpeg-kit/tree/main/android) to learn more about `FFmpegKit` for -`Android`. +See [Android](android) to learn more about `FFmpegKit` for `Android`. ### 3. iOS, macOS, tvOS -See [Apple](https://github.com/tanersener/ffmpeg-kit/tree/main/apple) to use `FFmpegKit` on `Apple` platforms -(`iOS`, `macOS`, `tvOS`). +See [Apple](apple) to use `FFmpegKit` on `Apple` platforms (`iOS`, `macOS`, `tvOS`). ### 4. Flutter -See [Flutter](https://github.com/tanersener/ffmpeg-kit/tree/main/flutter/flutter) to learn more about `FFmpegKit` for -`Flutter`. +See [Flutter](flutter/flutter) to learn more about `FFmpegKit` for `Flutter`. ### 5. React Native -See [React Native](https://github.com/tanersener/ffmpeg-kit/tree/main/react-native) to learn more about `FFmpegKit` for -`React Native`. +See [React Native](react-native) to learn more about `FFmpegKit` for `React Native`. ### 6. Build Scripts