svn path=/trunk/kdenlive/; revision=5628
+ char *res = NULL;
+ int captureEnabled = 1;
if(ioctl(s->fd, VIDIOC_QUERYCAP, &s->cap) < 0) {
if(ioctl(s->fd, VIDIOC_QUERYCAP, &s->cap) < 0) {
fprintf(stderr, "Cannot get capabilities.");
fprintf(stderr, "Cannot get capabilities.");
- return NULL;
- }
- char *res = strdup((char*) s->cap.card);
- /*strcpy(res, (char*) s->cap.card);*/
- if(!s->cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) {
- // Device cannot capture
+ res = strdup((char*) s->cap.card);
+ if(!s->cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) {
+ // Device cannot capture
+ captureEnabled = 0;
+ }
+ }
+
+ if (captureEnabled) {
struct v4l2_format format;
memset(&format,0,sizeof(format));
format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
struct v4l2_format format;
memset(&format,0,sizeof(format));
format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- if (ioctl(s->fd,VIDIOC_G_FMT,&format) < 0) {
- fprintf(stderr, "Cannot get format.");
- // Cannot query
- }
struct v4l2_fmtdesc fmt;
memset(&fmt,0,sizeof(fmt));
fmt.index = 0;
struct v4l2_fmtdesc fmt;
memset(&fmt,0,sizeof(fmt));
fmt.index = 0;
while (ioctl(s->fd, VIDIOC_ENUM_FMT, &fmt) != -1)
{
while (ioctl(s->fd, VIDIOC_ENUM_FMT, &fmt) != -1)
{
- /*strcpy(*pixelformatdescription, (char *) fmt.description);*/
- //*pixelformatdescription = strdup((char*)fmt.description);
snprintf( value, sizeof(value), ">%c%c%c%c", fmt.pixelformat >> 0, fmt.pixelformat >> 8, fmt.pixelformat >> 16, fmt.pixelformat >> 24 );
strcat(*pixelformatdescription, (char *) value);
fprintf(stderr, "detected format: %s: %c%c%c%c\n", fmt.description, fmt.pixelformat >> 0, fmt.pixelformat >> 8,
snprintf( value, sizeof(value), ">%c%c%c%c", fmt.pixelformat >> 0, fmt.pixelformat >> 8, fmt.pixelformat >> 16, fmt.pixelformat >> 24 );
strcat(*pixelformatdescription, (char *) value);
fprintf(stderr, "detected format: %s: %c%c%c%c\n", fmt.description, fmt.pixelformat >> 0, fmt.pixelformat >> 8,
v4lsrc.source = strdup(input.toUtf8().constData());
char *pixelformatdescription;
pixelformatdescription = (char *) calloc(2048, sizeof(char));
v4lsrc.source = strdup(input.toUtf8().constData());
char *pixelformatdescription;
pixelformatdescription = (char *) calloc(2048, sizeof(char));
- QString deviceName(query_v4ldevice(&v4lsrc, &pixelformatdescription));
+ QStringList result;
+ const char *devName = query_v4ldevice(&v4lsrc, &pixelformatdescription);
+ if (devName == NULL) return result;
+ QString deviceName(devName);
QString info(pixelformatdescription);
free (pixelformatdescription);
QString info(pixelformatdescription);
free (pixelformatdescription);
result << (deviceName.isEmpty() ? input : deviceName) << info;
return result;
}
result << (deviceName.isEmpty() ? input : deviceName) << info;
return result;
}