MobileFFmpeg Android API
4.4
|
Go to the source code of this file.
Data Structures | |
struct | CallbackData |
Functions | |
int | ffmpeg_execute (int argc, char **argv) |
static const char * | avutil_log_get_level_str (int level) |
static void | avutil_log_format_line (void *avcl, int level, const char *fmt, va_list vl, AVBPrint part[4], int *print_prefix) |
static void | avutil_log_sanitize (uint8_t *line) |
void | mutexInit () |
void | monitorInit () |
void | logInit () |
void | executionMapLockInit () |
void | mutexUnInit () |
void | monitorUnInit () |
void | logUnInit () |
void | executionMapLockUnInit () |
void | mutexLock () |
void | lastCommandOutputLock () |
void | executionMapLock () |
void | mutexUnlock () |
void | lastCommandOutputUnlock () |
void | executionMapUnlock () |
void | clearLastCommandOutput () |
void | appendLastCommandOutput (AVBPrint *logMessage) |
void | monitorWait (int milliSeconds) |
void | monitorNotify () |
void | logCallbackDataAdd (int level, AVBPrint *data) |
void | statisticsCallbackDataAdd (int frameNumber, float fps, float quality, int64_t size, int time, double bitrate, double speed) |
void | addExecution (long id) |
struct CallbackData * | callbackDataRemove () |
void | removeExecution (long id) |
int | cancelRequested (long id) |
void | mobileffmpeg_log_callback_function (void *ptr, int level, const char *format, va_list vargs) |
void | mobileffmpeg_statistics_callback_function (int frameNumber, float fps, float quality, int64_t size, int time, double bitrate, double speed) |
void * | callbackThreadFunction () |
jint | JNI_OnLoad (JavaVM *vm, void *reserved) |
JNIEXPORT void JNICALL | Java_com_arthenica_mobileffmpeg_Config_setNativeLogLevel (JNIEnv *env, jclass object, jint level) |
JNIEXPORT jint JNICALL | Java_com_arthenica_mobileffmpeg_Config_getNativeLogLevel (JNIEnv *env, jclass object) |
JNIEXPORT void JNICALL | Java_com_arthenica_mobileffmpeg_Config_enableNativeRedirection (JNIEnv *env, jclass object) |
JNIEXPORT void JNICALL | Java_com_arthenica_mobileffmpeg_Config_disableNativeRedirection (JNIEnv *env, jclass object) |
JNIEXPORT jstring JNICALL | Java_com_arthenica_mobileffmpeg_Config_getNativeFFmpegVersion (JNIEnv *env, jclass object) |
JNIEXPORT jstring JNICALL | Java_com_arthenica_mobileffmpeg_Config_getNativeVersion (JNIEnv *env, jclass object) |
JNIEXPORT jint JNICALL | Java_com_arthenica_mobileffmpeg_Config_nativeFFmpegExecute (JNIEnv *env, jclass object, jlong id, jobjectArray stringArray) |
JNIEXPORT void JNICALL | Java_com_arthenica_mobileffmpeg_Config_nativeFFmpegCancel (JNIEnv *env, jclass object, jlong id) |
JNIEXPORT int JNICALL | Java_com_arthenica_mobileffmpeg_Config_registerNewNativeFFmpegPipe (JNIEnv *env, jclass object, jstring ffmpegPipePath) |
JNIEXPORT jstring JNICALL | Java_com_arthenica_mobileffmpeg_Config_getNativeBuildDate (JNIEnv *env, jclass object) |
JNIEXPORT int JNICALL | Java_com_arthenica_mobileffmpeg_Config_setNativeEnvironmentVariable (JNIEnv *env, jclass object, jstring variableName, jstring variableValue) |
JNIEXPORT jstring JNICALL | Java_com_arthenica_mobileffmpeg_Config_getNativeLastCommandOutput (JNIEnv *env, jclass object) |
JNIEXPORT void JNICALL | Java_com_arthenica_mobileffmpeg_Config_ignoreNativeSignal (JNIEnv *env, jclass object, jint signum) |
Variables | |
const int | EXECUTION_MAP_SIZE = 1000 |
static volatile int | executionMap [EXECUTION_MAP_SIZE] |
static pthread_mutex_t | executionMapMutex |
static pthread_mutex_t | lockMutex |
static pthread_mutex_t | monitorMutex |
static pthread_cond_t | monitorCondition |
static pthread_mutex_t | logMutex |
static AVBPrint | lastCommandOutput |
pthread_t | callbackThread |
int | redirectionEnabled |
struct CallbackData * | callbackDataHead |
struct CallbackData * | callbackDataTail |
static JavaVM * | globalVm |
static jclass | configClass |
static jmethodID | logMethod |
static jmethodID | statisticsMethod |
static jclass | stringClass |
static jmethodID | stringConstructor |
const char * | configClassName = "com/arthenica/mobileffmpeg/Config" |
const char * | stringClassName = "java/lang/String" |
volatile int | handleSIGQUIT = 1 |
volatile int | handleSIGINT = 1 |
volatile int | handleSIGTERM = 1 |
volatile int | handleSIGXCPU = 1 |
volatile int | handleSIGPIPE = 1 |
__thread volatile long | executionId = 0 |
JNINativeMethod | configMethods [] |
void addExecution | ( | long | id | ) |
Adds an execution id to the execution map.
id | execution id |
Definition at line 405 of file mobileffmpeg.c.
void appendLastCommandOutput | ( | AVBPrint * | logMessage | ) |
Definition at line 282 of file mobileffmpeg.c.
|
static |
Definition at line 150 of file mobileffmpeg.c.
|
static |
Definition at line 125 of file mobileffmpeg.c.
|
static |
Definition at line 182 of file mobileffmpeg.c.
struct CallbackData* callbackDataRemove | ( | ) |
Removes head of callback data list.
Definition at line 417 of file mobileffmpeg.c.
void* callbackThreadFunction | ( | ) |
Forwards callback messages to Java classes.
Definition at line 545 of file mobileffmpeg.c.
int cancelRequested | ( | long | id | ) |
Checks whether a cancel request for the given execution id exists in the execution map.
id | execution id |
Definition at line 466 of file mobileffmpeg.c.
void clearLastCommandOutput | ( | ) |
Forward declaration for function defined in mobileffmpeg.c
Definition at line 276 of file mobileffmpeg.c.
void executionMapLock | ( | ) |
Definition at line 260 of file mobileffmpeg.c.
void executionMapLockInit | ( | ) |
Definition at line 226 of file mobileffmpeg.c.
void executionMapLockUnInit | ( | ) |
Definition at line 248 of file mobileffmpeg.c.
void executionMapUnlock | ( | ) |
Definition at line 272 of file mobileffmpeg.c.
Forward declaration for function defined in fftools_ffmpeg.c
Definition at line 5070 of file fftools_ffmpeg.c.
JNIEXPORT void JNICALL Java_com_arthenica_mobileffmpeg_Config_disableNativeRedirection | ( | JNIEnv * | env, |
jclass | object | ||
) |
Disables log and statistics redirection.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 735 of file mobileffmpeg.c.
JNIEXPORT void JNICALL Java_com_arthenica_mobileffmpeg_Config_enableNativeRedirection | ( | JNIEnv * | env, |
jclass | object | ||
) |
Enables log and statistics redirection.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 708 of file mobileffmpeg.c.
JNIEXPORT jstring JNICALL Java_com_arthenica_mobileffmpeg_Config_getNativeBuildDate | ( | JNIEnv * | env, |
jclass | object | ||
) |
Returns MobileFFmpeg library build date natively.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 873 of file mobileffmpeg.c.
JNIEXPORT jstring JNICALL Java_com_arthenica_mobileffmpeg_Config_getNativeFFmpegVersion | ( | JNIEnv * | env, |
jclass | object | ||
) |
Returns FFmpeg version bundled within the library natively.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 760 of file mobileffmpeg.c.
JNIEXPORT jstring JNICALL Java_com_arthenica_mobileffmpeg_Config_getNativeLastCommandOutput | ( | JNIEnv * | env, |
jclass | object | ||
) |
Returns log output of the last executed command natively.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 906 of file mobileffmpeg.c.
JNIEXPORT jint JNICALL Java_com_arthenica_mobileffmpeg_Config_getNativeLogLevel | ( | JNIEnv * | env, |
jclass | object | ||
) |
Returns current log level.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 698 of file mobileffmpeg.c.
JNIEXPORT jstring JNICALL Java_com_arthenica_mobileffmpeg_Config_getNativeVersion | ( | JNIEnv * | env, |
jclass | object | ||
) |
Returns MobileFFmpeg library version natively.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
Definition at line 771 of file mobileffmpeg.c.
JNIEXPORT void JNICALL Java_com_arthenica_mobileffmpeg_Config_ignoreNativeSignal | ( | JNIEnv * | env, |
jclass | object, | ||
jint | signum | ||
) |
Registers a new ignored signal. Ignored signals are not handled by the library.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
signum | signal number |
Definition at line 925 of file mobileffmpeg.c.
JNIEXPORT void JNICALL Java_com_arthenica_mobileffmpeg_Config_nativeFFmpegCancel | ( | JNIEnv * | env, |
jclass | object, | ||
jlong | id | ||
) |
Cancels an ongoing FFmpeg operation natively.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
id | execution id |
Definition at line 848 of file mobileffmpeg.c.
JNIEXPORT jint JNICALL Java_com_arthenica_mobileffmpeg_Config_nativeFFmpegExecute | ( | JNIEnv * | env, |
jclass | object, | ||
jlong | id, | ||
jobjectArray | stringArray | ||
) |
Synchronously executes FFmpeg natively with arguments provided.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
id | execution id |
stringArray | reference to the object holding FFmpeg command arguments |
Definition at line 784 of file mobileffmpeg.c.
JNIEXPORT int JNICALL Java_com_arthenica_mobileffmpeg_Config_registerNewNativeFFmpegPipe | ( | JNIEnv * | env, |
jclass | object, | ||
jstring | ffmpegPipePath | ||
) |
Creates natively a new named pipe to use in FFmpeg operations.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
ffmpegPipePath | full path of ffmpeg pipe |
Definition at line 860 of file mobileffmpeg.c.
JNIEXPORT int JNICALL Java_com_arthenica_mobileffmpeg_Config_setNativeEnvironmentVariable | ( | JNIEnv * | env, |
jclass | object, | ||
jstring | variableName, | ||
jstring | variableValue | ||
) |
Sets an environment variable natively
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
variableName | environment variable name |
variableValue | environment variable value |
Definition at line 888 of file mobileffmpeg.c.
JNIEXPORT void JNICALL Java_com_arthenica_mobileffmpeg_Config_setNativeLogLevel | ( | JNIEnv * | env, |
jclass | object, | ||
jint | level | ||
) |
Sets log level.
env | pointer to native method interface |
object | reference to the class on which this method is invoked |
level | log level |
Definition at line 688 of file mobileffmpeg.c.
jint JNI_OnLoad | ( | JavaVM * | vm, |
void * | reserved | ||
) |
Called when 'mobileffmpeg' native library is loaded.
vm | pointer to the running virtual machine |
reserved | reserved |
Definition at line 615 of file mobileffmpeg.c.
void lastCommandOutputLock | ( | ) |
Definition at line 256 of file mobileffmpeg.c.
void lastCommandOutputUnlock | ( | ) |
Definition at line 268 of file mobileffmpeg.c.
void logCallbackDataAdd | ( | int | level, |
AVBPrint * | data | ||
) |
Adds log data to the end of callback data list.
level | log level |
data | log data |
Definition at line 324 of file mobileffmpeg.c.
void logInit | ( | ) |
Definition at line 215 of file mobileffmpeg.c.
void logUnInit | ( | ) |
Definition at line 244 of file mobileffmpeg.c.
void mobileffmpeg_log_callback_function | ( | void * | ptr, |
int | level, | ||
const char * | format, | ||
va_list | vargs | ||
) |
Callback function for FFmpeg logs.
ptr | pointer to AVClass struct |
level | log level |
format | format string |
vargs | arguments |
Definition at line 489 of file mobileffmpeg.c.
void mobileffmpeg_statistics_callback_function | ( | int | frameNumber, |
float | fps, | ||
float | quality, | ||
int64_t | size, | ||
int | time, | ||
double | bitrate, | ||
double | speed | ||
) |
Callback function for FFmpeg statistics.
frameNumber | last processed frame number |
fps | frames processed per second |
quality | quality of the output stream (video only) |
size | size in bytes |
time | processed output duration |
bitrate | output bit rate in kbits/s |
speed | processing speed = processed duration / operation duration |
Definition at line 538 of file mobileffmpeg.c.
void monitorInit | ( | ) |
Definition at line 199 of file mobileffmpeg.c.
void monitorNotify | ( | ) |
Definition at line 312 of file mobileffmpeg.c.
void monitorUnInit | ( | ) |
Definition at line 239 of file mobileffmpeg.c.
void monitorWait | ( | int | milliSeconds | ) |
Definition at line 292 of file mobileffmpeg.c.
void mutexInit | ( | ) |
Definition at line 190 of file mobileffmpeg.c.
void mutexLock | ( | ) |
Definition at line 252 of file mobileffmpeg.c.
void mutexUnInit | ( | ) |
Definition at line 235 of file mobileffmpeg.c.
void mutexUnlock | ( | ) |
Definition at line 264 of file mobileffmpeg.c.
void removeExecution | ( | long | id | ) |
Removes an execution id from the execution map.
id | execution id |
Definition at line 451 of file mobileffmpeg.c.
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 361 of file mobileffmpeg.c.
struct CallbackData* callbackDataHead |
Definition at line 67 of file mobileffmpeg.c.
struct CallbackData* callbackDataTail |
Definition at line 68 of file mobileffmpeg.c.
pthread_t callbackThread |
Definition at line 64 of file mobileffmpeg.c.
|
static |
Global reference of Config class in Java
Definition at line 74 of file mobileffmpeg.c.
const char* configClassName = "com/arthenica/mobileffmpeg/Config" |
Full name of the Config class
Definition at line 89 of file mobileffmpeg.c.
JNINativeMethod configMethods[] |
Prototypes of native functions defined by Config class.
Definition at line 105 of file mobileffmpeg.c.
const int EXECUTION_MAP_SIZE = 1000 |
Execution map variables
Definition at line 51 of file mobileffmpeg.c.
__thread volatile long executionId = 0 |
Holds the id of the current execution
Definition at line 102 of file mobileffmpeg.c.
|
static |
Definition at line 52 of file mobileffmpeg.c.
|
static |
Definition at line 53 of file mobileffmpeg.c.
|
static |
Global reference to the virtual machine running
Definition at line 71 of file mobileffmpeg.c.
volatile int handleSIGINT = 1 |
Definition at line 96 of file mobileffmpeg.c.
volatile int handleSIGPIPE = 1 |
Definition at line 99 of file mobileffmpeg.c.
volatile int handleSIGQUIT = 1 |
Fields that control the handling of SIGNALs
Definition at line 95 of file mobileffmpeg.c.
volatile int handleSIGTERM = 1 |
Definition at line 97 of file mobileffmpeg.c.
volatile int handleSIGXCPU = 1 |
Definition at line 98 of file mobileffmpeg.c.
|
static |
Definition at line 62 of file mobileffmpeg.c.
|
static |
Redirection control variables
Definition at line 56 of file mobileffmpeg.c.
|
static |
Global reference of log redirection method in Java
Definition at line 77 of file mobileffmpeg.c.
|
static |
Last command output variables
Definition at line 61 of file mobileffmpeg.c.
|
static |
Definition at line 58 of file mobileffmpeg.c.
|
static |
Definition at line 57 of file mobileffmpeg.c.
int redirectionEnabled |
Definition at line 65 of file mobileffmpeg.c.
|
static |
Global reference of statistics redirection method in Java
Definition at line 80 of file mobileffmpeg.c.
|
static |
Global reference of String class in Java
Definition at line 83 of file mobileffmpeg.c.
const char* stringClassName = "java/lang/String" |
Full name of String class
Definition at line 92 of file mobileffmpeg.c.
|
static |
Global reference of String constructor in Java
Definition at line 86 of file mobileffmpeg.c.