From owner-freebsd-multimedia Mon Jan 12 04:07:23 1998 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id EAA03566 for multimedia-outgoing; Mon, 12 Jan 1998 04:07:23 -0800 (PST) (envelope-from owner-freebsd-multimedia) Received: from fleming.cs.strath.ac.uk (root@fleming.cs.strath.ac.uk [130.159.196.123]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id EAA03559 for ; Mon, 12 Jan 1998 04:07:01 -0800 (PST) (envelope-from roger@cs.strath.ac.uk) Received: from muir-10 (roger@muir-10.cs.strath.ac.uk [130.159.148.10]) by fleming.cs.strath.ac.uk (1.1/1.1CS) with SMTP id MAA21225 Mon, 12 Jan 1998 12:06:40 GMT Message-ID: <34BA074E.167E@cs.strath.ac.uk> Date: Mon, 12 Jan 1998 12:06:38 +0000 From: Roger Hardiman Organization: University of Strathclyde X-Mailer: Mozilla 3.0 (X11; I; OSF1 V3.2 alpha) MIME-Version: 1.0 To: multimedia@freebsd.org Subject: FXTV. Watching two programs at the same time with two BT848s Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-multimedia@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I have 2 BT848 cards (a WinTV/PCI and a VideoLogic Captivator PCI). I want to watch two video inputs, one via each grabber. FXTV 0.46 is hard coded to open /dev/bktr0 for the video input. I have changed this to allow a new option, -deviceNumber which can be any integer. This defines the bktr device to open. eg fxtv -deviceNumber 0 & fxtv -deviceNumber 1 & The diffs for app_rsrc.h and tvcapture.c follow. If there are any problems, the entire source, including patch can be ftp'ed from vulture.dmem.strath.ac.uk in /pub/fxtv Roger Hardiman ---app_rsrc.h 40a41 > int device_number; 110a112,113 > #define RNdeviceNumber "deviceNumber" > #define RCdeviceNumber "DeviceNumber" 202a206 > { "-deviceNumber" , RNdeviceNumber , XrmoptionSepArg, NULL } , 270a275,277 > { RNdeviceNumber, RCdeviceNumber, XtRInt, sizeof(int), > XtOffsetOf(AppResources, device_number), XtRString, > "0" }, 446a454 > -deviceNumber <#> - bktr device number ; def=0 ---tv_capture.c is 1110c1110,1112 < c->fd = open( "/dev/bktr0", O_RDONLY ); --- > char device_string[12]; > sprintf(device_string,"/dev/bktr%d",App_res.device_number); > c->fd = open( device_string, O_RDONLY ); 1112,1113c1114,1115 < fprintf( stderr, "open(\"/dev/bktr0\") failed: %s\n", < strerror(errno) ); --- > fprintf( stderr, "open(\"%s\") failed: %s\n", > device_string,strerror(errno) ); 1116c1118,1120 < c->tfd = open( "/dev/tuner0", O_RDONLY ); --- > > sprintf(device_string,"/dev/tuner%d",App_res.device_number); > c->tfd = open( device_string , O_RDONLY ); 1118,1119c1122,1123 < fprintf( stderr, "open(\"/dev/tuner0\") failed: %s\n", < strerror(errno) ); --- > fprintf( stderr, "open(\"%s\") failed: %s\n", > device_string,strerror(errno) ); Roger Hardiman, | Department of Computer Science, PhD Research Student, | University of Strathclyde, roger@cs.strath.ac.uk | Glasgow, Scotland, UK http://www.cs.strath.ac.uk/~roger