summaryrefslogtreecommitdiff
path: root/graphics/frameworks
diff options
context:
space:
mode:
authorjmcneill <jmcneill>2009-01-10 21:08:14 +0000
committerjmcneill <jmcneill>2009-01-10 21:08:14 +0000
commit457967abba9190fc15505ca8835bfdb565a6fe64 (patch)
tree3d46107d87a8804f61f58f9effc457ac5d9fda13 /graphics/frameworks
parent42ebc1f871c5ac2b3d8240512e1821fad3146d29 (diff)
downloadpkgsrc-457967abba9190fc15505ca8835bfdb565a6fe64.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/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