Compare commits

...
Sign in to create a new pull request.

20 commits

Author SHA1 Message Date
Dmitry Butskoy
a4d9cee27e fix CVE-2020-13696 (#1882287) 2020-09-26 16:21:44 +03:00
Dmitry Butskoy
16e567e35a Revert "update to 3.107"
This reverts commit 7c096a4bd7.
2020-09-26 16:12:19 +03:00
Dmitry Butskoy
7c096a4bd7 update to 3.107 2020-09-26 15:57:39 +03:00
buc
8bc2050391 Update to 3.105 2018-06-19 16:02:22 +03:00
buc
cb0d6a2da0 Update to the latest upstream patches 2016-02-17 04:33:14 +03:00
Dmitry Butskoy
0fffa4fbff Update to 3.103 2013-04-02 19:52:09 +04:00
Mauro Carvalho Chehab
b743d23634 Bump to version 3.101
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-07-03 12:37:08 -03:00
Mauro Carvalho Chehab
e2df236dae Fix build on el6
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-03-02 11:08:29 -03:00
Mauro Carvalho Chehab
6c357d8e9c Updated to xawtv version 3.100
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-03-02 10:43:32 -03:00
Mauro Carvalho Chehab
5be4c66b24 Reenable aalib
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 14:41:03 -02:00
Mauro Carvalho Chehab
321f44893e The fslib removal patch was incomplete. fix it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 13:49:41 -02:00
Mauro Carvalho Chehab
051dfa09e0 Forgot to add the patch ;)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 13:37:59 -02:00
Mauro Carvalho Chehab
ff4d7013b9 Remove the last bits from FSlib
Let's try this first on el6, and then move this patch upstream

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 13:34:23 -02:00
Mauro Carvalho Chehab
3af9a2095c Disable aalib support for EPEL
Error: No Package found for aalib-devel

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 13:23:13 -02:00
Mauro Carvalho Chehab
f6e0311c40 Currently, zvbi-devel is not on standard epel6 repositories
For the first build, don't require zvbi-devel

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-02-04 13:15:43 -02:00
Mauro Carvalho Chehab
b339aa4d48 Initial version for EPEL6
Matches upstream version 3.99-rc5
2011-02-03 16:53:46 -02:00
Fedora Release Engineering
1223a3d80c dist-git conversion 2010-07-29 15:32:43 +00:00
22c8816860 - Fix xawtv not starting due to it not finding its fonts 2010-03-12 16:24:31 +00:00
Bill Nottingham
fed7517990 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:29:11 +00:00
Jesse Keating
b631e97d55 Initialize branch F-12 for xawtv 2009-09-29 07:19:59 +00:00
25 changed files with 470 additions and 1432 deletions

View file

@ -1 +0,0 @@
xawtv-3.95.tar.gz

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
xawtv-3.98.tar.bz2
/xawtv-3.99.rc1.tar.bz2
/xawtv-3.99.rc2.tar.bz2
/xawtv-3.99.rc3.tar.bz2
/xawtv-3.99.rc4.tar.bz2
/xawtv-3.99.rc5.tar.bz2
/xawtv-3.100.tar.bz2
/xawtv-3.101.tar.bz2

View file

