Hello!
After removing #include <linux/times.h> from videodev2.h i'm able to
compile nvrec 20020812-9 but without V4L2 support. Is there a patch for
v4l2_core.c so nvrec will compile with the new V4L2-API?
I fixed some pieces, but following remains:
v4l2_core.c: In function `v4l2_core_next':
v4l2_core.c:121: incompatible types in assignment
v4l2_core.c:125: invalid operands to binary -
v4l2_core.c:129: incompatible types in assignment
v4l2_core.c: In function `v4l2_core_init':
v4l2_core.c:339: storage size of `std' isn't known
v4l2_core.c:339: warning: unused variable `std'
v4l2_core.c:394: structure has no member named `flags'
v4l2_core.c:427: aggregate value used where an integer was expected
v4l2_core.c:457: structure has no member named `offset'
So, how to convert struct v4l2_enumstd in line 339?
Regards,
--
Dirk Meul <[EMAIL PROTECTED]>
--- v4l2_core.c.orig 2002-08-12 16:34:02.000000000 +0200
+++ v4l2_core.c 2002-12-08 16:03:35.000000000 +0100
@@ -29,7 +29,7 @@
#include "nvrec.h"
-#ifdef V4L2_MAJOR_VERSION
+#ifdef HAVE_V4L2
struct v4l2_core_t {
int fd; // file descriptor
@@ -76,7 +76,7 @@
ioctl(vct->fd, VIDIOC_S_CTRL, &ctrl);
DXPRINT("setup streamoff\n");
- i = V4L2_BUF_TYPE_CAPTURE;
+ i = V4L2_BUF_TYPE_VIDEO_CAPTURE;
DXPRINT("do streamoff\n");
ioctl(vct->fd, VIDIOC_STREAMOFF, &i);
@@ -110,7 +110,7 @@
if(r<0)
PERROR("Select error");
}
- vct->cbuf.type = V4L2_BUF_TYPE_CAPTURE;
+ vct->cbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if(ioctl(vct->fd, VIDIOC_DQBUF, &vct->cbuf)!=0) {
PERROR("Could not dequeue new buffer");
vct->new_index = -1;
@@ -357,7 +357,7 @@
if(freq > 0) {
int i = (int)(freq * 16.0);
- if(ioctl(vct->fd, VIDIOC_S_FREQ, &i)) {
+ if(ioctl(vct->fd, VIDIOC_S_FREQUENCY, &i)) {
PERROR("Could not set frequency");
goto error1;
}
@@ -387,11 +387,11 @@
}
memset(&cfmt, 0, sizeof(cfmt));
- cfmt.type = V4L2_BUF_TYPE_CAPTURE;
+ cfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
cfmt.fmt.pix.width = vct->width;
cfmt.fmt.pix.height = vct->height;
cfmt.fmt.pix.pixelformat = vct->pfmt;
- cfmt.fmt.pix.flags = V4L2_FMT_FLAG_INTERLACED;
+ cfmt.fmt.pix.flags = V4L2_FIELD_INTERLACED;
if (ioctl(vct->fd, VIDIOC_S_FMT, &cfmt)) {
PERROR("s_fmt");
pfmt++;
@@ -419,7 +419,7 @@
}
memset(&cparm, 0, sizeof(cparm));
- cparm.type = V4L2_BUF_TYPE_CAPTURE;
+ cparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (ioctl(vct->fd, VIDIOC_G_PARM, &cparm) != 0) {
PERROR("Could not request parameters");
goto error1;
@@ -428,7 +428,7 @@
IPRINT("Frame period %lluns\n", vct->frame_period);
memset(&crbuf, 0, sizeof(crbuf));
- crbuf.type = V4L2_BUF_TYPE_CAPTURE;
+ crbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
crbuf.count = N;
if (ioctl(vct->fd, VIDIOC_REQBUFS, &crbuf) != 0) {
PERROR("Could not request buffers");
@@ -448,7 +448,7 @@
IPRINT("Got %i buffers\n", vct->nbufs);
for(i=0; i<vct->nbufs; i++) {
- vct->cbuf.type = V4L2_BUF_TYPE_CAPTURE;
+ vct->cbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
vct->cbuf.index = i;
if(ioctl(vct->fd, VIDIOC_QUERYBUF, &vct->cbuf)!=0) {
PERROR("Querybuf failed");
@@ -498,7 +498,7 @@
vct->new_index = -1;
vct->new_seq = -1;
- i = V4L2_BUF_TYPE_CAPTURE;
+ i = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if(ioctl(vct->fd, VIDIOC_STREAMON, &i)!=0) {
PERROR("Could not streamon");
goto error2;