36+ (instancetype)create:(NSArray*)arguments {
45 return [[
self alloc] init:arguments withCompleteCallback:completeCallback withLogCallback:logCallback withStatisticsCallback:statisticsCallback withLogRedirectionStrategy:[
FFmpegKitConfig getLogRedirectionStrategy]];
48+ (instancetype)create:(NSArray*)arguments withCompleteCallback:(
FFmpegSessionCompleteCallback)completeCallback withLogCallback:(
LogCallback)logCallback withStatisticsCallback:(
StatisticsCallback)statisticsCallback withLogRedirectionStrategy:(LogRedirectionStrategy)logRedirectionStrategy {
49 return [[
self alloc] init:arguments withCompleteCallback:completeCallback withLogCallback:logCallback withStatisticsCallback:statisticsCallback withLogRedirectionStrategy:logRedirectionStrategy];
52- (instancetype)init:(NSArray*)arguments withCompleteCallback:(
FFmpegSessionCompleteCallback)completeCallback withLogCallback:(
LogCallback)logCallback withStatisticsCallback:(
StatisticsCallback)statisticsCallback withLogRedirectionStrategy:(LogRedirectionStrategy)logRedirectionStrategy {
54 self = [
super init:arguments withLogCallback:logCallback withLogRedirectionStrategy:logRedirectionStrategy];
67 return _statisticsCallback;
74- (NSArray*)getAllStatisticsWithTimeout:(
int)waitTimeout {
75 [
self waitForAsynchronousMessagesInTransmit:waitTimeout];
77 if ([
self thereAreAsynchronousMessagesInTransmit]) {
78 NSLog(
@"getAllStatisticsWithTimeout was called to return all statistics but there are still statistics being transmitted for session id %ld.", [
self getSessionId]);
81 return [
self getStatistics];
84- (NSArray*)getAllStatistics {
85 return [
self getAllStatisticsWithTimeout:AbstractSessionDefaultTimeoutForAsynchronousMessagesInTransmit];
88- (NSArray*)getStatistics {
89 [_statisticsLock lock];
90 NSArray* statisticsCopy = [_statistics copy];
91 [_statisticsLock unlock];
93 return statisticsCopy;
99 [_statisticsLock lock];
101 lastStatistics = [_statistics objectAtIndex:[_statistics count] - 1];
103 [_statisticsLock unlock];
105 return lastStatistics;
108- (void)addStatistics:(
Statistics*)statistics {
109 [_statisticsLock lock];
110 [_statistics addObject:statistics];
111 [_statisticsLock unlock];
122- (BOOL)isMediaInformation {
static StatisticsCallback statisticsCallback
FFmpegSessionCompleteCallback _completeCallback
NSRecursiveLock * _statisticsLock
NSMutableArray * _statistics
void(^ FFmpegSessionCompleteCallback)(FFmpegSession *session)
void(^ LogCallback)(Log *log)
void(^ StatisticsCallback)(Statistics *statistics)
LogRedirectionStrategy getLogRedirectionStrategy()