summaryrefslogtreecommitdiff
path: root/extra/xawtv/xawtv-3.95-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/xawtv/xawtv-3.95-fixes.patch')
-rw-r--r--extra/xawtv/xawtv-3.95-fixes.patch72
1 files changed, 0 insertions, 72 deletions
diff --git a/extra/xawtv/xawtv-3.95-fixes.patch b/extra/xawtv/xawtv-3.95-fixes.patch
deleted file mode 100644
index b6cdf8dec..000000000
--- a/extra/xawtv/xawtv-3.95-fixes.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up xawtv-3.95.new/libng/plugins/drv0-v4l2.c.fixes xawtv-3.95.new/libng/plugins/drv0-v4l2.c
---- xawtv-3.95.new/libng/plugins/drv0-v4l2.c.fixes 2005-02-11 18:56:24.000000000 +0100
-+++ xawtv-3.95.new/libng/plugins/drv0-v4l2.c 2008-08-03 20:46:32.000000000 +0200
-@@ -91,6 +91,7 @@ struct v4l2_handle {
- struct ng_video_fmt fmt_me;
- struct v4l2_requestbuffers reqbufs;
- struct v4l2_buffer buf_v4l2[WANTED_BUFFERS];
-+ int buf_v4l2_size[WANTED_BUFFERS];
- struct ng_video_buf buf_me[WANTED_BUFFERS];
- unsigned int queue,waiton;
-
-@@ -166,7 +167,7 @@ xioctl(int fd, int cmd, void *arg, int m
- int rc;
-
- rc = ioctl(fd,cmd,arg);
-- if (0 == rc && ng_debug < 2)
-+ if (rc >= 0 && ng_debug < 2)
- return rc;
- if (mayfail && errno == mayfail && ng_debug < 2)
- return rc;
-@@ -768,6 +769,7 @@ v4l2_waiton(struct v4l2_handle *h)
- /* get it */
- memset(&buf,0,sizeof(buf));
- buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+ buf.memory = V4L2_MEMORY_MMAP;
- if (-1 == xioctl(h->fd,VIDIOC_DQBUF,&buf, 0))
- return -1;
- h->waiton++;
-@@ -812,6 +814,7 @@ v4l2_start_streaming(struct v4l2_handle
- h->buf_v4l2[i].memory = V4L2_MEMORY_MMAP;
- if (-1 == xioctl(h->fd, VIDIOC_QUERYBUF, &h->buf_v4l2[i], 0))
- return -1;
-+ h->buf_v4l2_size[i] = h->buf_v4l2[i].length;
- h->buf_me[i].fmt = h->fmt_me;
- h->buf_me[i].size = h->buf_me[i].fmt.bytesperline *
- h->buf_me[i].fmt.height;
-@@ -865,12 +868,16 @@ v4l2_stop_streaming(struct v4l2_handle *
- ng_waiton_video_buf(&h->buf_me[i]);
- if (ng_debug)
- print_bufinfo(&h->buf_v4l2[i]);
-- if (-1 == munmap(h->buf_me[i].data,h->buf_me[i].size))
-+ if (-1 == munmap(h->buf_me[i].data, h->buf_v4l2_size[i]))
- perror("munmap");
- }
- h->queue = 0;
- h->waiton = 0;
-
-+ /* unrequest buffers (only needed for some drivers) */
-+ h->reqbufs.count = 0;
-+ xioctl(h->fd, VIDIOC_REQBUFS, &h->reqbufs, EINVAL);
-+
- /* turn on preview (if needed) */
- if (h->ov_on != h->ov_enabled) {
- h->ov_on = h->ov_enabled;
-@@ -907,6 +914,17 @@ v4l2_setformat(void *handle, struct ng_v
- fmt->width = h->fmt_v4l2.fmt.pix.width;
- fmt->height = h->fmt_v4l2.fmt.pix.height;
- fmt->bytesperline = h->fmt_v4l2.fmt.pix.bytesperline;
-+ /* struct v4l2_format.fmt.pix.bytesperline is bytesperline for the
-+ main plane for planar formats, where as we want it to be the total
-+ bytesperline for all planes */
-+ switch (fmt->fmtid) {
-+ case VIDEO_YUV422P:
-+ fmt->bytesperline *= 2;
-+ break;
-+ case VIDEO_YUV420P:
-+ fmt->bytesperline = fmt->bytesperline * 3 / 2;
-+ break;
-+ }
- if (0 == fmt->bytesperline)
- fmt->bytesperline = fmt->width * ng_vfmt_to_depth[fmt->fmtid] / 8;
- h->fmt_me = *fmt;