FFmpegKit iOS / macOS / tvOS API 4.5
Data Structures | Macros | Functions | Variables
FFmpegKitConfig.m File Reference

Go to the source code of this file.

Data Structures

class  CallbackData
 

Macros

#define SESSION_MAP_SIZE   1000
 

Functions

int ffmpeg_execute (int argc, char **argv)
 
int ffprobe_execute (int argc, char **argv)
 
typedef NS_ENUM (NSUInteger, CallbackType)
 
void addSessionToSessionHistory (id< Session > session)
 
void callbackWait (int milliSeconds)
 
void callbackNotify ()
 
void logCallbackDataAdd (int level, NSString *logData)
 
void statisticsCallbackDataAdd (int frameNumber, float fps, float quality, int64_t size, int time, double bitrate, double speed)
 
CallbackDatacallbackDataRemove ()
 
void registerSessionId (long sessionId)
 
void removeSession (long sessionId)
 
void cancelSession (long sessionId)
 
int cancelRequested (long sessionId)
 
void resetMessagesInTransmit (long sessionId)
 
void ffmpegkit_log_callback_function (void *ptr, int level, const char *format, va_list vargs)
 
void ffmpegkit_statistics_callback_function (int frameNumber, float fps, float quality, int64_t size, int time, double bitrate, double speed)
 
void process_log (long sessionId, int levelValue, NSString *logMessage)
 
void process_statistics (long sessionId, int videoFrameNumber, float videoFps, float videoQuality, long size, int time, double bitrate, double speed)
 
void callbackBlockFunction ()
 
int executeFFmpeg (long sessionId, NSArray *arguments)
 
int executeFFprobe (long sessionId, NSArray *arguments)
 

Variables

NSString *const FFmpegKitVersion = @"4.5"
 
NSString *const FFmpegKitNamedPipePrefix = @"fk_pipe_"
 
static AtomicLongpipeIndexGenerator
 
static int sessionHistorySize
 
static volatile NSMutableDictionary * sessionHistoryMap
 
static NSMutableArray * sessionHistoryList
 
static NSRecursiveLock * sessionHistoryLock
 
static atomic_short sessionMap [SESSION_MAP_SIZE]
 
static atomic_int sessionInTransitMessageCountMap [SESSION_MAP_SIZE]
 
static dispatch_queue_t asyncDispatchQueue
 
static LogCallback logCallback
 
static StatisticsCallback statisticsCallback
 
static ExecuteCallback executeCallback
 
static LogRedirectionStrategy globalLogRedirectionStrategy
 
static int redirectionEnabled
 
static NSRecursiveLock * lock
 
static dispatch_semaphore_t semaphore
 
static NSMutableArray * callbackDataArray
 
volatile int handleSIGQUIT = 1
 
volatile int handleSIGINT = 1
 
volatile int handleSIGTERM = 1
 
volatile int handleSIGXCPU = 1
 
volatile int handleSIGPIPE = 1
 
__thread volatile long globalSessionId = 0
 
int configuredLogLevel = LevelAVLogInfo
 
long _sessionId
 
int _logLevel
 
NSString * _logData
 
int _statisticsFrameNumber
 
float _statisticsFps
 
float _statisticsQuality
 
int64_t _statisticsSize
 
int _statisticsTime
 
double _statisticsBitrate
 
double _statisticsSpeed
 

Macro Definition Documentation

◆ SESSION_MAP_SIZE

#define SESSION_MAP_SIZE   1000

Session control variables

Definition at line 57 of file FFmpegKitConfig.m.

Function Documentation

◆ addSessionToSessionHistory()

void addSessionToSessionHistory ( id< Session session)

Definition at line 104 of file FFmpegKitConfig.m.

◆ callbackBlockFunction()

void callbackBlockFunction ( )

Forwards asynchronous messages to Callbacks.

Definition at line 514 of file FFmpegKitConfig.m.

◆ callbackDataRemove()

CallbackData * callbackDataRemove ( )

Removes head of callback data list.

Definition at line 286 of file FFmpegKitConfig.m.

◆ callbackNotify()

void callbackNotify ( )

Notifies threads waiting on callback semaphore.

Definition at line 246 of file FFmpegKitConfig.m.

◆ callbackWait()

void callbackWait ( int  milliSeconds)

Waits on the callback semaphore for the given time.

Parameters
milliSecondswait time in milliseconds

Definition at line 239 of file FFmpegKitConfig.m.

◆ cancelRequested()

int cancelRequested ( long  sessionId)

