diff options
| -rw-r--r-- | yavta.c | 8 | 
1 files changed, 6 insertions, 2 deletions
@@ -180,6 +180,7 @@ static unsigned int v4l2_format_code(const char *name)  static int video_open(struct device *dev, const char *devname, int no_query)  {  	struct v4l2_capability cap; +	unsigned int capabilities;  	int ret;  	memset(dev, 0, sizeof *dev); @@ -208,9 +209,12 @@ static int video_open(struct device *dev, const char *devname, int no_query)  	if (ret < 0)  		return 0; -	if (cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) +	capabilities = cap.capabilities & V4L2_CAP_DEVICE_CAPS +		     ? cap.device_caps : cap.capabilities; + +	if (capabilities & V4L2_CAP_VIDEO_CAPTURE)  		dev->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; -	else if (cap.capabilities & V4L2_CAP_VIDEO_OUTPUT) +	else if (capabilities & V4L2_CAP_VIDEO_OUTPUT)  		dev->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;  	else {  		printf("Error opening device %s: neither video capture "  | 
