diff options
author | jmcneill <jmcneill@pkgsrc.org> | 2009-01-10 21:08:14 +0000 |
---|---|---|
committer | jmcneill <jmcneill@pkgsrc.org> | 2009-01-10 21:08:14 +0000 |
commit | 69f8f023fd9e19f85cce6cf9632e3ff2a1848ccd (patch) | |
tree | 3d46107d87a8804f61f58f9effc457ac5d9fda13 /graphics/frameworks | |
parent | 07902911db2cb1c8b4ad0800a561faa0457016ef (diff) | |
download | pkgsrc-69f8f023fd9e19f85cce6cf9632e3ff2a1848ccd.tar.gz |
Import graphics/frameworks version 0.3.7.
Frameworks is stop-motion animation frame capture software primarily for
Linux. Frameworks captures images from a camera and strings them together into
an animation. These still images may then be combined into a single video file
using other software. Only video4linux webcams are currently supported; work
is being done to add other types of digital cameras including IEEE 1394
camcorders, and USB still cameras. Frameworks is designed to be easily used
alongside the GIMP Animation Package (GAP).
Frameworks provides an interface to camera brightness and other controls. It
captures images as frame_0001.png, frame_0002.png, and so on. Frameworks
provides animation assistance in the form of onion skinning: displaying ghost
images of previous frames, and continuous preview: continuous playback of the
most recent few seconds followed by the live view from the camera. No editing
features are provided.
Diffstat (limited to 'graphics/frameworks')
-rw-r--r-- | graphics/frameworks/DESCR | 14 | ||||
-rw-r--r-- | graphics/frameworks/Makefile | 21 | ||||
-rw-r--r-- | graphics/frameworks/PLIST | 3 | ||||
-rw-r--r-- | graphics/frameworks/distinfo | 7 | ||||
-rw-r--r-- | graphics/frameworks/patches/patch-aa | 16 | ||||
-rw-r--r-- | graphics/frameworks/patches/patch-ab | 110 |
6 files changed, 171 insertions, 0 deletions
diff --git a/graphics/frameworks/DESCR b/graphics/frameworks/DESCR new file mode 100644 index 00000000000..f91cfe3b0f7 --- /dev/null +++ b/graphics/frameworks/DESCR @@ -0,0 +1,14 @@ +Frameworks is stop-motion animation frame capture software primarily for +Linux. Frameworks captures images from a camera and strings them together into +an animation. These still images may then be combined into a single video file +using other software. Only video4linux webcams are currently supported; work +is being done to add other types of digital cameras including IEEE 1394 +camcorders, and USB still cameras. Frameworks is designed to be easily used +alongside the GIMP Animation Package (GAP). + +Frameworks provides an interface to camera brightness and other controls. It +captures images as frame_0001.png, frame_0002.png, and so on. Frameworks +provides animation assistance in the form of onion skinning: displaying ghost +images of previous frames, and continuous preview: continuous playback of the +most recent few seconds followed by the live view from the camera. No editing +features are provided. diff --git a/graphics/frameworks/Makefile b/graphics/frameworks/Makefile new file mode 100644 index 00000000000..e48dd0ed373 --- /dev/null +++ b/graphics/frameworks/Makefile @@ -0,0 +1,21 @@ +# $NetBSD: Makefile,v 1.1.1.1 2009/01/10 21:08:14 jmcneill Exp $ +# + +DISTNAME= frameworks-0.3.7 +CATEGORIES= graphics +MASTER_SITES= http://frameworks.polycrystal.org/release/ + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://frameworks.polycrystal.org/release/ +COMMENT= Stop-motion animation frame capture software + +GNU_CONFIGURE= yes +USE_TOOLS+= pkg-config gmake autoconf + +pre-configure: + cd ${WRKSRC} && autoconf + +.include "../../devel/libglade/buildlink3.mk" +.include "../../graphics/libv4l/buildlink3.mk" +.include "../../x11/gtk2/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/graphics/frameworks/PLIST b/graphics/frameworks/PLIST new file mode 100644 index 00000000000..c0021064da7 --- /dev/null +++ b/graphics/frameworks/PLIST @@ -0,0 +1,3 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2009/01/10 21:08:14 jmcneill Exp $ +bin/frameworks +share/frameworks.glade diff --git a/graphics/frameworks/distinfo b/graphics/frameworks/distinfo new file mode 100644 index 00000000000..527789ea873 --- /dev/null +++ b/graphics/frameworks/distinfo @@ -0,0 +1,7 @@ +$NetBSD: distinfo,v 1.1.1.1 2009/01/10 21:08:14 jmcneill Exp $ + +SHA1 (frameworks-0.3.7.tar.gz) = 0d7629355c47283497246ee5d7aefdca99d1e7b8 +RMD160 (frameworks-0.3.7.tar.gz) = b63a877a4e477ed23993beaeda80326bd2c7cf1c +Size (frameworks-0.3.7.tar.gz) = 116266 bytes +SHA1 (patch-aa) = 639cc8de7ecbda4f22d762af7f22dd6f63f23e32 +SHA1 (patch-ab) = f1ef0a5658062347925e367b80f95667c44a9a67 diff --git a/graphics/frameworks/patches/patch-aa b/graphics/frameworks/patches/patch-aa new file mode 100644 index 00000000000..d9d5a984d4c --- /dev/null +++ b/graphics/frameworks/patches/patch-aa @@ -0,0 +1,16 @@ +$NetBSD: patch-aa,v 1.1.1.1 2009/01/10 21:08:14 jmcneill Exp $ + +NetBSD doesn't provide v4l1 compatibility, so use libv4l1 until +frameworks is ported to v4l2. + +--- configure.in.orig 2007-02-27 22:18:10.000000000 -0500 ++++ configure.in +@@ -12,7 +12,7 @@ AC_PROG_CC + AC_PROG_INSTALL + + # Checks for libraries +-pkg_modules="gtk+-2.0 gthread-2.0 libglade-2.0" ++pkg_modules="gtk+-2.0 gthread-2.0 libglade-2.0 libv4l1" + PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) + AC_SUBST(PACKAGE_CFLAGS) + AC_SUBST(PACKAGE_LIBS) diff --git a/graphics/frameworks/patches/patch-ab b/graphics/frameworks/patches/patch-ab new file mode 100644 index 00000000000..fe0451b5191 --- /dev/null +++ b/graphics/frameworks/patches/patch-ab @@ -0,0 +1,110 @@ +$NetBSD: patch-ab,v 1.1.1.1 2009/01/10 21:08:14 jmcneill Exp $ + +NetBSD doesn't provide v4l1 compatibility, so use libv4l1 until +frameworks is ported to v4l2. + +--- src/camera.c.orig 2007-02-27 22:18:50.000000000 -0500 ++++ src/camera.c +@@ -1,5 +1,6 @@ + #include <math.h> + #include "common.h" ++#include <libv4l1.h> + + /* internal function prototypes */ + gpointer read_thread(gpointer data); +@@ -158,7 +159,7 @@ gint open_cam(struct Camera *camera, GSt + { + if (camera->device <= 0) { + camera->device_name = device_name; +- camera->device = open(device_name->str, O_RDWR); ++ camera->device = v4l1_open(device_name->str, O_RDWR); + if (camera->device < 0) { + /* frameworks_error(device_string) */ + camera->open = FALSE; +@@ -182,7 +183,7 @@ gint close_cam(struct Camera *camera) + { + if (camera->open == TRUE) { + mmap_teardown(camera); +- close(camera->device); ++ v4l1_close(camera->device); + g_string_free(camera->device_name, TRUE); + camera->device_name = NULL; + camera->device = 0; +@@ -201,12 +202,12 @@ void mmap_setup(struct Camera *camera) + mmap_teardown(camera); + if (camera->vid_caps.type & VID_TYPE_CAPTURE) { + /* mmap method is available */ +- ret = ioctl(camera->device, VIDIOCGMBUF, &camera->vmbuf); ++ ret = v4l1_ioctl(camera->device, VIDIOCGMBUF, &camera->vmbuf); + if (ret < 0) { + perror("ioctl(VIDIOCGMBUF)"); + camera->mmap = NULL; + } else { +- camera->mmap = mmap(0, ++ camera->mmap = v4l1_mmap(0, + camera->vmbuf.size, + PROT_READ | PROT_WRITE, + MAP_SHARED, camera->device, +@@ -224,7 +225,7 @@ void mmap_setup(struct Camera *camera) + void mmap_teardown(struct Camera *camera) + { + if (camera->mmap != NULL) { +- munmap(camera->mmap, camera->vmbuf.size); ++ v4l1_munmap(camera->mmap, camera->vmbuf.size); + camera->mmap = NULL; + } + } +@@ -259,12 +260,12 @@ void frameworks_camera_update_status(str + + void set_status(struct Camera *camera) + { +- if (ioctl(camera->device, VIDIOCSPICT, &camera->vid_pic) == -1) { ++ if (v4l1_ioctl(camera->device, VIDIOCSPICT, &camera->vid_pic) == -1) { + /* error */ + perror("ioctl(VIDIOCSPICT)"); + /* printf("error setting video_picture\n"); */ + } +- if (ioctl(camera->device, VIDIOCSWIN, &camera->vid_win) == -1) { ++ if (v4l1_ioctl(camera->device, VIDIOCSWIN, &camera->vid_win) == -1) { + perror("ioctl(VIDIOCSWIN)"); + /* printf("error setting video_window\n"); */ + } +@@ -272,9 +273,9 @@ void set_status(struct Camera *camera) + + void get_status(struct Camera *camera) + { +- ioctl(camera->device, VIDIOCGCAP, &camera->vid_caps); +- ioctl(camera->device, VIDIOCGWIN, &camera->vid_win); +- ioctl(camera->device, VIDIOCGPICT, &camera->vid_pic); ++ v4l1_ioctl(camera->device, VIDIOCGCAP, &camera->vid_caps); ++ v4l1_ioctl(camera->device, VIDIOCGWIN, &camera->vid_win); ++ v4l1_ioctl(camera->device, VIDIOCGPICT, &camera->vid_pic); + + /* apparently MONOCHORME means grey scale? this was in gqcam...*/ + if (camera->vid_caps.type & VID_TYPE_MONOCHROME) { +@@ -329,14 +330,14 @@ int read_into(struct Camera *camera, str + vmmap.width = buf->width; + vmmap.height = buf->height; + vmmap.format = camera->vid_pic.palette; +- if(ioctl(camera->device, VIDIOCMCAPTURE, &vmmap) < 0) { ++ if(v4l1_ioctl(camera->device, VIDIOCMCAPTURE, &vmmap) < 0) { + perror("ioctl(VIDIOCMCAPTURE)"); + mmap_teardown(camera); /* switch to read() */ + return -1; + } + n = 0; + for (i=0; i<3; i++) { +- if (ioctl(camera->device, VIDIOCSYNC, &n) == -1) /* failure */ ++ if (v4l1_ioctl(camera->device, VIDIOCSYNC, &n) == -1) /* failure */ + { + if (errno == EINTR) { + ; /* try again on EINTR */ +@@ -355,7 +356,7 @@ int read_into(struct Camera *camera, str + } + } else { /* use read method */ + for (i=0; i<3; i++) { /* give it 3 tries to get some data */ +- bytes_read = read(camera->device, buf->data, bytes_requested); ++ bytes_read = v4l1_read(camera->device, buf->data, bytes_requested); + if (bytes_read > 0) { + + /* more than zero isn't really success (should be "if |