Checks whether a cancel request for the given session id exists in the session map.

Parameters
sessionIdsession id
Returns
1 if exists, false otherwise

Definition at line 338 of file FFmpegKitConfig.m.

◆ cancelSession()

void cancelSession ( long  sessionId)

Adds a cancel session request to the session map.

Parameters
sessionIdsession id

Definition at line 328 of file FFmpegKitConfig.m.

◆ executeFFmpeg()

int executeFFmpeg ( long  sessionId,
NSArray *  arguments 
)

Definition at line 562 of file FFmpegKitConfig.m.

◆ executeFFprobe()

int executeFFprobe ( long  sessionId,
NSArray *  arguments 
)

Definition at line 602 of file FFmpegKitConfig.m.

◆ ffmpeg_execute()

int ffmpeg_execute ( int  argc,
char **  argv 
)

Forward declaration for function defined in fftools_ffmpeg.c

Definition at line 5209 of file fftools_ffmpeg.c.

◆ ffmpegkit_log_callback_function()

void ffmpegkit_log_callback_function ( void *  ptr,
int  level,
const char *  format,
va_list  vargs 
)

Callback function for FFmpeg/FFprobe logs.

Parameters
ptrpointer to AVClass struct
levellog level
formatformat string
vargsarguments

Definition at line 363 of file FFmpegKitConfig.m.

◆ ffmpegkit_statistics_callback_function()

void ffmpegkit_statistics_callback_function ( int  frameNumber,
float  fps,
float  quality,
int64_t  size,
int  time,
double  bitrate,
double  speed 
)

Callback function for FFmpeg statistics.

Parameters
frameNumberlast processed frame number
fpsframes processed per second
qualityquality of the output stream (video only)
sizesize in bytes
timeprocessed output duration
bitrateoutput bit rate in kbits/s
speedprocessing speed = processed duration / operation duration

Definition at line 394 of file FFmpegKitConfig.m.

◆ ffprobe_execute()

int ffprobe_execute ( int  argc,
char **  argv 
)

Forward declaration for function defined in fftools_ffprobe.c

Definition at line 3717 of file fftools_ffprobe.c.

◆ logCallbackDataAdd()

void logCallbackDataAdd ( int  level,
NSString *  logData 
)

Adds log data to the end of callback data list.

Parameters
levellog level
logDatalog data

Definition at line 256 of file FFmpegKitConfig.m.

◆ NS_ENUM()

typedef NS_ENUM ( NSUInteger  ,
CallbackType   
)

Definition at line 99 of file FFmpegKitConfig.m.

◆ process_log()

void process_log ( long  sessionId,
int  levelValue,
NSString *  logMessage 
)

Definition at line 398 of file FFmpegKitConfig.m.

◆ process_statistics()

void process_statistics ( long  sessionId,
int  videoFrameNumber,
float  videoFps,
float  videoQuality,
long  size,
int  time,
double  bitrate,
double  speed 
)

Definition at line 480 of file FFmpegKitConfig.m.

◆ registerSessionId()

void registerSessionId ( long  sessionId)

Registers a session id to the session map.

Parameters
sessionIdsession id

Definition at line 310 of file FFmpegKitConfig.m.

◆ removeSession()

void removeSession ( long  sessionId)

Removes a session id from the session map.

Parameters
sessionIdsession id

Definition at line 319 of file FFmpegKitConfig.m.

◆ resetMessagesInTransmit()

void resetMessagesInTransmit ( long  sessionId)

Resets the number of messages in transmit for this session.

Parameters
sessionIdsession id

Definition at line 351 of file FFmpegKitConfig.m.

◆ statisticsCallbackDataAdd()

void statisticsCallbackDataAdd ( int  frameNumber,
float  fps,
float  quality,
int64_t  size,
int  time,
double  bitrate,
double  speed 
)

Adds statistics data to the end of callback data list.

Definition at line 271 of file FFmpegKitConfig.m.

Variable Documentation

◆ _logData

NSString* _logData

Definition at line 141 of file FFmpegKitConfig.m.

◆ _logLevel

int _logLevel

Definition at line 140 of file FFmpegKitConfig.m.

◆ _sessionId

