diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-02-18 18:05:02 +0100 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2007-02-18 18:05:02 +0100 |
commit | a01a4f3aa02b20388725dc2e7abd1365295672f0 (patch) | |
tree | 34cff3554736faf923bc3fe3dc1615856bcc1531 /linux/include | |
parent | d9a2475c496d017cf05081a0bca4de90e2ea1623 (diff) | |
download | mediapointer-dvb-s2-a01a4f3aa02b20388725dc2e7abd1365295672f0.tar.gz mediapointer-dvb-s2-a01a4f3aa02b20388725dc2e7abd1365295672f0.tar.bz2 |
Add VIDIOC_G_ENC_INDEX ioctl
From: Hans Verkuil <hverkuil@xs4all.nl>
The VIDIOC_G_ENC_INDEX ioctl can obtain the MPEG index from an MPEG
encoder.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/include')
-rw-r--r-- | linux/include/linux/videodev2.h | 30 | ||||
-rw-r--r-- | linux/include/media/v4l2-dev.h | 2 |
2 files changed, 32 insertions, 0 deletions
diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index 14f15f400..876f575a1 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -1196,6 +1196,35 @@ struct v4l2_audioout }; /* + * M P E G I N D E X + * + * NOTE: EXPERIMENTAL API + */ +#if 1 /*KEEP*/ +#define V4L2_ENC_IDX_FRAME_I (0) +#define V4L2_ENC_IDX_FRAME_P (1) +#define V4L2_ENC_IDX_FRAME_B (2) +#define V4L2_ENC_IDX_FRAME_MASK (0xf) + +struct v4l2_enc_idx_entry { + u64 offset; + u64 pts; + u32 length; + u32 flags; + u32 reserved[2]; +}; + +#define V4L2_ENC_IDX_ENTRIES (64) +struct v4l2_enc_idx { + u32 entries; + u32 entries_cap; + u32 reserved[4]; + struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES]; +}; +#endif + + +/* * D A T A S E R V I C E S ( V B I ) * * Data services API by Michael Schimek @@ -1381,6 +1410,7 @@ struct v4l2_register { #if 1 /*KEEP*/ #define VIDIOC_ENUM_FRAMESIZES _IOWR ('V', 74, struct v4l2_frmsizeenum) #define VIDIOC_ENUM_FRAMEINTERVALS _IOWR ('V', 75, struct v4l2_frmivalenum) +#define VIDIOC_G_ENC_INDEX _IOR ('V', 76, struct v4l2_enc_idx) #endif /* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */ #define VIDIOC_DBG_S_REGISTER _IOW ('d', 100, struct v4l2_register) diff --git a/linux/include/media/v4l2-dev.h b/linux/include/media/v4l2-dev.h index 1734898b4..68fbaffc2 100644 --- a/linux/include/media/v4l2-dev.h +++ b/linux/include/media/v4l2-dev.h @@ -281,6 +281,8 @@ struct video_device struct v4l2_jpegcompression *a); int (*vidioc_s_jpegcomp) (struct file *file, void *fh, struct v4l2_jpegcompression *a); + int (*vidioc_g_enc_index) (struct file *file, void *fh, + struct v4l2_enc_idx *a); /* Stream type-dependent parameter ioctls */ int (*vidioc_g_parm) (struct file *file, void *fh, |