summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/frameworks/DESCR14
-rw-r--r--graphics/frameworks/Makefile21
-rw-r--r--graphics/frameworks/PLIST3
-rw-r--r--graphics/frameworks/distinfo7
-rw-r--r--graphics/frameworks/patches/patch-aa16
-rw-r--r--graphics/frameworks/patches/patch-ab110
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