Move fxtv to the new multimedia category (coming from graphics).

This is version 1.03nb4.
This commit is contained in:
jmmv 2004-01-26 11:36:35 +00:00
parent 192bba3de9
commit f3cc95de98
23 changed files with 1005 additions and 0 deletions

4
multimedia/fxtv/DESCR Normal file
View file

@ -0,0 +1,4 @@
To use this application, you need a video capture/tuner card
that's based on the Brooktree 848 capture chip, such as one of the
Hauppauge Wincast/TV or Win/TV cards, the STV TV PCI card, or the
Intel Smart Video Recorder III.

53
multimedia/fxtv/Makefile Normal file
View file

@ -0,0 +1,53 @@
# $NetBSD: Makefile,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
DISTNAME= fxtv-1.03
PKGREVISION= 4
CATEGORIES= multimedia
MASTER_SITES= ${HOMEPAGE}
EXTRACT_SUFX= .tgz
MAINTAINER= tron@NetBSD.org
HOMEPAGE= http://people.freebsd.org/~rhh/fxtv/
COMMENT= TV display application for Brooktree 848 compatible TV cards
#ONLY_FOR_PLATFORM= NetBSD-1.[5-9]*-arm NetBSD-1.[5-9]*-arm32 \
# NetBSD-1.[5-9]*-atari NetBSD-1.[5-9]*-i386
USE_BUILDLINK2= YES
USE_X11BASE= YES
USE_GNU_TOOLS+= make
XAW_TYPE?= 3d
.include "../../mk/bsd.prefs.mk"
MAKE_ENV+= X11PREFIX=${X11PREFIX}
# The purpose of this check is to make sure that there is a "Xaw3d"
# compatible widget set installed because normal "Xaw" won't work.
#
.if (${XAW_TYPE} == standard)
XAW_TYPE= 3d
.endif
post-extract:
@${RM} -f ${WRKSRC}/videolib/videolib.o
pre-configure:
cd ${WRKSRC}; for file in app_rsrc.h Fxtv; do \
${SED} -e "s,/dev/dsp,${DEVOSSAUDIO},g" \
$${file} > $${file}.fixed; \
${MV} -f $${file}.fixed $${file}; \
done
if [ -e /usr/include/machine/mouse.h ] ; then \
echo '#define HAVE_MOUSE_H 1' > ${WRKSRC}/netbsdconf.h; \
else \
echo '#define HAVE_MOUSE_H 0' > ${WRKSRC}/netbsdconf.h; \
fi
.include "../../graphics/png/buildlink2.mk"
.include "../../graphics/tiff/buildlink2.mk"
.include "../../graphics/xpm/buildlink2.mk"
.include "../../mk/xaw.buildlink2.mk"
.include "../../mk/ossaudio.buildlink2.mk"
.include "../../mk/bsd.pkg.mk"

15
multimedia/fxtv/PLIST Normal file
View file

@ -0,0 +1,15 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
bin/fxtv
lib/X11/app-defaults/Fxtv
lib/X11/fxtv/bitmaps/mini-camera.xpm
lib/X11/fxtv/bitmaps/mini-down.xbm
lib/X11/fxtv/bitmaps/mini-resize.xpm
lib/X11/fxtv/bitmaps/mini-sound.xbm
lib/X11/fxtv/bitmaps/mini-up.xbm
lib/X11/fxtv/bitmaps/radio_off.xbm
lib/X11/fxtv/bitmaps/radio_on.xbm
lib/X11/fxtv/README
lib/X11/fxtv/fxtv_cnvt.sh
man/man1/fxtv.1
@dirrm lib/X11/fxtv/bitmaps
@dirrm lib/X11/fxtv

23
multimedia/fxtv/distinfo Normal file
View file

@ -0,0 +1,23 @@
$NetBSD: distinfo,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
SHA1 (fxtv-1.03.tgz) = 2ed9f2bee879a931c7f963a4ad7d07ef9cd297f9
Size (fxtv-1.03.tgz) = 198669 bytes
SHA1 (patch-aa) = cd994d512fe99e962cc9c505285da63d1421f81e
SHA1 (patch-ab) = a62c497255063a88b7d240e902a45c85f59f84b0
SHA1 (patch-ac) = 27a825287c17d1cc957fb89ba2f665c01f998c15
SHA1 (patch-ad) = 39eb6a889ef76c27f2dd296385d9247c703db9eb
SHA1 (patch-ae) = aa7689ff62388d4d50f89501f2c3084bc04409d8
SHA1 (patch-af) = 50ab2d960955a8e97b6b56265195ec325b206cf9
SHA1 (patch-ag) = 13655a94cd6200d12e25d406d7c1923f89000c80
SHA1 (patch-ah) = 896d5164b176154b398f52d5c9887210da3d1e77
SHA1 (patch-ai) = 85baa4b457dede91bf74ce0d8e4655fae9da2d96
SHA1 (patch-aj) = 9a9427ba6c9d092e57f652bd6c278c96f9ba6d1c
SHA1 (patch-ak) = 87e4f9636aa798f9f0f5a4e27a936f800461667a
SHA1 (patch-al) = d60ac498f40cd9ec833ca436708cb140856826f1
SHA1 (patch-ba) = 20efae40631bdb5be57e12445bf2135a47952763
SHA1 (patch-bb) = 1a6cc73078ac7587e6df9de6c3ec9930e498484e
SHA1 (patch-bc) = d5ddc97b1ba5a1660d622f20d89a3a680596f024
SHA1 (patch-bd) = c24ef4e00d800368a843d0972d66080ddc2b07eb
SHA1 (patch-be) = ff86cb36c3379727de59632ac29efdbbc6baa1ec
SHA1 (patch-bf) = e3ce002d342ae508262f21e9eaa4af20d1d56f77
SHA1 (patch-bg) = fa2895e34aea2be7fccfb912276a5fbfb6c9d1be

