Giter VIP home page Giter VIP logo

sarxos / webcam-capture Goto Github PK

View Code? Open in Web Editor NEW
2.2K 151.0 1.1K 23.38 MB

The goal of this project is to allow integrated or USB-connected webcams to be accessed directly from Java. Using provided libraries users are able to read camera images and detect motion. Main project consist of several sub projects - the root one, which contains required classes, build-in webcam driver compatible with Windows, Linux and Mac OS, which can stream images as fast as your camera can serve them (up to 50 FPS). Main project can be used standalone, but user is able to replace build-in driver with different one - such as OpenIMAJ, GStreamer, V4L4j, JMF, LTI-CIVIL, FMJ, etc.

Home Page: http://webcam-capture.sarxos.pl

License: MIT License

Shell 0.04% Java 95.29% PHP 1.03% HTML 0.34% CSS 2.96% JavaScript 0.35%
webcam java webcam-capture

webcam-capture's Introduction

Webcam Capture API

This library allows you to use your build-in or external webcam directly from Java. It's designed to abstract commonly used camera features and support various capturing frameworks.

Maven Central Build Status Coverage Status

Rationale

Assume a situation when your code depends on some capturing framework, but suddenly you have to drop it and use a different, maybe newer one (e.g. replace archaic JMF with newest GStreamer). By doing this you will have to rewrite significant piece of your code because these frameworks are completely different and not compatible at all. This is where Webcam Capture API comes to save the world - it was created to remove the burden of such situations so you do not have to rewrite your code ever again, but instead you can simply switch the driver class to different one.

Features

  • Simple, thread-safe and non-blocking API,
  • No additional software required,
  • Supports multiple platforms (Windows, Linux, Mac OS, etc) and various architectures (32-bit, 64-bit, ARM),
  • Get images from build-in or USB-connected PC webcams,
  • Get images from IP / network cameras (as MJPEG or JPEG),
  • Offers ready to use motion detector,
  • All required JARs Available in Maven Central,
  • Offers possibility to expose images as MJPEG stream,
  • It is available as Maven dependency or standalone ZIP binary (with all dependencies included),
  • Swing component to display video feed from camera,
  • Swing component to choose camera (drop down),
  • Multiple capturing frameworks are supported:

The latest stable version is: 0.3.12

The latest development version is: 0.3.13-SNAPSHOT

Raspberry PI

(and other ARM devices)

The latest version (0.3.10) does not work on ARM just out of the box. To make it working you need to replace version 0.6.2 of BridJ JAR by the 0.6.3-SNAPSHOT or newer bridj-0.7-20140918. Moreover, lately Jonathon Hare from OpenIMAJ team, found a problem described in bridj #525 which causes problems on armhf architecture.

Maven

The latest stable version is available in Maven Central:

<dependency>
  <groupId>com.github.sarxos</groupId>
  <artifactId>webcam-capture</artifactId>
  <version>0.3.12</version>
</dependency>

Snapshot version:

<repository>
	<id>Sonatype OSS Snapshot Repository</id>
	<url>http://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<dependency>
	<groupId>com.github.sarxos</groupId>
	<artifactId>webcam-capture</artifactId>
	<version>0.3.13-SNAPSHOT</version>
</dependency>

Download

The newest stable version can be downloaded as separated ZIP binary. This ZIP file contains Webcam Capture API itself and all required dependencies (in libs directory). Click on the below link to download it:

webcam-capture-0.3.12-dist.zip

The latest development version JAR (aka SNAPSHOT) can be downloaded here.

Contribution

If you have strong will, spare time, knowledge or even some small amount of money you would like to spent for good purpose you can help developing this awesome Webcam Capture API and make it even better! Several kinds of contributions are very welcome:

Star Project

If you think this project is great, you would like to help, but you don't know how - you can become project's stargazer. By starring you're making project more popular. Visit this link if you would like to learn more about how notifications and stars works on Github.

Report Bug or Feature

If you've found a bug or you've came-up with some fantastic feature which can make Webcam Capture a better API to use, don't hesitate to create new issue where you can describe in details what the problem is, or what would you like to improve.

Perform Tests

Since Webcam Capture use some part of native code, it's very hard to cover all supported operating systems. I'm always testing it on 64-bit Ubuntu Linux, Windows XP and Vista (both 32-bit), but I have no possibility to test on Raspberry Pi, Mac OS and 32-bit Linux. Please help and test on those systems if you have such possibility.

Write Code

If you know Java or C++ you can help developing Webcam Capture by forking repository and sending pull requests. Please visit this link if you don't know how to contribute to other's code at Github.

Donate

People have expressed a wish to donate a little money. Donating won't get you anything special, other than a warm feeling inside, and possibly urge me to produce more freely available material for Webcam Capture project. You can donate via PayPal, just click donate button available below - it will redirect you to the secured PayPal page where you can provide donation amount (there is no minimal value).

Donate via PayPal

Hello World

Code below will capture image from your default webcam and save it in hello-world.png file:

Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("hello-world.png"));

More Examples!

Below are the very pretty basic examples demonstrating of how Webcam Capture API can be used in the Java code. All can be found in the project source code. Please note that some of those examples may use the newest API which has not yet been released to maven Central. In such a case please make sure you are using the newest Webcam Capture API SNAPSHOT.

And here are some more advanced examples, few with quite fancy GUI.

YouTube Tutorials

Video series by Genuine Coder for Webcam Capture beginners:

Capture Drivers

Webcam Capture API defines WebcamDriver interface which has been already implemented in several capturing drivers build on top of well-known frameworks used to work with multimedia and cameras. Complete list can be found below.

By default (if other driver is not specified) library uses default driver which consists of small, refined part of awesome OpenIMAJ framework wrapped in thread-safe container. However, there are more ready-to-use drivers which can be used as a replacement or addition to the default one. By utilizing those drivers Webcam Capture can be extended with various new features (e.g. IP camera support).

List of additional capture drivers includes:

Driver Name Stable Central Description
ipcam yes yes Driver for IP / network camera
fswebcam yes yes Driver for FSWebcam CLI tool
gstreamer yes yes Driver for GStreamer framework
openimaj yes yes Driver for OpenIMAJ framework
v4l4j yes no Driver for V4L4j library
jmf yes yes Driver for JMF / FMJ frameworks
lti-civil yes yes Driver for LTI-CIVIL library
vlcj yes yes Driver for vlcj library
javacv yes yes Driver for JavaCV library
ffmpeg-cli poc no Driver for FFmpeg CLI tool
raspicam poc no Driver for Raspicam CLI PIcam tool
  • Central = available in Maven Central Repository
  • poc = Proof of Concept

Default Driver

If no other driver is specified, the default driver will be used. It consists of small, refined part of awesome OpenIMAJ framework wrapped in thread-safe container.

IP Camera Driver

This capture driver gives possibility to access IP camera devices and handle images in form of JPEG pictures or MJPEG streams.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-ipcam</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new IpCamDriver());

More details and binaries download can be found on dedicated webcam-capture-driver-ipcam page.

Fswebcam Driver

This capture driver gives possibility to use CLI tool called fswebcam (written by Philip Heron) to access UVC devices connected to the computer. It works only on *nix and requires tool to be installed on the environment where driver is used.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-fswebcam</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new FsWebcamDriver());

More details on how to use, how to install fswebcam and where binaries can be downloaed, can be found on dedicated webcam-capture-driver-fswebcam page.

GStreamer Driver

This capture driver gives possibility to use GStreamer to access UVC camera devices connected to computer. It works on Windows and Linux only.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-gstreamer</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new GStreamerDriver());

More details on how to use, how to install GStreamer and where binaries can be downloaded, can be found on dedicated webcam-capture-driver-gstreamer page.

OpenIMAJ Driver

This capture driver gives possibility to use OpenIMAJ to access UVC camera devices connected to the computer.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-openimaj</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new OpenImajDriver());

More details on how to use it and where binaries can be downloaded, can be found on dedicated webcam-capture-driver-openimaj page.

V4L4j Driver

This is capture driver which uses V4L4j project to access UVC camera devices. It works on Linux only and it seems like it is most suitable for use on Raspberry Pi.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-v4l4j</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new V4l4jDriver());

More details on how to use it and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-v4l4j page.

JMF Driver

This is capture driver which uses JMF (Java Media Framework) to access UVC webcam devices. The JMF needs to be installed and configured on the PC before this driver can be used. It can also be used alternatively with the FMJ project.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-jmf</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use:

Webcam.setDriver(new JmfDriver());

More details on how to use it, install, and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-jmf page.

LTI-CIVIL Driver

This is capture driver designed to leverage capabilities of LTI-CIVIL project (by Larson Technologies Inc.) and use it to access wide range of UVC devices. It works on 32-bit architectures only.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-lti-civil</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use it:

Webcam.setDriver(new LtiCivilDriver());

More details on how to use it, and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-lti-civil page.

VLCj Driver

This is capture driver which uses VLCj library from Caprica Software Limited to gain access to the UVC camera device.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-vlcj</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use it:

Webcam.setDriver(new VlcjDriver());

More details on how to use it, how to install, and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-vlcj page.

JavaCV Driver

This is capture driver which uses JavaCV binding for OpenCV to gain access to the UVC camera device.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-opencv</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

or if you are using webcam-capture < 0.3.12:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-javacv</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

If you only target specific platforms take a look at Reducing the Number of Dependencies.

How to use it:

Webcam.setDriver(new JavaCvDriver());

More details on how to use it, how to install, and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-javacv page.

FFmpeg CLI Driver

This is capture driver which uses ffmpeg CLI tool from FFmpeg to access UVC camera device.

Maven dependency:

<dependency>
    <groupId>com.github.sarxos</groupId>
    <artifactId>webcam-capture-driver-ffmpeg-cli</artifactId>
    <version>{webcam-capture-version-here}</version>
</dependency>

How to use it:

Webcam.setDriver(new FFmpegCliDriver());

More details on how to use it, how to install, and where necessary binaries can be downloaded, can be found on dedicated webcam-capture-driver-ffmpeg-cli page.

History

I initially started working on Webcam Capture as a simple proof-of-concept after I read Andrew Davison's fantastic book entitled Killer Game Programming (which is also available online). Thank you Andrew! Later I found that there is a complete mess in Java APIs allowing you to capture images from webcams. Once you choose specific API you cannot change it without modifying large parts of the code. I decided to change this situation and write general purpose wrapper for various different APIs (like JMF, OpenCV, OpenIMAJ, LTI-CIVIL, VLC). In such a way, Webcam Capture as we know it today, was brought to life. Today you can change underlying frameworks just by replacing webcam driver (one line code change). If there is no driver for particular framework, it's very easy to write it yourself.

License

Copyright (C) 2012 - 2017 Bartosz Firyn (https://github.com/sarxos) and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

sarxos

webcam-capture's People

Contributors

alexmao86 avatar antego avatar babanin avatar bhamail avatar dassio avatar dependabot[bot] avatar flx5 avatar gubjack avatar huoxi-any avatar jlleitschuh avatar jonburgin avatar jonhare avatar junbaor avatar jvllmr avatar kerrlovepanda avatar kkanzelmeyer avatar kkieffer avatar krok32 avatar leoaugust19 avatar levackt avatar msgilligan avatar peterchaula avatar realworldedits376w avatar sarxos avatar syliks avatar tbbach avatar tm1990 avatar wesleym77 avatar yuripourre avatar zhongxuanwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webcam-capture's Issues

Provide some method to grab image in bytes

Hello,Thanks a lot ,i have read some of your source code ,and i noticed these:

    public BufferedImage getImage() {

        if (disposed.get()) {
            LOG.debug("Webcam is disposed, image will be null");
            return null;
        }

        if (!open.get()) {
            LOG.debug("Webcam is closed, image will be null");
            return null;
        }

        LOG.trace("Webcam device get image (next frame)");

        grabber.nextFrame();

        Pointer<Byte> image = grabber.getImage();
        if (image == null) {
            LOG.warn("Null array pointer found instead of image");
            return null;
        }

        int length = size.width * size.height * 3;

        LOG.trace("Webcam device get image (transfer buffer) {} bytes", length);

        byte[] bytes = image.getBytes(length);
        byte[][] data = new byte[][] { bytes };

        if (bytes == null) {
            LOG.error("Images byte array is null!");
            return null;
        }

        DataBufferByte buffer = new DataBufferByte(data, bytes.length, OFFSET);
        WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null);

        BufferedImage bi = new BufferedImage(colorModel, raster, false, null);
        bi.flush();

        return bi;
    }

you get the bytes from the native and then return them as an BufferedImage,i want to know ,that the color space of the native return ?rgb or srgb

    private static final ColorSpace COLOR_SPACE = ColorSpace.getInstance(ColorSpace.CS_sRGB);