@ -0,0 +1,84 @@
From 185c8b182ac6f7fa6a5c69975f9dabdb9af6fce0 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: Mon, 11 Jun 2018 13:34:08 -0300
Subject: [PATCH 1/3] fbtv: don't keep a black screen in case of fatal errors
If something bad happens and fbtv exits, it should restore
the VT window, as otherwise the error messages won't be
displayed.
So, be sure to call fb_cleanup() before calling exit().
Let's also start ncurses later, as this is used only to get
keys, and this happens only within the image display loop.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
console/fbtv.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/console/fbtv.c b/console/fbtv.c
index aba517e4fc8e..33372385b7c6 100644
--- a/console/fbtv.c
+++ b/console/fbtv.c
@@ -279,8 +279,8 @@ fb_initcolors(int fd, int gray)
#endif
break;
default:
- fprintf(stderr, "Oops: %i bit/pixel ???\n",
- fb_var.bits_per_pixel);
+ fb_cleanup();
+ fprintf(stderr, "Oops: %i bit/pixel ???\n", fb_var.bits_per_pixel);
exit(1);
}
@@ -404,6 +404,7 @@ static void do_capture(int from, int to, int tmp_switch)
if (0 != ng_grabber_setformat(&fmt,1)) {
gfmt = fmt;
if (NULL == (conv = ng_grabber_findconv(&gfmt,0))) {
+ fb_cleanup();
fprintf(stderr,"can't find useful capture format\n");
exit(1);
}
@@ -528,6 +529,7 @@ grabber_init(void)
drv = ng_vid_open(&ng_dev.video, ng_dev.driver, &screen, 0, &h_drv);
if (NULL == drv) {
+ fb_cleanup();
fprintf(stderr,"no grabber device available\n");
exit(1);
}
@@ -724,7 +726,6 @@ main(int argc, char *argv[])
exit_hook = do_exit;
fullscreen_hook = do_fullscreen;
- tty_init();
memset(&act,0,sizeof(act));
act.sa_handler = ctrlc;
sigemptyset(&act.sa_mask);
@@ -770,6 +771,7 @@ main(int argc, char *argv[])
}
#endif
+ tty_init();
fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
for (;!sig;) {
if ((fb_switch_state == FB_ACTIVE || keep_dma_on) && !quiet) {
@@ -824,6 +826,14 @@ main(int argc, char *argv[])
fps++;
/* grab + convert frame */
if (NULL == (buf = ng_grabber_grab_image(0))) {
+ do_va_cmd(2,"capture","off");
+ if (mute)
+ audio_off();
+ drv->close(h_drv);
+ if (fb_switch_state == FB_ACTIVE)
+ fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+ tty_cleanup();
+ fb_cleanup();
fprintf(stderr,"capturing image failed\n");
exit(1);
}
--
2.17.1

View file

@ -0,0 +1,74 @@
From bc3b0ec4d5f2af3e9b8e70287b4bdc885111f174 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: Mon, 11 Jun 2018 16:54:13 -0300
Subject: [PATCH 2/3] fbdev: prevent writing outsize framebuffer area
There are a series of things at the code that could overflow
and make it to try writing past the framebuffer. Prevent it.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
console/fbtv.c | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/console/fbtv.c b/console/fbtv.c
index 33372385b7c6..1d700e6f945f 100644
--- a/console/fbtv.c
+++ b/console/fbtv.c
@@ -377,6 +377,14 @@ static void do_capture(int from, int to, int tmp_switch)
break;
}
+ /* Sanity check: don't accept resolution higher than framebuffer */
+ if (ww && hh) {
+ if (ww > fb_var.xres)
+ ww = fb_var.xres;
+ if (hh > fb_var.yres)
+ hh = fb_var.yres;
+ }
+
/* on */
memset(&buf,0,sizeof(buf));
switch (to) {
@@ -411,8 +419,9 @@ static void do_capture(int from, int to, int tmp_switch)
ch = ng_convert_alloc(conv,&gfmt,&fmt);
ng_convert_init(ch);
}
- dx += (fb_var.xres-24-fmt.width)/2;
- dy += (fb_var.yres-16-fmt.height)/2;
+
+ dx += (fb_var.xres - 24 - fmt.width)/2;
+ dy += (fb_var.yres - 16 - fmt.height)/2;
if (f_drv & CAN_CAPTURE)
drv->startvideo(h_drv,-1,2);
@@ -464,6 +473,12 @@ static void do_capture(int from, int to, int tmp_switch)
}
break;
}
+
+ /* Sanity checks: some of the formula above could overflow */
+ if (dx < 0 || dx > fb_var.xres)
+ dx = 0;
+ if (dy < 0 || dy > fb_var.yres)
+ dy = 0;
}
static void
@@ -848,7 +863,13 @@ main(int argc, char *argv[])
linesize = buf->fmt.width * (ng_vfmt_to_depth[fmt.fmtid] / 8);
+ /* Prevent writing at the next line */
+ if (linesize > fb_fix.line_length)
+ linesize = fb_fix.line_length;
for (ui = 0; ui < buf->fmt.height; ui++) {
+ if ((char *)dst + linesize > (char *)fb_mem + fb_mem_offset + fb_fix.smem_len)
+ break;
+
memcpy(dst, src, linesize);
src += buf->fmt.bytesperline;
dst += fb_fix.line_length;
--
2.17.1

View file

@ -0,0 +1,85 @@
From a4493b399e45a97b9dd14499f54719cc4095f447 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: Mon, 11 Jun 2018 17:04:14 -0300
Subject: [PATCH 3/3] fbtv: allow displaying texts over the camera streaming
screen
When the image is too big, there won't be a f->height space
before the streaming window. So, allow overwriting the fonts
on the top of it.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
console/fbtv.c | 33 +++++++++++++++++++++------------
1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/console/fbtv.c b/console/fbtv.c
index 1d700e6f945f..278443fcbf3c 100644
--- a/console/fbtv.c
+++ b/console/fbtv.c
@@ -604,7 +604,7 @@ main(int argc, char *argv[])
unsigned long freq;
struct timeval tv;
time_t t;
- char text[145],event[64],*env,*src,*dst;
+ char text1[145], text2[145], event[64], *env, *src, *dst;
fd_set set;
struct sigaction act,old;
@@ -790,26 +790,28 @@ main(int argc, char *argv[])
fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
for (;!sig;) {
if ((fb_switch_state == FB_ACTIVE || keep_dma_on) && !quiet) {
- /* clear first lines */
- fb_memset(fb_mem+fb_mem_offset,0,f->height*fb_fix.line_length);
if (message[0] != '\0') {
- strcpy(text,message);
+ strcpy(text1, message);
} else {
- sprintf(text,"Framebuffer TV - %s",default_title);
+ sprintf(text1, "Framebuffer TV - %s",default_title);
}
/* debugging + preformance monitoring */
switch (cur_capture) {
case CAPTURE_GRABDISPLAY:
- sprintf(text+strlen(text), " - grab %d.%d fps",fps/5,(fps*2)%10);
+ sprintf(text1 + strlen(text1), " - grab %d.%d fps",
+ fps / 5, (fps * 2) % 10);
break;
}
- text_out(0,0,text);
- if (dy > 0) {
- /* display time */
- time(&t);
- strftime(text,16,"%H:%M",localtime(&t));
- text_out(fb_var.xres - text_width(text) - f->width, 0, text);
+ /* display time */
+ time(&t);
+ strftime(text2, 16, "%H:%M", localtime(&t));
+
+ if (dy >= f->height) {
+ /* clear first lines */
+ fb_memset(fb_mem+fb_mem_offset,0,f->height*fb_fix.line_length);
+ text_out(0,0,text1);
+ text_out(fb_var.xres - text_width(text2) - f->width, 0, text2);
}
}
if (switch_last != fb_switch_state)
@@ -883,6 +885,13 @@ main(int argc, char *argv[])
tv.tv_usec = 0;
rc = select(fdmax,&set,NULL,NULL,&tv);
}
+
+ /* If space is too short, overlay text at screen */
+ if ((fb_switch_state == FB_ACTIVE || keep_dma_on) && !quiet && dy < f->height) {
+ text_out(0,0,text1);
+ text_out(fb_var.xres - text_width(text2) - f->width, 0, text2);
+ }
+
err = errno;
if (switch_last != fb_switch_state)
console_switch();
--
2.17.1

View file

@ -1,21 +0,0 @@
# Makefile for source rpm: xawtv
# $Id$
NAME := xawtv
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View file

@ -1 +1 @@
ad25e03f7e128b318e392cb09f52207d xawtv-3.95.tar.gz
SHA512 (xawtv-3.105.tar.bz2) = 0c1e2c3a73b3452778762b26a061f5646ef2a34de80027e17777ee9f6ca91ca5370b4790e2bdbe4b5edc864fe9775c9125c52e951fb08c83dc1706afbdf21e55

View file

@ -0,0 +1,35 @@
diff --git a/console/v4l-conf.c b/console/v4l-conf.c
index c38bf16..c96886b 100644
--- a/console/v4l-conf.c
+++ b/console/v4l-conf.c
@@ -141,20 +141,23 @@ dev_open(const char *device, int major)
exit(1);
}
- /* open & check v4l device */
- if (-1 == (fd = open(device,O_RDWR))) {
- fprintf(stderr, "can't open %s: %s\n", device, strerror(errno));
+ /* First check if the device is really a devnode of the right type */
+ if (-1 == stat(device, &stb)) {
+ fprintf(stderr, "stat(%s): %s\n", device, strerror(errno));
exit(1);
}
- if (-1 == fstat(fd,&stb)) {
- fprintf(stderr, "fstat(%s): %s\n", device, strerror(errno));
- exit(1);
- }
if (!S_ISCHR(stb.st_mode) || (major(stb.st_rdev) != major)) {
fprintf(stderr, "%s: wrong device\n", device);
exit(1);
}
+
+ /* Then open it */
+ if (-1 == (fd = open(device,O_RDWR))) {
+ fprintf(stderr, "can't open %s: %s\n", device, strerror(errno));
+ exit(1);
+ }
+
return fd;
}

View file

@ -1,85 +0,0 @@
diff -Nrbu xawtv-3.95/console/v4l-conf.c xawtv-3.95-OK/console/v4l-conf.c
--- xawtv-3.95/console/v4l-conf.c 2008-08-26 19:37:34.000000000 +0400
+++ xawtv-3.95-OK/console/v4l-conf.c 2008-08-26 19:39:28.000000000 +0400
@@ -53,6 +53,7 @@
int v4l2 = 1;
int user_bpp = 0;
int user_shift = 0;
+int user_bpl = 0;
void *user_base = NULL;
char *display = NULL;
char *fbdev = NULL;
@@ -385,7 +386,15 @@
}
if (yuv)
fb.fmt.pixelformat = V4L2_PIX_FMT_YUYV;
+ /* Prefer an already configured bpl (if it makes sense) over our found bpl
+ if we did not find a base as our bpl is not very reliable when we did
+ not find a base */
+ if (user_bpl || d->base ||
+ fb.fmt.bytesperline < (fb.fmt.width * ((d->bpp + 7) / 8)))
fb.fmt.bytesperline = d->bpl;
+ else
+ fprintf(stderr,"WARNING: keeping fbuf pitch at: %d, as no base addr was detected\n",
+ (int)fb.fmt.bytesperline);
fb.fmt.sizeimage = fb.fmt.height * fb.fmt.bytesperline;
if (NULL != d->base)
fb.base = d->base;
@@ -498,7 +507,7 @@
/* parse options */
for (;;) {
- if (-1 == (c = getopt(argc, argv, "hyq12d:c:b:s:fa:")))
+ if (-1 == (c = getopt(argc, argv, "hyq12d:c:b:s:fa:p:")))
break;
switch (c) {
case 'q':
@@ -543,6 +552,14 @@
exit(1);
}
break;
+ case 'p':
+ if (0 == getuid()) {
+ sscanf(optarg,"%d",&user_bpl);
+ } else {
+ fprintf(stderr,"only root is allowed to use the -p option\n");
+ exit(1);
+ }
+ break;
case 'h':
default:
fprintf(stderr,
@@ -560,6 +577,8 @@
" -a <addr> set framebuffer address to <addr>\n"
" (in hex, root only, successful autodetect\n"
" will overwrite this address)\n"
+ " -p <pitch> set framebuffer pitch to <pitch> bytes\n"
+ " (decimal, root only)\n"
" -1 force v4l API\n"
" -2 force v4l2 API\n",
argv[0],
@@ -626,6 +645,9 @@
(d.depth == 15 || d.depth == 16))
d.depth = user_bpp;
+ if (user_bpl)
+ d.bpl = user_bpl;
+
if (verbose) {
fprintf(stderr,"mode: %dx%d, depth=%d, bpp=%d, bpl=%d, ",
d.width,d.height,d.depth,d.bpp,d.bpl);
diff -Nrbu xawtv-3.95/man/v4l-conf.8 xawtv-3.95-OK/man/v4l-conf.8
--- xawtv-3.95/man/v4l-conf.8 2008-08-26 19:37:34.000000000 +0400
+++ xawtv-3.95-OK/man/v4l-conf.8 2008-08-26 19:45:02.000000000 +0400
@@ -62,6 +62,11 @@
autodetected value, this switch is only useful if autodetect doesn't
work because the X-Server lacks DGA support. You can put this into
/etc/conf.modules, as "post-install bttv ..." for example.
+.TP 4
+\fB-p\fP pitch
+Set framebuffer pitch to \fBpitch\fP bytes. The value should be specified
+in decimal. Allowed for root only. (Currently it is a distro-specific option
+added by Fedora).
.SH BUGS
Hope I haven't any security flaws in there. If you find one, drop me a
note. Mails with patches are preferred :-)

View file

@ -1,65 +0,0 @@
diff -Nrbu xawtv-3.95/configure.ac xawtv-3.95-OK/configure.ac
--- xawtv-3.95/configure.ac 2004-08-18 19:48:09.000000000 +0400
+++ xawtv-3.95-OK/configure.ac 2006-12-27 19:01:29.000000000 +0300
@@ -110,7 +110,10 @@
AC_CHECK_LIB(c_r,pthread_create,LIBPTHREAD="-lc_r")
fi
AC_CHECK_LIB(ossaudio,main,LIBOSS="-lossaudio")
-AC_CHECK_LIB(ncurses,initscr,LIBCURSES="-lncurses")
+AC_CHECK_LIB(ncursesw,initscr,LIBCURSES="-lncursesw")
+if test "$LIBCURSES" = ""; then
+ AC_CHECK_LIB(ncurses,initscr,LIBCURSES="-lncurses")
+fi
if test "$LIBCURSES" = ""; then
AC_CHECK_LIB(curses,initscr,LIBCURSES="-lcurses")
fi
@@ -120,6 +123,9 @@
echo " you need also the *-devel packages."
exit 1
fi
+if test "$LIBCURSES" = "-lncursesw"; then
+ CFLAGS="$CFLAGS -I/usr/include/ncursesw"
+fi
AC_SUBST(LIBPTHREAD)
AC_SUBST(LIBOSS)
AC_SUBST(LIBCURSES)
diff -Nrbu xawtv-3.95/console/radio.c xawtv-3.95-OK/console/radio.c
--- xawtv-3.95/console/radio.c 2003-04-16 19:35:13.000000000 +0400
+++ xawtv-3.95-OK/console/radio.c 2006-12-27 19:13:06.000000000 +0300
@@ -23,6 +23,7 @@
#include <string.h>
#include <errno.h>
#include <fcntl.h>
+#include <locale.h>
#include <curses.h>
#include <sys/time.h>
#include <sys/ioctl.h>
@@ -398,6 +399,8 @@
int quit=0, scan=0, arg_mute=0;
struct video_tuner tuner;
+ setlocale(LC_ALL,"");
+
/* parse args */
for (;;) {
c = getopt(argc, argv, "mhiqdsSf:c:");
diff -Nrbu xawtv-3.95/console/record.c xawtv-3.95-OK/console/record.c
--- xawtv-3.95/console/record.c 2003-04-03 14:51:00.000000000 +0400
+++ xawtv-3.95-OK/console/record.c 2006-12-27 19:13:18.000000000 +0300
@@ -6,6 +6,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
+#include <locale.h>
#include <curses.h>
#include <signal.h>
#include <inttypes.h>
@@ -574,6 +575,8 @@
record = 0;
nr = 0;
+ setlocale(LC_ALL,"");
+
/* parse options */
for (;;) {
if (-1 == (c = getopt(argc, argv, "vhlci:o:d:m:r:t:s:L:p:n:")))

View file

@ -1,72 +0,0 @@
diff -Nrbu xawtv-3.95/libng/plugins/drv0-v4l2.c xawtv-3.95-OK/libng/plugins/drv0-v4l2.c
--- xawtv-3.95/libng/plugins/drv0-v4l2.c 2005-02-11 20:56:24.000000000 +0300
+++ xawtv-3.95-OK/libng/plugins/drv0-v4l2.c 2008-08-26 19:27:18.000000000 +0400
@@ -91,6 +91,7 @@
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 @@
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 @@
/* 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 @@
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 @@
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 @@
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;

View file

@ -1,25 +0,0 @@
diff -Nrbu xawtv-3.95/vbistuff/alevt.css.in xawtv-3.95-OK/vbistuff/alevt.css.in
--- xawtv-3.95/vbistuff/alevt.css.in 2003-02-14 17:14:08.000000000 +0300
+++ xawtv-3.95-OK/vbistuff/alevt.css.in 2007-03-02 19:38:26.000000000 +0300
@@ -3,7 +3,7 @@
pre.vt { border: 1pt solid black; padding: 12pt }
pre.vt { background-color: #c0c0c0; width: auto; float: left }
pre.vt { white-space: pre }
-pre.vt { font-family: "teletext, monospace"; font-size: 20px; line-height: 20px }
+pre.vt { font-family: "teletext"; font-size: 10px; line-height: 10px }
div.quick { clear: both }
diff -Nrbu xawtv-3.95/x11/Xawtv.ad xawtv-3.95-OK/x11/Xawtv.ad
--- xawtv-3.95/x11/Xawtv.ad 2003-02-18 19:31:33.000000000 +0300
+++ xawtv-3.95-OK/x11/Xawtv.ad 2007-03-02 19:37:26.000000000 +0300
@@ -382,9 +382,7 @@
xawtv.onscreen*borderColor: black
xawtv.onscreen*foreground: lightgreen
xawtv.onscreen.label.justify: left
-xawtv.onscreen.label.font: -*-ledfixed-medium-r-*--39-*-*-*-c-*-*-*
xawtv.onscreen.label.fontSet: \
- -*-ledfixed-medium-r-semicondensed--39-*-*-*-c-*-*-*, \
-*-bitstream vera sans-medium-r-normal--39-*-*-*-*-*-*-*, \
-*-luxi sans-medium-r-normal--39-*-*-*-*-*-*-*, \
-*-*-r-normal--39-*-*-*-*-*-*-*, \

View file

@ -1,79 +0,0 @@
diff -Nrbu xawtv-3.95/common/capture.c xawtv-3.95-OK/common/capture.c
--- xawtv-3.95/common/capture.c 2004-10-12 14:16:34.000000000 +0400
+++ xawtv-3.95-OK/common/capture.c 2006-12-27 19:55:59.000000000 +0300
@@ -527,12 +527,12 @@
if (h->vfmt.fmtid != VIDEO_NONE && h->afmt.fmtid != AUDIO_NONE) {
for (frames = 0; frames < 16; frames++) {
- stopby = (uint64_t)(h->frames + frames) * (uint64_t)1000000000000 / h->fps;
+ stopby = (uint64_t)(h->frames + frames) * (uint64_t)1000000000000ULL / h->fps;
if (stopby > h->ats)
break;
}
frames++;
- h->stopby = (uint64_t)(h->frames + frames) * (uint64_t)1000000000000 / h->fps;
+ h->stopby = (uint64_t)(h->frames + frames) * (uint64_t)1000000000000ULL / h->fps;
while (frames) {
movie_grab_put_video(h,NULL);
frames--;
@@ -594,11 +594,11 @@
(h->rdrift > 0) ? '+' : '-',
(int)((abs(h->rdrift) / 1000000000)),
(int)((abs(h->rdrift) % 1000000000) / 10000000),
- (int)(h->rdrift * h->fps / (uint64_t)1000000000000),
+ (int)(h->rdrift * h->fps / (uint64_t)1000000000000ULL),
(h->vdrift > 0) ? '+' : '-',
(int)((abs(h->vdrift) / 1000000000)),
(int)((abs(h->vdrift) % 1000000000) / 10000000),
- (int)(h->vdrift * h->fps / (uint64_t)1000000000000));
+ (int)(h->vdrift * h->fps / (uint64_t)1000000000000ULL));
rec_status(line);
}
@@ -623,7 +623,7 @@
#endif
/* rate control */
- expected = (buf->info.ts - h->vdrift) * h->fps / (uint64_t)1000000000000;
+ expected = (buf->info.ts - h->vdrift) * h->fps / (uint64_t)1000000000000ULL;
if (expected < h->frames-1) {
if (debug > 1)
fprintf(stderr,"rate: ignoring frame [%d %d]\n",
diff -Nrbu xawtv-3.95/console/showqt.c xawtv-3.95-OK/console/showqt.c
--- xawtv-3.95/console/showqt.c 2003-03-27 13:37:08.000000000 +0300
+++ xawtv-3.95-OK/console/showqt.c 2006-12-27 19:52:51.000000000 +0300
@@ -25,14 +25,14 @@
(((uint32_t)x<<8) & (uint32_t)0x00ff0000) |\
(((uint32_t)x<<24) & (uint32_t)0xff000000))
-# define SWAP8(x) ((((uint64_t)x>>56) & (uint64_t)0x00000000000000ff) |\
- (((uint64_t)x>>40) & (uint64_t)0x000000000000ff00) |\
- (((uint64_t)x>>24) & (uint64_t)0x0000000000ff0000) |\
- (((uint64_t)x>> 8) & (uint64_t)0x00000000ff000000) |\
- (((uint64_t)x<< 8) & (uint64_t)0x000000ff00000000) |\
- (((uint64_t)x<<24) & (uint64_t)0x0000ff0000000000) |\
- (((uint64_t)x<<40) & (uint64_t)0x00ff000000000000) |\
- (((uint64_t)x<<56) & (uint64_t)0xff00000000000000))
+# define SWAP8(x) ((((uint64_t)x>>56) & (uint64_t)0x00000000000000ffULL) |\
+ (((uint64_t)x>>40) & (uint64_t)0x000000000000ff00ULL) |\
+ (((uint64_t)x>>24) & (uint64_t)0x0000000000ff0000ULL) |\
+ (((uint64_t)x>> 8) & (uint64_t)0x00000000ff000000ULL) |\
+ (((uint64_t)x<< 8) & (uint64_t)0x000000ff00000000ULL) |\
+ (((uint64_t)x<<24) & (uint64_t)0x0000ff0000000000ULL) |\
+ (((uint64_t)x<<40) & (uint64_t)0x00ff000000000000ULL) |\
+ (((uint64_t)x<<56) & (uint64_t)0xff00000000000000ULL))
#else
# define SWAP2(a) (a)
# define SWAP4(a) (a)
diff -Nrbu xawtv-3.95/libng/plugins/read-dv.c xawtv-3.95-OK/libng/plugins/read-dv.c
--- xawtv-3.95/libng/plugins/read-dv.c 2003-02-14 17:14:05.000000000 +0300
+++ xawtv-3.95-OK/libng/plugins/read-dv.c 2006-12-27 19:58:49.000000000 +0300
@@ -125,7 +125,7 @@
"dv: height=%d width=%d frame_size=%ld\n",
h->dec->quality, h->dec->system, h->dec->std,
h->dec->sampling, h->dec->num_dif_seqs, h->dec->height,
- h->dec->width, h->dec->frame_size);
+ h->dec->width, (long) h->dec->frame_size);
fprintf(stderr, "dv: audio: %d Hz, %d bits, %d channels,"
" emphasis %s\n",
h->dec->audio->frequency,

View file

@ -1,177 +0,0 @@
diff -Nrbu xawtv-3.95/libng/plugins/Subdir.mk xawtv-3.95-OK/libng/plugins/Subdir.mk
--- xawtv-3.95/libng/plugins/Subdir.mk 2008-08-26 19:46:59.000000000 +0400
+++ xawtv-3.95-OK/libng/plugins/Subdir.mk 2008-08-26 19:48:40.000000000 +0400
@@ -41,6 +41,7 @@
libng/plugins/write-qt.so : LDLIBS := $(QT_LIBS)
libng/plugins/read-dv.so : LDLIBS := $(DV_LIBS)
libng/plugins/write-dv.so : LDLIBS := $(DV_LIBS)
+libng/plugins/drv0-v4l2.so: LDLIBS := -lv4l2
# global targets
all:: $(TARGETS-plugins)
diff -Nrbu xawtv-3.95/libng/plugins/drv0-v4l2.c xawtv-3.95-OK/libng/plugins/drv0-v4l2.c
--- xawtv-3.95/libng/plugins/drv0-v4l2.c 2008-08-26 19:46:59.000000000 +0400
+++ xawtv-3.95-OK/libng/plugins/drv0-v4l2.c 2008-08-26 19:48:40.000000000 +0400
@@ -29,11 +29,26 @@
#include "struct-dump.h"
#include "struct-v4l2.h"
+/* FIXME replace with autoconf detection */
+#define HAVE_LIBV4L
+
+#ifdef HAVE_LIBV4L
+#include <libv4l2.h>
+#else
+#define v4l2_fd_open(fd, flags) (fd)
+#define v4l2_close close
+#define v4l2_dup dup
+#define v4l2_ioctl ioctl
+#define v4l2_read read
+#define v4l2_mmap mmap
+#define v4l2_munmap munmap
+#endif
+
/* ---------------------------------------------------------------------- */
/* open+close */
-static void* v4l2_open(char *device);
-static int v4l2_close(void *handle);
+static void* v4l2_open_handle(char *device);
+static int v4l2_close_handle(void *handle);
/* attributes */
static char* v4l2_devname(void *handle);
@@ -111,8 +126,8 @@
struct ng_vid_driver v4l2_driver = {
name: "v4l2",
- open: v4l2_open,
- close: v4l2_close,
+ open: v4l2_open_handle,
+ close: v4l2_close_handle,
get_devname: v4l2_devname,
capabilities: v4l2_flags,
@@ -166,7 +181,7 @@
{
int rc;
- rc = ioctl(fd,cmd,arg);
+ rc = v4l2_ioctl(fd,cmd,arg);
if (rc >= 0 && ng_debug < 2)
return rc;
if (mayfail && errno == mayfail && ng_debug < 2)
@@ -220,7 +235,7 @@
}
h->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- ioctl(h->fd,VIDIOC_G_PARM,&h->streamparm);
+ v4l2_ioctl(h->fd,VIDIOC_G_PARM,&h->streamparm);
/* controls */
for (i = 0; i < MAX_CTRL; i++) {
@@ -444,10 +459,10 @@
/* ---------------------------------------------------------------------- */
static void*
-v4l2_open(char *device)
+v4l2_open_handle(char *device)
{
struct v4l2_handle *h;
- int i;
+ int i, libv4l2_fd;
h = malloc(sizeof(*h));
if (NULL == h)
@@ -459,6 +474,16 @@
goto err;
}
+ /* Note the v4l2_xxx functions are designed so that if they get passed an
+ unknown fd, the will behave exactly as their regular xxx counterparts, so
+ if v4l2_fd_open fails, we continue as normal (missing the libv4l2 custom
+ cam format to normal formats conversion). Chances are big we will still
+ fail then though, as normally v4l2_fd_open only fails if the device is not
+ a v4l2 device. */
+ libv4l2_fd = v4l2_fd_open(h->fd, 0);
+ if (libv4l2_fd != -1)
+ h->fd = libv4l2_fd;
+
if (-1 == xioctl(h->fd,VIDIOC_QUERYCAP,&h->cap,EINVAL))
goto err;
if (ng_debug)
@@ -495,21 +520,21 @@
err:
if (h->fd != -1)
- close(h->fd);
+ v4l2_close(h->fd);
if (h)
free(h);
return NULL;
}
static int
-v4l2_close(void *handle)
+v4l2_close_handle(void *handle)
{
struct v4l2_handle *h = handle;
if (ng_debug)
fprintf(stderr, "v4l2: close\n");
- close(h->fd);
+ v4l2_close(h->fd);
free(h);
return 0;
}
@@ -818,7 +843,7 @@
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;
- h->buf_me[i].data = mmap(NULL, h->buf_v4l2[i].length,
+ h->buf_me[i].data = v4l2_mmap(NULL, h->buf_v4l2[i].length,
PROT_READ | PROT_WRITE, MAP_SHARED,
h->fd, h->buf_v4l2[i].m.offset);
if (MAP_FAILED == h->buf_me[i].data) {
@@ -859,7 +884,7 @@
unsigned int i;
/* stop capture */
- if (-1 == ioctl(h->fd,VIDIOC_STREAMOFF,&h->fmt_v4l2.type))
+ if (-1 == v4l2_ioctl(h->fd,VIDIOC_STREAMOFF,&h->fmt_v4l2.type))
perror("ioctl VIDIOC_STREAMOFF");
/* free buffers */
@@ -868,7 +893,7 @@
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_v4l2_size[i]))
+ if (-1 == v4l2_munmap(h->buf_me[i].data, h->buf_v4l2_size[i]))
perror("munmap");
}
h->queue = 0;
@@ -989,7 +1014,7 @@
} else {
size = h->fmt_me.bytesperline * h->fmt_me.height;
buf = ng_malloc_video_buf(&h->fmt_me,size);
- rc = read(h->fd,buf->data,size);
+ rc = v4l2_read(h->fd,buf->data,size);
if (rc != size) {
if (-1 == rc) {
perror("v4l2: read");
@@ -1023,11 +1048,11 @@
size = h->fmt_me.bytesperline * h->fmt_me.height;
buf = ng_malloc_video_buf(&h->fmt_me,size);
if (h->cap.capabilities & V4L2_CAP_READWRITE) {
- rc = read(h->fd,buf->data,size);
+ rc = v4l2_read(h->fd,buf->data,size);
if (-1 == rc && EBUSY == errno && h->ov_on) {
h->ov_on = 0;
xioctl(h->fd, VIDIOC_OVERLAY, &h->ov_on, 0);
- rc = read(h->fd,buf->data,size);
+ rc = v4l2_read(h->fd,buf->data,size);
h->ov_on = 1;
xioctl(h->fd, VIDIOC_OVERLAY, &h->ov_on, 0);
}

View file

@ -1,190 +0,0 @@
# A patch for various manual typos.
#
# Derived from the Debian's patches:
# 04_man_typo.dpatch
# 17_scantv_man_typo.dpatch
# (both were written by A. Costa <agcosta@gis.net>
#
diff -Nrbu xawtv-3.95/man/fbtv.1 xawtv-3.95-OK/man/fbtv.1
--- xawtv-3.95/man/fbtv.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/fbtv.1 2008-08-26 18:51:25.000000000 +0400
@@ -98,7 +98,7 @@
The BT8xx cards can produce images up to 768x576 pixels. In order to
have fbtv make use of your entire monitor-size and get maximum image
quality, you need to create a 768x576 pixels framebufferconsole. This
-can be accomplished with the fbset(1) utility, which is availabile at
+can be accomplished with the fbset(1) utility, which is available at
various locations. See: http://www.cs.kuleuven.ac.be/~geert/bin/
.P
Or, you can let fbtv handle the videomode changes with the -m switch.
diff -Nrbu xawtv-3.95/man/pia.1 xawtv-3.95-OK/man/pia.1
--- xawtv-3.95/man/pia.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/pia.1 2008-08-26 18:51:25.000000000 +0400
@@ -5,7 +5,7 @@
.B pia [ options ] movie
.SH DESCRIPTION
.B pia
-is a small X11 tool which playes movie files.
+is a small X11 tool which plays movie files.
.SH OPTIONS
.B pia
understands the usual toolkit options (-geometry + friends).
@@ -24,7 +24,7 @@
Use OSS device <dev> for sound.
.TP
.B -noxv
-Disable Xvideo extention.
+Disable Xvideo extension.
.TP
.B -nogl
Disable OpenGL.
@@ -41,7 +41,7 @@
.SH SUPPORTED MOVIE FORMATS
Main purpose of this utility is to playback movie files recorded by
xawtv, motv and streamer. It should be able to playback every AVI or
-QuickTime movie written by one of the mentioned utilites. Feel free
+QuickTime movie written by one of the mentioned utilities. Feel free
to submit a bug report if this doesn't work for some file.
.SS QuickTime
.B pia
diff -Nrbu xawtv-3.95/man/record.1 xawtv-3.95-OK/man/record.1
--- xawtv-3.95/man/record.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/record.1 2008-08-26 18:51:25.000000000 +0400
@@ -16,7 +16,7 @@
.TP
.B -o file
basename for the output file(s), a number and the .wav
-extention are added by record. Default is "record".
+extension are added by record. Default is "record".
.TP
.B -i dev
mixer control. This should be the one where you can adjust the record
diff -Nrbu xawtv-3.95/man/rootv.1 xawtv-3.95-OK/man/rootv.1
--- xawtv-3.95/man/rootv.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/rootv.1 2008-08-26 18:51:25.000000000 +0400
@@ -1,6 +1,6 @@
.TH rootv 1 "(c) 2000-2002 Gerd Knorr"
.SH NAME
-rootv - display TV using the Xvideo extention
+rootv - display TV using the Xvideo extension
.SH SYNOPSIS
.B rootv [ options ]
.SH DESCRIPTION
@@ -9,7 +9,7 @@
but you can also ask it to use the root window (thus the name) or any
other window.
.B rootv
-needs the Xvideo extention.
+needs the Xvideo extension.
.P
.B rootv
itself provides no way to control video/audio/tuner. You can use
diff -Nrbu xawtv-3.95/man/scantv.1 xawtv-3.95-OK/man/scantv.1
--- xawtv-3.95/man/scantv.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/scantv.1 2008-08-26 18:51:44.000000000 +0400
@@ -18,7 +18,7 @@
none is given.
.TP
.B -o outfile
-specify \fBo\fPutput file. If none is specified, scantv write
+specify \fBo\fPutput file. If none is specified, scantv writes
to stdout.
.TP
.B -c device
diff -Nrbu xawtv-3.95/man/subtitles.1 xawtv-3.95-OK/man/subtitles.1
--- xawtv-3.95/man/subtitles.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/subtitles.1 2008-08-26 18:51:25.000000000 +0400
@@ -8,7 +8,7 @@
fetches the given teletext page with the alevt-cap utility and
displays it using xawtv-remote in an endless loop. It's most
useful for pages which carry subtitles for the current TV program.
-It's page 150 in germany.
+It's page 150 in Germany.
.SH OPTIONS
.TP
.B -help
diff -Nrbu xawtv-3.95/man/v4l-conf.8 xawtv-3.95-OK/man/v4l-conf.8
--- xawtv-3.95/man/v4l-conf.8 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/v4l-conf.8 2008-08-26 18:51:25.000000000 +0400
@@ -20,7 +20,7 @@
knows three ways to get the informations:
.TP 3
*
-Query the X-Server using the XF86 DGA extention. This is the default
+Query the X-Server using the XF86 DGA extension. This is the default
if the DISPLAY environment variable is set.
.TP 3
*
@@ -63,7 +63,7 @@
work because the X-Server lacks DGA support. You can put this into
/etc/conf.modules, as "post-install bttv ..." for example.
.SH BUGS
-Hope I havn't any security flaws in there. If you find one, drop me a
+Hope I haven't any security flaws in there. If you find one, drop me a
note. Mails with patches are preferred :-)
.SH SEE ALSO
xawtv(1), fbtv(1)
diff -Nrbu xawtv-3.95/man/webcam.1 xawtv-3.95-OK/man/webcam.1
--- xawtv-3.95/man/webcam.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/webcam.1 2008-08-26 18:51:25.000000000 +0400
@@ -150,7 +150,7 @@
paper "Correcting Distortion of Image by Image Registration" of Toru
Tamaki, Tsuyoshi Yamamura and Noboru Ahnishi. More your lens has an
important distortion, more 'distor_k' must be neared of 0. 700 is the
-défault value. Coefficient k of program is x100 than article.
+default value. Coefficient k of program is x100 than article.
.TP
.B distor_cx = 192
.TP
diff -Nrbu xawtv-3.95/man/xawtv-remote.1 xawtv-3.95-OK/man/xawtv-remote.1
--- xawtv-3.95/man/xawtv-remote.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/xawtv-remote.1 2008-08-26 18:51:25.000000000 +0400
@@ -136,14 +136,14 @@
.TP
.B vtx line1 line2 [ ... ]
Display subtitles. It pops up a small window at the bottom of the screen.
-It is supported to be used as interface for displaying subtitles (often on
-videotext page 150 in europe, thats why the name) by external programs.
+It is intended to be used as an interface for displaying subtitles (often on
+videotext page 150 in Europe, that's why the name) by external programs.
.br
Every command line argument is one line, zero lines removes the window.
You can colorize the text with the control sequence "ESC foreground
background". foreground/background has the range 0-7 (ansi term colors).
Example: "\\03347 hello world " is blue on white. "\\033" must be a real
-escape character, the string does'nt work. With the bash you'll get it
+escape character, the string doesn't work. With the bash you'll get it
with ^V ESC. vtx does also understand the ANSI tty escape sequences for
color.
.TP
diff -Nrbu xawtv-3.95/man/xawtv.1 xawtv-3.95-OK/man/xawtv.1
--- xawtv-3.95/man/xawtv.1 2003-02-14 17:14:07.000000000 +0300
+++ xawtv-3.95-OK/man/xawtv.1 2008-08-26 18:51:25.000000000 +0400
@@ -70,7 +70,7 @@
.TP
\fB-remote\fP
X11 display is remote. This basically disables overlay mode, you
-might need this if xawtv failes to autodetect a remote X11 display.
+might need this if xawtv fails to autodetect a remote X11 display.
.br
Resource: xawtv.remote (bool).
.TP
@@ -155,7 +155,7 @@
more details and hints on how to setup Xvideo.
.SH GETTING STARTED
Just start xawtv. Then verify the settings in the options menu (right
-mouse button) and adjust the settings (TV norm, Video source, freqency
+mouse button) and adjust the settings (TV norm, Video source, frequency
table). With the cursor keys you can control the tuner and look for
TV Stations. Other useful hotkeys are listed below.
.P
@@ -190,7 +190,7 @@
Z Channel Hopper (\fIz\fPapping, tune in every
station a few seconds)
Ctrl+Z Fast Channel Hopping (grab the images for the
- Channel Bottons)
+ Channel Buttons)
up/down tune up/down one channel
left/right fine tuning

View file

@ -1,120 +0,0 @@
diff -Nrbu xawtv-3.95/console/v4l-conf.c xawtv-3.95-OK/console/v4l-conf.c
--- xawtv-3.95/console/v4l-conf.c 2005-02-09 15:27:36.000000000 +0300
+++ xawtv-3.95-OK/console/v4l-conf.c 2008-08-26 19:35:18.000000000 +0400
@@ -221,6 +221,21 @@
}
}
+#ifdef HAVE_LIBXXF86DGA
+static int dga_error = 0;
+static int dga_error_base;
+static int (*orig_xfree_error_handler)(Display *, XErrorEvent *);
+
+static int dga_error_handler(Display *d, XErrorEvent *e)
+{
+ if (e->error_code == (dga_error_base + XF86DGANoDirectVideoMode)) {
+ dga_error = 1;
+ return 0;
+ }
+ return orig_xfree_error_handler(d, e);
+}
+#endif
+
static void
displayinfo_dga(Display *dpy, struct DISPLAYINFO *d)
{
@@ -228,7 +243,7 @@
int width,bar,foo,major,minor,flags=0;
void *base = NULL;
- if (!XF86DGAQueryExtension(dpy,&foo,&bar)) {
+ if (!XF86DGAQueryExtension(dpy,&foo,&dga_error_base)) {
fprintf(stderr,"WARNING: Your X-Server has no DGA support.\n");
return;
}
@@ -240,7 +255,14 @@
fprintf(stderr,"WARNING: No DGA support available for this display.\n");
return;
}
+ orig_xfree_error_handler = XSetErrorHandler(dga_error_handler);
XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base,&width,&foo,&bar);
+ XSync(dpy, 0);
+ XSetErrorHandler(orig_xfree_error_handler);
+ if (dga_error) {
+ fprintf(stderr,"WARNING: No DGA direct video mode for this display.\n");
+ return;
+ }
d->bpl = width * d->bpp/8;
d->base = base;
#else
diff -Nrbu xawtv-3.95/libng/plugins/drv0-v4l2.c xawtv-3.95-OK/libng/plugins/drv0-v4l2.c
--- xawtv-3.95/libng/plugins/drv0-v4l2.c 2008-08-26 19:31:52.000000000 +0400
+++ xawtv-3.95-OK/libng/plugins/drv0-v4l2.c 2008-08-26 19:35:18.000000000 +0400
@@ -593,7 +593,7 @@
return -1;
/* double-check settings */
- if (NULL != base && h->ov_fb.base != base) {
+ if ((NULL != base && h->ov_fb.base != base) || h->ov_fb.base == NULL) {
fprintf(stderr,"v4l2: WARNING: framebuffer base address mismatch\n");
fprintf(stderr,"v4l2: me=%p v4l=%p\n",base,h->ov_fb.base);
h->ov_error = 1;
diff -Nrbu xawtv-3.95/x11/xt.c xawtv-3.95-OK/x11/xt.c
--- xawtv-3.95/x11/xt.c 2005-01-11 12:26:43.000000000 +0300
+++ xawtv-3.95-OK/x11/xt.c 2008-08-26 19:35:18.000000000 +0400
@@ -1247,18 +1247,21 @@
}
/*----------------------------------------------------------------------*/
+#ifdef HAVE_LIBXXF86DGA
+static int xfree_dga_error_base;
+#endif
void
xfree_dga_init(Display *dpy)
{
#ifdef HAVE_LIBXXF86DGA
- int flags,foo,bar,ma,mi;
+ int flags,foo,ma,mi;
if (!do_overlay)
return;
if (args.dga) {
- if (XF86DGAQueryExtension(dpy,&foo,&bar)) {
+ if (XF86DGAQueryExtension(dpy,&foo,&xfree_dga_error_base)) {
XF86DGAQueryDirectVideo(dpy,XDefaultScreen(dpy),&flags);
if (flags & XF86DGADirectPresent) {
XF86DGAQueryVersion(dpy,&ma,&mi);
@@ -1348,6 +1351,19 @@
#endif
}
+#ifdef HAVE_LIBXXF86DGA
+static int (*orig_xfree_error_handler)(Display *, XErrorEvent *);
+
+static int xfree_dga_error_handler(Display *d, XErrorEvent *e)
+{
+ if (e->error_code == (xfree_dga_error_base + XF86DGANoDirectVideoMode)) {
+ have_dga = 0;
+ return 0;
+ }
+ return orig_xfree_error_handler(d, e);
+}
+#endif
+
void
grabber_init()
{
@@ -1358,8 +1374,11 @@
#ifdef HAVE_LIBXXF86DGA
if (have_dga) {
int bar,fred;
+ orig_xfree_error_handler = XSetErrorHandler(xfree_dga_error_handler);
XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base,
&screen.bytesperline,&bar,&fred);
+ XSync(dpy, 0);
+ XSetErrorHandler(orig_xfree_error_handler);
}
#endif
if (!do_overlay) {

View file

@ -1,42 +0,0 @@
diff -Nrbu xawtv-3.95/console/webcam.c xawtv-3.95-OK/console/webcam.c
--- xawtv-3.95/console/webcam.c 2005-09-30 14:07:58.000000000 +0400
+++ xawtv-3.95-OK/console/webcam.c 2007-08-30 16:46:12.000000000 +0400
@@ -813,7 +813,7 @@
tmpdir = (NULL != getenv("TMPDIR")) ? getenv("TMPDIR") : "/tmp";
list_for_each(item,&connections) {
s = list_entry(item, struct xfer_state, list);
- s->ops->open(s);
+ (s->ops->open)(s);
}
/* print config */
diff -Nrbu xawtv-3.95/libng/grab-ng.c xawtv-3.95-OK/libng/grab-ng.c
--- xawtv-3.95/libng/grab-ng.c 2003-03-28 15:19:28.000000000 +0300
+++ xawtv-3.95-OK/libng/grab-ng.c 2007-08-30 16:49:19.000000000 +0400
@@ -572,7 +572,7 @@
continue;
if (ng_debug)
fprintf(stderr,"vid-open: trying: %s... \n", drv->name);
- if (NULL != (*handle = drv->open(device)))
+ if (NULL != (*handle = (drv->open)(device)))
break;
if (ng_debug)
fprintf(stderr,"vid-open: failed: %s\n",drv->name);
@@ -603,7 +603,7 @@
continue;
if (ng_debug)
fprintf(stderr,"dsp-open: trying: %s... \n", drv->name);
- if (NULL != (*handle = drv->open(device,fmt,record)))
+ if (NULL != (*handle = (drv->open)(device,fmt,record)))
break;
if (ng_debug)
fprintf(stderr,"dsp-open: failed: %s\n", drv->name);
@@ -628,7 +628,7 @@
drv = list_entry(item, struct ng_mix_driver, list);
if (ng_debug)
fprintf(stderr,"mix-init: trying: %s... \n", drv->name);
- if (NULL != (handle = drv->open(device))) {
+ if (NULL != (handle = (drv->open)(device))) {
if (NULL != (attrs = drv->volctl(handle,channel)))
break;
drv->close(handle);

View file

@ -1,19 +0,0 @@
# A patch to avoid streamer exit when a read from oss sound returns EAGAIN
#
# Derived from the Debian's patch:
# 08_oss_audio.dpatch
# (which was written by Kristof Koehler <kristof.koehler@filmakademie.de>
#
diff -Nrbu xawtv-3.95/libng/plugins/snd-oss.c xawtv-3.95-OK/libng/plugins/snd-oss.c
--- xawtv-3.95/libng/plugins/snd-oss.c 2003-02-14 17:14:05.000000000 +0300
+++ xawtv-3.95-OK/libng/plugins/snd-oss.c 2008-08-26 18:57:44.000000000 +0400
@@ -441,7 +441,7 @@
for (;;) {
rc = read(fd,buffer+count,blocksize-count);
if (rc < 0) {
- if (EINTR == errno)
+ if ((EINTR == errno) || (EAGAIN == errno))
continue;
perror("oss: read");
exit(1);

View file

@ -1,41 +0,0 @@
diff -Nrbu xawtv-3.95/console/fbtools.c xawtv-3.95-OK/console/fbtools.c
--- xawtv-3.95/console/fbtools.c 2003-02-14 17:14:04.000000000 +0300
+++ xawtv-3.95-OK/console/fbtools.c 2007-06-25 17:17:58.000000000 +0400
@@ -21,8 +21,6 @@
#include <linux/vt.h>
#include <linux/fb.h>
-#include <asm/page.h>
-
#include "fbtools.h"
/* -------------------------------------------------------------------- */
@@ -424,7 +422,7 @@
goto err;
}
#endif
- fb_mem_offset = (unsigned long)(fb_fix.smem_start) & (~PAGE_MASK);
+ fb_mem_offset = (unsigned long)(fb_fix.smem_start) & (getpagesize()-1);
fb_mem = mmap(NULL,fb_fix.smem_len+fb_mem_offset,
PROT_READ|PROT_WRITE,MAP_SHARED,fb,0);
if (-1L == (long)fb_mem) {
diff -Nrbu xawtv-3.95/console/matrox.c xawtv-3.95-OK/console/matrox.c
--- xawtv-3.95/console/matrox.c 2005-02-03 13:40:41.000000000 +0300
+++ xawtv-3.95-OK/console/matrox.c 2007-06-25 17:19:02.000000000 +0400
@@ -9,7 +9,6 @@
#include <sys/ioctl.h>
#include <sys/mman.h>
-#include <asm/page.h> /* PAGE_SIZE */
#include <linux/fb.h>
#include "byteswap.h"
@@ -226,7 +225,7 @@
return -1;
}
off = (unsigned long)fb_fix.mmio_start -
- ((unsigned long)fb_fix.mmio_start & ~(PAGE_SIZE-1));
+ ((unsigned long)fb_fix.mmio_start & ~(getpagesize()-1));
bmmio += off;
mmio = (uint32_t*)bmmio;
return 0;

View file

@ -1,22 +0,0 @@
diff -Nrbu xawtv-3.95/common/vbi-data.c xawtv-3.95-OK/common/vbi-data.c
--- xawtv-3.95/common/vbi-data.c 2003-02-14 17:14:04.000000000 +0300
+++ xawtv-3.95-OK/common/vbi-data.c 2007-03-01 20:33:44.000000000 +0300
@@ -48,6 +48,18 @@
if (NULL == vbi->dec)
goto oops;
+ /*
+ * Give the user possibility to change default zvbi region (16, West-Europe)
+ * Sometimes the region value just not reported in the stream etc...
+ */
+ if (1) {
+ char *env = getenv("ALEVTD_REGION");
+ unsigned int region;
+
+ if (env && (region = strtoul(env,NULL,0)) != 0)
+ vbi_teletext_set_default_region(vbi->dec,region);
+ }
+
if (vbi->sim) {
vbi->par = init_sim(625,services);
/* simulation for select */

View file

@ -1,87 +0,0 @@
# Allow scantv(1) to use different (not Television only) card input.
#
# Derived from the Debian patch:
# 14_scantv_input_override.dpatch
# (which was written by Adrian Phillips <adrianp@broadpark.no>
# plus add required changes in the manual
#
diff -Nrbu xawtv-3.95/console/scantv.c xawtv-3.95-OK/console/scantv.c
--- xawtv-3.95/console/scantv.c 2005-09-30 14:07:02.000000000 +0400
+++ xawtv-3.95-OK/console/scantv.c 2008-08-26 19:03:30.000000000 +0400
@@ -116,6 +116,7 @@
"options:\n"
" -h print this text\n"
" -o outfile set output file. [%s]\n"
+ " -i input set input.\n"
" -n norm set tv norm.\n"
" -f table set frequency table.\n"
" -c device set video device file. [%s]\n"
@@ -137,6 +138,7 @@
unsigned int f,f1,f2,fc;
char *name,dummy[32];
char *tvnorm = NULL;
+ char *tvinput = NULL;
char *freqtab = NULL;
char *outfile = NULL;
FILE *conf = stdout;
@@ -144,7 +146,7 @@
/* parse options */
ng_init();
for (;;) {
- if (-1 == (c = getopt(argc, argv, "hsadn:f:o:c:C:")))
+ if (-1 == (c = getopt(argc, argv, "hsadi:n:f:o:c:C:")))
break;
switch (c) {
case 'd':
@@ -156,6 +158,9 @@
case 'a':
fullscan=1;
break;
+ case 'i':
+ tvinput = optarg;
+ break;
case 'n':
tvnorm = optarg;
break;
@@ -203,12 +208,15 @@
attr = ng_attr_byid(attrs,ATTR_ID_NORM);
i = menu("please select your TV norm",attr->choices,tvnorm);
j = menu("please select a frequency table",chanlist_names,freqtab);
+ if (tvinput == NULL) {
+ tvinput = "Television";
+ }
fprintf(conf,"[global]\n");
fprintf(conf,"freqtab = %s\n",chanlist_names[j].str);
fprintf(conf,"\n");
fprintf(conf,"[defaults]\n");
- fprintf(conf,"input = Television\n");
+ fprintf(conf,"input = %s\n", tvinput);
fprintf(conf,"norm = %s\n",ng_attr_getstr(attr,i));
fprintf(conf,"\n");
fflush(conf);
@@ -220,7 +228,7 @@
exit(0);
}
set_defaults();
- do_va_cmd(2,"setinput","television");
+ do_va_cmd(2,"setinput",tvinput);
do_va_cmd(2,"setnorm",ng_attr_getstr(attr,i));
do_va_cmd(2,"setfreqtab",chanlist_names[j].str);
diff -Nrbu xawtv-3.95/man/scantv.1 xawtv-3.95-OK/man/scantv.1
--- xawtv-3.95/man/scantv.1 2008-08-26 19:01:50.000000000 +0400
+++ xawtv-3.95-OK/man/scantv.1 2008-08-26 19:12:58.000000000 +0400
@@ -9,6 +9,11 @@
xawtv/fbtv config file.
.SH OPTIONS
.TP
+.B -i input
+set tv \fBi\fPnput (Television/Composite1/S-video and so on).
+Default is Television. (Currently it is a distro-specific option
+added by Fedora and Debian).
+.TP
.B -n norm
set tv \fBn\fPorm. scantv will ask interactively if
none is given.

View file

@ -1,48 +0,0 @@
diff -Nrbu xawtv-3.95/Makefile.in xawtv-3.95-OK/Makefile.in
--- xawtv-3.95/Makefile.in 2004-04-22 18:52:29.000000000 +0400
+++ xawtv-3.95-OK/Makefile.in 2008-07-21 20:00:12.000000000 +0400
@@ -19,7 +19,7 @@
CC := @CC@
CXX := @CXX@
INSTALL := @INSTALL@
-INSTALL_PROGRAM := @INSTALL_PROGRAM@ -s
+INSTALL_PROGRAM := @INSTALL_PROGRAM@
INSTALL_DATA := @INSTALL_DATA@
INSTALL_DIR := @INSTALL@ -d -m 755
diff -Nrbu xawtv-3.95/libng/plugins/Subdir.mk xawtv-3.95-OK/libng/plugins/Subdir.mk
--- xawtv-3.95/libng/plugins/Subdir.mk 2003-02-14 17:14:05.000000000 +0300
+++ xawtv-3.95-OK/libng/plugins/Subdir.mk 2008-07-21 20:00:12.000000000 +0400
@@ -47,7 +47,7 @@
install::
$(INSTALL_DIR) $(libdir)
- $(INSTALL_PROGRAM) -s $(TARGETS-plugins) $(libdir)
+ $(INSTALL_PROGRAM) $(TARGETS-plugins) $(libdir)
rm -f $(GONE-plugins)
clean::
diff -Nrbu xawtv-3.95/vbistuff/Subdir.mk xawtv-3.95-OK/vbistuff/Subdir.mk
--- xawtv-3.95/vbistuff/Subdir.mk 2003-02-14 17:14:08.000000000 +0300
+++ xawtv-3.95-OK/vbistuff/Subdir.mk 2008-07-21 20:00:12.000000000 +0400
@@ -32,7 +32,7 @@
all:: $(TARGETS-vbistuff)
install::
- $(INSTALL_PROGRAM) -s $(TARGETS-vbistuff) $(bindir)
+ $(INSTALL_PROGRAM) $(TARGETS-vbistuff) $(bindir)
clean::
rm -f $(HTML-alevtd)
diff -Nrbu xawtv-3.95/x11/Subdir.mk xawtv-3.95-OK/x11/Subdir.mk
--- xawtv-3.95/x11/Subdir.mk 2005-01-05 13:25:03.000000000 +0300
+++ xawtv-3.95-OK/x11/Subdir.mk 2008-07-21 20:00:12.000000000 +0400
@@ -146,7 +146,7 @@
ifeq ($(FOUND_X11),yes)
install::
- $(INSTALL_PROGRAM) -s $(TARGETS-x11) $(bindir)
+ $(INSTALL_PROGRAM) $(TARGETS-x11) $(bindir)
$(INSTALL_DIR) $(resdir)/app-defaults
$(INSTALL_DATA) $(srcdir)/x11/Xawtv.ad $(resdir)/app-defaults/Xawtv
endif

View file

@ -1,19 +0,0 @@
diff -Nrbu xawtv-3.95/libng/plugins/Subdir.mk xawtv-3.95-OK/libng/plugins/Subdir.mk
--- xawtv-3.95/libng/plugins/Subdir.mk 2008-08-26 19:55:00.000000000 +0400
+++ xawtv-3.95-OK/libng/plugins/Subdir.mk 2008-08-26 19:58:40.000000000 +0400
@@ -21,7 +21,6 @@
ifeq ($(FOUND_OS),linux)
TARGETS-plugins += \
libng/plugins/drv0-v4l2.so \
- libng/plugins/drv0-v4l2-old.so \
libng/plugins/drv1-v4l.so \
libng/plugins/snd-oss.so
endif
@@ -55,7 +54,6 @@
libng/plugins/conv-mjpeg.so: libng/plugins/conv-mjpeg.o
libng/plugins/drv0-bsd.so: libng/plugins/drv0-bsd.o
-libng/plugins/drv0-v4l2-old.so: libng/plugins/drv0-v4l2-old.o
libng/plugins/flt-debug.so: libng/plugins/flt-debug.o
libng/plugins/flt-disor.so: libng/plugins/flt-disor.o
libng/plugins/flt-gamma.so: libng/plugins/flt-gamma.o

View file

@ -1,10 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Comment=X11 program for watching TV
Icon=xawtv32x32.xpm
Exec=xawtv
Name=XawTV Television Viewer
GenericName=Television Viewer
Terminal=false
Type=Application
Categories=Application;AudioVideo;

View file

@ -1,54 +1,37 @@
%define libv4l 0%{!?_without_libv4l:1}
%bcond_with quicktime
Summary: TV applications for video4linux compliant devices
Name: xawtv
Version: 3.95
Release: 12%{?dist}.1
Version: 3.105
Release: 2%{?dist}
Group: Applications/Multimedia
License: GPLv2+
URL: http://bytesex.org/xawtv/
Source0: http://dl.bytesex.org/releases/xawtv/%{name}-%{version}.tar.gz
Source1: xawtv.desktop
Patch0: xawtv-3.95-strip.patch
Patch1: xawtv-3.95-curses-utf8.patch
Patch2: xawtv-3.95-gcc4.patch
Patch3: xawtv-3.95-font.patch
Patch4: xawtv-3.95-region.patch
Patch5: xawtv-3.95-pagesize.patch
Patch6: xawtv-3.95-open.patch
Patch7: xawtv-3.95-man.patch
Patch8: xawtv-3.95-oss.patch
Patch9: xawtv-3.95-scantv.patch
Patch10: xawtv-3.95-fixes.patch
Patch11: xawtv-3.95-no-dga.patch
Patch12: xawtv-3.95-bpl.patch
Patch13: xawtv-3.95-v4l2-old-drop.patch
# add libv4l2 layer...
Patch100: xawtv-3.95-libv4l2.patch
URL: http://linuxtv.org/wiki/index.php/Xawtv
Source0: http://linuxtv.org/downloads/xawtv/%{name}-%{version}.tar.bz2
Patch0: 0001-fbtv-don-t-keep-a-black-screen-in-case-of-fatal-erro.patch
Patch1: 0002-fbdev-prevent-writing-outsize-framebuffer-area.patch
Patch2: 0003-fbtv-allow-displaying-texts-over-the-camera-streamin.patch
Patch3: xawtv-3.105-cve_2020_13696.patch
BuildRequires: mesa-libGL-devel, libXaw-devel, libXext-devel
BuildRequires: libFS-devel, libXft-devel, libXinerama-devel
BuildRequires: libXft-devel, libXinerama-devel
BuildRequires: libXpm-devel, libXrandr-devel, libXt-devel
BuildRequires: libXxf86dga-devel, libXv-devel
BuildRequires: openmotif-devel
%{?with_quicktime:BuildRequires: libquicktime-devel}
BuildRequires: ncurses-devel, fileutils, libjpeg-devel, libpng-devel
BuildRequires: ncurses-devel, coreutils, libjpeg-devel, libpng-devel
BuildRequires: alsa-lib-devel
%ifnarch s390 s390x
BuildRequires: libdv-devel
%endif
BuildRequires: zvbi-devel, aalib-devel
BuildRequires: gpm-devel, slang-devel
BuildRequires: autoconf, desktop-file-utils
%{!?_without_libv4l:BuildRequires: libv4l-devel}
Requires: usermode
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ImageMagick desktop-file-utils
BuildRequires: libv4l-devel
Requires: usermode xorg-x11-fonts-misc hicolor-icon-theme
%description
Xawtv is a simple xaw-based TV program which uses the bttv driver or
@ -57,63 +40,54 @@ grabbing images and .avi movies, for tuning in to TV stations, etc.
Xawtv also includes a grabber driver for vic.
%package motv
Summary: MoTV Analog Television Viewer
Requires: %{name} = %{version}-%{release}
%description motv
Motif UI version of the xawtv analog television viewer.
%package mtt
Summary: Analog TV Teletext viewing application
Requires: %{name} = %{version}-%{release}
%description mtt
Easy to use Motif UI for viewing analog tv teletext on video4linux devices
which support teletext.
%prep
%setup -q
%patch0 -p1 -b .strip
%patch1 -p1 -b .curses-utf8
%patch2 -p1 -b .gcc4
%patch3 -p1 -b .font
%patch4 -p1 -b .region
%patch5 -p1 -b .pagesize
%patch6 -p1 -b .open
%patch7 -p1 -b .man
%patch8 -p1 -b .oss
%patch9 -p1 -b .scantv
%patch10 -p1 -b .fixes
%patch11 -p1 -b .no-dga
%patch12 -p1 -b .bpl
%patch13 -p1 -b .v4l2-old-drop
%{!?_without_libv4l:%patch100 -p1 -b .libv4l}
sed -i -e 's,/usr/X11R6/lib/X11,%{_datadir}/X11,g' configure.ac
sed -i -e 's,/usr/X11R6/include/X11,%{_includedir}/X11,g' Makefile.in
autoconf
autoheader
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS -Wno-pointer-sign"
%configure --x-libraries=%{_libdir} --disable-motif --disable-quicktime
make
for man in `find man -name "*.[1-9]" -print`
do
iconv -f ISO8859-1 -t UTF-8 <$man >$man.new && mv -f $man.new $man
done
%configure %{!?_with_quicktime: --disable-quicktime}
make %{?_smp_mflags} verbose=yes
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT SUID_ROOT="" install
make DESTDIR=$RPM_BUILD_ROOT resdir=$RPM_BUILD_ROOT%{_datadir}/X11 SUID_ROOT="" install
# we have no motif support
rm -f $RPM_BUILD_ROOT%{_mandir}/*/motv.*
rm -f $RPM_BUILD_ROOT%{_mandir}/*/mtt.*
# we have no quicktime support
%if %{without quicktime}
rm -f $RPM_BUILD_ROOT%{_bindir}/showqt
%endif
for i in 16x16 32x32 48x48; do
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/$i/apps
convert contrib/%{name}$i.xpm \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/$i/apps/%{name}.png
done
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -p -m 0644 contrib/xawtv*.xpm $RPM_BUILD_ROOT%{_datadir}/pixmaps
desktop-file-install --vendor fedora \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%{SOURCE1}
for i in xawtv motv mtt; do
desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications \
contrib/$i.desktop
done
# v4l-conf stuff
@ -122,7 +96,7 @@ mkdir -p $RPM_BUILD_ROOT%{_sbindir} \
$RPM_BUILD_ROOT%{_sysconfdir}/security/console.apps \
cat >v4l-conf.pam <<!
#%PAM-1.0
#%%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_console.so
account required pam_permit.so
@ -136,34 +110,154 @@ SESSION=true
USER=root
PROGRAM=%{_sbindir}/v4l-conf
!
install -m 0644 v4l-conf.apps $RPM_BUILD_ROOT%{_sysconfdir}/security/console.apps/v4l-conf
install -p -m 0644 v4l-conf.apps $RPM_BUILD_ROOT%{_sysconfdir}/security/console.apps/v4l-conf
mv $RPM_BUILD_ROOT%{_bindir}/v4l-conf $RPM_BUILD_ROOT%{_sbindir}/
ln -s consolehelper $RPM_BUILD_ROOT%{_bindir}/v4l-conf
%clean
rm -fr $RPM_BUILD_ROOT
%post
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%defattr(-,root,root,-)
%doc COPYING README TODO contrib/frequencies*
%config(noreplace) %{_sysconfdir}/pam.d/v4l-conf
%config(noreplace) %{_sysconfdir}/security/console.apps/v4l-conf
%{_bindir}/*
%exclude %{_bindir}/motv
%exclude %{_bindir}/mtt
%{_sbindir}/*
%{_libdir}/xawtv
%{_datadir}/xawtv
%{_datadir}/X11/app-defaults/*
%{_datadir}/pixmaps/*
%{_datadir}/applications/*
%{_datadir}/X11/app-defaults/Xawtv
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/applications/%{name}.desktop
%{_mandir}/man?/*
%exclude %{_mandir}/man1/motv.1*
%exclude %{_mandir}/man1/mtt.1*
%lang(es) %{_mandir}/es/*/*
%lang(fr) %{_mandir}/fr/*/*
%doc COPYING README TODO contrib/frequencies*
%files motv
%{_bindir}/motv
%{_mandir}/man1/motv.1*
%{_datadir}/X11/app-defaults/MoTV*
%lang(de) %{_datadir}/X11/de_DE.UTF-8/app-defaults/MoTV*
%lang(fr) %{_datadir}/X11/fr_FR.UTF-8/app-defaults/MoTV*
%lang(it) %{_datadir}/X11/it_IT.UTF-8/app-defaults/MoTV*
%{_datadir}/applications/motv.desktop
%files mtt
%{_bindir}/mtt
%{_mandir}/man1/mtt.1*
%{_datadir}/X11/app-defaults/mtt*
%{_datadir}/applications/mtt.desktop
%changelog
* Sat Sep 26 2020 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.105-2
- fix CVE-2020-13696 (#1882287)
* Tue Jun 19 2018 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.105-1
- Upgrade to 3.105
- spec file cleanup
* Wed Feb 17 2016 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.103-8
- Bring in several bugfix patch from upstream
- Fix crash with saa7134 driver (rhbz#1305389)
- Use png instead of xpm for icons
- Build motv and mtt now since we have a openmotif, put them in
xawtv-motv resp xawtv-mtt sub-packages
- Remove changelog entries older then 10 years
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.103-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.103-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Jan 4 2015 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.103-5
- add workaround for kernels >= 3.16 (#1155784, patch from Stas Sergeev <stsp@list.ru>)
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.103-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.103-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.103-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Apr 2 2013 Hans de Goede <hdegoede@redhat.com> 3.103-1
- New upstream version 3.103
* Sun Feb 10 2013 Parag Nemade <paragn AT fedoraproject DOT org> - 3.101-7
- Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077
- Cleanup spec as per recently changed packaging guidelines
* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 3.101-6
- rebuild due to "jpeg8-ABI" feature drop
* Fri Dec 21 2012 Adam Tkac <atkac redhat com> - 3.101-5
- rebuild against new libjpeg
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.101-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.101-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 3.101-2
- Rebuild for new libpng
* Sun Jul 3 2011 Mauro Carvalho Chehab <mchehab@redhat.com> - 3.101-1
- update to Xawtv version 3.101: Adds support for alsa streams
* Wed Mar 2 2011 Mauro Carvalho Chehab <mchehab@redhat.com> - 3.100-1
- update to Xawtv version 3.100. Fixes control handling on xawtv.
* Thu Feb 17 2011 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.99.rc6-1
- update to Xawtv version 3.99.rc6
* Thu Feb 3 2011 Dmitry Butskoy <Dmitry@Butskoy.name> - 3.99.rc4-1
- update to Xawtv version 3.99.rc4
* Wed Feb 2 2011 Mauro Carvalho Chehab <mchehab@redhat.com> 3.99.rc3-1
- Update to Xawtv version 3.99.rc3
- Upstream applied some patches from Debian and from Fedora, making
compilation more portable along different distros. It also incudes
a couple minor fixes.
* Tue Feb 1 2011 Mauro Carvalho Chehab <mchehab@redhat.com> 3.99.rc2-1
- Update to Xawtv version 3.99.rc2
- All other patches from Fedora are now upstream
* Fri Jan 28 2011 Mauro Carvalho Chehab <mchehab@redhat.com> 3.99.rc1-1
- Update to Xawtv version 3.99.rc1
- Applied some fixes upstream fixing radio application and also some
improvements from other patches that were found on Fedora.
* Thu Jan 27 2011 Mauro Carvalho Chehab <mchehab@redhat.com> 3.98-1
- Update to Xawtv version 3.98
- Removes V4L1 support and adds some new stuff
* Wed Nov 17 2010 Hans de Goede <hdegoede@redhat.com> 3.95-14
- Protect the exit code from being called twice. This fixes a double
free error when the user tries to exit twice when xawtv is stuck (#608344)
* Fri Mar 12 2010 Hans de Goede <hdegoede@redhat.com> 3.95-13
- Fix xawtv not starting due to it not finding its fonts
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.95-12.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
@ -177,9 +271,9 @@ rm -fr $RPM_BUILD_ROOT
- fix some typos in manuals (patch7, derived from Debian)
- fix recording from oss (patch8, derived from Debian)
- allow scantv to use another card's input (patch9, derived from Debian)
- some v4l2 code fixes (patch10, Hans de Goede <j.w.r.degoede@hhs.nl>)
- skip dga automatically when not available (patch11, Hans de Goede)
- specifying of bpl pitch for v4l-conf (patch12, Hans de Goede)
- some v4l2 code fixes (patch10, Hans de Goede <j.w.r.degoede@hhs.nl>)
- skip dga automatically when not available (patch11, Hans de Goede)
- specifying of bpl pitch for v4l-conf (patch12, Hans de Goede)
- drop drv0-v4l2-old.so driver (assume not needed anyway now)
- optional (default yes) build with libv4l wrapper library
(patch100, Hans de Goede <j.w.r.degoede@hhs.nl>)
@ -225,222 +319,3 @@ rm -fr $RPM_BUILD_ROOT
bitstream-vera is now a default for "big" fullscreen-mode fonts.
- add desktop entry and icons
- add ALEVTD_REGION environment to change default teletext's region
* Tue Oct 21 2003 Florian La Roche <Florian.LaRoche@redhat.de>
- add BuildReq for fontconfig-devel and freetype-devel, these seem
to get picked up
* Mon Sep 01 2003 Than Ngo <than@redhat.com> 3.88-5
- Added missing BuildRequires for libpng-devel (bug #103447)
* Tue Jun 17 2003 Than Ngo <than@redhat.com> 3.88-4
- fixed permission problem (bug #90921)
* Tue Jun 17 2003 Than Ngo <than@redhat.com> 3.88-3
- rebuilt
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Tue May 6 2003 Than Ngo <than@redhat.com> 3.88-1
- 3.88
* Thu Mar 3 2003 Than Ngo <than@redhat.com> 3.85-1
- 3.85, (#85557, #81588, #74684, #61717)
- own /usr/lib/xawtv, (bug #73981)
- dependency on libjpeg-devel, (bug #48925)
- include alevtd daemon (bug #53878)
- create default configuration by install (bug #73270)
* Sun Feb 10 2003 Than Ngo <than@redhat.com> 3.81-6
- install correct pam file, #83820
* Mon Jan 27 2003 Than Ngo <than@redhat.com> 3.81-5
- fix #81791
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt
* Tue Jan 21 2003 Than Ngo <than@redhat.com> 3.81-3
- fix #81851
* Mon Dec 16 2002 Than Ngo <than@redhat.com> 3.81-2
- rebuild
* Fri Dec 13 2002 Than Ngo <than@redhat.com> 3.81-1
- update 3.81
- move bitmap fonts to bitmap-fonts package
* Tue Nov 12 2002 Nalin Dahyabhai <nalin@redhat.com> 3.78-2
- adjust PAM configuration to not use absolute paths so that the right module
set gets used for the current arch on multilib systems
* Thu Nov 7 2002 Than Ngo <than@redhat.com> 3.78-1
- 3.78
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Thu Jun 20 2002 Than Ngo <than@redhat.com> 3.74-3
- Don't forcibly strip binaries
* Sun May 26 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Thu May 23 2002 Harald Hoyer <harald@redhat.de>
- 3.74
* Sun Apr 07 2002 han Ngo <than@redhat.com> 3.73-3
- remove motv manpage (#62771)
* Tue Apr 2 2002 Than Ngo <than@redhat.com> 3.73-2
- get rid of openmotif
* Sun Mar 24 2002 Than Ngo <than@redhat.com> 3.73-1
- update
- fix bug #61719
* Fri Mar 22 2002 Tim Powers <timp@redhat.com>
- rebuilt motv against new openmotif-2.2.2
* Tue Feb 26 2002 Than Ngo <than@redhat.com> 3.72-1
- update to 3.72
* Tue Feb 19 2002 Bernhard Rosenkraenzer <bero@redhat.com> 3.71-1
- 3.71
* Fri Jan 18 2002 Than Ngo <than@redhat.com> 3.68-1
- update to 3.68
- enable XFree extensions
- fix Url
- add missing plugins
* Wed Dec 5 2001 Than Ngo <than@redhat.com> 3.65-1
- update to 3.65
- fix build on ia64
* Wed Nov 14 2001 Than Ngo <than@redhat.com> 3.64-1
- update to 3.64
* Mon Sep 17 2001 Than Ngo <than@redhat.com> 3.62-1
- update to 3.62 (bug #53711 #52847)
* Tue Aug 28 2001 Than Ngo <than@redhat.com> 3.54-5
- fix spec file bug (Bug #52675)
* Fri Aug 10 2001 Than Ngo <than@redhat.com> 3.54-4
- add requires usermode (bug #51474)
* Sun Aug 5 2001 Nalin Dahyabhai <nalin@redhat.com> 3.54-3
- tweak PAM setup so that v4l-conf can access the display properly
* Tue Jul 10 2001 Elliot Lee <sopwith@redhat.com> 3.54-2
- Rebuild to remove libXv/libXxf86dga deps
* Mon Jul 02 2001 Than Ngo <than@redhat.com>
- update to 3.54
* Fri Jun 22 2001 Than Ngo <than@redhat.com>
- update to 3.53
- add buildprereq
- remove some uneeeded patches
* Tue Jun 19 2001 Karsten Hopp <karsten@redhat.de>
- excludearch s390 s390x
* Wed Jun 13 2001 Than Ngo <than@redhat.com>
- update to 3.51
* Thu Jun 07 2001 Than Ngo <than@redhat.com>
- update to 3.50
* Thu May 31 2001 Than Ngo <than@redhat.com>
- udate to 3.49
* Tue May 22 2001 Than Ngo <than@redhat.com>
- update to 3.48
* Mon May 21 2001 Tim Powers <timp@redhat.com>
- built for the distro
* Wed May 18 2001 Karsten Hopp <karsten@redhat.de>
- make xawtv work with kernel-2.4
* Wed May 16 2001 Than Ngo <than@redhat.com>
- update to 3.47
* Mon May 07 2001 Than Ngo <than@redhat.com>
- update to 3.45
- add missing fonts
* Tue Feb 13 2001 Than Ngo <than@redhat.com>
- update to 3.34
- use consolehelper for v4l-conf
- add excludearch sparc, bdftopcf is broken on sparc
* Wed Jan 24 2001 Than Ngo <than@redhat.com>
- updated to 3.30
- use /dev/video0 instead /dev/video (bug #24871)
- fixed dependencies (Bug #24881)
* Sun Nov 19 2000 Than Ngo <than@redhat.com>
- update to 3.24
- add missing tools (rootv,scantv)
- add missing prereq on xset and mkfontdir
* Fri Nov 3 2000 Than Ngo <than@redhat.com>
- update to 3.23
* Wed Aug 23 2000 Tim Powers <timp@redhat.com>
- rebuilt against new XFree86 to fix DGA problems
* Mon Aug 21 2000 Than Ngo <than@redhat.com>
- update to 3.18 (Bugfix release)
- option -nodga to disable DGA (Bug #16577, #15702)
- compress fonts with gzip
* Mon Aug 07 2000 Tim Powers <timp@redhat.com>
- fixed bug #15435
* Mon Aug 07 2000 Than Ngo <than@redhat.de>
- rebuilt against the new DGA
- fixed in post and postun, so that it does not
emits to console (Bug #15436)
* Sat Jul 29 2000 Than Ngo <than@redhat.de>
- update to 3.17
* Mon Jul 24 2000 Prospector <prospector@redhat.com>
- rebuilt
* Wed Jul 12 2000 Than Ngo <than@redhat.de>
- FHS fixes
* Mon Jul 03 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Sun May 28 2000 Ngo Than <than@redhat.de>
- update to 3.14 for 7.0
- put man page in correct place
- add webcam
- bzip2 source
- cleanup specfile
* Wed Jan 19 2000 Preston Brown <pbrown@redhat.com>
- font fix (#8610) in post and postun
- add missing files in bin
* Sun Jan 16 2000 Preston Brown <pbrown@redhat.com>
- whoops! 3.07 already bugfix release
* Fri Jan 14 2000 Ngo Than <than@redhat.de>
- updated to 3.06
* Mon Jul 26 1999 Tim Powers <timp@redhat.com>
- updated to 2.46
- built for 6.1
* Wed Apr 28 1999 Preston Brown <pbrown@redhat.com>
- initial build for Powertools 6.0