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 25fa6e8..8ec348d 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 @@ -1020,6 +1020,16 @@ public class FFmpegKitConfig { } } + /** + *
Clears all, including ongoing, sessions in the session history. + *
Note that callbacks cannot be triggered for deleted sessions. + */ + public static void clearSessions() { + synchronized (sessionHistoryLock) { + sessionHistoryList.clear(); + } + } + /** *
Returns all FFmpeg sessions in the session history. * diff --git a/apple/src/FFmpegKitConfig.h b/apple/src/FFmpegKitConfig.h index ebe1a72..a7f9a69 100644 --- a/apple/src/FFmpegKitConfig.h +++ b/apple/src/FFmpegKitConfig.h @@ -329,6 +329,12 @@ typedef NS_ENUM(NSUInteger, Signal) { */ + (NSArray*)getSessions; +/** + *
Clears all, including ongoing, sessions in the session history. + *
Note that callbacks cannot be triggered for deleted sessions. + */ ++ (void)clearSessions; + /** *
Returns all FFmpeg sessions in the session history. * diff --git a/apple/src/FFmpegKitConfig.m b/apple/src/FFmpegKitConfig.m index f808225..a1f693f 100644 --- a/apple/src/FFmpegKitConfig.m +++ b/apple/src/FFmpegKitConfig.m @@ -1072,6 +1072,14 @@ int executeFFprobe(long sessionId, NSArray* arguments) { return sessionsCopy; } ++ (void)clearSessions { + [sessionHistoryLock lock]; + + [sessionHistoryList removeAllObjects]; + + [sessionHistoryLock unlock]; +} + + (NSArray*)getFFmpegSessions { NSMutableArray* ffmpegSessions = [[NSMutableArray alloc] init];