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 (AVCodecContext *avctx, V4L2m2mContext **s)
 Allocate a new context and references for a V4L2 M2M instance. More...
 
int ff_v4l2_m2m_codec_init (AVCodecContext *avctx)
 Probes the video nodes looking for the required codec capabilities. More...
 
int ff_v4l2_m2m_codec_end (AVCodecContext *avctx)
 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 ( AVCodecContext avctx,
V4L2m2mContext **  s 
)

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

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

Definition at line 382 of file v4l2_m2m.c.

Referenced by v4l2_decode_init(), and v4l2_encode_init().

int ff_v4l2_m2m_codec_init ( AVCodecContext avctx)

Probes the video nodes looking for the required codec capabilities.

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

Definition at line 341 of file v4l2_m2m.c.

Referenced by v4l2_decode_init(), and v4l2_encode_init().

int ff_v4l2_m2m_codec_end ( AVCodecContext avctx)

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

Otherwise keep the driver open.

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

Definition at line 319 of file v4l2_m2m.c.

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 189 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 231 of file v4l2_m2m.c.

Referenced by v4l2_handle_event().