View file

@ -0,0 +1,61 @@
$NetBSD: patch-aa,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
--- Makefile.orig Mon Feb 12 23:08:59 2001
+++ Makefile
@@ -4,13 +4,10 @@
HAVE_XFREE86 = YES
-ifneq ($(X11PREFIX),) # NetBSD
-X11BASE ?= $(X11PREFIX)
-else
X11BASE ?= /usr/X11R6
-endif
+X11BASEINST ?= $(PREFIX)
-X11BASEINST ?= $(X11BASE)
+PREFIX ?= /usr/local
LOCALBASE ?= /usr/local
DEBUG = NO
OS = $(shell uname -s)
@@ -24,15 +21,6 @@ override LIBDIRS = $(X11BASE)/
override SHELL = /bin/sh
#
-# NetBSD stuff
-#
-ifeq ($(OS),NetBSD)
- override INC += -I/usr/pkg/include
- override LIBDIRS += /usr/pkg/lib
- override LD_INC += -lossaudio -lz
-endif
-
-#
# OpenBSD stuff
#
ifeq ($(OS),OpenBSD)
@@ -72,6 +60,15 @@ endif
override CFLAGS += $(C_WARN_FLAG) -DX11BASE=\"$(X11BASEINST)\"
+#
+# NetBSD stuff
+#
+ifeq ($(OS),NetBSD)
+ override INC += -I$(LOCALBASE)/include
+ override LIBDIRS += $(LOCALBASE)/lib
+ override LD_INC += $(LIBOSSAUDIO) -lz
+endif
+
ifeq ($(OS), linux)
override CFLAGS = $(CFLAGS) -DOLD_TUNER_IFACE
endif
@@ -81,7 +78,7 @@ endif
#
override LDFLAGS = $(LD_INC)
override VIDEOLIB_LIB = $(VIDEOLIB_DIR)/libvideo.a
-override LIBS = -ltiff -ljpeg -lXaw3d -lXmu -lXt -lXpm \
+override LIBS = -lpng -ltiff -ljpeg -lXaw3d -lXmu -lXt -lXpm \
-lSM -lICE -lXext -lX11 -lm
ifeq ($(HAVE_XFREE86),YES)
override LIBS += -lXxf86dga -lXxf86vm

View file

@ -0,0 +1,12 @@
$NetBSD: patch-ab,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
--- pixelview_remote.c.orig Sun May 21 17:10:09 2000
+++ pixelview_remote.c Tue Feb 13 22:39:48 2001
@@ -32,6 +32,7 @@
*
*/
+#include <sys/ioctl.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

View file

@ -0,0 +1,16 @@
$NetBSD: patch-ac,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
--- tvaudio.c.orig Mon Feb 12 15:56:29 2001
+++ tvaudio.c
@@ -107,7 +107,11 @@
#ifdef SOUND_MIXER_VIDEO
else if ( STREQ( buf, "VIDEO" ) ) {
Mixer_dev_id = SOUND_MIXER_VIDEO;
+#ifndef SOUND_MASK_VIDEO
+ Mixer_dev_mask = 1 << SOUND_MIXER_VIDEO;
+#else
Mixer_dev_mask = SOUND_MASK_VIDEO;
+#endif
Mixer_dev_name = "VIDEO";
}
#endif

View file