long _sessionId
Initial value:
{
CallbackType _type

Definition at line 138 of file FFmpegKitConfig.m.

◆ _statisticsBitrate

double _statisticsBitrate

Definition at line 148 of file FFmpegKitConfig.m.

◆ _statisticsFps

float _statisticsFps

Definition at line 144 of file FFmpegKitConfig.m.

◆ _statisticsFrameNumber

int _statisticsFrameNumber

Definition at line 143 of file FFmpegKitConfig.m.

◆ _statisticsQuality

float _statisticsQuality

Definition at line 145 of file FFmpegKitConfig.m.

◆ _statisticsSize

int64_t _statisticsSize

Definition at line 146 of file FFmpegKitConfig.m.

◆ _statisticsSpeed

double _statisticsSpeed

Definition at line 149 of file FFmpegKitConfig.m.

◆ _statisticsTime

int _statisticsTime

Definition at line 147 of file FFmpegKitConfig.m.

◆ asyncDispatchQueue

dispatch_queue_t asyncDispatchQueue
static

Definition at line 61 of file FFmpegKitConfig.m.

◆ callbackDataArray

NSMutableArray* callbackDataArray
static

Definition at line 78 of file FFmpegKitConfig.m.

◆ configuredLogLevel

int configuredLogLevel = LevelAVLogInfo

Holds the default log level

Definition at line 91 of file FFmpegKitConfig.m.

◆ executeCallback

ExecuteCallback executeCallback
static

Holds callback defined to redirect asynchronous execution results

Definition at line 70 of file FFmpegKitConfig.m.

◆ FFmpegKitNamedPipePrefix

NSString* const FFmpegKitNamedPipePrefix = @"fk_pipe_"

Prefix of named pipes created by ffmpeg-kit.

Definition at line 43 of file FFmpegKitConfig.m.

◆ FFmpegKitVersion

NSString* const FFmpegKitVersion = @"4.5"

Global library version

Definition at line 38 of file FFmpegKitConfig.m.

◆ globalLogRedirectionStrategy

LogRedirectionStrategy globalLogRedirectionStrategy
static

Definition at line 72 of file FFmpegKitConfig.m.

◆ globalSessionId

__thread volatile long globalSessionId = 0

Holds the id of the current execution

Definition at line 88 of file FFmpegKitConfig.m.

◆ handleSIGINT

volatile int handleSIGINT = 1

Definition at line 82 of file FFmpegKitConfig.m.

◆ handleSIGPIPE

volatile int handleSIGPIPE = 1

Definition at line 85 of file FFmpegKitConfig.m.

◆ handleSIGQUIT

volatile int handleSIGQUIT = 1

Fields that control the handling of SIGNALs

Definition at line 81 of file FFmpegKitConfig.m.

◆ handleSIGTERM

volatile int handleSIGTERM = 1

Definition at line 83 of file FFmpegKitConfig.m.

◆ handleSIGXCPU

volatile int handleSIGXCPU = 1

Definition at line 84 of file FFmpegKitConfig.m.

◆ lock

NSRecursiveLock* lock
static

Definition at line 76 of file FFmpegKitConfig.m.

◆ logCallback

LogCallback logCallback
static

Holds callback defined to redirect logs

Definition at line 64 of file FFmpegKitConfig.m.

◆ pipeIndexGenerator

AtomicLong* pipeIndexGenerator
static

Generates ids for named ffmpeg kit pipes.

Definition at line 48 of file FFmpegKitConfig.m.

◆ redirectionEnabled

int redirectionEnabled
static

Redirection control variables

Definition at line 75 of file FFmpegKitConfig.m.

◆ semaphore

dispatch_semaphore_t semaphore
static

Definition at line 77 of file FFmpegKitConfig.m.

◆ sessionHistoryList

NSMutableArray* sessionHistoryList
static

Definition at line 53 of file FFmpegKitConfig.m.

◆ sessionHistoryLock

NSRecursiveLock* sessionHistoryLock
static

Definition at line 54 of file FFmpegKitConfig.m.

◆ sessionHistoryMap

volatile NSMutableDictionary* sessionHistoryMap
static

Definition at line 52 of file FFmpegKitConfig.m.

◆ sessionHistorySize

int sessionHistorySize
static

Definition at line 51 of file FFmpegKitConfig.m.

◆ sessionInTransitMessageCountMap

atomic_int sessionInTransitMessageCountMap[SESSION_MAP_SIZE]
static

Definition at line 59 of file FFmpegKitConfig.m.

◆ sessionMap

atomic_short sessionMap[SESSION_MAP_SIZE]
static

Definition at line 58 of file FFmpegKitConfig.m.

◆ statisticsCallback

StatisticsCallback statisticsCallback
static

Holds callback defined to redirect statistics

Definition at line 67 of file FFmpegKitConfig.m.