codeanticode.gsvideo
Class GSCapture

java.lang.Object
  extended by processing.core.PImage
      extended by codeanticode.gsvideo.GSCapture
All Implemented Interfaces:
java.lang.Cloneable, processing.core.PConstants

public class GSCapture
extends processing.core.PImage
implements processing.core.PConstants

Class for storing and manipulating video frames from an attached capture device such as a camera.


Field Summary
 
Fields inherited from class processing.core.PImage
format, height, parent, pixels, width
 
Fields inherited from interface processing.core.PConstants
A, AB, ADD, AG, ALPHA, ALPHA_MASK, ALT, AMBIENT, AR, ARC, ARGB, ARROW, B, BACKSPACE, BASELINE, BEEN_LIT, BEVEL, BLEND, BLUE_MASK, BLUR, BOTTOM, BOX, BURN, CENTER, CENTER_DIAMETER, CENTER_RADIUS, CHATTER, CLOSE, CMYK, CODED, COMPLAINT, CONTROL, CORNER, CORNERS, CROSS, CUSTOM, DA, DARKEST, DB, DEG_TO_RAD, DELETE, DG, DIAMETER, DIFFERENCE, DILATE, DIRECTIONAL, DISABLE_ACCURATE_TEXTURES, DISABLE_DEPTH_SORT, DISABLE_DEPTH_TEST, DISABLE_OPENGL_2X_SMOOTH, DISABLE_OPENGL_ERROR_REPORT, DODGE, DOWN, DR, DXF, EB, EDGE, EG, ELLIPSE, ENABLE_ACCURATE_TEXTURES, ENABLE_DEPTH_SORT, ENABLE_DEPTH_TEST, ENABLE_NATIVE_FONTS, ENABLE_OPENGL_2X_SMOOTH, ENABLE_OPENGL_4X_SMOOTH, ENABLE_OPENGL_ERROR_REPORT, ENTER, EPSILON, ER, ERODE, ERROR_BACKGROUND_IMAGE_FORMAT, ERROR_BACKGROUND_IMAGE_SIZE, ERROR_PUSHMATRIX_OVERFLOW, ERROR_PUSHMATRIX_UNDERFLOW, ERROR_TEXTFONT_NULL_PFONT, ESC, EXCLUSION, G, GIF, GRAY, GREEN_MASK, HALF_PI, HAND, HARD_LIGHT, HINT_COUNT, HSB, IMAGE, INVERT, JAVA2D, JPEG, LEFT, LIGHTEST, LINE, LINES, LINUX, MACOSX, MAX_FLOAT, MAX_INT, MIN_FLOAT, MIN_INT, MITER, MODEL, MOVE, MULTIPLY, NORMAL, NORMALIZED, NX, NY, NZ, OPAQUE, OPEN, OPENGL, ORTHOGRAPHIC, OTHER, OVERLAY, P2D, P3D, PATH, PDF, PERSPECTIVE, PI, platformNames, POINT, POINTS, POLYGON, POSTERIZE, PROBLEM, PROJECT, QUAD, QUAD_STRIP, QUADS, QUARTER_PI, R, RAD_TO_DEG, RADIUS, RECT, RED_MASK, REPLACE, RETURN, RGB, RIGHT, ROUND, SA, SB, SCREEN, SG, SHAPE, SHIFT, SHINE, SOFT_LIGHT, SPB, SPG, SPHERE, SPOT, SPR, SQUARE, SR, SUBTRACT, SW, TAB, TARGA, TEXT, THIRD_PI, THRESHOLD, TIFF, TOP, TRIANGLE, TRIANGLE_FAN, TRIANGLE_STRIP, TRIANGLES, TWO_PI, TX, TY, TZ, U, UP, V, VERTEX_FIELD_COUNT, VW, VX, VY, VZ, WAIT, WHITESPACE, WINDOWS, X, Y, Z
 
Constructor Summary
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight)
          Basic constructor: tries to auto-detect all the capture parameters, with the exception of the resolution.
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, int frameRate)
          Constructor that takes resolution and framerate indicated as a single number.
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, int frameRate, java.lang.String cameraName)
          This constructor allows to specify the camera name and the desired framerate.
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, int frameRate, java.lang.String sourceName, java.lang.String cameraName)
          This constructor lets to indicate which source element to use (i.e.: v4l2src, osxvideosrc, dshowvideosrc, ksvideosrc, etc).
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, java.lang.String cameraName)
          This constructor allows to specify the camera name.
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, java.lang.String frameRate, java.lang.String sourceName, java.lang.String[] strPropNames, java.lang.String[] strPropValues)
          This constructor accepts an arbitrary list of string properties for the source element.