```and how about return the original bytes in another method? can you use an direct bytebuffer pool ,and return the bytes in the bytebuffer?
sorry for so much question,thanks.

LTI-CIVIL driver doesn't work on Ubuntu Linux amd64

Details:

  • Webcam Capture version: 0.3.10-SNAPSHOT
  • System: Ubuntu 12.04 Linux
  • Arch: 64-bit

JVM crashes without hs file and drop this message to the console output:

*** glibc detected *** /usr/lib/jvm/java-6-oracle/bin/java: invalid fastbin entry (free): 0x00007faddc14a1e0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7fade18a4b96]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x70a599)[0x7fade1320599]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x226bc9)[0x7fade0e3cbc9]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7f3822)[0x7fade1409822]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7ebd7b)[0x7fade1401d7b]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x364a81)[0x7fade0f7aa81]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x36f928)[0x7fade0f85928]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x37567f)[0x7fade0f8b67f]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7eeb6f)[0x7fade1404b6f]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7ecb55)[0x7fade1402b55]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7eb8e1)[0x7fade14018e1]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7ebcf3)[0x7fade1401cf3]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x36f5ab)[0x7fade0f855ab]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x37567f)[0x7fade0f8b67f]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7eeb6f)[0x7fade1404b6f]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7ecb55)[0x7fade1402b55]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7eb8e1)[0x7fade14018e1]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x7eb4f4)[0x7fade14014f4]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x3de845)[0x7fade0ff4845]
/usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so(+0x4d5bf1)[0x7fade10ebbf1]
[0x7fadd89fa75d]
======= Memory map: ========
40000000-40009000 r-xp 00000000 08:01 3943358                            /usr/lib/jvm/java-6-oracle/bin/java
40108000-4010a000 rwxp 00008000 08:01 3943358                            /usr/lib/jvm/java-6-oracle/bin/java
408b4000-408d5000 rwxp 00000000 00:00 0                                  [heap]
be600000-bfac0000 rwxp 00000000 00:00 0 
bfac0000-c3800000 rwxp 00000000 00:00 0 
c3800000-c6050000 rwxp 00000000 00:00 0 
c6050000-ebd60000 rwxp 00000000 00:00 0 
ebd60000-ed180000 rwxp 00000000 00:00 0 
ed180000-100000000 rwxp 00000000 00:00 0 
7fada0000000-7fada0021000 rwxp 00000000 00:00 0 
7fada0021000-7fada4000000 ---p 00000000 00:00 0 
7fada8000000-7fada80c2000 rwxp 00000000 00:00 0 
7fada80c2000-7fadac000000 ---p 00000000 00:00 0 
7fadac000000-7fadac021000 rwxp 00000000 00:00 0 
7fadac021000-7fadb0000000 ---p 00000000 00:00 0 
7fadb0000000-7fadb0021000 rwxp 00000000 00:00 0 
7fadb0021000-7fadb4000000 ---p 00000000 00:00 0 
7fadb4000000-7fadb40bb000 rwxp 00000000 00:00 0 
7fadb40bb000-7fadb8000000 ---p 00000000 00:00 0 
7fadb8000000-7fadb8021000 rwxp 00000000 00:00 0 
7fadb8021000-7fadbc000000 ---p 00000000 00:00 0 
7fadbc000000-7fadbc021000 rwxp 00000000 00:00 0 
7fadbc021000-7fadc0000000 ---p 00000000 00:00 0 
7fadc0000000-7fadc0021000 rwxp 00000000 00:00 0 
7fadc0021000-7fadc4000000 ---p 00000000 00:00 0 
7fadc4000000-7fadc4021000 rwxp 00000000 00:00 0 
7fadc4021000-7fadc8000000 ---p 00000000 00:00 0 
7fadca60c000-7fadca621000 r-xp 00000000 08:01 4198010                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fadca621000-7fadca820000 ---p 00015000 08:01 4198010                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fadca820000-7fadca821000 r-xp 00014000 08:01 4198010                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fadca821000-7fadca822000 rwxp 00015000 08:01 4198010                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fadca822000-7fadca8e5000 r-xp 00000000 08:01 3813552                    /usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7
7fadca8e5000-7fadcaae4000 ---p 000c3000 08:01 3813552                    /usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7
7fadcaae4000-7fadcaaed000 rwxp 000c2000 08:01 3813552                    /usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7
7fadcaaed000-7fadcaafe000 rwxp 00000000 00:00 0 
7fadcaafe000-7fadcab0f000 r-xp 00000000 08:01 2629526                    /tmp/webcam-capture-lib-1360530631992/libcivil.so
7fadcab0f000-7fadcac0f000 ---p 00011000 08:01 2629526                    /tmp/webcam-capture-lib-1360530631992/libcivil.so
7fadcac0f000-7fadcac10000 rwxp 00011000 08:01 2629526                    /tmp/webcam-capture-lib-1360530631992/libcivil.so
7fadcac10000-7fadcac11000 ---p 00000000 00:00 0 
7fadcac11000-7fadcad11000 rwxp 00000000 00:00 0 
7fadcad11000-7fadcad14000 ---p 00000000 00:00 0 
7fadcad14000-7fadcae12000 rwxp 00000000 00:00 0 
7fadcae12000-7fadcae15000 ---p 00000000 00:00 0 
7fadcae15000-7fadcaf13000 rwxp 00000000 00:00 0 
7fadcaf13000-7fadcaf16000 ---p 00000000 00:00 0 
7fadcaf16000-7fadcb014000 rwxp 00000000 00:00 0 
7fadcb014000-7fadcb017000 ---p 00000000 00:00 0 
7fadcb017000-7fadcb115000 rwxp 00000000 00:00 0 
7fadcb115000-7fadcb7f8000 r-xp 00000000 08:01 3807732                    /usr/lib/locale/locale-archive
7fadcb7f8000-7fadcb7fb000 ---p 00000000 00:00 0 
7fadcb7fb000-7fadcb8f9000 rwxp 00000000 00:00 0 
7fadcb8f9000-7fadcb8fc000 ---p 00000000 00:00 0 
7fadcb8fc000-7fadcb9fa000 rwxp 00000000 00:00 0 
7fadcb9fa000-7fadcb9fb000 ---p 00000000 00:00 0 
7fadcb9fb000-7fadcc000000 rwxp 00000000 00:00 0 
7fadcc000000-7fadcc021000 rwxp 00000000 00:00 0 
7fadcc021000-7fadd0000000 ---p 00000000 00:00 0 
7fadd0000000-7fadd0021000 rwxp 00000000 00:00 0 
7fadd0021000-7fadd4000000 ---p 00000000 00:00 0 
7fadd4000000-7fadd4021000 rwxp 00000000 00:00 0 
7fadd4021000-7fadd8000000 ---p 00000000 00:00 0 
7fadd80f1000-7fadd8289000 r-xs 03083000 08:01 3943562                    /usr/lib/jvm/java-6-oracle/jre/lib/rt.jar
7fadd8289000-7fadd828a000 ---p 00000000 00:00 0 
7fadd828a000-7fadd838a000 rwxp 00000000 00:00 0 
7fadd838a000-7fadd838b000 ---p 00000000 00:00 0 
7fadd838b000-7fadd848b000 rwxp 00000000 00:00 0 
7fadd848b000-7fadd848c000 ---p 00000000 00:00 0 
7fadd848c000-7fadd858c000 rwxp 00000000 00:00 0 
7fadd858c000-7fadd858d000 ---p 00000000 00:00 0 
7fadd858d000-7fadd86a2000 rwxp 00000000 00:00 0 
7fadd86a2000-7fadd87d0000 rwxp 00000000 00:00 0 
7fadd87d0000-7fadd87db000 rwxp 00000000 00:00 0 
7fadd87db000-7fadd87f9000 rwxp 00000000 00:00 0 
7fadd87f9000-7fadd880e000 rwxp 00000000 00:00 0 
7fadd880e000-7fadd893b000 rwxp 00000000 00:00 0 
7fadd893b000-7fadd8946000 rwxp 00000000 00:00 0 
7fadd8946000-7fadd89dd000 rwxp 00000000 00:00 0 
7fadd89dd000-7fadd8c4e000 rwxp 00000000 00:00 0 
7fadd8c4e000-7faddb9de000 rwxp 00000000 00:00 0 
7faddb9de000-7faddb9ea000 r-xp 00000000 08:01 4200009                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7faddb9ea000-7faddbbe9000 ---p 0000c000 08:01 4200009                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7faddbbe9000-7faddbbea000 r-xp 0000b000 08:01 4200009                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7faddbbea000-7faddbbeb000 rwxp 0000c000 08:01 4200009                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7faddbbeb000-7faddbbf5000 r-xp 00000000 08:01 4200005                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7faddbbf5000-7faddbdf5000 ---p 0000a000 08:01 4200005                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7faddbdf5000-7faddbdf6000 r-xp 0000a000 08:01 4200005                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7faddbdf6000-7faddbdf7000 rwxp 0000b000 08:01 4200005                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7faddbdf7000-7faddbdff000 r-xp 00000000 08:01 4200010                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7faddbdff000-7faddbffe000 ---p 00008000 08:01 4200010                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7faddbffe000-7faddbfff000 r-xp 00007000 08:01 4200010                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7faddbfff000-7faddc000000 rwxp 00008000 08:01 4200010                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7faddc000000-7faddc15a000 rwxp 00000000 00:00 0 
7faddc15a000-7fade0000000 ---p 00000000 00:00 0 
7fade0020000-7fade0087000 rwxp 00000000 00:00 0 
7fade0087000-7fade00a5000 rwxp 00000000 00:00 0 
7fade00a5000-7fade00b3000 r-xp 00000000 08:01 4076049                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libzip.so
7fade00b3000-7fade01b5000 ---p 0000e000 08:01 4076049                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libzip.so
7fade01b5000-7fade01b8000 rwxp 00010000 08:01 4076049                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libzip.so
7fade01b8000-7fade01b9000 rwxp 00000000 00:00 0 
7fade01b9000-7fade01d0000 r-xp 00000000 08:01 4200018                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7fade01d0000-7fade03cf000 ---p 00017000 08:01 4200018                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7fade03cf000-7fade03d0000 r-xp 00016000 08:01 4200018                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7fade03d0000-7fade03d1000 rwxp 00017000 08:01 4200018                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7fade03d1000-7fade03d3000 rwxp 00000000 00:00 0 
7fade03d3000-7fade03fc000 r-xp 00000000 08:01 4076072                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libjava.so
7fade03fc000-7fade04fb000 ---p 00029000 08:01 4076072                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libjava.so
7fade04fb000-7fade0502000 rwxp 00028000 08:01 4076072                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libjava.so
7fade0502000-7fade050f000 r-xp 00000000 08:01 4076043                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libverify.so
7fade050f000-7fade060e000 ---p 0000d000 08:01 4076043                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libverify.so
7fade060e000-7fade0611000 rwxp 0000c000 08:01 4076043                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/libverify.so
7fade0611000-7fade0618000 r-xp 00000000 08:01 4200003                    /lib/x86_64-linux-gnu/librt-2.15.so
7fade0618000-7fade0817000 ---p 00007000 08:01 4200003                    /lib/x86_64-linux-gnu/librt-2.15.so
7fade0817000-7fade0818000 r-xp 00006000 08:01 4200003                    /lib/x86_64-linux-gnu/librt-2.15.so
7fade0818000-7fade0819000 rwxp 00007000 08:01 4200003                    /lib/x86_64-linux-gnu/librt-2.15.so
7fade0819000-7fade081c000 ---p 00000000 00:00 0 
7fade081c000-7fade091a000 rwxp 00000000 00:00 0 
7fade091a000-7fade0a15000 r-xp 00000000 08:01 4200007                    /lib/x86_64-linux-gnu/libm-2.15.so
7fade0a15000-7fade0c14000 ---p 000fb000 08:01 4200007                    /lib/x86_64-linux-gnu/libm-2.15.so
7fade0c14000-7fade0c15000 r-xp 000fa000 08:01 4200007                    /lib/x86_64-linux-gnu/libm-2.15.so
7fade0c15000-7fade0c16000 rwxp 000fb000 08:01 4200007                    /lib/x86_64-linux-gnu/libm-2.15.so
7fade0c16000-7fade1534000 r-xp 00000000 08:01 4076089                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so
7fade1534000-7fade1636000 ---p 0091e000 08:01 4076089                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so
7fade1636000-7fade17ec000 rwxp 00920000 08:01 4076089                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/server/libjvm.so
7fade17ec000-7fade1826000 rwxp 00000000 00:00 0 
7fade1826000-7fade19db000 r-xp 00000000 08:01 4199999                    /lib/x86_64-linux-gnu/libc-2.15.so
7fade19db000-7fade1bda000 ---p 001b5000 08:01 4199999                    /lib/x86_64-linux-gnu/libc-2.15.so
7fade1bda000-7fade1bde000 r-xp 001b4000 08:01 4199999                    /lib/x86_64-linux-gnu/libc-2.15.so
7fade1bde000-7fade1be0000 rwxp 001b8000 08:01 4199999                    /lib/x86_64-linux-gnu/libc-2.15.so
7fade1be0000-7fade1be5000 rwxp 00000000 00:00 0 
7fade1be5000-7fade1be7000 r-xp 00000000 08:01 4199998                    /lib/x86_64-linux-gnu/libdl-2.15.so
7fade1be7000-7fade1de7000 ---p 00002000 08:01 4199998                    /lib/x86_64-linux-gnu/libdl-2.15.so
7fade1de7000-7fade1de8000 r-xp 00002000 08:01 4199998                    /lib/x86_64-linux-gnu/libdl-2.15.so
7fade1de8000-7fade1de9000 rwxp 00003000 08:01 4199998                    /lib/x86_64-linux-gnu/libdl-2.15.so
7fade1de9000-7fade1e01000 r-xp 00000000 08:01 4200001                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7fade1e01000-7fade2000000 ---p 00018000 08:01 4200001                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7fade2000000-7fade2001000 r-xp 00017000 08:01 4200001                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7fade2001000-7fade2002000 rwxp 00018000 08:01 4200001                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7fade2002000-7fade2006000 rwxp 00000000 00:00 0 
7fade2006000-7fade2028000 r-xp 00000000 08:01 4200013                    /lib/x86_64-linux-gnu/ld-2.15.so
7fade202d000-7fade203c000 r-xs 000e1000 08:01 397608                     /home/sarxos/.m2/repository/com/google/android/tools/dx/1.7/dx-1.7.jar
7fade203c000-7fade2046000 rwxp 00000000 00:00 0 
7fade2046000-7fade20fc000 rwxp 00000000 00:00 0 
7fade20fc000-7fade20ff000 rwxp 00000000 00:00 0 
7fade20ff000-7fade2106000 r-xp 00000000 08:01 4076052                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/jli/libjli.so
7fade2106000-7fade2207000 ---p 00007000 08:01 4076052                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/jli/libjli.so
7fade2207000-7fade2209000 rwxp 00008000 08:01 4076052                    /usr/lib/jvm/java-6-oracle/jre/lib/amd64/jli/libjli.so
7fade2209000-7fade220a000 rwxp 00000000 00:00 0 
7fade220d000-7fade220f000 rwxp 00000000 00:00 0 
7fade220f000-7fade2212000 r-xs 0000e000 08:01 2628874                    /home/sarxos/.m2/repository/com/github/sarxos/lti-civil-no-swt/20070920-1721/lti-civil-no-swt-20070920-1721.jar
7fade2212000-7fade2214000 r-xs 00005000 08:01 394752                     /home/sarxos/.m2/repository/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar
7fade2214000-7fade221c000 r-xs 000cf000 08:01 1057390                    /home/sarxos/.m2/repository/com/nativelibs4java/bridj/0.6.2/bridj-0.6.2.jar
7fade221c000-7fade2224000 rwxs 00000000 08:01 2623037                    /tmp/hsperfdata_sarxos/7925
7fade2224000-7fade2225000 rwxp 00000000 00:00 0 
7fade2225000-7fade2226000 r-xp 00000000 00:00 0 
7fade2226000-7fade2228000 rwxp 00000000 00:00 0 
7fade2228000-7fade2229000 r-xp 00022000 08:01 4200013                    /lib/x86_64-linux-gnu/ld-2.15.so
7fade2229000-7fade222b000 rwxp 00023000 08:01 4200013                    /lib/x86_64-linux-gnu/ld-2.15.so
7fff5024f000-7fff50270000 rwxp 00000000 00:00 0                          [stack]
7fff502fe000-7fff502ff000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
opened v4l2 device
Found HP HD Webcam [Fixed] card with uvcvideo v4l2 driver
discover_inputs()
Found sources: 1
    0 - Camera 1 (2)
unknown or unsupported format: 1448695129

Resolution Problem

MacBookPro i7 , Windows 7, ISight - 1280x1024 ( according to hardware spec - and YEWCAM is able to take 1280x1024)

but with this lib I'm unable to get more then 640x480 -

when set to more I get the message :

SEVERE: Incorrect dimension [1280x1800] possible ones are [176x144] [320x240] [352x288] [480x400] [640x480] [1024x768] : java.lang.IllegalArgumentException: Incorrect dimension [1280x1800] possible ones are [176x144] [320x240] [352x288] [480x400] [640x480] [1024x768]
at com.github.sarxos.webcam.Webcam.setViewSize(Webcam.java:282)

when set to 1024x768 - got the following :

WARNING: Different size obtained vs requested - [1024x768] vs [1024x576]. Setting correct one. New size is [1024x576]

and the lib is unable to get snap as the hole JVM crashes with mem dump !

when set to 1024x576 - I get again the original :

SEVERE: Incorrect dimension [1024x576] possible ones are [176x144] [320x240] [352x288] [480x400] [640x480] [1024x768] : java.lang.IllegalArgumentException: Incorrect dimension [1024x576] possible ones are [176x144] [320x240] [352x288] [480x400] [640x480] [1024x768]
at com.github.sarxos.webcam.Webcam.setViewSize(Webcam.java:282)

BTW : is there a way using the lib to query for the supported resolutions for each camera ?

Get image delay when the FPS is so slow

Hi,sorry for open an new issue again:
When i trying to handle video stream or any other thing,I found an issue that
the call of webcam.getImage()'s returen data just contains an image seconds before
,which means the image is not that real time ,but an old data.
so I want to info that ,could we just take an new snapshot from the webcam but not a little older one?

provide the more available size and format for the getImage()

thanks first

when i use your api ,i always grab the original bufferedImage from the webcam.then i use the imageIO to wirte it to an BytearrayOutputStream,so i think how about.you provide some othere method such as

webcam.getImage(ImageType.JPG)
which can return an Jpeg image,and how about return bytebuffer or byte[] too.

i still implement an grabber which use an schedule service to grab the image with an listener .
i think that you can provide it too.

i think if you can provide the google's webp image type ?

i just wanna your great API to be more easy to use,so ,sorry for so many request.
https://gist.github.com/4489904

an i have found this:
http://code.google.com/p/thumbnailator/

which can scale up and scale down the image,it's fast and high quality

libv4lconvert: warning more framesizes then I can handle!

After this code:

webcam = Webcam.getWebcams().get(1);
webcam.open();

I see in log the error from title. Is it a possibility to set FPS on a webcam or the FPS is the interval between two consecutive webcam.getImage() method call?

I used 0.3.7-SNAPSHOT (build it from github).

Add WebcamDiscoveryListener

Created on behalf of @hepin1989, related to #12.

This would be something like that:

Webcam.addWebcamDiscoveryListener(new WebcamDiscoveryListener({
  public void webcamFound(WebcamDiscoveryEvent e) {
    System.out.println("Webcam found: " + e.getWebcam().getName());
  }
});
WebcamDiscoveryListener[] listeners = Webcam.getWebcamDiscoveryListeners();
Webcam.removeWebcamDiscoveryListener(listeners[0]);

some times the cant find the webcam

some times the library cannot found the webcam and the method call just stop at the serching ,it just stop here

10:04:18.005 [main] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices

NoSuchMethodError when running WebcamMotionDetector

Error when running WebcamMotionDetector on Raspberry Pi.

Caused by: java.lang.NoSuchMethodError: com.jhlabs.image.BoxBlurFilter.<init>(FFI)V
    at com.github.sarxos.webcam.WebcamMotionDetector.<init>(WebcamMotionDetector.java:132)
    at com.github.sarxos.webcam.WebcamMotionDetector.<init>(WebcamMotionDetector.java:184)
    at com.github.sarxos.webcam.DetectMotionExample.<init>(DetectMotionExample.java:14)
    at com.github.sarxos.webcam.DetectMotionExample.main(DetectMotionExample.java:26)

It's caused by missing JAR with filters, but it would be the best to extract few required filters (blur + gray) and include them directly in webcam capture code.

Return null instead of exception if no webcam detected

kerr@DearPanda:~/git/ex-ice-client/EX-ICE-Client$ java -jar EX-ICE-Client_kerr.jar 
09:50:31.727 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
09:50:31.729 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver not found
09:50:31.729 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
09:50:31.729 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver not found
09:50:31.729 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
09:50:31.729 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.jmf.JmfDriver not found
09:50:31.729 [main] INFO  com.github.sarxos.webcam.Webcam - Webcam driver has not been found, default one will be used!
09:50:31.732 [webcam-discovery] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices
Not enough args for null OpenIMAJGrabber.startSession(int, int, double)
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.simontuffs.onejar.Boot.run(Boot.java:306)
    at com.simontuffs.onejar.Boot.main(Boot.java:159)
Caused by: com.github.sarxos.webcam.WebcamException: No webcam available in the system
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:411)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:388)
    at us.sosia.media.webcam.WebCamUtils.getDefaultWebcam(WebCamUtils.java:23)
    at us.sosia.nat.client.P2PAgentor.main(P2PAgentor.java:180)
    ... 6 more

hello,i think that you should not raise an exception that the user can't know from the method sign,and may be an exception witch can be catched such like "NoWebCamException" or just return null when we get webcam.

thanks,the current implment cause an exception uncatched when there is no webcam connected to the PC,

MAC OS Snow leopard issue.

This API is working on MAC OS Lion but now in Snow leopard.

Can anyone tell me that why it isn't working in Snow leopard ?

LOG informations:

08:31:03.692 [main] INFO
p.edited.webcam.WebcamDriverUtils - Searching driver
partho.edited.webcam.ds.openimaj.OpenImajDriver
08:31:03.721 [main] DEBUG
p.edited.webcam.WebcamDriverUtils - Driver
partho.edited.webcam.ds.openimaj.OpenImajDriver
not found
08:31:03.721 [main] INFO
p.edited.webcam.WebcamDriverUtils - Searching
driver
partho.edited.webcam.ds.civil.LtiCivilDriver
08:31:03.723 [main] DEBUG
p.edited.webcam.WebcamDriverUtils - Driver
partho.edited.webcam.ds.civil.LtiCivilDriver not
found
08:31:03.723 [main] INFO
p.edited.webcam.WebcamDriverUtils - Searching
driver partho.edited.webcam.ds.jmf.JmfDriver
08:31:03.735 [main] DEBUG
p.edited.webcam.WebcamDriverUtils - Driver
partho.edited.webcam.ds.jmf.JmfDriver not found
08:31:03.736 [main] INFO
partho.edited.webcam.Webcam - Webcam driver has
not been found, default one will be used!
08:31:03.829 [main] DEBUG
p.e.w.ds.buildin.WebcamDefaultDriver - Searching
devices
Not enough args for null OpenIMAJGrabber.startSession(int, int, double)
08:31:06.644 [main] DEBUG
p.e.w.ds.buildin.WebcamDefaultDriver - Found
device
partho.edited.webcam.ds.buildin.WebcamDefaultDevice@32dcb03b
08:31:06.644 [main] DEBUG
p.e.w.ds.buildin.WebcamDefaultDriver - Found
device
partho.edited.webcam.ds.buildin.WebcamDefaultDevice@36b60b93
08:31:06.657 [main] INFO
partho.edited.webcam.Webcam - Webcam found
Built-in iSight 0xfd40000005ac8502
08:31:06.658 [main] INFO
partho.edited.webcam.Webcam - Webcam found USB2.0
Camera 0xfa22000018717670
08:31:06.658 [main] INFO
partho.edited.webcam.Webcam - Opening webcam
Built-in iSight 0xfd40000005ac8502

Tiny memory leaks after resetDriver() when handle TERM signal enabled

This issue can be observed only when handle TERM signal feature is enabled:

Webcam.handleTermSignal(true)

After user perform Webcam.resetDriver() and call Webcam.getWebcams() again, all devices are being discovered, hooks and handlers are installed again, but old references are not being freed - TERM signal handler still keep original references and prevents them from being garbage collected.

Related to issue #10

Workaround:

Disable handle TERM signal feature or accept memory leak in development phase. Please remember that TERM signal handling feature shall not be used in production code.

To disable TERM handling feature (if it was previously enabled):

Webcam.handleTermSignal(false)

You can ignore this bug if TERM signal handler has not been enabled. Without TERM signal handler, everything works fine and all unnecessary references are correctly garbage collected.

Screen from jvisualvm:

Screenshot from 2013-01-08 18:11:29

next frame die~~crash when grab the next frame

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f3afd8f1878, pid=12902, tid=139891344205568
#
# JRE version: 7.0_10-b18
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [OpenIMAJGrabber.so8418304238469146613.so+0x3878]  grabNextFrame(_VideoGrabber*)+0x34
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00007f3b383ab800):  JavaThread "ProcessorThreadFactory" daemon [_thread_in_native, id=12924, stack(0x00007f3afdd0e000,0x00007f3afde0f000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000100

Registers:
RAX=0x0000000000000000, RBX=0x00007f3afd8f0010, RCX=0x0000000000000000, RDX=0x00000000000001e0
RSP=0x00007f3afde0d2e0, RBP=0x00007f3afde0d390, RSI=0x0000000000000280, RDI=0x00007f3afde0d370
R8 =0x000000002f3e967f, R9 =0x00007f3afd191612, R10=0x00007f3b40fb3d40, R11=0x00007f3b40807580
R12=0x0000000000000000, R13=0x00007f3b383ab9d8, R14=0x00007f3afde0d570, R15=0x00007f3b383ab800
RIP=0x00007f3afd8f1878, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000004
  TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00007f3afde0d2e0)
0x00007f3afde0d2e0:   00007f3b383ab800 0000000000000000
0x00007f3afde0d2f0:   0000000000000000 0000000000000000
0x00007f3afde0d300:   0000000000000000 0000000000000000
0x00007f3afde0d310:   0000000000000000 0000000000000000
0x00007f3afde0d320:   0000000000000000 0000000000000000
0x00007f3afde0d330:   0000000000000000 0000000000000000
0x00007f3afde0d340:   0000000000000000 0000000000000000
0x00007f3afde0d350:   0000000000000000 0000000000000000
0x00007f3afde0d360:   0000000000000000 0000000000000000
0x00007f3afde0d370:   00007f3b383ab9d8 00007f3afdb03f47
0x00007f3afde0d380:   fde0d370383ab800 00007f3a00000000
0x00007f3afde0d390:   00007f3afde0d3b0 00007f3afd8f002b
0x00007f3afde0d3a0:   00007f3afde0d468 00007f3aec090c90
0x00007f3afde0d3b0:   00007f3afde0d3c8 00007f3afdb06f31
0x00007f3afde0d3c0:   00000000b179d5b8 00007f3aec04d780
0x00007f3afde0d3d0:   00007f3afde0d468 00007f3afdb046ae
0x00007f3afde0d3e0:   000000008f0325c0 000000008f0325c0
0x00007f3afde0d3f0:   00007f3afde0d4f0 0000000000000000
0x00007f3afde0d400:   000000008f0325c0 00007f3afdb05c66
0x00007f3afde0d410:   00007f3afde0d468 00007f3aec08c810
0x00007f3afde0d420:   00007f3afde0d470 00007f3afde0d570
0x00007f3afde0d430:   00007f3afde0d468 00007f3afde0d460
0x00007f3afde0d440:   00007f3aec04d780 00007f3b35006158
0x00007f3afde0d450:   0000000000000000 00007f3afdb07586
0x00007f3afde0d460:   0000000000000000 0000000000000000
0x00007f3afde0d470:   00007f3afde0d500 0000000000000002
0x00007f3afde0d480:   00007f3b383ab9d8 00007f3afde0d570
0x00007f3afde0d490:   000000008f038770 0000000000000d09
0x00007f3afde0d4a0:   00007f3ad0004e48 0000000004000001
0x00007f3afde0d4b0:   4049000000000000 00007f3aec058650
0x00007f3afde0d4c0:   00000000a1c618f9 00007f3afd1917c1
0x00007f3afde0d4d0:   00007f3afd177f98 00007f3aec058650 

Instructions: (pc=0x00007f3afd8f1878)
0x00007f3afd8f1858:   00 00 00 b9 10 00 00 00 48 8d bd 60 ff ff ff fc
0x00007f3afd8f1868:   f3 48 ab 89 4d f8 89 7d f4 48 8b 85 58 ff ff ff
0x00007f3afd8f1878:   8b 80 00 01 00 00 48 98 48 c1 e8 06 48 89 c6 48
0x00007f3afd8f1888:   8b 84 c5 60 ff ff ff 48 89 c2 48 8b 85 58 ff ff 

Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x00007f3afd8f0010: _ZN15OpenIMAJGrabber9nextFrameEv+0 in /tmp/OpenIMAJGrabber.so8418304238469146613.so at 0x00007f3afd8ee000
RCX=0x0000000000000000 is an unknown value
RDX=0x00000000000001e0 is an unknown value
RSP=0x00007f3afde0d2e0 is pointing into the stack for thread: 0x00007f3b383ab800
RBP=0x00007f3afde0d390 is pointing into the stack for thread: 0x00007f3b383ab800
RSI=0x0000000000000280 is an unknown value
RDI=0x00007f3afde0d370 is pointing into the stack for thread: 0x00007f3b383ab800
R8 =0x000000002f3e967f is an unknown value
R9 =0x00007f3afd191612: <offset 0x24612> in /usr/lib/x86_64-linux-gnu/libstdc++.so.6 at 0x00007f3afd16d000
R10=0x00007f3b40fb3d40: <offset 0xcfdd40> in /usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so at 0x00007f3b402b6000
R11=0x00007f3b40807580: <offset 0x551580> in /usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so at 0x00007f3b402b6000
R12=0x0000000000000000 is an unknown value
R13=0x00007f3b383ab9d8 is an unknown value
R14=0x00007f3afde0d570 is pointing into the stack for thread: 0x00007f3b383ab800
R15=0x00007f3b383ab800 is a thread


Stack: [0x00007f3afdd0e000,0x00007f3afde0f000],  sp=0x00007f3afde0d2e0,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [OpenIMAJGrabber.so8418304238469146613.so+0x3878]  grabNextFrame(_VideoGrabber*)+0x34
C  [OpenIMAJGrabber.so8418304238469146613.so+0x202b]  OpenIMAJGrabber::nextFrame()+0x1b
C  [bridj.so7881095104971855698.so+0x12f31]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.nextFrame()V+0
j  com.github.sarxos.webcam.ds.buildin.cgt.NextFrameTask.handle()V+4
j  com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run()V+13
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+46
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x00007f3b14001000 JavaThread "SIGTERM handler" daemon [_thread_blocked, id=13027, stack(0x00007f3afc2d2000,0x00007f3afc3d3000)]
  0x00007f3ab4007000 JavaThread "pool-7-thread-1" [_thread_blocked, id=13004, stack(0x00007f3ad40c4000,0x00007f3ad41c5000)]
  0x00007f3add73a000 JavaThread "pool-5-thread-1" [_thread_blocked, id=13003, stack(0x00007f3ad41c5000,0x00007f3ad42c6000)]
  0x00007f3ad0009800 JavaThread "pool-6-thread-2" [_thread_blocked, id=12995, stack(0x00007f3ad42c6000,0x00007f3ad43c7000)]
  0x00007f3ad0004000 JavaThread "pool-4-thread-1" [_thread_blocked, id=12994, stack(0x00007f3ad43c7000,0x00007f3ad44c8000)]
  0x00007f3ad0002000 JavaThread "pool-8-thread-1" [_thread_blocked, id=12993, stack(0x00007f3ad44c8000,0x00007f3ad45c9000)]
  0x00007f3b38009800 JavaThread "DestroyJavaVM" [_thread_blocked, id=12904, stack(0x00007f3b41ace000,0x00007f3b41bcf000)]
  0x00007f3b384d4800 JavaThread "pool-6-thread-1" [_thread_blocked, id=12930, stack(0x00007f3afc0d0000,0x00007f3afc1d1000)]
  0x00007f3b384cf800 JavaThread "pool-3-thread-2" [_thread_blocked, id=12929, stack(0x00007f3afc1d1000,0x00007f3afc2d2000)]
=>0x00007f3b383ab800 JavaThread "ProcessorThreadFactory" daemon [_thread_in_native, id=12924, stack(0x00007f3afdd0e000,0x00007f3afde0f000)]
  0x00007f3b38301000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=12923, stack(0x00007f3afeda8000,0x00007f3afeea9000)]
  0x00007f3b382f5800 JavaThread "AWT-Shutdown" [_thread_blocked, id=12922, stack(0x00007f3afeea9000,0x00007f3afefaa000)]
  0x00007f3b38288000 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=12921, stack(0x00007f3b2c0ea000,0x00007f3b2c1eb000)]
  0x00007f3b3824d000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=12920, stack(0x00007f3b340a1000,0x00007f3b341a2000)]
  0x00007f3b380f1000 JavaThread "Service Thread" daemon [_thread_blocked, id=12918, stack(0x00007f3b34890000,0x00007f3b34991000)]
  0x00007f3b380ef000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=12917, stack(0x00007f3b34991000,0x00007f3b34a92000)]
  0x00007f3b380ec000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12916, stack(0x00007f3b34a92000,0x00007f3b34b93000)]
  0x00007f3b380ea000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=12915, stack(0x00007f3b3c0e4000,0x00007f3b3c1e5000)]
  0x00007f3b3809c000 JavaThread "Finalizer" daemon [_thread_blocked, id=12914, stack(0x00007f3b3c1e5000,0x00007f3b3c2e6000)]
  0x00007f3b3809a000 JavaThread "Reference Handler" daemon [_thread_blocked, id=12913, stack(0x00007f3b3c2e6000,0x00007f3b3c3e7000)]

Other Threads:
  0x00007f3b38092800 VMThread [stack: 0x00007f3b3c3e7000,0x00007f3b3c4e8000] [id=12912]

VM state:at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x00007f3b38005dd0] Threads_lock - owner thread: 0x00007f3b38092800

Heap
 PSYoungGen      total 7744K, used 4458K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 53% used [0x00000000dbd60000,0x00000000dc0c9980,0x00000000dc3d0000)
  from space 1152K, 83% used [0x00000000dc4f0000,0x00000000dc5e1010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8066K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fe0b20,0x0000000098060000)
 PSPermGen       total 21248K, used 14600K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f442078,0x000000008fac0000)

Card table byte_map: [0x00007f3b3eb94000,0x00007f3b3ef22000] byte_map_base: 0x00007f3b3e721000

Polling page: 0x00007f3b41bf2000

Code Cache  [0x00007f3b35000000, 0x00007f3b35270000, 0x00007f3b38000000)
 total_blobs=672 nmethods=157 adapters=467 free_code_cache=48282Kb largest_free_block=49409408

Compilation events (10 events):
Event: 58.988 Thread 0x00007f3b380ef000  154  s          sun.java2d.loops.GraphicsPrimitiveMgr::locatePrim (96 bytes)
Event: 59.000 Thread 0x00007f3b380ef000 nmethod 154 0x00007f3b350d4e90 code [0x00007f3b350d5080, 0x00007f3b350d5d28]
Event: 59.216 Thread 0x00007f3b380ec000  155             java.lang.Character::charCount (12 bytes)
Event: 59.217 Thread 0x00007f3b380ec000 nmethod 155 0x00007f3b350d4c90 code [0x00007f3b350d4dc0, 0x00007f3b350d4e18]
Event: 59.420 Thread 0x00007f3b380ef000  156             java.lang.Character::isHighSurrogate (18 bytes)
Event: 59.420 Thread 0x00007f3b380ef000 nmethod 156 0x00007f3b350d0410 code [0x00007f3b350d0540, 0x00007f3b350d0598]
Event: 61.169 Thread 0x00007f3b380ec000  157             java.lang.Character::codePointAt (51 bytes)
Event: 61.170 Thread 0x00007f3b380ec000 nmethod 157 0x00007f3b350ddad0 code [0x00007f3b350ddc40, 0x00007f3b350ddda8]
Event: 61.687 Thread 0x00007f3b380ef000  158   !         java.lang.ref.ReferenceQueue::poll (28 bytes)
Event: 61.689 Thread 0x00007f3b380ef000 nmethod 158 0x00007f3b350dd550 code [0x00007f3b350dd6a0, 0x00007f3b350dd9d8]

GC Heap History (10 events):
Event: 61.141 GC heap before
{Heap before GC invocations=152 (full 0):
 PSYoungGen      total 7744K, used 7412K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 96% used [0x00000000dbd60000,0x00000000dc39c3a0,0x00000000dc3d0000)
  from space 1152K, 89% used [0x00000000dc3d0000,0x00000000dc4d1010,0x00000000dc4f0000)
  to   space 1152K, 0% used [0x00000000dc4f0000,0x00000000dc4f0000,0x00000000dc610000)
 ParOldGen       total 74112K, used 8018K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fd4b20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43e9a0,0x000000008fac0000)
Event: 61.142 GC heap after
Heap after GC invocations=152 (full 0):
 PSYoungGen      total 7744K, used 1028K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 0% used [0x00000000dbd60000,0x00000000dbd60000,0x00000000dc3d0000)
  from space 1152K, 89% used [0x00000000dc4f0000,0x00000000dc5f1010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8026K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fd6b20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43e9a0,0x000000008fac0000)
}
Event: 61.276 GC heap before
{Heap before GC invocations=153 (full 0):
 PSYoungGen      total 7744K, used 7407K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 96% used [0x00000000dbd60000,0x00000000dc39ac90,0x00000000dc3d0000)
  from space 1152K, 89% used [0x00000000dc4f0000,0x00000000dc5f1010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8026K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fd6b20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43e9a0,0x000000008fac0000)
Event: 61.276 GC heap after
Heap after GC invocations=153 (full 0):
 PSYoungGen      total 7744K, used 1060K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 0% used [0x00000000dbd60000,0x00000000dbd60000,0x00000000dc3d0000)
  from space 1152K, 92% used [0x00000000dc3d0000,0x00000000dc4d9010,0x00000000dc4f0000)
  to   space 1152K, 0% used [0x00000000dc4f0000,0x00000000dc4f0000,0x00000000dc610000)
 ParOldGen       total 74112K, used 8042K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdab20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43e9a0,0x000000008fac0000)
}
Event: 61.411 GC heap before
{Heap before GC invocations=154 (full 0):
 PSYoungGen      total 7744K, used 7439K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 96% used [0x00000000dbd60000,0x00000000dc39adf8,0x00000000dc3d0000)
  from space 1152K, 92% used [0x00000000dc3d0000,0x00000000dc4d9010,0x00000000dc4f0000)
  to   space 1152K, 0% used [0x00000000dc4f0000,0x00000000dc4f0000,0x00000000dc610000)
 ParOldGen       total 74112K, used 8042K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdab20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
Event: 61.412 GC heap after
Heap after GC invocations=154 (full 0):
 PSYoungGen      total 7744K, used 996K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 0% used [0x00000000dbd60000,0x00000000dbd60000,0x00000000dc3d0000)
  from space 1152K, 86% used [0x00000000dc4f0000,0x00000000dc5e9010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8050K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdcb20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
}
Event: 61.550 GC heap before
{Heap before GC invocations=155 (full 0):
 PSYoungGen      total 7744K, used 7374K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 96% used [0x00000000dbd60000,0x00000000dc39abe8,0x00000000dc3d0000)
  from space 1152K, 86% used [0x00000000dc4f0000,0x00000000dc5e9010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8050K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdcb20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
Event: 61.550 GC heap after
Heap after GC invocations=155 (full 0):
 PSYoungGen      total 7744K, used 1028K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 0% used [0x00000000dbd60000,0x00000000dbd60000,0x00000000dc3d0000)
  from space 1152K, 89% used [0x00000000dc3d0000,0x00000000dc4d1010,0x00000000dc4f0000)
  to   space 1152K, 0% used [0x00000000dc4f0000,0x00000000dc4f0000,0x00000000dc610000)
 ParOldGen       total 74112K, used 8058K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdeb20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
}
Event: 61.686 GC heap before
{Heap before GC invocations=156 (full 0):
 PSYoungGen      total 7744K, used 7406K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 96% used [0x00000000dbd60000,0x00000000dc39aac8,0x00000000dc3d0000)
  from space 1152K, 89% used [0x00000000dc3d0000,0x00000000dc4d1010,0x00000000dc4f0000)
  to   space 1152K, 0% used [0x00000000dc4f0000,0x00000000dc4f0000,0x00000000dc610000)
 ParOldGen       total 74112K, used 8058K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fdeb20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
Event: 61.687 GC heap after
Heap after GC invocations=156 (full 0):
 PSYoungGen      total 7744K, used 964K [0x00000000dbd60000, 0x00000000dc610000, 0x0000000100000000)
  eden space 6592K, 0% used [0x00000000dbd60000,0x00000000dbd60000,0x00000000dc3d0000)
  from space 1152K, 83% used [0x00000000dc4f0000,0x00000000dc5e1010,0x00000000dc610000)
  to   space 1152K, 0% used [0x00000000dc3d0000,0x00000000dc3d0000,0x00000000dc4f0000)
 ParOldGen       total 74112K, used 8066K [0x0000000093800000, 0x0000000098060000, 0x00000000dbd60000)
  object space 74112K, 10% used [0x0000000093800000,0x0000000093fe0b20,0x0000000098060000)
 PSPermGen       total 21248K, used 14586K [0x000000008e600000, 0x000000008fac0000, 0x0000000093800000)
  object space 21248K, 68% used [0x000000008e600000,0x000000008f43eb00,0x000000008fac0000)
}

Deoptimization events (10 events):
Event: 0.281 Thread 0x00007f3b38301000 Uncommon trap -34 fr.pc 0x00007f3b3507e1fc
Event: 0.281 Thread 0x00007f3b38301000 Uncommon trap -34 fr.pc 0x00007f3b3507e1fc
Event: 0.282 Thread 0x00007f3b38301000 Uncommon trap -34 fr.pc 0x00007f3b3507e1fc
Event: 0.282 Thread 0x00007f3b38301000 Uncommon trap -34 fr.pc 0x00007f3b3507e1fc
Event: 0.497 Thread 0x00007f3b383ab800 Uncommon trap -34 fr.pc 0x00007f3b35082360
Event: 0.587 Thread 0x00007f3b38009800 Uncommon trap -58 fr.pc 0x00007f3b3508aaf8
Event: 0.587 Thread 0x00007f3b38009800 Uncommon trap -58 fr.pc 0x00007f3b3508aaf8
Event: 0.785 Thread 0x00007f3b38009800 Uncommon trap -58 fr.pc 0x00007f3b3508aaf8
Event: 0.785 Thread 0x00007f3b38009800 Uncommon trap -58 fr.pc 0x00007f3b3508aaf8
Event: 26.238 Thread 0x00007f3ad0004000 Uncommon trap -83 fr.pc 0x00007f3b350b40cc

Internal exceptions (10 events):
Event: 26.195 Thread 0x00007f3b384cf800 Threw 0x00000000dc6105d8 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 26.195 Thread 0x00007f3b384cf800 Threw 0x00000000dc614760 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 26.196 Thread 0x00007f3b384cf800 Threw 0x00000000dc61f880 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 26.197 Thread 0x00007f3b384cf800 Threw 0x00000000dc629350 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 26.238 Thread 0x00007f3ad0004000 Implicit null exception at 0x00007f3b350b33ba to 0x00007f3b350b40b3
Event: 28.593 Thread 0x00007f3b384cf800 Threw 0x00000000dbdd8f00 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 28.594 Thread 0x00007f3add73a000 Threw 0x00000000dcd5aae0 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 28.600 Thread 0x00007f3add73a000 Threw 0x00000000dcd70800 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jvm.cpp:1166
Event: 61.758 Thread 0x00007f3ad8810000 Threw 0x00000000dc0b0938 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jni.cpp:716
Event: 61.758 Thread 0x00007f3ad8810000 Threw 0x00000000dc0b0b58 at /HUDSON/workspace/jdk7u10-2-build-linux-amd64-product/jdk7u10/hotspot/src/share/vm/prims/jni.cpp:716

Events (10 events):
Event: 61.734 loading class 0x00007f3aa4000f40
Event: 61.734 loading class 0x00007f3aa4000f40 done
Event: 61.734 loading class 0x00007f3b38268290 done
Event: 61.734 Thread 0x00007f3ad8812800 Thread added: 0x00007f3ad8812800
Event: 61.735 Thread 0x00007f3ad8812800 Thread exited: 0x00007f3ad8812800
Event: 61.735 Thread 0x00007f3ad8811000 Thread exited: 0x00007f3ad8811000
Event: 61.758 loading class 0x00007f3b380c3e90
Event: 61.758 loading class 0x00007f3b380c3e90 done
Event: 61.758 Thread 0x00007f3ad8810000 Thread exited: 0x00007f3ad8810000
Event: 61.758 Executing VM operation: Exit


Dynamic libraries:
00400000-00401000 r-xp 00000000 08:05 5902211                            /usr/lib/jvm/java-7-oracle/bin/java
00600000-00601000 rw-p 00000000 08:05 5902211                            /usr/lib/jvm/java-7-oracle/bin/java
024f4000-02515000 rw-p 00000000 00:00 0                                  [heap]
8e600000-8fac0000 rw-p 00000000 00:00 0 
8fac0000-93800000 rw-p 00000000 00:00 0 
93800000-98060000 rw-p 00000000 00:00 0 
98060000-dbd60000 rw-p 00000000 00:00 0 
dbd60000-dc610000 rw-p 00000000 00:00 0 
dc610000-de5e0000 ---p 00000000 00:00 0 
de5e0000-100000000 rw-p 00000000 00:00 0 
7f3aa4000000-7f3aa4021000 rw-p 00000000 00:00 0 
7f3aa4021000-7f3aa8000000 ---p 00000000 00:00 0 
7f3aa8000000-7f3aa8021000 rw-p 00000000 00:00 0 
7f3aa8021000-7f3aac000000 ---p 00000000 00:00 0 
7f3aac000000-7f3aac021000 rw-p 00000000 00:00 0 
7f3aac021000-7f3ab0000000 ---p 00000000 00:00 0 
7f3ab0000000-7f3ab0021000 rw-p 00000000 00:00 0 
7f3ab0021000-7f3ab4000000 ---p 00000000 00:00 0 
7f3ab4000000-7f3ab4036000 rw-p 00000000 00:00 0 
7f3ab4036000-7f3ab8000000 ---p 00000000 00:00 0 
7f3ab8000000-7f3ab8021000 rw-p 00000000 00:00 0 
7f3ab8021000-7f3abc000000 ---p 00000000 00:00 0 
7f3abc000000-7f3abc021000 rw-p 00000000 00:00 0 
7f3abc021000-7f3ac0000000 ---p 00000000 00:00 0 
7f3ac0000000-7f3ac0028000 rw-p 00000000 00:00 0 
7f3ac0028000-7f3ac4000000 ---p 00000000 00:00 0 
7f3ac4000000-7f3ac4021000 rw-p 00000000 00:00 0 
7f3ac4021000-7f3ac8000000 ---p 00000000 00:00 0 
7f3aca720000-7f3aca723000 ---p 00000000 00:00 0 
7f3aca723000-7f3aca821000 rwxp 00000000 00:00 0 
7f3aca821000-7f3aca824000 ---p 00000000 00:00 0 
7f3aca824000-7f3aca922000 rwxp 00000000 00:00 0 
7f3aca922000-7f3aca925000 ---p 00000000 00:00 0 
7f3aca925000-7f3acaa23000 rwxp 00000000 00:00 0 
7f3acaa23000-7f3acc000000 rw-p 00000000 00:00 0 
7f3ad0000000-7f3ad0021000 rw-p 00000000 00:00 0 
7f3ad0021000-7f3ad4000000 ---p 00000000 00:00 0 
7f3ad40c4000-7f3ad40c7000 ---p 00000000 00:00 0 
7f3ad40c7000-7f3ad41c5000 rwxp 00000000 00:00 0 
7f3ad41c5000-7f3ad41c8000 ---p 00000000 00:00 0 
7f3ad41c8000-7f3ad42c6000 rwxp 00000000 00:00 0 
7f3ad42c6000-7f3ad42c9000 ---p 00000000 00:00 0 
7f3ad42c9000-7f3ad43c7000 rwxp 00000000 00:00 0 
7f3ad43c7000-7f3ad43ca000 ---p 00000000 00:00 0 
7f3ad43ca000-7f3ad44c8000 rwxp 00000000 00:00 0 
7f3ad44c8000-7f3ad44cb000 ---p 00000000 00:00 0 
7f3ad44cb000-7f3ad45c9000 rwxp 00000000 00:00 0 
7f3ad465f000-7f3ad4660000 ---p 00000000 00:00 0 
7f3ad4660000-7f3ad4e60000 rwxp 00000000 00:00 0 
7f3ad4e60000-7f3ad5ffc000 rw-p 00000000 00:00 0 
7f3ad5ffc000-7f3ad5ffd000 ---p 00000000 00:00 0 
7f3ad5ffd000-7f3ad67fd000 rwxp 00000000 00:00 0 
7f3ad67fd000-7f3ad67fe000 ---p 00000000 00:00 0 
7f3ad67fe000-7f3ad6ffe000 rwxp 00000000 00:00 0 
7f3ad6ffe000-7f3ad6fff000 ---p 00000000 00:00 0 
7f3ad6fff000-7f3ad77ff000 rwxp 00000000 00:00 0 
7f3ad77ff000-7f3ad7800000 ---p 00000000 00:00 0 
7f3ad7800000-7f3ad8000000 rwxp 00000000 00:00 0 
7f3ad8000000-7f3ad8815000 rw-p 00000000 00:00 0 
7f3ad8815000-7f3adc000000 ---p 00000000 00:00 0 
7f3adc000000-7f3aded17000 rw-p 00000000 00:00 0 
7f3aded17000-7f3ae0000000 ---p 00000000 00:00 0 
7f3ae0000000-7f3ae00b6000 rw-p 00000000 00:00 0 
7f3ae00b6000-7f3ae4000000 ---p 00000000 00:00 0 
7f3ae402d000-7f3ae438d000 rw-p 00000000 00:00 0 
7f3ae438d000-7f3ae438e000 ---p 00000000 00:00 0 
7f3ae438e000-7f3ae4b8e000 rwxp 00000000 00:00 0 
7f3ae4b8e000-7f3ae4b8f000 ---p 00000000 00:00 0 
7f3ae4b8f000-7f3ae538f000 rwxp 00000000 00:00 0 
7f3ae538f000-7f3ae5552000 rw-p 00000000 00:00 0 
7f3ae5552000-7f3ae5553000 ---p 00000000 00:00 0 
7f3ae5553000-7f3ae5d53000 rwxp 00000000 00:00 0 
7f3ae5d53000-7f3ae5d54000 ---p 00000000 00:00 0 
7f3ae5d54000-7f3ae6554000 rwxp 00000000 00:00 0 
7f3ae6554000-7f3ae7727000 r-xp 00000000 08:05 3670244                    /tmp/xuggle/xuggle8100752966818325829.tmp (deleted)
7f3ae7727000-7f3ae7927000 ---p 011d3000 08:05 3670244                    /tmp/xuggle/xuggle8100752966818325829.tmp (deleted)
7f3ae7927000-7f3ae7988000 r--p 011d3000 08:05 3670244                    /tmp/xuggle/xuggle8100752966818325829.tmp (deleted)
7f3ae7988000-7f3ae79c3000 rw-p 01234000 08:05 3670244                    /tmp/xuggle/xuggle8100752966818325829.tmp (deleted)
7f3ae79c3000-7f3ae8000000 rw-p 00000000 00:00 0 
7f3ae8000000-7f3ae8082000 rw-p 00000000 00:00 0 
7f3ae8082000-7f3aec000000 ---p 00000000 00:00 0 
7f3aec000000-7f3aec126000 rw-p 00000000 00:00 0 
7f3aec126000-7f3af0000000 ---p 00000000 00:00 0 
7f3af0000000-7f3af0026000 rw-p 00000000 00:00 0 
7f3af0026000-7f3af4000000 ---p 00000000 00:00 0 
7f3af4000000-7f3af4021000 rw-p 00000000 00:00 0 
7f3af4021000-7f3af8000000 ---p 00000000 00:00 0 
7f3af8000000-7f3af8021000 rw-p 00000000 00:00 0 
7f3af8021000-7f3afc000000 ---p 00000000 00:00 0 
7f3afc0d0000-7f3afc0d3000 ---p 00000000 00:00 0 
7f3afc0d3000-7f3afc1d1000 rwxp 00000000 00:00 0 
7f3afc1d1000-7f3afc1d4000 ---p 00000000 00:00 0 
7f3afc1d4000-7f3afc2d2000 rwxp 00000000 00:00 0 
7f3afc2d2000-7f3afc2d5000 ---p 00000000 00:00 0 
7f3afc2d5000-7f3afc3d3000 rwxp 00000000 00:00 0 
7f3afc3d3000-7f3afc3d4000 ---p 00000000 00:00 0 
7f3afc3d4000-7f3afcbd4000 rwxp 00000000 00:00 0 
7f3afcbd4000-7f3afcc1a000 r-xp 00000000 08:07 14421917                   /home/kerr/git/mediaagent/MediaAgent/lib/bin/lib/amd64-Linux-gpp/jni/libbarchart-udt-core-2.2.0-SNAPSHOT.so
7f3afcc1a000-7f3afce19000 ---p 00046000 08:07 14421917                   /home/kerr/git/mediaagent/MediaAgent/lib/bin/lib/amd64-Linux-gpp/jni/libbarchart-udt-core-2.2.0-SNAPSHOT.so
7f3afce19000-7f3afce1a000 r--p 00045000 08:07 14421917                   /home/kerr/git/mediaagent/MediaAgent/lib/bin/lib/amd64-Linux-gpp/jni/libbarchart-udt-core-2.2.0-SNAPSHOT.so
7f3afce1a000-7f3afce1b000 rw-p 00046000 08:07 14421917                   /home/kerr/git/mediaagent/MediaAgent/lib/bin/lib/amd64-Linux-gpp/jni/libbarchart-udt-core-2.2.0-SNAPSHOT.so
7f3afce1b000-7f3afcf1d000 rw-p 00000000 00:00 0 
7f3afcf1d000-7f3afcf5b000 r-xp 00000000 08:05 3807997                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7f3afcf5b000-7f3afd15b000 ---p 0003e000 08:05 3807997                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7f3afd15b000-7f3afd15c000 r--p 0003e000 08:05 3807997                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7f3afd15c000-7f3afd15d000 rw-p 0003f000 08:05 3807997                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7f3afd15d000-7f3afd16d000 rw-p 00000000 00:00 0 
7f3afd16d000-7f3afd24f000 r-xp 00000000 08:05 3808180                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7f3afd24f000-7f3afd44e000 ---p 000e2000 08:05 3808180                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7f3afd44e000-7f3afd456000 r--p 000e1000 08:05 3808180                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7f3afd456000-7f3afd458000 rw-p 000e9000 08:05 3808180                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7f3afd458000-7f3afd46d000 rw-p 00000000 00:00 0 
7f3afd46d000-7f3afd48e000 r-xp 00000000 08:05 3808213                    /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0
7f3afd48e000-7f3afd68d000 ---p 00021000 08:05 3808213                    /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0
7f3afd68d000-7f3afd68f000 r--p 00020000 08:05 3808213                    /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0
7f3afd68f000-7f3afd690000 rw-p 00022000 08:05 3808213                    /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0
7f3afd690000-7f3afd6e2000 rw-p 00000000 00:00 0 
7f3afd6e2000-7f3afd6ea000 r-xp 00000000 08:05 3808212                    /usr/lib/x86_64-linux-gnu/libv4l2.so.0
7f3afd6ea000-7f3afd8e9000 ---p 00008000 08:05 3808212                    /usr/lib/x86_64-linux-gnu/libv4l2.so.0
7f3afd8e9000-7f3afd8ea000 r--p 00007000 08:05 3808212                    /usr/lib/x86_64-linux-gnu/libv4l2.so.0
7f3afd8ea000-7f3afd8ee000 rw-p 00008000 08:05 3808212                    /usr/lib/x86_64-linux-gnu/libv4l2.so.0
7f3afd8ee000-7f3afd8f3000 r-xp 00000000 08:05 3670241                    /tmp/OpenIMAJGrabber.so8418304238469146613.so (deleted)
7f3afd8f3000-7f3afdaf2000 ---p 00005000 08:05 3670241                    /tmp/OpenIMAJGrabber.so8418304238469146613.so (deleted)
7f3afdaf2000-7f3afdaf3000 r--p 00004000 08:05 3670241                    /tmp/OpenIMAJGrabber.so8418304238469146613.so (deleted)
7f3afdaf3000-7f3afdaf4000 rw-p 00005000 08:05 3670241                    /tmp/OpenIMAJGrabber.so8418304238469146613.so (deleted)
7f3afdaf4000-7f3afdb0c000 r-xp 00000000 08:05 3670240                    /tmp/bridj.so7881095104971855698.so (deleted)
7f3afdb0c000-7f3afdd0c000 ---p 00018000 08:05 3670240                    /tmp/bridj.so7881095104971855698.so (deleted)
7f3afdd0c000-7f3afdd0d000 r--p 00018000 08:05 3670240                    /tmp/bridj.so7881095104971855698.so (deleted)
7f3afdd0d000-7f3afdd0e000 rw-p 00019000 08:05 3670240                    /tmp/bridj.so7881095104971855698.so (deleted)
7f3afdd0e000-7f3afde0f000 rwxp 00000000 00:00 0 
7f3afde0f000-7f3afde77000 r-xp 00000000 08:05 5901463                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libt2k.so
7f3afde77000-7f3afe077000 ---p 00068000 08:05 5901463                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libt2k.so
7f3afe077000-7f3afe07e000 rw-p 00068000 08:05 5901463                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libt2k.so
7f3afe07e000-7f3afe08e000 rw-p 00000000 00:00 0 
7f3afe08e000-7f3afe09e000 r-xp 00000000 08:05 5901435                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnio.so
7f3afe09e000-7f3afe29e000 ---p 00010000 08:05 5901435                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnio.so
7f3afe29e000-7f3afe29f000 rw-p 00010000 08:05 5901435                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnio.so
7f3afe29f000-7f3afe2b4000 r-xp 00000000 08:05 5901414                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnet.so
7f3afe2b4000-7f3afe4b4000 ---p 00015000 08:05 5901414                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnet.so
7f3afe4b4000-7f3afe4b5000 rw-p 00015000 08:05 5901414                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnet.so
7f3afe4b5000-7f3afe4ca000 r-xp 00000000 08:05 2100801                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f3afe4ca000-7f3afe6c9000 ---p 00015000 08:05 2100801                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f3afe6c9000-7f3afe6ca000 r--p 00014000 08:05 2100801                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f3afe6ca000-7f3afe6cb000 rw-p 00015000 08:05 2100801                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f3afe6cb000-7f3afe70f000 r-xp 00000000 08:05 5901436                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libfontmanager.so
7f3afe70f000-7f3afe90f000 ---p 00044000 08:05 5901436                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libfontmanager.so
7f3afe90f000-7f3afe913000 rw-p 00044000 08:05 5901436                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libfontmanager.so
7f3afe913000-7f3afe923000 rw-p 00000000 00:00 0 
7f3afe923000-7f3afe94d000 r-xp 00000000 08:05 5901451                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libdcpr.so
7f3afe94d000-7f3afeb4d000 ---p 0002a000 08:05 5901451                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libdcpr.so
7f3afeb4d000-7f3afeb50000 rw-p 0002a000 08:05 5901451                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libdcpr.so
7f3afeb50000-7f3afec7c000 rw-s 00000000 00:04 549486628                  /SYSV00000000 (deleted)
7f3afec7c000-7f3afeda8000 rw-s 00000000 00:04 549453859                  /SYSV00000000 (deleted)
7f3afeda8000-7f3afefaa000 rwxp 00000000 00:00 0 
7f3afefaa000-7f3afefaf000 r-xp 00000000 08:05 3807671                    /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7f3afefaf000-7f3aff1ae000 ---p 00005000 08:05 3807671                    /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7f3aff1ae000-7f3aff1af000 r--p 00004000 08:05 3807671                    /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7f3aff1af000-7f3aff1b0000 rw-p 00005000 08:05 3807671                    /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7f3aff1b0000-7f3aff1b9000 r-xp 00000000 08:05 3807663                    /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7f3aff1b9000-7f3aff3b8000 ---p 00009000 08:05 3807663                    /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7f3aff3b8000-7f3aff3b9000 r--p 00008000 08:05 3807663                    /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7f3aff3b9000-7f3aff3ba000 rw-p 00009000 08:05 3807663                    /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2
7f3aff3ba000-7f3aff3bf000 r-xp 00000000 08:05 3807667                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f3aff3bf000-7f3aff5be000 ---p 00005000 08:05 3807667                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f3aff5be000-7f3aff5bf000 r--p 00004000 08:05 3807667                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f3aff5bf000-7f3aff5c0000 rw-p 00005000 08:05 3807667                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f3aff5c0000-7f3aff5c2000 r-xp 00000000 08:05 3807656                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f3aff5c2000-7f3aff7c1000 ---p 00002000 08:05 3807656                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f3aff7c1000-7f3aff7c2000 r--p 00001000 08:05 3807656                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f3aff7c2000-7f3aff7c3000 rw-p 00002000 08:05 3807656                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f3aff7c3000-7f3aff7e0000 r-xp 00000000 08:05 3808248                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f3aff7e0000-7f3aff9df000 ---p 0001d000 08:05 3808248                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f3aff9df000-7f3aff9e0000 r--p 0001c000 08:05 3808248                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f3aff9e0000-7f3aff9e1000 rw-p 0001d000 08:05 3808248                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f3aff9e1000-7f3aff9ef000 r-xp 00000000 08:05 3807675                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7f3aff9ef000-7f3affbee000 ---p 0000e000 08:05 3807675                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7f3affbee000-7f3affbef000 r--p 0000d000 08:05 3807675                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7f3affbef000-7f3affbf0000 rw-p 0000e000 08:05 3807675                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
7f3affbf0000-7f3affbf5000 r-xp 00000000 08:05 3807695                    /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
7f3affbf5000-7f3affdf4000 ---p 00005000 08:05 3807695                    /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
7f3affdf4000-7f3affdf5000 r--p 00004000 08:05 3807695                    /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
7f3affdf5000-7f3affdf6000 rw-p 00005000 08:05 3807695                    /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
7f3affdf6000-7f3affdff000 r-xp 00000000 08:05 3807689                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7f3affdff000-7f3affffe000 ---p 00009000 08:05 3807689                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7f3affffe000-7f3afffff000 r--p 00008000 08:05 3807689                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7f3afffff000-7f3b00000000 rw-p 00009000 08:05 3807689                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
7f3b00000000-7f3b00021000 rw-p 00000000 00:00 0 
7f3b00021000-7f3b04000000 ---p 00000000 00:00 0 
7f3b04000000-7f3b04021000 rw-p 00000000 00:00 0 
7f3b04021000-7f3b08000000 ---p 00000000 00:00 0 
7f3b08000000-7f3b082b7000 rw-p 00000000 00:00 0 
7f3b082b7000-7f3b0c000000 ---p 00000000 00:00 0 
7f3b0c000000-7f3b0c643000 rw-p 00000000 00:00 0 
7f3b0c643000-7f3b10000000 ---p 00000000 00:00 0 
7f3b10000000-7f3b10021000 rw-p 00000000 00:00 0 
7f3b10021000-7f3b14000000 ---p 00000000 00:00 0 
7f3b14000000-7f3b14021000 rw-p 00000000 00:00 0 
7f3b14021000-7f3b18000000 ---p 00000000 00:00 0 
7f3b18000000-7f3b18021000 rw-p 00000000 00:00 0 
7f3b18021000-7f3b1c000000 ---p 00000000 00:00 0 
7f3b1c000000-7f3b1c021000 rw-p 00000000 00:00 0 
7f3b1c021000-7f3b20000000 ---p 00000000 00:00 0 
7f3b20000000-7f3b20021000 rw-p 00000000 00:00 0 
7f3b20021000-7f3b24000000 ---p 00000000 00:00 0 
7f3b24000000-7f3b24021000 rw-p 00000000 00:00 0 
7f3b24021000-7f3b28000000 ---p 00000000 00:00 0 
7f3b28000000-7f3b28021000 rw-p 00000000 00:00 0 
7f3b28021000-7f3b2c000000 ---p 00000000 00:00 0 
7f3b2c0ea000-7f3b2c1eb000 rwxp 00000000 00:00 0 
7f3b2c1eb000-7f3b2c31a000 r-xp 00000000 08:05 3807654                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f3b2c31a000-7f3b2c51a000 ---p 0012f000 08:05 3807654                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f3b2c51a000-7f3b2c51b000 r--p 0012f000 08:05 3807654                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f3b2c51b000-7f3b2c51f000 rw-p 00130000 08:05 3807654                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f3b2c51f000-7f3b2c52f000 r-xp 00000000 08:05 3807669                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f3b2c52f000-7f3b2c72e000 ---p 00010000 08:05 3807669                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f3b2c72e000-7f3b2c72f000 r--p 0000f000 08:05 3807669                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f3b2c72f000-7f3b2c730000 rw-p 00010000 08:05 3807669                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f3b2c730000-7f3b30000000 rw-p 00000000 00:00 0 
7f3b30000000-7f3b30021000 rw-p 00000000 00:00 0 
7f3b30021000-7f3b34000000 ---p 00000000 00:00 0 
7f3b340a1000-7f3b341a2000 rwxp 00000000 00:00 0 
7f3b341a2000-7f3b341f2000 r-xp 00000000 08:05 5901449                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/xawt/libmawt.so
7f3b341f2000-7f3b343f2000 ---p 00050000 08:05 5901449                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/xawt/libmawt.so
7f3b343f2000-7f3b343f6000 rw-p 00050000 08:05 5901449                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/xawt/libmawt.so
7f3b343f6000-7f3b343f7000 rw-p 00000000 00:00 0 
7f3b343f7000-7f3b34499000 r-xp 00000000 08:05 5901437                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libawt.so
7f3b34499000-7f3b34699000 ---p 000a2000 08:05 5901437                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libawt.so
7f3b34699000-7f3b346a5000 rw-p 000a2000 08:05 5901437                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libawt.so
7f3b346a5000-7f3b346c9000 rw-p 00000000 00:00 0 
7f3b346c9000-7f3b346ce000 r--s 00034000 08:07 14156476                   /home/kerr/git/java-utils/Java-utils/libs/teleal-common-1.0.13.jar
7f3b346ce000-7f3b346d8000 r--s 0004e000 08:07 14156413                   /home/kerr/git/java-utils/Java-utils/libs/cling-support-1.0.5.jar
7f3b346d8000-7f3b346ee000 r--s 000fd000 08:07 14156425                   /home/kerr/git/java-utils/Java-utils/libs/netty-3.5.8.Final.jar
7f3b346ee000-7f3b346f3000 r--s 0002a000 08:07 14156465                   /home/kerr/git/java-utils/Java-utils/libs/gson-2.2.2.jar
7f3b346f3000-7f3b346ff000 r--s 0007b000 08:07 14156382                   /home/kerr/git/java-utils/Java-utils/libs/cling-core-1.0.5.jar
7f3b346ff000-7f3b34701000 r--s 00016000 08:07 14156422                   /home/kerr/git/java-utils/Java-utils/libs/udt-java-0.5-SNAPSHOT.jar
7f3b34701000-7f3b34704000 r--s 00182000 08:07 8917006                    /home/kerr/git/udtagent/UDTAgent/libs/barchart-udt-bundle-2.2.0.jar
7f3b34704000-7f3b3471b000 r--s 00102000 08:07 8916991                    /home/kerr/git/udtagent/UDTAgent/libs/netty-3.6.1.Final.jar
7f3b3471b000-7f3b34721000 r--s 00068000 08:07 8918895                    /home/kerr/git/udtagent/UDTAgent/libs/protobuf-java-2.4.1.jar
7f3b34721000-7f3b34723000 r--s 00005000 08:07 8918958                    /home/kerr/git/udtagent/UDTAgent/libs/slf4j-api-1.7.2.jar
7f3b34723000-7f3b3473a000 r--s 00102000 08:07 13503564                   /home/kerr/git/mediaagent/MediaAgent/libs/netty-3.6.1.Final.jar
7f3b3473a000-7f3b34741000 r--s 0266d000 08:07 13503557                   /home/kerr/git/mediaagent/MediaAgent/libs/xuggle-xuggler-5.4.jar
7f3b34741000-7f3b34747000 r--s 00068000 08:07 13504493                   /home/kerr/git/mediaagent/MediaAgent/libs/protobuf-java-2.4.1.jar
7f3b34747000-7f3b3474a000 r--s 00055000 08:07 13503794                   /home/kerr/git/mediaagent/MediaAgent/libs/webcam-capture-0.3.6.jar
7f3b3474a000-7f3b3474c000 r--s 00005000 08:07 13503795                   /home/kerr/git/mediaagent/MediaAgent/libs/slf4j-api-1.7.2.jar
7f3b3474c000-7f3b3474f000 r--s 00016000 08:07 13503796                   /home/kerr/git/mediaagent/MediaAgent/libs/org.osgi.core-1.4.0.jar
7f3b3474f000-7f3b34757000 r--s 00051000 08:07 13503797                   /home/kerr/git/mediaagent/MediaAgent/libs/logback-core-1.0.7.jar
7f3b34757000-7f3b3475d000 r--s 00038000 08:07 13503798                   /home/kerr/git/mediaagent/MediaAgent/libs/logback-classic-1.0.7.jar
7f3b3475d000-7f3b34764000 r--s 00037000 08:07 13503799                   /home/kerr/git/mediaagent/MediaAgent/libs/junit-4.10.jar
7f3b34764000-7f3b34766000 r--s 00011000 08:07 13503800                   /home/kerr/git/mediaagent/MediaAgent/libs/hamcrest-core-1.1.jar
7f3b34766000-7f3b3476d000 r--s 0004d000 08:07 13503801                   /home/kerr/git/mediaagent/MediaAgent/libs/filters-2.0.235.jar
7f3b3476d000-7f3b3477c000 r--s 000e1000 08:07 13503802                   /home/kerr/git/mediaagent/MediaAgent/libs/dx-1.7.jar
7f3b3477c000-7f3b34785000 r--s 000c8000 08:07 13503803                   /home/kerr/git/mediaagent/MediaAgent/libs/bridj-0.6.1.jar
7f3b34785000-7f3b3478f000 r--s 00371000 08:05 5902186                    /usr/lib/jvm/java-7-oracle/jre/lib/charsets.jar
7f3b3478f000-7f3b34790000 ---p 00000000 00:00 0 
7f3b34790000-7f3b34991000 rwxp 00000000 00:00 0 
7f3b34991000-7f3b34992000 ---p 00000000 00:00 0 
7f3b34992000-7f3b34a92000 rwxp 00000000 00:00 0 
7f3b34a92000-7f3b34a93000 ---p 00000000 00:00 0 
7f3b34a93000-7f3b34b93000 rwxp 00000000 00:00 0 
7f3b34b93000-7f3b35000000 r--p 00000000 08:05 3809764                    /usr/lib/locale/locale-archive
7f3b35000000-7f3b35270000 rwxp 00000000 00:00 0 
7f3b35270000-7f3b384d7000 rw-p 00000000 00:00 0 
7f3b384d7000-7f3b3c000000 ---p 00000000 00:00 0 
7f3b3c042000-7f3b3c0a2000 rw-p 00000000 00:00 0 
7f3b3c0a2000-7f3b3c0a6000 rwxp 00000000 00:00 0 
7f3b3c0a6000-7f3b3c0b3000 r--s 00000000 08:05 3670241                    /tmp/OpenIMAJGrabber.so8418304238469146613.so (deleted)
7f3b3c0b3000-7f3b3c0e4000 rw-p 00000000 00:00 0 
7f3b3c0e4000-7f3b3c0e7000 ---p 00000000 00:00 0 
7f3b3c0e7000-7f3b3c3e7000 rwxp 00000000 00:00 0 
7f3b3c3e7000-7f3b3c3e8000 ---p 00000000 00:00 0 
7f3b3c3e8000-7f3b3c4e8000 rwxp 00000000 00:00 0 
7f3b3c4e8000-7f3b3d50c000 rw-p 00000000 00:00 0 
7f3b3d50c000-7f3b3d6c8000 r--s 039dc000 08:05 5901479                    /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar
7f3b3d6c8000-7f3b3e524000 rw-p 00000000 00:00 0 
7f3b3e524000-7f3b3e525000 ---p 00000000 00:00 0 
7f3b3e525000-7f3b3e625000 rwxp 00000000 00:00 0 
7f3b3e625000-7f3b3e626000 ---p 00000000 00:00 0 
7f3b3e626000-7f3b3e726000 rwxp 00000000 00:00 0 
7f3b3e726000-7f3b3e727000 ---p 00000000 00:00 0 
7f3b3e727000-7f3b3e827000 rwxp 00000000 00:00 0 
7f3b3e827000-7f3b3e828000 ---p 00000000 00:00 0 
7f3b3e828000-7f3b3e928000 rwxp 00000000 00:00 0 
7f3b3e928000-7f3b3e933000 rw-p 00000000 00:00 0 
7f3b3e933000-7f3b3e951000 rw-p 00000000 00:00 0 
7f3b3e951000-7f3b3e976000 rw-p 00000000 00:00 0 
7f3b3e976000-7f3b3eb94000 rw-p 00000000 00:00 0 
7f3b3eb94000-7f3b3eb9f000 rw-p 00000000 00:00 0 
7f3b3eb9f000-7f3b3ebbd000 rw-p 00000000 00:00 0 
7f3b3ebbd000-7f3b3ebe2000 rw-p 00000000 00:00 0 
7f3b3ebe2000-7f3b3edff000 rw-p 00000000 00:00 0 
7f3b3edff000-7f3b3ee05000 rw-p 00000000 00:00 0 
7f3b3ee05000-7f3b3ee14000 ---p 00000000 00:00 0 
7f3b3ee14000-7f3b3ef21000 rw-p 00000000 00:00 0 
7f3b3ef21000-7f3b3ef22000 rw-p 00000000 00:00 0 
7f3b3ef22000-7f3b3ef3c000 r-xp 00000000 08:05 5901401                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libzip.so
7f3b3ef3c000-7f3b3f13c000 ---p 0001a000 08:05 5901401                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libzip.so
7f3b3f13c000-7f3b3f13d000 rw-p 0001a000 08:05 5901401                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libzip.so
7f3b3f13d000-7f3b3f149000 r-xp 00000000 08:05 2100831                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f3b3f149000-7f3b3f348000 ---p 0000c000 08:05 2100831                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f3b3f348000-7f3b3f349000 r--p 0000b000 08:05 2100831                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f3b3f349000-7f3b3f34a000 rw-p 0000c000 08:05 2100831                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f3b3f34a000-7f3b3f354000 r-xp 00000000 08:05 2100835                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f3b3f354000-7f3b3f554000 ---p 0000a000 08:05 2100835                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f3b3f554000-7f3b3f555000 r--p 0000a000 08:05 2100835                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f3b3f555000-7f3b3f556000 rw-p 0000b000 08:05 2100835                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f3b3f556000-7f3b3f56d000 r-xp 00000000 08:05 2100825                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7f3b3f56d000-7f3b3f76c000 ---p 00017000 08:05 2100825                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7f3b3f76c000-7f3b3f76d000 r--p 00016000 08:05 2100825                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7f3b3f76d000-7f3b3f76e000 rw-p 00017000 08:05 2100825                    /lib/x86_64-linux-gnu/libnsl-2.15.so
7f3b3f76e000-7f3b3f770000 rw-p 00000000 00:00 0 
7f3b3f770000-7f3b3f778000 r-xp 00000000 08:05 2100827                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7f3b3f778000-7f3b3f977000 ---p 00008000 08:05 2100827                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7f3b3f977000-7f3b3f978000 r--p 00007000 08:05 2100827                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7f3b3f978000-7f3b3f979000 rw-p 00008000 08:05 2100827                    /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7f3b3f979000-7f3b3f9a2000 r-xp 00000000 08:05 5901438                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libjava.so
7f3b3f9a2000-7f3b3fba2000 ---p 00029000 08:05 5901438                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libjava.so
7f3b3fba2000-7f3b3fba4000 rw-p 00029000 08:05 5901438                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libjava.so
7f3b3fba4000-7f3b3fbb1000 r-xp 00000000 08:05 5901458                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libverify.so
7f3b3fbb1000-7f3b3fdb0000 ---p 0000d000 08:05 5901458                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libverify.so
7f3b3fdb0000-7f3b3fdb2000 rw-p 0000c000 08:05 5901458                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libverify.so
7f3b3fdb2000-7f3b3fdb9000 r-xp 00000000 08:05 2100866                    /lib/x86_64-linux-gnu/librt-2.15.so
7f3b3fdb9000-7f3b3ffb8000 ---p 00007000 08:05 2100866                    /lib/x86_64-linux-gnu/librt-2.15.so
7f3b3ffb8000-7f3b3ffb9000 r--p 00006000 08:05 2100866                    /lib/x86_64-linux-gnu/librt-2.15.so
7f3b3ffb9000-7f3b3ffba000 rw-p 00007000 08:05 2100866                    /lib/x86_64-linux-gnu/librt-2.15.so
7f3b3ffba000-7f3b400b5000 r-xp 00000000 08:05 2100812                    /lib/x86_64-linux-gnu/libm-2.15.so
7f3b400b5000-7f3b402b4000 ---p 000fb000 08:05 2100812                    /lib/x86_64-linux-gnu/libm-2.15.so
7f3b402b4000-7f3b402b5000 r--p 000fa000 08:05 2100812                    /lib/x86_64-linux-gnu/libm-2.15.so
7f3b402b5000-7f3b402b6000 rw-p 000fb000 08:05 2100812                    /lib/x86_64-linux-gnu/libm-2.15.so
7f3b402b6000-7f3b40cfd000 r-xp 00000000 08:05 5901427                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so
7f3b40cfd000-7f3b40efd000 ---p 00a47000 08:05 5901427                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so
7f3b40efd000-7f3b40fa0000 rw-p 00a47000 08:05 5901427                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so
7f3b40fa0000-7f3b40fdc000 rw-p 00000000 00:00 0 
7f3b40fdc000-7f3b41191000 r-xp 00000000 08:05 2100780                    /lib/x86_64-linux-gnu/libc-2.15.so
7f3b41191000-7f3b41390000 ---p 001b5000 08:05 2100780                    /lib/x86_64-linux-gnu/libc-2.15.so
7f3b41390000-7f3b41394000 r--p 001b4000 08:05 2100780                    /lib/x86_64-linux-gnu/libc-2.15.so
7f3b41394000-7f3b41396000 rw-p 001b8000 08:05 2100780                    /lib/x86_64-linux-gnu/libc-2.15.so
7f3b41396000-7f3b4139b000 rw-p 00000000 00:00 0 
7f3b4139b000-7f3b4139d000 r-xp 00000000 08:05 2100793                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f3b4139d000-7f3b4159d000 ---p 00002000 08:05 2100793                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f3b4159d000-7f3b4159e000 r--p 00002000 08:05 2100793                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f3b4159e000-7f3b4159f000 rw-p 00003000 08:05 2100793                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f3b4159f000-7f3b415b5000 r-xp 00000000 08:05 5901408                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/jli/libjli.so
7f3b415b5000-7f3b417b5000 ---p 00016000 08:05 5901408                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/jli/libjli.so
7f3b417b5000-7f3b417b6000 rw-p 00016000 08:05 5901408                    /usr/lib/jvm/java-7-oracle/jre/lib/amd64/jli/libjli.so
7f3b417b6000-7f3b417ce000 r-xp 00000000 08:05 2100860                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f3b417ce000-7f3b419cd000 ---p 00018000 08:05 2100860                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f3b419cd000-7f3b419ce000 r--p 00017000 08:05 2100860                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f3b419ce000-7f3b419cf000 rw-p 00018000 08:05 2100860                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f3b419cf000-7f3b419d3000 rw-p 00000000 00:00 0 
7f3b419d3000-7f3b419f5000 r-xp 00000000 08:05 2100760                    /lib/x86_64-linux-gnu/ld-2.15.so
7f3b419f5000-7f3b41a00000 rwxp 00000000 00:00 0 
7f3b41a00000-7f3b41a04000 r--s 00089000 08:05 5902184                    /usr/lib/jvm/java-7-oracle/jre/lib/jsse.jar
7f3b41a04000-7f3b41a07000 r--s 000f7000 08:05 5901473                    /usr/lib/jvm/java-7-oracle/jre/lib/ext/localedata.jar
7f3b41a07000-7f3b41a0e000 r--s 00000000 08:05 3934408                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f3b41a0e000-7f3b41a18000 rw-p 00000000 00:00 0 
7f3b41a18000-7f3b41ace000 rw-p 00000000 00:00 0 
7f3b41ace000-7f3b41ad1000 ---p 00000000 00:00 0 
7f3b41ad1000-7f3b41bcf000 rwxp 00000000 00:00 0 
7f3b41bcf000-7f3b41bd4000 rw-p 00000000 00:00 0 
7f3b41bd4000-7f3b41be9000 r--p 00000000 08:05 3811740                    /usr/share/locale-langpack/zh_CN/LC_MESSAGES/libc.mo
7f3b41be9000-7f3b41bf1000 rw-s 00000000 08:05 3670237                    /tmp/hsperfdata_kerr/12902
7f3b41bf1000-7f3b41bf2000 rw-p 00000000 00:00 0 
7f3b41bf2000-7f3b41bf3000 ---p 00000000 00:00 0 
7f3b41bf3000-7f3b41bf5000 rw-p 00000000 00:00 0 
7f3b41bf5000-7f3b41bf6000 r--p 00022000 08:05 2100760                    /lib/x86_64-linux-gnu/ld-2.15.so
7f3b41bf6000-7f3b41bf8000 rw-p 00023000 08:05 2100760                    /lib/x86_64-linux-gnu/ld-2.15.so
7fff5074f000-7fff5076f000 rwxp 00000000 00:00 0                          [stack]
7fff5076f000-7fff50770000 rw-p 00000000 00:00 0 
7fff507bf000-7fff507c0000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

VM Arguments:
jvm_args: -Dfile.encoding=UTF-8 
java_command: us.sosia.media.video.channel.test.VideoServerTest
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SHELL=/bin/bash
DISPLAY=:0

Signal Handlers:
SIGSEGV: [libjvm.so+0x8a5c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x8a5c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x741d60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x741d60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGXFSZ: [libjvm.so+0x741d60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x741d60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x7416b0], sa_mask[0]=0x00000004, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x743a40], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x743a40], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x743a40], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x743a40], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004


---------------  S Y S T E M  ---------------

OS:wheezy/sid

uname:Linux 3.2.0-35-generic #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC 2012 x86_64
libc:glibc 2.15 NPTL 2.15 
rlimit: STACK 8192k, CORE 0k, NPROC 55339, NOFILE 4096, AS infinity
load average:1.83 1.36 1.18

/proc/meminfo:
MemTotal:        7106876 kB
MemFree:          378160 kB
Buffers:           99236 kB
Cached:          2152372 kB
SwapCached:          532 kB
Active:          4626232 kB
Inactive:        1756800 kB
Active(anon):    3615468 kB
Inactive(anon):   789984 kB
Active(file):    1010764 kB
Inactive(file):   966816 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       3998716 kB
SwapFree:        3990364 kB
Dirty:              1972 kB
Writeback:             0 kB
AnonPages:       4130704 kB
Mapped:           392860 kB
Shmem:            274200 kB
Slab:             172620 kB
SReclaimable:     129480 kB
SUnreclaim:        43140 kB
KernelStack:        6296 kB
PageTables:        55056 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     7552152 kB
Committed_AS:    9212008 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      371208 kB
VmallocChunk:   34359327728 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       98304 kB
DirectMap2M:     7215104 kB


CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, tsc, tscinvbit

/proc/cpuinfo:
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
stepping    : 7
microcode   : 0x25
cpu MHz     : 1600.000
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6020.37
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
stepping    : 7
microcode   : 0x25
cpu MHz     : 3001.000
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 4
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6020.21
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
stepping    : 7
microcode   : 0x25
cpu MHz     : 3001.000
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 4
apicid      : 4
initial apicid  : 4
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6020.20
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
stepping    : 7
microcode   : 0x25
cpu MHz     : 3001.000
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 3
cpu cores   : 4
apicid      : 6
initial apicid  : 6
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6020.20
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:



Memory: 4k page, physical 7106876k(378160k free), swap 3998716k(3990364k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (23.6-b04) for linux-amd64 JRE (1.7.0_10-b18), built on Nov 28 2012 03:39:52 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)

time: Tue Jan  8 15:33:18 2013
elapsed time: 61 seconds

Implement non-blocking capture API access

Normally all requests to fetch new image from camera are blocking (except Windows where DirectShow+VideoInput somehow cache capture buffer). That means user have to wait for image to be prepared by device, and then do something with it. In case when timing is very important (e.g. streaming applications) this is crucial and causes huge problems because streams are not well timed and cause problems on the recipient side (e.g. audio not in sync with video).

Therefore we need non-blocking capture API which will allow us to take picture immediately, without waiting for it to be available (same as it is done in DirectShow+VideoInput on Windows).

To keep backward compatibility core Webcam Capture API however should not be changed. My initial thought is to modify Webcam.open() method and put there additional, optional argument which will open webcam device in blocking or non-blocking mode.

This would be something like that:

webcam.open(); // open normally, blocking mode, backward compatible
webcam.open(true); // open in non-blocking mode

In non-blocking mode image and buffer (if available) will be cached.

It's worth to mention that non-blocking mode should not be used by default because it causes higher power consumption (especially critical in case of embedded systems, like Raspberry Pi or Android).

cannot opening a webcam

Sometimes my application stay indefinite on webcam.open().

In log I have a message "Opening webcam ..."

VIDIOC_S_FMT ioctl call change requested resolution

Hi,sarxos,my webcam support 1024*768 ...
but if i set it to this ,the size change,could you tell me why?

2013-2-19 13:58:12 com.github.sarxos.webcam.WebcamDriverUtils findDriver
信息: Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
2013-2-19 13:58:12 com.github.sarxos.webcam.WebcamDriverUtils findDriver
信息: Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
2013-2-19 13:58:12 com.github.sarxos.webcam.WebcamDriverUtils findDriver
信息: Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
2013-2-19 13:58:12 com.github.sarxos.webcam.Webcam getDriver
信息: Webcam driver has not been found, default one will be used!
2013-2-19 13:58:12 org.bridj.BridJ log
信息: Not enough args for null OpenIMAJGrabber.startSession(int, int, double)
2013-2-19 13:58:12 com.github.sarxos.webcam.ds.cgt.WebcamOpenTask handle
信息: Opening webcam UVC Camera (046d:0825) /dev/video0
2013-2-19 13:58:12 com.github.sarxos.webcam.ds.buildin.WebcamDefaultDevice open
警告: Different size obtained vs requested - [1024x768] vs [960x720]. Setting correct one. New size is [960x720]

MAC OS Snow leopard issue.

Possibly a duplicate of #24 and #8 but with the latest jars from 0.3.7 (http://repo.sarxos.pl/maven2/index.php?dir=com%2Fgithub%2Fsarxos%2Fwebcam-capture%2F0.3.7-beta1%2F) I get the following:

15:35:19.852 [AWT-EventQueue-0] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
15:35:19.858 [AWT-EventQueue-0] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver not found
15:35:19.858 [AWT-EventQueue-0] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
15:35:19.859 [AWT-EventQueue-0] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver not found
15:35:19.859 [AWT-EventQueue-0] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
15:35:19.859 [AWT-EventQueue-0] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.jmf.JmfDriver not found
15:35:19.859 [AWT-EventQueue-0] INFO  com.github.sarxos.webcam.Webcam - Webcam driver has not been found, default one will be used!
15:35:19.868 [webcam-discovery] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices
Not enough args for null OpenIMAJGrabber.startSession(int, int, double)
15:35:20.400 [webcam-discovery] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Found device Built-in iSight 0x2460000005ac8507
15:35:20.405 [AWT-EventQueue-0] INFO  com.github.sarxos.webcam.Webcam - Opening webcam Built-in iSight 0x2460000005ac8507

OSx Snow Leopard/Eclipse Indigo/java-6-sun-1.6.0_37 (64bit)

implement M-JPGE data get from the webcam

I just noticed that some IP webcam just transport the live stream via the
http:x.x.x.x:80/xxx.mjpeg.

so i was wondering ,could you provide some method named

getMjepg();

to get the mjepg data from the webcam?

WebcamGrabberProcessor stalled

Fairly reliably, under Eclipse environment, when view size is large (eg 1024x768) cam fails to initialize as WebcamGrabberProcessor is never notified by WebcamDefaultDevice.

WebcamDefaultDevice.open() stalls at: boolean started = sessionTask.startSession(size, device); and never finishes because WebcamGrabberProcessor.process itself is waiting to be notified (grabberTask.wait();) but notification never comes from
WebcamDefaultDevice.open() because it itself stalled.

End result, cam never initializes and system hangs. I haven't investigated in more detail, but this can be fairly easily reproduced by importing project into Eclipse, setting large cam view.

Linux/Eclipse Indigo/java-6-sun-1.6.0.26

Grabber initialization failure in multithreaded environment

It seams like native grabber is completely not ready for multithreading. Native startSession() fails when trying to control grabber from the thread different than the one in which it has been created.

Effect:

Exception in thread "Thread-5" com.github.sarxos.webcam.WebcamException: Cannot start video data grabber!
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDevice.open(WebcamDefaultDevice.java:131)
    at com.github.sarxos.webcam.Webcam.open(Webcam.java:112)
    at com.github.sarxos.webcam.WebcamPanel.start(WebcamPanel.java:135)
    at com.github.sarxos.webcam.WebcamExecutableExample$1.run(WebcamExecutableExample.java:71)

Does not work on Raspberry PI (ArchLinux@ARM)

I get the following stack-trace (order may be chaotic) on this device:

/proc/cpuinfo:
Processor   : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 464.48
Features    : swp half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7

Hardware    : BCM2708
Revision    : 0002
Serial      : 0000000045873531

uname -a
Linux alarmpi 3.6.11-3-ARCH+ #1 PREEMPT Thu Jan 10 03:05:04 UTC 2013 armv6l GNU/

Stacktrace:
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
# BridJ: dlopen error when loading /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so : /tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so: undefined symbol: v4lconvert_enum_frameintervals
java.lang.RuntimeException: Library 'OpenIMAJGrabber' was not loaded successfully from file '/tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so'
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:922)
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:901)
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:513)
    at org.bridj.cpp.CPPRuntime.newCPPInstance(CPPRuntime.java:627)
    at org.bridj.cpp.CPPRuntime$CPPTypeInfo.initialize(CPPRuntime.java:828)
    at org.bridj.cpp.CPPRuntime$CPPTypeInfo.initialize(CPPRuntime.java:755)
    at org.bridj.CRuntime$CTypeInfo.initialize(CRuntime.java:209)
    at org.bridj.BridJ.initialize(BridJ.java:970)
    at org.bridj.NativeObject.<init>(NativeObject.java:23)
    at org.bridj.StructObject.<init>(StructObject.java:14)
    at org.bridj.cpp.CPPObject.<init>(CPPObject.java:27)
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<init>(OpenIMAJGrabber.java:64)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$NewGrabberTask.handle(WebcamGrabberProcessor.java:81)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run(WebcamGrabberProcessor.java:52)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:679)
Exception in thread "ProcessorThreadFactory" java.lang.RuntimeException: Failed to allocate new instance of type class com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber
    at org.bridj.cpp.CPPRuntime.newCPPInstance(CPPRuntime.java:674)
    at org.bridj.cpp.CPPRuntime$CPPTypeInfo.initialize(CPPRuntime.java:828)
    at org.bridj.cpp.CPPRuntime$CPPTypeInfo.initialize(CPPRuntime.java:755)
    at org.bridj.CRuntime$CTypeInfo.initialize(CRuntime.java:209)
    at org.bridj.BridJ.initialize(BridJ.java:970)
    at org.bridj.NativeObject.<init>(NativeObject.java:23)
    at org.bridj.StructObject.<init>(StructObject.java:14)
    at org.bridj.cpp.CPPObject.<init>(CPPObject.java:27)
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<init>(OpenIMAJGrabber.java:64)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$NewGrabberTask.handle(WebcamGrabberProcessor.java:81)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run(WebcamGrabberProcessor.java:52)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.RuntimeException: Library 'OpenIMAJGrabber' was not loaded successfully from file '/tmp/BridJExtractedLibraries3429022544279638110/OpenIMAJGrabber.so'
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:922)
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:901)
    at org.bridj.BridJ.getNativeLibrary(BridJ.java:513)
    at org.bridj.cpp.CPPRuntime.newCPPInstance(CPPRuntime.java:627)
    ... 13 more

WebcamPanel much slower than native camera display

Hi,

When I use WebcamPanel class to display image from the camera, I see that images are delayed about 500 - 1000 ms. View is not fluent and I see differences between consecutive frames.

Please fix this so image camera displayed in this component will be more smooth.

LTI-CIVIL driver libstdc++.so.5: cannot open shared object file

Details:

  • Webcam Capture version: 0.3.10-SNAPSHOT
  • System: Ubuntu 12.04
  • Arch: 64-bit

Tried to use LTI-CIVIL driver on Linux and got exception below. Stack trace contains the following cause:

Caused by: java.lang.UnsatisfiedLinkError: /tmp/webcam-capture-lib-1360530012386/libcivil.so: libstdc++.so.5: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
    at java.lang.Runtime.load0(Runtime.java:770)
    at java.lang.System.load(System.java:1003)
    at com.github.sarxos.webcam.ds.civil.LtiCivilLoader.load(LtiCivilLoader.java:156)
    ... 3 more

Solution:

sudo apt-get install libstdc++5

Fail to detect camera (0.3.8)

I got the following log :
Not enough args for boolean OpenIMAJGrabber.startSession(int, int, double)
It seems the camera is not detected. However when using another library (lti-civil), it is working fine.
Any clue ?

Thanks.

capture.cpp aborting libv4l2 JPEG header error

This issue is more directly OpenIMAJ but you might want to consider fixing capture.cpp to gracefully handle a common linux v4l error. With my Dell inspiron 1545, Ubuntu 10.04, OpenIMAJGrabber aborts causing program shutdown when libv4l encounters the folliowing:

libv4l2: error converting / decoding frame data: v4l-convert: error parsing JPEG header: Not a JPG file ?

This is a common linux issue with some webcams, but capture.cpp is falling through into error exit rather than ignoring the error:

    case IO_METHOD_MMAP:
            CLEAR (buf);

            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
            buf.memory = V4L2_MEMORY_MMAP;

            if (-1 == xioctl (grabber->fd, VIDIOC_DQBUF, &buf)) {

                    switch (errno) {
                    case EAGAIN:
                            return 0;

                    case EIO:
                            /* Could ignore EIO, see spec. */
                            /* fall through */

                    default:
                            errno_exit ("VIDIOC_DQBUF");
                    }
            }

I fixed it by recompiling native lib (for linux only) with simple return 0 under case EIO:

                    case EIO:
                            /* Could ignore EIO, see spec. */
            return 0;
                            /* fall through */

This took care of the problem. Again, not affecting me directly since I've rebuilt mine but to save other linux user a headache you might want to recompile with return 0.

From time to time the lib reject to initialize

Feb 04, 2013 8:37:24 PM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
Feb 04, 2013 8:37:24 PM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
Feb 04, 2013 8:37:24 PM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
Feb 04, 2013 8:37:24 PM com.github.sarxos.webcam.Webcam getDriver
INFO: Webcam driver has not been found, default one will be used!
Not enough args for boolean OpenIMAJGrabber.startSession(int, int, double)

Raspberry Pi - image capture, select time out

I don't know why when i set the dimension to size 640_480 ,and then on PC it's OK
but on the pi,it cause an select time out issue,thanks .
dimension of 1024_768&320*240 is OK
test code

import java.awt.Dimension;

import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamException;


public class WebcamTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Webcam webcam = null;
        try {
            webcam = Webcam.getDefault();
            webcam.setViewSize(new Dimension(640, 480));
            webcam.open();
            for(;;){
                long start = System.currentTimeMillis();
                webcam.getImage();
            //  System.out.println("capture");
                long current = System.currentTimeMillis();
                System.out.println("fps :"+(1000/(current - start)));
            }           
        } catch (WebcamException e) {
            System.out.println("webcam exception");
            System.exit(0);
        }
        if (webcam != null) {
            System.out.println("has webcam");
        }else{
            System.out.println("has no webcam");
            System.exit(0);
        }
    }

}

pi@raspberrypi ~ $ java -jar WebcamTest_fat.jar 
Feb 19, 2013 6:01:21 AM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
Feb 19, 2013 6:01:22 AM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
Feb 19, 2013 6:01:22 AM com.github.sarxos.webcam.WebcamDriverUtils findDriver
INFO: Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
Feb 19, 2013 6:01:22 AM com.github.sarxos.webcam.Webcam getDriver
INFO: Webcam driver has not been found, default one will be used!
Feb 19, 2013 6:01:24 AM org.bridj.BridJ log
INFO: Not enough args for null OpenIMAJGrabber.startSession(int, int, double)
Feb 19, 2013 6:01:25 AM com.github.sarxos.webcam.ds.cgt.WebcamOpenTask handle
INFO: Opening webcam UVC Camera (046d:0825) /dev/video0
select timeout

LifeCam Cinema (Miscrosoft) - stop providing fresh capture after some time

When left capturing for 10 min every 1 sec and the camera is MS LifeCam HD - in some point the camera indicator goes off , the captures still flow - but exactly the same as the last one supplied from the camera before the indicator has gone off.. e.g. no new captures - just copies of the last one

the app is started with :

-Dwebcam.debug=true -Dbridj.debug=true -Dbridj.veryVerbose=true -Dbridj.verbose=true

but no useful info - juts app seems normal but no fresh captures

JNI/JNA

Which one is this API using between JNI and JNA ? I checked the whole code but couldn't get the final decision. I am not 100% sure about it.

Can anyone ensure me that it is using JNI or JNA ?

Failed to initialize BridJ on raspberry pi # < Raspbian “wheezy”>

^Cpi@raspberrypi ~ $ java -jar ICE2.jar 
13:21:54.561 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
13:21:54.638 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver not found
13:21:54.641 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
13:21:54.649 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver not found
13:21:54.652 [main] INFO  c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
13:21:54.660 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.jmf.JmfDriver not found
13:21:54.664 [main] INFO  com.github.sarxos.webcam.Webcam - Webcam driver has not been found, default one will be used!
13:21:54.774 [webcam-discovery] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices
java.lang.RuntimeException: Failed to initialize BridJ
    at org.bridj.Platform.initLibrary(Platform.java:370)
    at org.bridj.Platform.<clinit>(Platform.java:175)
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<clinit>(OpenIMAJGrabber.java:59)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$NewGrabberTask.handle(WebcamGrabberProcessor.java:81)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run(WebcamGrabberProcessor.java:52)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/BridJExtractedLibraries2757211256629756447/bridj.so: /tmp/BridJExtractedLibraries2757211256629756447/bridj.so: no such file or forlder~~~
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1935)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1860)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821)
    at java.lang.Runtime.load0(Runtime.java:792)
    at java.lang.System.load(System.java:1059)
    at org.bridj.Platform.initLibrary(Platform.java:347)
    ... 7 more
Exception in thread "ProcessorThreadFactory" java.lang.UnsatisfiedLinkError: org.bridj.Platform.sizeOf_ptrdiff_t()I
    at org.bridj.Platform.sizeOf_ptrdiff_t(Native Method)
    at org.bridj.Platform.<clinit>(Platform.java:179)
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<clinit>(OpenIMAJGrabber.java:59)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$NewGrabberTask.handle(WebcamGrabberProcessor.java:81)
    at com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run(WebcamGrabberProcessor.java:52)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
java.util.concurrent.TimeoutException: Webcams discovery timeout (6000 ms) has been exceeded
    at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:119)
    at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:355)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:409)
    at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:388)
    at us.sosia.media.webcam.WebCamUtils.getDefaultWebcam(WebCamUtils.java:23)
    at us.sosia.nat.client.P2PAgentor.main(P2PAgentor.java:171)
............

Hello sarxos,sorry for that,i was running this on the raspberry pi with linux and openjdk7,then i get this ...i see the arm build so is contains and use the bridj 0.6.2 and your 0.3.7 lib

make Webcam.getWebcams() has an time out

i think that an time out is needed once we are searching the webcam,just like the object.wait(timeout),i thinks the user may want to stop the searching after an period of time.

for my current usage of this ,i wapper an method called haswebcam() which return an boolean,and if the webcam is token by another progress,then the method will never return and just searching and seaching,
and i think if you can provide an another method version witch contains an time out?!

thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.