|
int | ff_AMediaCodecProfile_getProfileFromAVCodecContext (AVCodecContext *avctx) |
| The following API around MediaCodec and MediaFormat is based on the NDK one provided by Google since Android 5.0. More...
|
|
char * | ff_AMediaCodecList_getCodecNameByType (const char *mime, int profile, int encoder, void *log_ctx) |
|
static FFAMediaFormat * | mediaformat_jni_new (void) |
|
static FFAMediaFormat * | mediaformat_jni_newFromObject (void *object) |
|
static int | mediaformat_jni_delete (FFAMediaFormat *ctx) |
|
static char * | mediaformat_jni_toString (FFAMediaFormat *ctx) |
|
static int | mediaformat_jni_getInt32 (FFAMediaFormat *ctx, const char *name, int32_t *out) |
|
static int | mediaformat_jni_getInt64 (FFAMediaFormat *ctx, const char *name, int64_t *out) |
|
static int | mediaformat_jni_getFloat (FFAMediaFormat *ctx, const char *name, float *out) |
|
static int | mediaformat_jni_getBuffer (FFAMediaFormat *ctx, const char *name, void **data, size_t *size) |
|
static int | mediaformat_jni_getString (FFAMediaFormat *ctx, const char *name, const char **out) |
|
static void | mediaformat_jni_setInt32 (FFAMediaFormat *ctx, const char *name, int32_t value) |
|
static void | mediaformat_jni_setInt64 (FFAMediaFormat *ctx, const char *name, int64_t value) |
|
static void | mediaformat_jni_setFloat (FFAMediaFormat *ctx, const char *name, float value) |
|
static void | mediaformat_jni_setString (FFAMediaFormat *ctx, const char *name, const char *value) |
|
static void | mediaformat_jni_setBuffer (FFAMediaFormat *ctx, const char *name, void *data, size_t size) |
|
static int | codec_init_static_fields (FFAMediaCodecJni *codec) |
|
static FFAMediaCodec * | codec_create (int method, const char *arg) |
|
static int | mediacodec_jni_delete (FFAMediaCodec *ctx) |
|
static char * | mediacodec_jni_getName (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_configure (FFAMediaCodec *ctx, const FFAMediaFormat *format_ctx, FFANativeWindow *window, void *crypto, uint32_t flags) |
|
static int | mediacodec_jni_start (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_stop (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_flush (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_releaseOutputBuffer (FFAMediaCodec *ctx, size_t idx, int render) |
|
static int | mediacodec_jni_releaseOutputBufferAtTime (FFAMediaCodec *ctx, size_t idx, int64_t timestampNs) |
|
static ssize_t | mediacodec_jni_dequeueInputBuffer (FFAMediaCodec *ctx, int64_t timeoutUs) |
|
static int | mediacodec_jni_queueInputBuffer (FFAMediaCodec *ctx, size_t idx, off_t offset, size_t size, uint64_t time, uint32_t flags) |
|
static ssize_t | mediacodec_jni_dequeueOutputBuffer (FFAMediaCodec *ctx, FFAMediaCodecBufferInfo *info, int64_t timeoutUs) |
|
static uint8_t * | mediacodec_jni_getInputBuffer (FFAMediaCodec *ctx, size_t idx, size_t *out_size) |
|
static uint8_t * | mediacodec_jni_getOutputBuffer (FFAMediaCodec *ctx, size_t idx, size_t *out_size) |
|
static FFAMediaFormat * | mediacodec_jni_getOutputFormat (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_infoTryAgainLater (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_jni_infoOutputBuffersChanged (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_jni_infoOutputFormatChanged (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_jni_getBufferFlagCodecConfig (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_getBufferFlagEndOfStream (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_getBufferFlagKeyFrame (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_getConfigureFlagEncode (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_cleanOutputBuffers (FFAMediaCodec *ctx) |
|
static int | mediacodec_jni_signalEndOfInputStream (FFAMediaCodec *ctx) |
|
static FFAMediaFormat * | mediaformat_ndk_create (AMediaFormat *impl) |
|
static FFAMediaFormat * | mediaformat_ndk_new (void) |
|
static int | mediaformat_ndk_delete (FFAMediaFormat *ctx) |
|
static char * | mediaformat_ndk_toString (FFAMediaFormat *ctx) |
|
static int | mediaformat_ndk_getInt32 (FFAMediaFormat *ctx, const char *name, int32_t *out) |
|
static int | mediaformat_ndk_getInt64 (FFAMediaFormat *ctx, const char *name, int64_t *out) |
|
static int | mediaformat_ndk_getFloat (FFAMediaFormat *ctx, const char *name, float *out) |
|
static int | mediaformat_ndk_getBuffer (FFAMediaFormat *ctx, const char *name, void **data, size_t *size) |
|
static int | mediaformat_ndk_getString (FFAMediaFormat *ctx, const char *name, const char **out) |
|
static int | mediaformat_ndk_getRect (FFAMediaFormat *ctx, const char *name, int32_t *left, int32_t *top, int32_t *right, int32_t *bottom) |
|
static void | mediaformat_ndk_setInt32 (FFAMediaFormat *ctx, const char *name, int32_t value) |
|
static void | mediaformat_ndk_setInt64 (FFAMediaFormat *ctx, const char *name, int64_t value) |
|
static void | mediaformat_ndk_setFloat (FFAMediaFormat *ctx, const char *name, float value) |
|
static void | mediaformat_ndk_setString (FFAMediaFormat *ctx, const char *name, const char *value) |
|
static void | mediaformat_ndk_setBuffer (FFAMediaFormat *ctx, const char *name, void *data, size_t size) |
|
static void | mediaformat_ndk_setRect (FFAMediaFormat *ctx, const char *name, int32_t left, int32_t top, int32_t right, int32_t bottom) |
|
static char * | mediacodec_ndk_getName (FFAMediaCodec *ctx) |
|
static FFAMediaCodec * | ndk_codec_create (int method, const char *arg) |
|
static int | mediacodec_ndk_delete (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_configure (FFAMediaCodec *ctx, const FFAMediaFormat *format_ctx, FFANativeWindow *window, void *crypto, uint32_t flags) |
|
static uint8_t * | mediacodec_ndk_getInputBuffer (FFAMediaCodec *ctx, size_t idx, size_t *out_size) |
|
static uint8_t * | mediacodec_ndk_getOutputBuffer (FFAMediaCodec *ctx, size_t idx, size_t *out_size) |
|
static ssize_t | mediacodec_ndk_dequeueInputBuffer (FFAMediaCodec *ctx, int64_t timeoutUs) |
|
static int | mediacodec_ndk_queueInputBuffer (FFAMediaCodec *ctx, size_t idx, off_t offset, size_t size, uint64_t time, uint32_t flags) |
|
static ssize_t | mediacodec_ndk_dequeueOutputBuffer (FFAMediaCodec *ctx, FFAMediaCodecBufferInfo *info, int64_t timeoutUs) |
|
static FFAMediaFormat * | mediacodec_ndk_getOutputFormat (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_releaseOutputBuffer (FFAMediaCodec *ctx, size_t idx, int render) |
|
static int | mediacodec_ndk_releaseOutputBufferAtTime (FFAMediaCodec *ctx, size_t idx, int64_t timestampNs) |
|
static int | mediacodec_ndk_infoTryAgainLater (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_ndk_infoOutputBuffersChanged (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_ndk_infoOutputFormatChanged (FFAMediaCodec *ctx, ssize_t idx) |
|
static int | mediacodec_ndk_getBufferFlagCodecConfig (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_getBufferFlagEndOfStream (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_getBufferFlagKeyFrame (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_getConfigureFlagEncode (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_cleanOutputBuffers (FFAMediaCodec *ctx) |
|
static int | mediacodec_ndk_signalEndOfInputStream (FFAMediaCodec *ctx) |
|
FFAMediaFormat * | ff_AMediaFormat_new (int ndk) |
|
FFAMediaCodec * | ff_AMediaCodec_createCodecByName (const char *name, int ndk) |
|
FFAMediaCodec * | ff_AMediaCodec_createDecoderByType (const char *mime_type, int ndk) |
|
FFAMediaCodec * | ff_AMediaCodec_createEncoderByType (const char *mime_type, int ndk) |
|
int | ff_Build_SDK_INT (AVCodecContext *avctx) |
|
The following API around MediaCodec and MediaFormat is based on the NDK one provided by Google since Android 5.0.
Differences from the NDK API:
Buffers returned by ff_AMediaFormat_toString and ff_AMediaFormat_getString are newly allocated buffer and must be freed by the user after use.
The MediaCrypto API is not implemented.
ff_AMediaCodec_infoTryAgainLater, ff_AMediaCodec_infoOutputBuffersChanged, ff_AMediaCodec_infoOutputFormatChanged, ff_AMediaCodec_cleanOutputBuffers ff_AMediaCodec_getName and ff_AMediaCodec_getBufferFlagEndOfStream are not part of the original NDK API and are convenience functions to hide JNI implementation.
The API around MediaCodecList is not part of the NDK (and is lacking as we still need to retrieve the codec name to work around faulty decoders and encoders).
For documentation, please refers to NdkMediaCodec.h NdkMediaFormat.h and http://developer.android.com/reference/android/media/MediaCodec.html.
Definition at line 303 of file mediacodec_wrapper.c.
Referenced by ff_mediacodec_dec_init(), and mediacodec_init().