GSCapture(processing.core.PApplet parent, int requestWidth, int requestHeight, java.lang.String frameRate, java.lang.String sourceName, java.lang.String[] strPropNames, java.lang.String[] strPropValues, java.lang.String[] intPropNames, int[] intPropValues)
          This constructor accepts an arbitrary list of string properties for the source element, as well as a list of integer properties.
 
Method Summary
 boolean available()
          Returns "true" when a new video frame is available to read.
 void delete()
          Releases the gstreamer resources associated to this capture object.
 void dispose()
          Same as delete.
 java.lang.String[] framerates()
          Returns a list with the framerates supported by the capture device, expressed as a string like: 30/1, 15/2, etc.
static java.lang.String[] list()
          Returns a list of available capture devices.
static java.lang.String[] list(java.lang.String sourceName)
          Get a list of all available captures as a String array.
 void pause()
          Stops the capture pipeline.
 void play()
          Resumes the capture pipeline.
 void read()
          Reads the current video frame.
 int[][] resolutions()
          Returns a list with the resolutions supported by the capture device.
 void setEventHandlerObject(java.lang.Object obj)
          Uses a generic object as handler of the movie.
 
Methods inherited from class processing.core.PImage
blend, blend, blendColor, clone, copy, copy, filter, filter, get, get, get, getCache, getImage, init, isModified, loadPixels, mask, mask, removeCache, resize, save, set, set, setCache, setModified, setModified, updatePixels, updatePixels
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight)
Basic constructor: tries to auto-detect all the capture parameters, with the exception of the resolution.


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 int frameRate)
Constructor that takes resolution and framerate indicated as a single number.


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 java.lang.String cameraName)
This constructor allows to specify the camera name. In Linux, for example, this should be a string of the form /dev/video0, /dev/video1, etc.


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 int frameRate,
                 java.lang.String cameraName)
This constructor allows to specify the camera name and the desired framerate.


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 int frameRate,
                 java.lang.String sourceName,
                 java.lang.String cameraName)
This constructor lets to indicate which source element to use (i.e.: v4l2src, osxvideosrc, dshowvideosrc, ksvideosrc, etc).


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 java.lang.String frameRate,
                 java.lang.String sourceName,
                 java.lang.String[] strPropNames,
                 java.lang.String[] strPropValues)
This constructor accepts an arbitrary list of string properties for the source element. The camera name could be one of these properties. The framerate must be specified as a fraction string: 30/1, 15/2, etc.


GSCapture

public GSCapture(processing.core.PApplet parent,
                 int requestWidth,
                 int requestHeight,
                 java.lang.String frameRate,
                 java.lang.String sourceName,
                 java.lang.String[] strPropNames,
                 java.lang.String[] strPropValues,
                 java.lang.String[] intPropNames,
                 int[] intPropValues)
This constructor accepts an arbitrary list of string properties for the source element, as well as a list of integer properties. This could be useful if a camera cannot by specified by name but by index. Framerate must be a fraction string: 30/1, 15/2, etc.

Method Detail

delete

public void delete()
Releases the gstreamer resources associated to this capture object. It shouldn't be used after this.


dispose

public void dispose()
Same as delete.


setEventHandlerObject

public void setEventHandlerObject(java.lang.Object obj)
Uses a generic object as handler of the movie. This object should have a movieEvent method that receives a GSMovie argument. This method will be called upon a new frame read event.


available

public boolean available()
Returns "true" when a new video frame is available to read.

Returns:
boolean

play

public void play()
Resumes the capture pipeline.


pause

public void pause()
Stops the capture pipeline.


read

public void read()
Reads the current video frame. This method() and invokeEvent() are now synchronized, so that invokeEvent() can't be called whilst we're busy reading. Problematic frame error fixed by Charl P. Botha


resolutions

public int[][] resolutions()
Returns a list with the resolutions supported by the capture device. Each element of the list is in turn an array of two int, first being the width and second the height.

Returns:
int[][]

framerates

public java.lang.String[] framerates()
Returns a list with the framerates supported by the capture device, expressed as a string like: 30/1, 15/2, etc.

Returns:
String[]

list

public static java.lang.String[] list()
Returns a list of available capture devices.

Returns:
String[]

list

public static java.lang.String[] list(java.lang.String sourceName)
Get a list of all available captures as a String array. i.e. println(Capture.list()) will show you the goodies.

Parameters:
sourceName - String
Returns:
String[]


processing library GSVideo by Andres Colubri. (c) 2008