v4l2

package
v0.0.0-...-b172891 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	V4L2_BUF_TYPE_VIDEO_CAPTURE = 1

	V4L2_FIELD_ANY  = 0
	V4L2_FIELD_NONE = 1

	V4L2_PIX_FMT_JPEG = 'J' | 'P'<<8 | 'E'<<16 | 'G'<<24
	V4L2_PIX_FMT_H264 = 'H' | '2'<<8 | '6'<<16 | '4'<<24
	V4L2_PIX_FMT_AVC1 = 'A' | 'V'<<8 | 'C'<<16 | '1'<<24
	V4L2_PIX_FMT_VP8  = 'V' | 'P'<<8 | '8'<<16 | '0'<<24

	V4L2_MEMORY_MMAP = 1

	VIDIOC_DQBUF       = 0xc0445611
	VIDIOC_QBUF        = 0xc044560f
	VIDIOC_QUERYBUF    = 0xc0445609
	VIDIOC_QUERYCAP    = 0x80685600
	VIDIOC_REQBUFS     = 0xc0145608
	VIDIOC_G_EXT_CTRLS = 0xc0185647
	VIDIOC_S_EXT_CTRLS = 0xc0185648
	VIDIOC_S_FMT       = 0xc0cc5605
	VIDIOC_STREAMON    = 0x40045612
	VIDIOC_STREAMOFF   = 0x40045613
	VIDIOC_S_CTRL      = 0xc008561c
)
View Source
const (
	// Control classes
	V4L2_CTRL_CLASS_USER   = 0x00980000
	V4L2_CTRL_CLASS_MPEG   = 0x00990000
	V4L2_CTRL_CLASS_CAMERA = 0x009a0000
	V4L2_CTRL_CLASS_DV     = 0x00a00000

	// User-class control IDs
	V4L2_CID_BASE               = V4L2_CTRL_CLASS_USER | 0x900
	V4L2_CID_USER_BASE          = V4L2_CID_BASE
	V4L2_CID_USER_CLASS         = V4L2_CTRL_CLASS_USER | 1
	V4L2_CID_BRIGHTNESS         = V4L2_CID_BASE + 0
	V4L2_CID_CONTRAST           = V4L2_CID_BASE + 1
	V4L2_CID_SATURATION         = V4L2_CID_BASE + 2
	V4L2_CID_HUE                = V4L2_CID_BASE + 3
	V4L2_CID_AUTO_WHITE_BALANCE = V4L2_CID_BASE + 12
	V4L2_CID_DO_WHITE_BALANCE   = V4L2_CID_BASE + 13
	V4L2_CID_RED_BALANCE        = V4L2_CID_BASE + 14
	V4L2_CID_BLUE_BALANCE       = V4L2_CID_BASE + 15
	V4L2_CID_GAMMA              = V4L2_CID_BASE + 16
	V4L2_CID_EXPOSURE           = V4L2_CID_BASE + 17
	V4L2_CID_AUTOGAIN           = V4L2_CID_BASE + 18
	V4L2_CID_GAIN               = V4L2_CID_BASE + 19
	V4L2_CID_HFLIP              = V4L2_CID_BASE + 20
	V4L2_CID_VFLIP              = V4L2_CID_BASE + 21

	// MPEG-class control IDs
	V4L2_CID_MPEG_BASE                    = V4L2_CTRL_CLASS_MPEG | 0x900
	V4L2_CID_MPEG_CLASS                   = V4L2_CTRL_CLASS_MPEG | 1
	V4L2_CID_MPEG_VIDEO_B_FRAMES          = V4L2_CID_MPEG_BASE + 202
	V4L2_CID_MPEG_VIDEO_GOP_SIZE          = V4L2_CID_MPEG_BASE + 203
	V4L2_CID_MPEG_VIDEO_BITRATE           = V4L2_CID_MPEG_BASE + 207
	V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER = V4L2_CID_MPEG_BASE + 226
	V4L2_CID_MPEG_VIDEO_H264_I_PERIOD     = V4L2_CID_MPEG_BASE + 358
	V4L2_CID_MPEG_VIDEO_H264_LEVEL        = V4L2_CID_MPEG_BASE + 359
	V4L2_CID_MPEG_VIDEO_H264_PROFILE      = V4L2_CID_MPEG_BASE + 363

	// H.264 Levels
	V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0
	V4L2_MPEG_VIDEO_H264_LEVEL_1B  = 1
	V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2
	V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3
	V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4
	V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5
	V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6
	V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7
	V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8
	V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9
	V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10
	V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11
	V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12
	V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13
	V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14
	V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15

	// H.264 Profiles
	V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE             = 0
	V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1
	V4L2_MPEG_VIDEO_H264_PROFILE_MAIN                 = 2
	V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED             = 3
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH                 = 4
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10              = 5
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422             = 6
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE  = 7
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA        = 8
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA       = 9
	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA       = 10
	V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA      = 11
	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE    = 12
	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH        = 13
	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA  = 14
)

Controls (from linux/v4l2-controls.h)

Variables

This section is empty.

Functions

func Open

func Open(devpath string, cfg Config) (media.VideoSource, error)

Open a V4L2 video device (usually /dev/video0).

func OpenDevice

func OpenDevice(path string) (*device, error)

Types

type Config

type Config struct {
	Format int // Video format (e.g. H264)
	Width  int // Video width in pixels
	Height int // Video height in pixels

	Bitrate int

	// Repeat sequence headers (i.e. sequence/picture parameter sets) for
	// H.264 pixel format. This is useful for resynchronization in cases
	// where the parameter sets are lost.
	RepeatSequenceHeader bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL