FFmpeg
Data Structures | Macros | Functions
v4l2_m2m.h File Reference
#include <semaphore.h>
#include <unistd.h>
#include <dirent.h>
#include <linux/videodev2.h>
#include "libavcodec/avcodec.h"
#include "v4l2_context.h"

Go to the source code of this file.

Data Structures

struct  V4L2m2mContext
 
struct  V4L2m2mPriv
 

Macros

#define container_of(ptr, type, member)
 
#define V4L_M2M_DEFAULT_OPTS
 

Functions

int ff_v4l2_m2m_create_context (V4L2m2mPriv *priv, V4L2m2mContext **s)
 Allocate a new context and references for a V4L2 M2M instance. More...
 
int ff_v4l2_m2m_codec_init (V4L2m2mPriv *priv)
 Probes the video nodes looking for the required codec capabilities. More...
 
int ff_v4l2_m2m_codec_end (V4L2m2mPriv *priv)
 Releases all the codec resources if all AVBufferRefs have been returned to the ctx. More...
 
int ff_v4l2_m2m_codec_reinit (V4L2m2mContext *ctx)
 Reinitializes the V4L2m2mContext when the driver cannot continue processing with the capture parameters. More...
 
int ff_v4l2_m2m_codec_full_reinit (V4L2m2mContext *ctx)
 Reinitializes the V4L2m2mContext when the driver cannot continue processing with the any of the current V4L2Contexts (ie, changes in output and capture). More...
 

Macro Definition Documentation

#define container_of (   ptr,
  type,
  member 
)
Value:
({ \
const __typeof__(((type *)0)->member ) *__mptr = (ptr); \
(type *)((char *)__mptr - offsetof(type,member) );})
GLint GLenum type
Definition: opengl_enc.c:104

Definition at line 35 of file v4l2_m2m.h.

Referenced by buf_to_m2mctx(), and ctx_to_m2mctx().

#define V4L_M2M_DEFAULT_OPTS
Value:
{ "num_output_buffers", "Number of buffers in the output context",\
OFFSET(num_output_buffers), AV_OPT_TYPE_INT, { .i64 = 16 }, 6, INT_MAX, FLAGS }
#define FLAGS
Definition: cmdutils.c:544
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your local see the OFFSET() macro

Definition at line 39 of file v4l2_m2m.h.

Function Documentation

int ff_v4l2_m2m_create_context ( V4L2m2mPriv priv,
V4L2m2mContext **  s 
)

Allocate a new context and references for a V4L2 M2M instance.

Parameters
[in]ctxThe V4L2m2mPriv instantiated by the encoder/decoder.
[out]ctxThe V4L2m2mContext.
Returns
0 in success, a negative error code otherwise.

Definition at line 397 of file v4l2_m2m.c.

Referenced by v4l2_decode_init(), and v4l2_encode_init().

int ff_v4l2_m2m_codec_init ( V4L2m2mPriv priv)

Probes the video nodes looking for the required codec capabilities.

Parameters
[in]ctxThe V4L2m2mPriv instantiated by the encoder/decoder.
Returns
0 if a driver is found, a negative number otherwise.

Definition at line 357 of file v4l2_m2m.c.

Referenced by v4l2_decode_init(), and v4l2_encode_init().

int ff_v4l2_m2m_codec_end ( V4L2m2mPriv priv)

Releases all the codec resources if all AVBufferRefs have been returned to the ctx.

Otherwise keep the driver open.

Parameters
[in]TheV4L2m2mPriv instantiated by the encoder/decoder.
Returns
0

Definition at line 336 of file v4l2_m2m.c.

Referenced by v4l2_decode_close(), and v4l2_encode_close().

int ff_v4l2_m2m_codec_reinit ( V4L2m2mContext ctx)

Reinitializes the V4L2m2mContext when the driver cannot continue processing with the capture parameters.

Parameters
[in]ctxThe V4L2m2mContext instantiated by the encoder/decoder.
Returns
0 in case of success, negative number otherwise

Definition at line 205 of file v4l2_m2m.c.

Referenced by v4l2_handle_event().

int ff_v4l2_m2m_codec_full_reinit ( V4L2m2mContext ctx)

Reinitializes the V4L2m2mContext when the driver cannot continue processing with the any of the current V4L2Contexts (ie, changes in output and capture).

Parameters
[in]ctxThe V4L2m2mContext instantiated by the encoder/decoder.
Returns
0 in case of success, negative number otherwise

Definition at line 248 of file v4l2_m2m.c.

Referenced by v4l2_handle_event().