FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
v4l.c File Reference
#include "avdevice.h"
#include "config.h"
#include "libavutil/rational.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "libavformat/internal.h"
#include "libavcodec/dsputil.h"
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/time.h>
#include <linux/videodev.h>
#include <time.h>

Go to the source code of this file.

Data Structures

struct  VideoData
 

Macros

#define _LINUX_TIME_H   1
 

Functions

static int grab_read_header (AVFormatContext *s1, AVFormatParameters *ap)
 
static int v4l_mm_read_picture (VideoData *s, uint8_t *buf)
 
static int grab_read_packet (AVFormatContext *s1, AVPacket *pkt)
 
static int grab_read_close (AVFormatContext *s1)
 

Variables

struct {
   int   palette
 
   int   depth
 
   enum AVPixelFormat   pix_fmt
 
video_formats []
 
static const AVOption options []
 
static const AVClass v4l_class
 
AVInputFormat ff_v4l_demuxer
 

Macro Definition Documentation

#define _LINUX_TIME_H   1

Definition at line 38 of file v4l.c.

Function Documentation

static int grab_read_header ( AVFormatContext s1,
AVFormatParameters *  ap 
)
static

Definition at line 76 of file v4l.c.

static int v4l_mm_read_picture ( VideoData s,
uint8_t buf 
)
static

Definition at line 257 of file v4l.c.

Referenced by grab_read_packet().

static int grab_read_packet ( AVFormatContext s1,
AVPacket pkt 
)
static

Definition at line 283 of file v4l.c.

static int grab_read_close ( AVFormatContext s1)
static

Definition at line 323 of file v4l.c.

Variable Documentation

int palette
int depth
enum AVPixelFormat pix_fmt

Definition at line 63 of file v4l.c.

const { ... } video_formats[]
Initial value:
= {
{.palette = VIDEO_PALETTE_YUV420P, .depth = 12, .pix_fmt = AV_PIX_FMT_YUV420P },
{.palette = VIDEO_PALETTE_YUV422, .depth = 16, .pix_fmt = AV_PIX_FMT_YUYV422 },
{.palette = VIDEO_PALETTE_UYVY, .depth = 16, .pix_fmt = AV_PIX_FMT_UYVY422 },
{.palette = VIDEO_PALETTE_YUYV, .depth = 16, .pix_fmt = AV_PIX_FMT_YUYV422 },
{.palette = VIDEO_PALETTE_RGB24, .depth = 24, .pix_fmt = AV_PIX_FMT_BGR24 },
{.palette = VIDEO_PALETTE_RGB565, .depth = 16, .pix_fmt = AV_PIX_FMT_BGR565 },
{.palette = VIDEO_PALETTE_GREY, .depth = 8, .pix_fmt = AV_PIX_FMT_GRAY8 },
}
packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
Definition: pixfmt.h:82
packed RGB 8:8:8, 24bpp, BGRBGR...
Definition: pixfmt.h:65
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: pixfmt.h:63
#define AV_PIX_FMT_BGR565
Definition: pixfmt.h:343
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:62
Y , 8bpp.
Definition: pixfmt.h:70

Referenced by grab_read_header().

const AVOption options[]
static
Initial value:
= {
{ "standard", "", 0x42, AV_OPT_TYPE_INT, {.i64 = VIDEO_MODE_NTSC}, VIDEO_MODE_PAL, VIDEO_MODE_NTSC, AV_OPT_FLAG_DECODING_PARAM, "standard" },
{ "PAL", "", 0, AV_OPT_TYPE_CONST, {.i64 = VIDEO_MODE_PAL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, "standard" },
{ "SECAM", "", 0, AV_OPT_TYPE_CONST, {.i64 = VIDEO_MODE_SECAM}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, "standard" },
{ "NTSC", "", 0, AV_OPT_TYPE_CONST, {.i64 = VIDEO_MODE_NTSC}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, "standard" },
{ NULL },
}
#define NULL
Definition: coverity.c:32
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
Definition: opt.h:277

Definition at line 339 of file v4l.c.

const AVClass v4l_class
static
Initial value:
= {
.class_name = "V4L indev",
.item_name = av_default_item_name,
.option = options,
}
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
av_default_item_name
static const AVOption options[]
Definition: v4l.c:339

Definition at line 347 of file v4l.c.

AVInputFormat ff_v4l_demuxer
Initial value:
= {
.name = "video4linux,v4l",
.long_name = NULL_IF_CONFIG_SMALL("Video4Linux device grab"),
.priv_data_size = sizeof(VideoData),
.priv_class = &v4l_class,
}
static int flags
Definition: log.c:57
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
static int grab_read_packet(AVFormatContext *s1, AVPacket *pkt)
Definition: v4l.c:283
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:179
Definition: bktr.c:54
static const AVClass v4l_class
Definition: v4l.c:347
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:510
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
#define AVFMT_NOFILE
Demuxer will use avio_open, no opened file should be provided by the caller.
Definition: avformat.h:478
static int grab_read_close(AVFormatContext *s1)
Definition: v4l.c:323
static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
Definition: v4l.c:76

Definition at line 355 of file v4l.c.