@ -0,0 +1,261 @@
$NetBSD: patch-ad,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- app_rsrc.h.orig 2001-02-12 22:17:53.000000000 +0100
+++ app_rsrc.h
@@ -80,6 +80,8 @@ typedef struct _AppResources {
int Bpp_24bit;
int Bpp_32bit;
+ Boolean aot_mode;
+
Boolean afc_mode;
Boolean disable_direct_v;
String remote_type; /* Type of Remote Control attached */
@@ -191,6 +193,8 @@ extern AppResources App_res;
#define RNafc "afc"
#define RCafc "Afc"
+#define RNalwaysOnTop "alwaysOnTop"
+#define RCalwaysOnTop "AlwaysOnTop"
#define RNdisableDirectV "disableDirectV"
#define RCdisableDirectV "DisableDirectV"
@@ -284,6 +288,7 @@ static XrmOptionDescRec Cmd_line_options
{ "-Bpp24bit" , RNBpp24bit , XrmoptionSepArg, NULL },
{ "-Bpp32bit" , RNBpp32bit , XrmoptionSepArg, NULL },
+ { "-noalwaysOnTop" , RNalwaysOnTop , XrmoptionNoArg , pFALSE },
{ "-noafc" , RNafc , XrmoptionNoArg , pFALSE },
{ "-disableDirectV" , RNdisableDirectV , XrmoptionNoArg , pTRUE },
{ "-remoteType" , RNremoteType , XrmoptionSepArg, NULL },
@@ -389,7 +394,7 @@ static XtResource Resources[] = {
(XtPointer) True },
{ RNdspDevice, RCaudioDevice, XtRString, sizeof(String),
XtOffsetOf(AppResources, dsp_device ), XtRImmediate,
- "/dev/dsp" },
+ "/dev/audio" },
{ RNmixerDevice, RCaudioDevice, XtRString, sizeof(String),
XtOffsetOf(AppResources, mixer_device ), XtRImmediate,
"/dev/mixer" },
@@ -434,6 +439,10 @@ static XtResource Resources[] = {
XtOffsetOf(AppResources, Bpp_32bit), XtRString,
"-1" /* 0 = Guess */ },
+ { RNalwaysOnTop, RCalwaysOnTop, XtRBoolean, sizeof(Boolean),
+ XtOffsetOf(AppResources, aot_mode), XtRImmediate,
+ (XtPointer) True },
+
{ RNafc, RCafc, XtRBoolean, sizeof(Boolean),
XtOffsetOf(AppResources, afc_mode), XtRImmediate,
(XtPointer) True },
@@ -525,96 +534,96 @@ static XtResource Resources[] = {
};
-#define OPTION_HELP_STR "\
- BSD X TV (fxtv), Version " VERS_STR ".
- Written by Randall Hopper
-
-Please mail Fxtv and Bt848 driver-related comments and help requests to the
-multimedia@freebsd.org list. Feel free to subscribe and contribute
-(listserv: majordomo@freebsd.org).
-
-Available options:
-
--driverDefaults - Use appearance parms from driver on startup
--colorbars - Turn on colorbar display (for testing)
--hue [-90...90] - Initial Hue ; def=0
--brightness [-50..50] - Initial Brightness (%); def=0
--contrast [0..200] - Initial Contrast (%); def=100
--satU [0..200] - U Saturation (%); def=100
--satV [0..284] - V Saturation (%); def=100
--aspectlock - Enable 4:3 aspect lock on video window
-
--deviceNumber <#> - bktr/tuner device numbers; def=0
--inputFormat <fmt> - Tuner signal input format (ntsc,ntscm,ntscj,
- palbdghi,pal,palm,paln,secam,palncomb,rsvd)
-
--tunerMode [cable|antenna] - Tuner Mode
--defaultInput <input> - Startup tuner signal input
- [tuner|video|svideo|csvideo|dev3]
--defaultAudioInput <input> - Startup TV card audio input
- [tuner|external|internal|auto]
--defaultChannel <#> - Startup Channel Number
--cableStationList <...> - List of cable station presets (see rsrc file)
--antennaStationList <...> - List of antenna station presets
--cableFreqSet <freqset> - Freq set for cable (def = cableirc)
- [nabcst|cableirc|cablehrc|weurope|jpnbcst|
- jpncable|xussr|australia|france]
--antennaFreqSet <freqset> - Freq set for antenna (def = nabcst)
-
--noAudio - Suppress playing audio through soundcard
--dspDevice - Override default DSP device (def=/dev/dsp)
--mixerDevice - Override default mixer device (def=/dev/mixer)
--mixerChannel - Audio mixer (line,line1/2/3,cd,mic,video)
-
--stationInWinTitle - Display station text in window title
--stationInWinIcon - Display station text in window icon
-
--stationAnnotFont <fontpat> - Font pattern for station annot (see rsrc file)
--stationAnnotColor <color> - Color for station annot
--stationAnnotDelay <msec> - How long to display (0 = never; -1 = always)
--stationAnnotIDOnly - Display station ID alone (when available)
-
--tunerModeAnnot{Font,Color,Delay}
--inputDevAnnot{Font,Color,Delay}
--volumeDevAnnot{Font,Color,Delay}
--muteDevAnnot{Font,Color,Delay}
- - Other annotation options (see stationAnnot)
-
--remoteType - Type of attached remote control
- [None|X10|Hauppauge|PixelView]
-
--recCmdMpeg2 - MPEG-2 Audio record command
--recCmdMpeg3 - MPEG-3 Audio record command
--playCmdMpeg2 - MPEG-2 Audio play command
--playCmdMpeg3 - MPEG-3 Audio play command
-
--videoCnvtScript - Video conversion workhorse script for vid encod.
-
--bswap2Bpp - Byte/word swap options for direct video
--nobswap2Bpp (used to match driver's pixel format with
--bswap3Bpp the video card's)
--nobswap3Bpp
--bswap4Bpp 2Bpp - 15/16-bpp modes
--nobswap4Bpp 3Bpp - packed 24bpp modes
--bwwap4Bpp 4Bpp - unpacked 24bpp modes
--nowswap4Bpp
-
--Bpp24bit [3|4] - Set frame buffer Bytes-per-pixel for 24bpp mode
--Bpp32bit [3|4] - Set frame buffer Bytes-per-pixel for 32bpp mode
-
--videoCapFile[1-4] - Optional paths (0-4) to scratch file paths to
- use for video capture; spreads load across disks
-
--noafc - Disable AFC
--disableDirectV - Disable DMA transfers straight to video card
--debug <area> - Debug Msgs
- {startup,driver,subproc,events,video,frame}
--help - Display program options
-
-NOTE: All command line options are accessible as X resources as well.
- The X resources have the same names as the command-line options.
- See the sample Fxtv class resource file for details.
-"
+#define OPTION_HELP_STR \
+" BSD X TV (fxtv), Version " VERS_STR ".\n" \
+" Written by Randall Hopper\n" \
+"\n" \
+"Please mail Fxtv and Bt848 driver-related comments and help requests to the\n" \
+"multimedia@freebsd.org list. Feel free to subscribe and contribute\n" \
+"(listserv: majordomo@freebsd.org).\n" \
+"\n" \
+"Available options:\n" \
+"\n" \
+"-driverDefaults - Use appearance parms from driver on startup\n" \
+"-colorbars - Turn on colorbar display (for testing)\n" \
+"-hue [-90...90] - Initial Hue ; def=0\n" \
+"-brightness [-50..50] - Initial Brightness (%); def=0\n" \
+"-contrast [0..200] - Initial Contrast (%); def=100\n" \
+"-satU [0..200] - U Saturation (%); def=100\n" \
+"-satV [0..284] - V Saturation (%); def=100\n" \
+"-aspectlock - Enable 4:3 aspect lock on video window\n" \
+"-noalwaysOnTop - Disable always on top\n" \
+"\n" \
+"-deviceNumber <#> - bktr/tuner device numbers; def=0\n" \
+"-inputFormat <fmt> - Tuner signal input format (ntsc,ntscm,ntscj,\n" \
+" palbdghi,pal,palm,paln,secam,palncomb,rsvd)\n" \
+"\n" \
+"-tunerMode [cable|antenna] - Tuner Mode\n" \
+"-defaultInput <input> - Startup tuner signal input\n" \
+" [tuner|video|svideo|csvideo|dev3]\n" \
+"-defaultAudioInput <input> - Startup TV card audio input\n" \
+" [tuner|external|internal|auto]\n" \
+"-defaultChannel <#> - Startup Channel Number\n" \
+"-cableStationList <...> - List of cable station presets (see rsrc file)\n" \
+"-antennaStationList <...> - List of antenna station presets\n" \
+"-cableFreqSet <freqset> - Freq set for cable (def = cableirc)\n" \
+" [nabcst|cableirc|cablehrc|weurope|jpnbcst|\n" \
+" jpncable|xussr|australia|france]\n" \
+"-antennaFreqSet <freqset> - Freq set for antenna (def = nabcst)\n" \
+"\n" \
+"-noAudio - Suppress playing audio through soundcard\n" \
+"-dspDevice - Override default DSP device (def=/dev/audio)\n" \
+"-mixerDevice - Override default mixer device (def=/dev/mixer)\n" \
+"-mixerChannel - Audio mixer (line,line1/2/3,cd,mic,video)\n" \
+"\n" \
+"-stationInWinTitle - Display station text in window title\n" \
+"-stationInWinIcon - Display station text in window icon\n" \
+"\n" \
+"-stationAnnotFont <fontpat> - Font pattern for station annot (see rsrc file)\n" \
+"-stationAnnotColor <color> - Color for station annot\n" \
+"-stationAnnotDelay <msec> - How long to display (0 = never; -1 = always)\n" \
+"-stationAnnotIDOnly - Display station ID alone (when available)\n" \
+"\n" \
+"-tunerModeAnnot{Font,Color,Delay}\n" \
+"-inputDevAnnot{Font,Color,Delay}\n" \
+"-volumeDevAnnot{Font,Color,Delay}\n" \
+"-muteDevAnnot{Font,Color,Delay}\n" \
+" - Other annotation options (see stationAnnot)\n" \
+"\n" \
+"-remoteType - Type of attached remote control\n" \
+" [None|X10|Hauppauge|PixelView]\n" \
+"\n" \
+"-recCmdMpeg2 - MPEG-2 Audio record command\n" \
+"-recCmdMpeg3 - MPEG-3 Audio record command\n" \
+"-playCmdMpeg2 - MPEG-2 Audio play command\n" \
+"-playCmdMpeg3 - MPEG-3 Audio play command\n" \
+"\n" \
+"-videoCnvtScript - Video conversion workhorse script for vid encod.\n" \
+"\n" \
+"-bswap2Bpp - Byte/word swap options for direct video\n" \
+"-nobswap2Bpp (used to match driver's pixel format with\n" \
+"-bswap3Bpp the video card's)\n" \
+"-nobswap3Bpp\n" \
+"-bswap4Bpp 2Bpp - 15/16-bpp modes\n" \
+"-nobswap4Bpp 3Bpp - packed 24bpp modes\n" \
+"-bwwap4Bpp 4Bpp - unpacked 24bpp modes\n" \
+"-nowswap4Bpp\n" \
+"\n" \
+"-Bpp24bit [3|4] - Set frame buffer Bytes-per-pixel for 24bpp mode\n" \
+"-Bpp32bit [3|4] - Set frame buffer Bytes-per-pixel for 32bpp mode\n" \
+"\n" \
+"-videoCapFile[1-4] - Optional paths (0-4) to scratch file paths to\n" \
+" use for video capture; spreads load across disks\n" \
+"\n" \
+"-noafc - Disable AFC\n" \
+"-disableDirectV - Disable DMA transfers straight to video card\n" \
+"-debug <area> - Debug Msgs\n" \
+" {startup,driver,subproc,events,video,frame}\n" \
+"-help - Display program options\n" \
+"\n" \
+"NOTE: All command line options are accessible as X resources as well.\n" \
+" The X resources have the same names as the command-line options.\n" \
+" See the sample Fxtv class resource file for details.\n"
static String fallback_resources[] = {
/*"Fxtv.geometry: +10+10",*/
@@ -681,6 +690,7 @@ static String fallback_resources[] = {
"*menuBox*optionsMenu*captureToCmd.label: Capture To...",
"*menuBox*optionsMenu*saveOptionsCmd.label:Save Options",
"*menuBox*optionsMenu*setAfcCmd.label: AFC",
+ "*menuBox*optionsMenu*setAotCmd.label: Always on top",
"*menuBox*helpMenu.label: Help",
"*menuBox*helpMenu.menu.label: Help",
@@ -789,6 +799,7 @@ static String fallback_resources[] = {
"*imageSaveDialog*suffixLabel.label: Append Img # Suffix",
"*imageSaveDialog*formatLabel.label: Format:",
"*imageSaveDialog*formatMenuBox*tiffCmd.label: TIFF",
+ "*imageSaveDialog*formatMenuBox*pngCmd.label: PNG",
"*imageSaveDialog*formatMenuBox*ppmCmd.label: PPM",
"*imageSaveDialog*okCmd.label: OK",
@@ -902,6 +913,7 @@ static String fallback_resources[] = {
"*videoSaveDialog*imageEncLabel.label: IMAGE ENCODE",
"*videoSaveDialog*iFileFmtLabel.label: Format:",
"*videoSaveDialog*iFileFmtMenuBox*tiffCmd.label: TIFF",
+ "*videoSaveDialog*iFileFmtMenuBox*pngCmd.label: PNG",
"*videoSaveDialog*iFileFmtMenuBox*ppmCmd.label: PPM",
"*videoSaveDialog*iFileFmtMenuBox*yuvCmd.label: YUV",

View file

@ -0,0 +1,119 @@
$NetBSD: patch-ae,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- imgsav.c.orig Sun Sep 26 16:35:06 1999
+++ imgsav.c
@@ -29,6 +29,7 @@
/* ******************** Include Files ************** */
+#include <png.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -254,6 +255,96 @@ void TVIMGSAVDoSaveTIFF( char filename[]
}
+void TVIMGSAVDoSavePNG( char filename[], TV_IMAGE *img )
+{
+ char errmsg[160];
+ png_structp png_ptr;
+ png_infop info_ptr;
+ FILE *out;
+ TV_INT32 linebytes,
+ y,
+ pass,
+ compon;
+ TV_UINT8 *buf;
+
+ buf = NULL;
+ if ( img->pix_geom.type != TV_PIXELTYPE_RGB ) {
+ fprintf( stderr, "Attempt to save non-RGB data as TIFF\n" );
+ exit(1);
+ }
+
+ /* Open output file */
+ if ( (out = fopen( filename, "wb" )) == NULL ) {
+ sprintf( errmsg, "Can't open output file '%s'", filename );
+ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
+ return;
+ }
+
+ /* Create PNG data structures and initialize */
+ png_ptr = png_create_write_struct
+ (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (!png_ptr) {
+ sprintf( errmsg, "Can't create PNG write structure" );
+ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
+ return;
+ }
+ info_ptr = png_create_info_struct(png_ptr);
+ if (!info_ptr) {
+ png_destroy_write_struct(&png_ptr, NULL);
+ sprintf( errmsg, "Can't create PNG info structure" );
+ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
+ return;
+ }
+
+ if (setjmp(png_jmpbuf(png_ptr))) {
+ fprintf( stderr, "PNG write error\n" );
+ XBell( TVDISPLAY, 100 );
+ png_destroy_write_struct( &png_ptr, &info_ptr );
+ free( buf );
+ fclose( out );
+ unlink( filename );
+ return;
+ }
+ png_init_io(png_ptr, out);
+ /* fast compression */
+ png_set_compression_level(png_ptr, Z_BEST_SPEED);
+
+ /* Setup image format info (chunks) */
+ png_set_IHDR(png_ptr, info_ptr, img->geom.w, img->geom.h,
+ TV_BITS_PER_COMP, PNG_COLOR_TYPE_RGB /* XXX: ? */,
+ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
+ PNG_FILTER_TYPE_DEFAULT);
+ /* and write it */
+ png_write_info(png_ptr, info_ptr);
+ /* flush image out every 50 rows */
+ png_set_flush(png_ptr, 50);
+
+ linebytes = img->geom.w * TV_BYTES_PER_PIX;
+
+ if ( (buf = malloc( linebytes )) == NULL )
+ TVUTILOutOfMemory();
+
+ /* Convert & write the image data */
+ for ( pass = 0; pass < 1; pass++ ) {
+ compon = DoRed | DoGreen | DoBlue;
+ for ( y = 0; y < img->geom.h; y++ ) {
+
+ /* Format scanline */
+ TVIMGSAVFmtScanline24bpp( img, y, compon, buf );
+
+ /* And write it in PNG */
+ png_write_row(png_ptr, buf);
+ }
+ }
+
+ /* All done. Close up shop and go home */
+ png_write_end(png_ptr, NULL);
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ fclose(out);
+ free( buf );
+}
+
+
void TVIMGSAVDoSavePPM( char filename[], TV_IMAGE *img )
{
static char *S_fp_buf = NULL;
@@ -407,6 +498,9 @@ void TVIMGSAVDoSave( char filename[], TV
exit(1);
}
TVIMGSAVDoSaveTIFF( filename, img ); break;
+
+ case TV_STILL_FMT_PNG :
+ TVIMGSAVDoSavePNG ( filename, img ); break;
case TV_STILL_FMT_PPM :
TVIMGSAVDoSavePPM ( filename, img ); break;

View file

@ -0,0 +1,13 @@
$NetBSD: patch-af,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- tvutil.c.orig Mon May 13 13:43:42 2002
+++ tvutil.c Mon May 13 13:44:18 2002
@@ -112,7 +112,7 @@
#elif defined(__bsdi__)
int mib[2] = { CTL_KERN, KERN_MAXFILES };
#elif defined(__NetBSD__)
- int mib[2] = { CTL_KERN, OPEN_MAX };
+ int mib[2] = { CTL_KERN, KERN_MAXFILES };
#elif defined(__OpenBSD__)
int mib[2] = { CTL_KERN, OPEN_MAX };
#endif

View file

@ -0,0 +1,59 @@
$NetBSD: patch-ag,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- fxtv_cnvt.sh.orig Mon Feb 12 22:18:40 2001
+++ fxtv_cnvt.sh
@@ -32,7 +32,7 @@
#VIDEO_TARGET_FPS="30"
#VIDEO_STREAM="YES"
#
-#IMAGE_TARGET_FMT="YUV" # TIFF|PPM|YUV
+#IMAGE_TARGET_FMT="YUV" # TIFF|PNG|PPM|YUV
#
#CLEANUP_TEMP_FILES="YES"
@@ -73,6 +73,10 @@ MPEG_ENC_PARAM_STR_TIFF=\
'BASE_FILE_FORMAT PPM
INPUT_CONVERT tifftopnm *'
+MPEG_ENC_PARAM_STR_PNG=\
+'BASE_FILE_FORMAT PPM
+INPUT_CONVERT pngtopnm *'
+
MPEG_ENC_PARAM_STR_PPM=\
'BASE_FILE_FORMAT PPM
INPUT_CONVERT *'
@@ -181,8 +185,8 @@ GenAudioPipe() {
# Do we need an intermediate file?
if [ $mpeg_enc = YES ]; then
- out_soxfn="$out_fnbase.aiff"
- out_soxfmt="AIFF"
+ out_soxfn="$out_fnbase.raw"
+ out_soxfmt="RAW"
else
out_soxfn="$GAout_fn"
out_soxfmt="$out_fmt"
@@ -258,6 +262,7 @@ WriteMPEGEncodeParamFile() {
# Write the frame-format specific part
case $frame_fmt in
TIFF) str="$MPEG_ENC_PARAM_STR_TIFF";;
+ PNG) str="$MPEG_ENC_PARAM_STR_PNG";;
PPM) str="$MPEG_ENC_PARAM_STR_PPM" ;;
YUV) str="$MPEG_ENC_PARAM_STR_IYUV";;
esac
@@ -277,6 +282,7 @@ WriteMPEGEncodeParamFile() {
base=`basename $out_fnbase`
case $frame_fmt in
TIFF) ext="tif";;
+ PNG) ext="png";;
PPM) ext="ppm";;
YUV) ext="yuv";;
esac
@@ -321,6 +327,7 @@ CountFrameFiles() {
case $frame_fmt in
TIFF) ext="tif";;
+ PNG) ext="png";;
PPM) ext="ppm";;
YUV) ext="yuv";;
esac

