FFmpeg 5.1.4
Data Structures | Typedefs | Functions
mediacodec.h File Reference
#include "libavcodec/avcodec.h"

Go to the source code of this file.

Data Structures

struct  AVMediaCodecContext
 This structure holds a reference to a android/view/Surface object that will be used as output by the decoder. More...
 

Typedefs

typedef struct MediaCodecBuffer AVMediaCodecBuffer
 Opaque structure representing a MediaCodec buffer to render. More...
 

Functions

AVMediaCodecContextav_mediacodec_alloc_context (void)
 Allocate and initialize a MediaCodec context. More...
 
int av_mediacodec_default_init (AVCodecContext *avctx, AVMediaCodecContext *ctx, void *surface)
 Convenience function that sets up the MediaCodec context. More...
 
void av_mediacodec_default_free (AVCodecContext *avctx)
 This function must be called to free the MediaCodec context initialized with av_mediacodec_default_init(). More...
 
int av_mediacodec_release_buffer (AVMediaCodecBuffer *buffer, int render)
 Release a MediaCodec buffer and render it to the surface that is associated with the decoder. More...
 
int av_mediacodec_render_buffer_at_time (AVMediaCodecBuffer *buffer, int64_t time)
 Release a MediaCodec buffer and render it at the given time to the surface that is associated with the decoder. More...
 

Typedef Documentation

◆ AVMediaCodecBuffer

typedef struct MediaCodecBuffer AVMediaCodecBuffer

Opaque structure representing a MediaCodec buffer to render.

Definition at line 73 of file mediacodec.h.

Function Documentation

◆ av_mediacodec_alloc_context()

AVMediaCodecContext * av_mediacodec_alloc_context ( void  )

Allocate and initialize a MediaCodec context.

When decoding with MediaCodec is finished, the caller must free the MediaCodec context with av_mediacodec_default_free.

Returns
a pointer to a newly allocated AVMediaCodecContext on success, NULL otherwise

◆ av_mediacodec_default_init()

int av_mediacodec_default_init ( AVCodecContext avctx,
AVMediaCodecContext ctx,
void *  surface 
)

Convenience function that sets up the MediaCodec context.

Parameters
avctxcodec context
ctxMediaCodec context to initialize
surfacereference to an android/view/Surface
Returns
0 on success, < 0 otherwise

◆ av_mediacodec_default_free()

void av_mediacodec_default_free ( AVCodecContext avctx)

This function must be called to free the MediaCodec context initialized with av_mediacodec_default_init().

Parameters
avctxcodec context

◆ av_mediacodec_release_buffer()

int av_mediacodec_release_buffer ( AVMediaCodecBuffer buffer,
int  render 
)

Release a MediaCodec buffer and render it to the surface that is associated with the decoder.

This function should only be called once on a given buffer, once released the underlying buffer returns to the codec, thus subsequent calls to this function will have no effect.

Parameters
bufferthe buffer to render
render1 to release and render the buffer to the surface or 0 to discard the buffer
Returns
0 on success, < 0 otherwise

◆ av_mediacodec_render_buffer_at_time()

int av_mediacodec_render_buffer_at_time ( AVMediaCodecBuffer buffer,
int64_t  time 
)

Release a MediaCodec buffer and render it at the given time to the surface that is associated with the decoder.

The timestamp must be within one second of the current java/lang/System#nanoTime() (which is implemented using CLOCK_MONOTONIC on Android). See the Android MediaCodec documentation of android/media/MediaCodec#releaseOutputBuffer(int,long) for more details.

Parameters
bufferthe buffer to render
timetimestamp in nanoseconds of when to render the buffer
Returns
0 on success, < 0 otherwise