diff --git a/apple/src/FFmpegKitConfig.h b/apple/src/FFmpegKitConfig.h index acfad88..f0f5a6b 100644 --- a/apple/src/FFmpegKitConfig.h +++ b/apple/src/FFmpegKitConfig.h @@ -375,6 +375,14 @@ typedef NS_ENUM(NSUInteger, Signal) { */ + (NSArray*)getSessions; +/** + *

Clears the session specified with sessionId from the session history. + *

Note that callbacks cannot be triggered for deleted sessions. + * + * @param sessionId session identifier + */ ++ (void)clearSession:(long)sessionId; + /** *

Clears all, including ongoing, sessions in the session history. *

Note that callbacks cannot be triggered for deleted sessions. diff --git a/apple/src/FFmpegKitConfig.m b/apple/src/FFmpegKitConfig.m index 774f3f6..d6e339c 100644 --- a/apple/src/FFmpegKitConfig.m +++ b/apple/src/FFmpegKitConfig.m @@ -1237,6 +1237,17 @@ int executeFFprobe(long sessionId, NSArray* arguments) { return sessionsCopy; } ++ (void)clearSession:(long)sessionId { + [sessionHistoryLock lock]; + id session = [self getSession:sessionId]; + if (session != nil) { + [sessionHistoryList removeObject:session]; + [sessionHistoryMap removeObjectForKey:[NSNumber numberWithLong:sessionId]]; + } + + [sessionHistoryLock unlock]; +} + + (void)clearSessions { [sessionHistoryLock lock];