View file

@ -0,0 +1,12 @@
$NetBSD: patch-ah,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- imgsav_dlg.c.orig Mon Sep 6 15:07:29 1999
+++ imgsav_dlg.c
@@ -69,6 +69,7 @@ static Pixmap Select_pixmap = None,
static TV_IFILEFMT_ITEM_DEF Fmtitem_def[] = {
{ TV_STILL_FMT_TIFF , "tiff", "tiffCmd" },
+ { TV_STILL_FMT_PNG , "png", "pngCmd" },
{ TV_STILL_FMT_PPM , "ppm" , "ppmCmd" }
};

View file

@ -0,0 +1,31 @@
$NetBSD: patch-ai,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
--- batch_mode.c.orig Sat Oct 23 15:50:35 1999
+++ batch_mode.c
@@ -154,6 +154,8 @@ static void DoStreamVideo( TV_BATCH_PARM
if ( STREQ( parm->frame_fmt, "TIFF" ) )
fmt = TV_STILL_FMT_TIFF;
+ else if ( STREQ( parm->frame_fmt, "PNG" ) )
+ fmt = TV_STILL_FMT_PNG;
else if ( STREQ( parm->frame_fmt, "PPM" ) )
fmt = TV_STILL_FMT_PPM;
else if ( STREQ( parm->frame_fmt, "YUV" ) )
@@ -175,6 +177,7 @@ static void DoStreamVideo( TV_BATCH_PARM
if ( parm->video_target && !video2stdout )
switch ( fmt ) {
case TV_STILL_FMT_TIFF : frame_ext = "tif"; break;
+ case TV_STILL_FMT_PNG : frame_ext = "png"; break;
case TV_STILL_FMT_PPM : frame_ext = "ppm"; break;
case TV_STILL_FMT_YUV : frame_ext = "yuv"; break;
default: abort();
@@ -209,7 +212,8 @@ static void DoStreamVideo( TV_BATCH_PARM
return;
/* Sanity check raw data with save type */
- if ( ((( fmt == TV_STILL_FMT_TIFF ) || ( fmt == TV_STILL_FMT_PPM )) &&
+ if ( ((( fmt == TV_STILL_FMT_TIFF ) || ( fmt == TV_STILL_FMT_PNG )
+ || ( fmt == TV_STILL_FMT_PPM )) &&
( img.pix_geom.type != TV_PIXELTYPE_RGB )) ||
(( fmt == TV_STILL_FMT_YUV ) &&
( img.pix_geom.type != TV_PIXELTYPE_YUV )) ) {

View file

@ -0,0 +1,38 @@
$NetBSD: patch-aj,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- Fxtv.orig 2003-09-28 17:38:29.000000000 +0200
+++ Fxtv 2003-09-28 17:38:29.000000000 +0200
@@ -11,6 +11,8 @@
! tuner, video, svideo, csvideo, dev3
!Fxtv*defaultAudioInput: tuner
! tuner, external, internal, auto
+Fxtv*alwaysOnTop: True
+ ! Always On Top
Fxtv*afc: False
! Automatic Frequency Control
!Fxtv*remoteType: Hauppauge
@@ -57,7 +59,7 @@
! Method to override audio device
!Fxtv*doSound: true
-!Fxtv*dspDevice: /dev/dsp
+!Fxtv*dspDevice: /dev/audio
!Fxtv*mixerDevice: /dev/mixer
!Fxtv*mixerChannel: line
! line, line1/2/3, cd, mic, video
@@ -320,6 +322,7 @@
*imageSaveDialog*suffixLabel.label: Append Img # Suffix
*imageSaveDialog*formatLabel.label: Format:
*imageSaveDialog*formatMenuBox*tiffCmd.label: TIFF
+*imageSaveDialog*formatMenuBox*pngCmd.label: PNG
*imageSaveDialog*formatMenuBox*ppmCmd.label: PPM
*imageSaveDialog*okCmd.label: OK
@@ -432,6 +435,7 @@
*videoSaveDialog*imageEncLabel.label: IMAGE ENCODE
*videoSaveDialog*iFileFmtLabel.label: Format:
*videoSaveDialog*iFileFmtMenuBox*tiffCmd.label: TIFF
+*videoSaveDialog*iFileFmtMenuBox*pngCmd.label: PNG
*videoSaveDialog*iFileFmtMenuBox*ppmCmd.label: PPM
*videoSaveDialog*iFileFmtMenuBox*yuvCmd.label: YUV

View file

@ -0,0 +1,21 @@
$NetBSD: patch-ak,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- glob.h.orig 2001-02-12 20:24:44.000000000 +0100
+++ glob.h
@@ -54,6 +54,7 @@ typedef enum {
typedef enum {
TV_STILL_FMT_TIFF,
+ TV_STILL_FMT_PNG,
TV_STILL_FMT_PPM,
TV_STILL_FMT_YUV,
TV_NUM_STILL_FMTS
@@ -133,6 +134,8 @@ typedef struct {
TV_TUNER_MODE tuner_mode;
TV_BOOL afc_mode;
+ TV_BOOL aot_mode;
+
TV_BOOL last_station_is_chan;
TV_INT32 last_chan;
double last_freq;

View file

@ -0,0 +1,20 @@
$NetBSD: patch-al,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- vidsav_dlg.c.orig Mon Feb 12 22:20:10 2001
+++ vidsav_dlg.c
@@ -235,6 +235,7 @@ static TV_ICAPFMT_ITEM_DEF Icap_fmt_
static TV_IFILEFMT_ITEM_DEF Ifile_fmt_item_def[] = {
{ TV_STILL_FMT_TIFF , "tiff", "tiffCmd" },
+ { TV_STILL_FMT_PNG , "png", "pngCmd" },
{ TV_STILL_FMT_PPM , "ppm" , "ppmCmd" },
{ TV_STILL_FMT_YUV , "yuv" , "yuvCmd" }
};
@@ -872,6 +873,7 @@ static TV_BOOL WriteVidConvertShScript(
switch ( p->img_sav_fmt ) {
case TV_STILL_FMT_TIFF : str = "TIFF"; break;
+ case TV_STILL_FMT_PNG : str = "PNG"; break;
case TV_STILL_FMT_PPM : str = "PPM" ; break;
case TV_STILL_FMT_YUV : str = "YUV" ; break;
default : str = "" ; break;

View file

@ -0,0 +1,51 @@
$NetBSD: patch-ba,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- remote.c.orig Fri Jan 10 02:18:28 2003
+++ remote.c Fri Jan 10 02:18:32 2003
@@ -33,6 +33,8 @@
/* ******************** Include Files ************** */
+#include "netbsdconf.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
@@ -53,8 +55,10 @@
# include <machine/mouse.h>
# endif
#else
+#if HAVE_MOUSE_H
# include <machine/mouse.h>
#endif
+#endif
#include <X11/Intrinsic.h>
#include "tvdebug.h"
#include "tvutil.h"
@@ -62,6 +66,8 @@
#include "haup_remote.h"
#include "pixelview_remote.h"
+#if HAVE_MOUSE_H
+
/* ******************** Local defines ************** */
/* FIXME: Remove this old code someday */
@@ -847,3 +853,18 @@
case REMOTE_TYPE_PIXELVIEW : TVPIXELVIEWREMOTEFlush(); break;
}
}
+
+#else /* HAVE_MOUSE_H */
+void
+TVREMOTEOpen( XtAppContext app_ctx,
+ char rem_type[],
+ TVREMOTE_CB_FUNCT *cb )
+ {
+ }
+
+void
+TVREMOTEFlush( void )
+ {
+ }
+
+#endif /* HAVE_MOUSE_H */

View file

@ -0,0 +1,12 @@
$NetBSD: patch-bb,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- glob.c.orig 2001-02-12 19:26:16.000000000 +0100
+++ glob.c
@@ -131,6 +131,7 @@ void TVGLOBInitPrefs( TV_PREFS *p )
p->cable_freq_set = 1;
p->tuner_mode = TV_TUNER_MODE_ANTENNA;
p->afc_mode = TRUE;
+ p->aot_mode = TRUE;
p->last_chan = 3; /* -1 = use last_freq */
p->last_freq = 0.0;

View file

@ -0,0 +1,66 @@
$NetBSD: patch-bc,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- tvmenu.c.orig 2001-02-12 22:19:33.000000000 +0100
+++ tvmenu.c
@@ -103,7 +103,7 @@ typedef void XT_CB( Widget w, XtPointer
/* ******************** Forward declarations ************** */
-static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, TModeCB,
+static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, AotCB, TModeCB,
ChanUpDnCB, AppearCB, AspectCB, AboutCB, ImgSavCB, ImgSavAsCB,
AudSavAsCB, VidSavAsCB, FormatCB, AudInpCB, StationPopupCB;
@@ -160,6 +160,7 @@ static TV_MENUITEM_DEF Menuitem_def[] =
{ TVMI( FORMAT,FORMAT_PALNCOMB ), "palncombFmt" , WC_mcmd , FormatCB },
{ TVMI( OPTIONS,OPTIONS_ASPECT ), "aspectLockCmd" , WC_mcmd , AspectCB },
{ TVMI( OPTIONS,OPTIONS_AFC ), "setAfcCmd", WC_mcmd , AfcCB },
+ { TVMI( OPTIONS,OPTIONS_AOT ), "setAotCmd", WC_mcmd , AotCB },
{ TV_MENU_OPTIONS, -1 , "line" , WC_mline, NULL },
/*
{ TVMI( OPTIONS,OPTIONS_SAVE ), "saveOptionsCmd", WC_mcmd , NULL },
@@ -396,6 +397,16 @@ static void AfcCB( Widget w, XtPointer c
TVMENUSetSelectedAfcMode( p->afc_mode );
}
+/* AotCB - Change the always on top mode */
+static void AotCB( Widget w, XtPointer cl, XtPointer cb )
+{
+ TV_PREFS *p = &G_glob.prefs;
+
+ p->aot_mode = !p->aot_mode;
+ XUTILSetAlwaysOnTop( p->aot_mode );
+ TVMENUSetSelectedAotMode( p->aot_mode );
+}
+
void TVMENUSetSelectedInputFormat( TV_INPUT_FORMAT fmt )
{
TV_MENUITEM_DEF *mi;
@@ -1008,6 +1019,19 @@ void TVMENUSetSelectedAfcMode( TV_BOOL a
NULL);
}
+void TVMENUSetSelectedAotMode( TV_BOOL aot )
+{
+ TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_AOT );
+ Pixmap pix;
+
+ if ( Select_pixmap == None )
+ TVMENULoadRadioPixmaps();
+
+ pix = aot ? Select_pixmap : Unselect_pixmap;
+ XtVaSetValues( item->wgt , XtNleftBitmap, pix,
+ NULL);
+}
+
void TVMENUSetSelectedAspectLock( TV_BOOL aspect_lock )
{
TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_ASPECT );
@@ -1043,6 +1067,7 @@ void TVMENUResync()
TVMENUSetSelectedAudioInputDevice( aud_input );
TVMENUSetSelectedTunerMode ( p->tuner_mode );
TVMENUSetSelectedAfcMode ( p->afc_mode );
+ TVMENUSetSelectedAotMode ( p->aot_mode );
}
/* TVTOOLSSetStationText - Sets the channel text to the specified */

View file

@ -0,0 +1,21 @@
$NetBSD: patch-bd,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- tvmenu.h.orig 2001-02-12 20:00:59.000000000 +0100
+++ tvmenu.h
@@ -63,6 +63,7 @@ typedef enum {
TV_MENUITEM_FORMAT_PALNCOMB,
TV_MENUITEM_OPTIONS_ASPECT,
TV_MENUITEM_OPTIONS_AFC,
+ TV_MENUITEM_OPTIONS_AOT,
TV_MENUITEM_OPTIONS_SAVE,
TV_MENUITEM_HELP_ABOUT,
TV_NUM_MENUITEMS
@@ -101,6 +102,8 @@ void TVMENUSetSelectedAudioInputDevice(
void TVMENUSetSelectedAfcMode( TV_BOOL afc );
+void TVMENUSetSelectedAotMode( TV_BOOL aot );
+
void TVMENUSetSelectedAspectLock( TV_BOOL aspect_lock );
void TVMENUSetSelectedTunerMode( TV_TUNER_MODE mode );

View file

@ -0,0 +1,13 @@
$NetBSD: patch-be,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- xutil.h.orig 2003-09-28 17:18:28.000000000 +0200
+++ xutil.h 2003-09-28 17:18:28.000000000 +0200
@@ -137,6 +137,8 @@
int screen,
XVisualInfo **fb_visual );
+void XUTILSetAlwaysOnTop( TV_BOOL status );
+
#ifdef __cplusplus
} /* Close 'extern "C"' */
#endif

View file

@ -0,0 +1,70 @@
$NetBSD: patch-bf,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- xutil.c.orig 1999-11-05 01:38:54.000000000 +0100
+++ xutil.c
@@ -44,6 +44,7 @@
#include <X11/Shell.h>
#include <X11/Xaw/Dialog.h>
#include <X11/xpm.h>
+#include "glob.h"
#include "tvdefines.h"
#include "xutil.h"
#include "app_rsrc.h"
@@ -63,6 +64,10 @@ void XawScrollbarSetThumb( Widget w, flo
#define WM_BORDER_PAD 40
+#define _NET_WM_STATE_REMOVE 0
+#define _NET_WM_STATE_ADD 1
+#define _NET_WM_STATE_TOGGLE 2
+
typedef struct {
pid_t cmd_pid;
TVUTIL_PIPE_END end[3];
@@ -1543,3 +1548,46 @@ void XUTILDetermineFrameBufferVisual( Di
}
}
}
+
+static void
+change_state (Display *d, Screen * screen, Window xwindow, int add,
+ Atom state1, Atom state2)
+{
+ XEvent xev;
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.serial = 0;
+ xev.xclient.send_event = True;
+ xev.xclient.display = d;
+ xev.xclient.window = xwindow;
+ xev.xclient.message_type = XInternAtom (d, "_NET_WM_STATE", FALSE);
+ xev.xclient.format = 32;
+ xev.xclient.data.l[0] = add ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
+ xev.xclient.data.l[1] = state1;
+ xev.xclient.data.l[2] = state2;
+
+ XSendEvent (d, RootWindowOfScreen (screen), False,
+ SubstructureRedirectMask | SubstructureNotifyMask, &xev);
+}
+
+void XUTILSetAlwaysOnTop(TV_BOOL status)
+{
+ Display *d = TVDISPLAY;
+ Screen *screen = XtScreen ( TVTOPLEVEL );
+ Window win = XtWindow ( TVTOPLEVEL );
+ static Atom xa_ABOVE = 0;
+ static Atom xa_BELOW = 0;
+
+ if (!xa_ABOVE)
+ {
+ xa_ABOVE = XInternAtom (d, "_NET_WM_STATE_ABOVE", FALSE);
+ xa_BELOW = XInternAtom (d, "_NET_WM_STATE_BELOW", FALSE);
+ }
+
+ if (status) {
+ change_state (d, screen, win, FALSE, xa_ABOVE, xa_BELOW);
+ change_state (d, screen, win, TRUE, xa_ABOVE, None);
+ } else {
+ change_state (d, screen, win, FALSE, xa_ABOVE, xa_BELOW);
+ }
+}

View file

@ -0,0 +1,14 @@
$NetBSD: patch-bg,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
--- tv.c.orig 2001-02-12 20:03:09.000000000 +0100
+++ tv.c
@@ -873,6 +873,9 @@ int main( int argc, char *argv[] )
S_wm_delete_window = XInternAtom( TVDISPLAY, "WM_DELETE_WINDOW", False );
XSetWMProtocols( TVDISPLAY, XtWindow( top_level ), &S_wm_delete_window, 1);
+ p->aot_mode = (App_res.aot_mode != FALSE);
+ XUTILSetAlwaysOnTop( p->aot_mode );
+
TVSCREENUpdateShellRsrcs( top_level, d->video_wgt );
TVMENUResync();