近日游玩看了v4l2-core相关的v4l2-event.c和v4l2-fh.c,,有些想法,特写下.
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/select.h>
#include <stdio.h>
#include <linux/usb/ch9.h>
#include <linux/videodev2.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
struct uvc_uvc_v4l2_event
{
unsigned int type;
unsigned char data[64];
int length;
};
struct uvc_streaming_control
{
unsigned short bmHint;
unsigned char bFormatIndex;
unsigned char bFrameIndex;
unsigned int dwFrameInterval;
unsigned short wKeyFrameRate;
unsigned short wPFrameRate;
unsigned short wCompQuality;
unsigned short wCompWindowSize;
unsigned short wDelay;
unsigned int dwMaxVideoFrameSize;
unsigned int dwMaxPayloadTransferSize;
unsigned int dwClockFrequency;
unsigned char bmFramingInfo;
unsigned char bPreferedVersion;
unsigned char bMinVersion;
unsigned char bMaxVersion;
};
struct uvc_streaming_control probe;
#define UVC_VIDIOC_DQEVENT _IOR('A', 89, struct uvc_uvc_v4l2_event)
#define UVC_VIDIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_uvc_v4l2_event)
#define DEVNAME "/dev/video0"
static void showHex(unsigned char *buf, unsigned int len)
{
int i;
printf("----------------------\n");
for (i = 0; i < len; i++) {
printf