📄 vidinput_v4l2.h
字号:
/* * vidinput_v4l2.h * * Portable Windows Library * * Copyright (c) 1993-2000 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library (V4L plugin). * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Contributor(s): Derek Smithies (derek@indranet.co.nz) * Mark Cooke (mpc@star.sr.bham.ac.uk) * Nicola Orru' <nigu@itadinanta.it> * * $Log: vidinput_v4l2.h,v $ * Revision 1.3 2004/11/07 22:48:47 dominance * fixed copyright of v4l2 plugin. Last commit's credits go to Nicola Orru' <nigu@itadinanta.it> ... * */#ifndef _PVIDEOIOV4L2#define _PVIDEOIOV4L2#include <sys/mman.h>#include <sys/time.h>#include <ptlib.h>#include <ptlib/videoio.h>#include <ptlib/vconvert.h>#include <linux/videodev.h>#ifndef V4L2_PIX_FMT_SBGGR8#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */#endifclass PVideoInputV4l2Device: public PVideoInputDevice{ PCLASSINFO(PVideoInputV4l2Device, PVideoInputDevice); public: PVideoInputV4l2Device(); ~PVideoInputV4l2Device(); void ReadDeviceDirectory (PDirectory, POrdinalToString &); static PStringList GetInputDeviceNames(); PStringList GetDeviceNames() const { return GetInputDeviceNames(); } BOOL Open(const PString &deviceName, BOOL startImmediate); BOOL IsOpen(); BOOL Close(); BOOL Start(); BOOL Stop(); BOOL IsCapturing(); PINDEX GetMaxFrameBytes(); BOOL GetFrame(PBYTEArray & frame); BOOL GetFrameData(BYTE*, PINDEX*); BOOL GetFrameDataNoDelay(BYTE*, PINDEX*); BOOL GetFrameSizeLimits(unsigned int&, unsigned int&, unsigned int&, unsigned int&); BOOL TestAllFormats(); BOOL SetFrameSize(unsigned int, unsigned int); BOOL SetFrameRate(unsigned int); BOOL VerifyHardwareFrameSize(unsigned int, unsigned int); BOOL GetParameters(int*, int*, int*, int*, int*); BOOL SetColourFormat(const PString&); int GetContrast(); BOOL SetContrast(unsigned int); int GetBrightness(); BOOL SetBrightness(unsigned int); int GetWhiteness(); BOOL SetWhiteness(unsigned int); int GetColour(); BOOL SetColour(unsigned int); int GetHue(); BOOL SetHue(unsigned int); BOOL SetVideoChannelFormat(int, PVideoDevice::VideoFormat); BOOL SetVideoFormat(PVideoDevice::VideoFormat); int GetNumChannels(); BOOL SetChannel(int); BOOL NormalReadProcess(BYTE*, PINDEX*); void ClearMapping(); BOOL SetMapping(); struct v4l2_capability videoCapability; struct v4l2_streamparm videoStreamParm; BOOL canRead; BOOL canStream; BOOL canSelect; BOOL canSetFrameRate; BOOL isMapped;#define NUM_VIDBUF 4 BYTE * videoBuffer[NUM_VIDBUF]; uint videoBufferCount; int videoFd; int frameBytes; BOOL started;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -