#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <linux/types.h>
#include <libraw1394/raw1394.h>
#include <libdc1394/dc1394_control.h>
#include <AR/config.h>
#include <AR/ar.h>
#include <AR/video.h>
#include "conversions.h"
Go to the source code of this file.
Classes | |
struct | __arVideo1394 |
Defines | |
#define | DEFAULT_VIDEO_CARD -1 |
#define | DEFAULT_VIDEO_FRAME_RATE VIDEO_FRAME_RATE_30 |
#define | DEFAULT_VIDEO_MODE VIDEO_MODE_640x480_YUV411_HALF |
#define | DEFAULT_VIDEO_NODE VIDEO_NODE_ANY |
#define | LIBDC_11 |
#define | LIBDC_DEF |
#define | MAX_PORTS 4 /* This is the maximum number of Firewire cards we can have installed in the system, it is an arbitrary number */ |
#define | VIDEO_FRAME_RATE_15 4 |
#define | VIDEO_FRAME_RATE_1_875 1 |
#define | VIDEO_FRAME_RATE_30 5 |
#define | VIDEO_FRAME_RATE_3_75 2 |
#define | VIDEO_FRAME_RATE_60 6 |
#define | VIDEO_FRAME_RATE_7_5 3 |
#define | VIDEO_MODE_320x240_YUV422 32 |
#define | VIDEO_MODE_640x480_MONO 36 |
#define | VIDEO_MODE_640x480_MONO_COLOR 37 |
#define | VIDEO_MODE_640x480_MONO_COLOR_HALF 38 |
#define | VIDEO_MODE_640x480_RGB 34 |
#define | VIDEO_MODE_640x480_YUV411 33 |
#define | VIDEO_MODE_640x480_YUV411_HALF 35 |
#define | VIDEO_NODE_ANY -1 |
Typedefs | |
typedef struct __arVideo1394 | ARVideo1394 |
Functions | |
static int | ar2Video1394Init (int debug, int *card, int *node) |
int | ar2VideoCapNext (AR2VideoParamT *vid) |
call for the next grabbed video frame of a video source (multiple video inputs) | |
int | ar2VideoCapStart (AR2VideoParamT *vid) |
start the capture of a video source (multiple video inputs) | |
int | ar2VideoCapStop (AR2VideoParamT *vid) |
stop the capture of a video source (multiple video inputs) | |
int | ar2VideoClose (AR2VideoParamT *vid) |
close a video source (multiple video inputs) | |
int | ar2VideoDispOption (void) |
display the video option (multiple video inputs) | |
ARUint8 * | ar2VideoGetImage (AR2VideoParamT *vid) |
get a video image from a video source (multiple video inputs) | |
int | ar2VideoInqSize (AR2VideoParamT *vid, int *x, int *y) |
get the video image size of a video source (multiple video inputs) | |
AR2VideoParamT * | ar2VideoOpen (char *config_in) |
open a video source (multiple video inputs) | |
int | arVideoCapNext (void) |
call for the next grabbed video frame. | |
int | arVideoCapStart (void) |
start the capture of video. | |
int | arVideoCapStop (void) |
stop the capture of video. | |
int | arVideoClose (void) |
close the video source. After your application has finished using a video stream, this function must be called to close the link to the input source, and free resources associated with the capture operation. | |
int | arVideoDispOption (void) |
display the video option. | |
ARUint8 * | arVideoGetImage (void) |
get the video image. | |
int | arVideoInqSize (int *x, int *y) |
get the video image size, in pixels. | |
int | arVideoOpen (char *config) |
open a video source. | |
Variables | |
int | ar2Video_dragonfly = -1 |
static ARVideo1394 | arV1394 |
static AR2VideoParamT * | gVid = NULL |
static int | initFlag = 0 |
#define DEFAULT_VIDEO_CARD -1 |
Definition at line 118 of file lib/SRC/VideoLinux1394Cam/video.c.
Definition at line 141 of file lib/SRC/VideoLinux1394Cam/video.c.
Definition at line 140 of file lib/SRC/VideoLinux1394Cam/video.c.
#define DEFAULT_VIDEO_NODE VIDEO_NODE_ANY |
Definition at line 139 of file lib/SRC/VideoLinux1394Cam/video.c.
#define LIBDC_11 |
Definition at line 113 of file lib/SRC/VideoLinux1394Cam/video.c.
#define LIBDC_DEF |
Definition at line 165 of file lib/SRC/VideoLinux1394Cam/video.c.
#define MAX_PORTS 4 /* This is the maximum number of Firewire cards we can have installed in the system, it is an arbitrary number */ |
Definition at line 119 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_15 4 |
Definition at line 136 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_1_875 1 |
Definition at line 133 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_30 5 |
Definition at line 137 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_3_75 2 |
Definition at line 134 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_60 6 |
Definition at line 138 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_FRAME_RATE_7_5 3 |
Definition at line 135 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_320x240_YUV422 32 |
Definition at line 126 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_MONO 36 |
Definition at line 130 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_MONO_COLOR 37 |
Definition at line 131 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_MONO_COLOR_HALF 38 |
Definition at line 132 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_RGB 34 |
Definition at line 128 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_YUV411 33 |
Definition at line 127 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_MODE_640x480_YUV411_HALF 35 |
Definition at line 129 of file lib/SRC/VideoLinux1394Cam/video.c.
#define VIDEO_NODE_ANY -1 |
Definition at line 125 of file lib/SRC/VideoLinux1394Cam/video.c.
typedef struct __arVideo1394 ARVideo1394 |
static int ar2Video1394Init | ( | int | debug, |
int * | card, | ||
int * | node | ||
) | [static] |
Definition at line 955 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoCapNext | ( | AR2VideoParamT * | vid | ) |
call for the next grabbed video frame of a video source (multiple video inputs)
Companion function to arVideoCapNext for multiple video sources.
vid | a video handle structure for multi-camera grabbing |
Definition at line 690 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoCapStart | ( | AR2VideoParamT * | vid | ) |
start the capture of a video source (multiple video inputs)
Companion function to arVideoCapStart for multiple video sources.
vid | a video handle structure for multi-camera grabbing |
Definition at line 632 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoCapStop | ( | AR2VideoParamT * | vid | ) |
stop the capture of a video source (multiple video inputs)
Companion function to arVideoCapStop for multiple video sources.
vid | a video handle structure for multi-camera grabbing |
Definition at line 703 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoClose | ( | AR2VideoParamT * | vid | ) |
close a video source (multiple video inputs)
Companion function to arVideoClose for multiple video sources.
vid | a video handle structure for multi-camera grabbing. |
Definition at line 614 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoDispOption | ( | void | ) |
display the video option (multiple video inputs)
Companion function to arVideoDispOption, for multiple video sources.
Definition at line 262 of file lib/SRC/VideoLinux1394Cam/video.c.
ARUint8* ar2VideoGetImage | ( | AR2VideoParamT * | vid | ) |
get a video image from a video source (multiple video inputs)
Companion function to arVideoGetImage for multiple video sources.
vid | a video handle structure for multi-camera grabbing |
Definition at line 734 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2VideoInqSize | ( | AR2VideoParamT * | vid, |
int * | x, | ||
int * | y | ||
) |
get the video image size of a video source (multiple video inputs)
Companion function to arVideoInqSize for multiple video sources.
vid | a video handle structure for multi-camera grabbing |
Definition at line 726 of file lib/SRC/VideoLinux1394Cam/video.c.
AR2VideoParamT* ar2VideoOpen | ( | char * | config | ) |
open a video source (multiple video inputs)
Companion function to arVideoOpen for multiple video sources. This function can be called multiple times to open multiple video streams. The maximum number of streams is dependent on the operating system and the performance characteristics of the host CPU and video capture infrastructure.
config | string of the selected video configuration. |
Definition at line 284 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoCapNext | ( | void | ) |
call for the next grabbed video frame.
This function should be called at least once per frame. It has several purposes, depending on the operating system. It allows the video driver to perform housekeeping tasks and also signals to the video grabber that your code has finished using the most recent video frame returned by arVideoGetImage(), and that the video driver may re-use the memory occupied by the frame. The effect of this call is operating-system dependent. The best place to call this function is immediately after you have finished displaying the current video frame, i.e. after calling arglDispImage() or argDispImage().
Definition at line 241 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoCapStart | ( | void | ) |
start the capture of video.
This function starts the video capture routine.
Definition at line 227 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoCapStop | ( | void | ) |
stop the capture of video.
This function stops the video capture routine.
Definition at line 234 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoClose | ( | void | ) |
close the video source. After your application has finished using a video stream, this function must be called to close the link to the input source, and free resources associated with the capture operation.
Definition at line 202 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoDispOption | ( | void | ) |
display the video option.
The video configuration options vary by operating system and platform. This function outputs to the standard output the options available on the current OS and platform.
Definition at line 184 of file lib/SRC/VideoLinux1394Cam/video.c.
ARUint8* arVideoGetImage | ( | void | ) |
get the video image.
This function returns a buffer with a captured video image. The returned data consists of a tightly-packed array of pixels, beginning with the first component of the leftmost pixel of the topmost row, and continuing with the remaining components of that pixel, followed by the remaining pixels in the topmost row, followed by the leftmost pixel of the second row, and so on. The arrangement of components of the pixels in the buffer is determined by the configuration string passed in to the driver at the time the video stream was opened. If no pixel format was specified in the configuration string, then an operating- system dependent default, defined in <AR/config.h> is used. The memory occupied by the pixel data is owned by the video driver and should not be freed by your program. The pixels in the buffer remain valid until the next call to arVideoCapNext, or the next call to arVideoGetImage which returns a non-NULL pointer, or any call to arVideoCapStop or arVideoClose.
Definition at line 220 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoInqSize | ( | int * | x, |
int * | y | ||
) |
get the video image size, in pixels.
This function returns the size of the captured video frame, in pixels.
x | a pointer to the length of the captured image |
y | a pointer to the width of the captured image |
Definition at line 213 of file lib/SRC/VideoLinux1394Cam/video.c.
int arVideoOpen | ( | char * | config | ) |
open a video source.
This function opens a video input path with the driver (and device) present on your platform. According to your operating system and the hardware the initialization will be different : a generic string structure is used for this issue. This function prepares the video stream for capture, but capture will not actually begin until arVideoCapStart is called.
config | string of the selected video configuration. See the video configuration documentation for more information on this parameter. |
Definition at line 189 of file lib/SRC/VideoLinux1394Cam/video.c.
int ar2Video_dragonfly = -1 |
Definition at line 177 of file lib/SRC/VideoLinux1394Cam/video.c.
ARVideo1394 arV1394 [static] |
Definition at line 256 of file lib/SRC/VideoLinux1394Cam/video.c.
AR2VideoParamT* gVid = NULL [static] |
Definition at line 182 of file lib/SRC/VideoLinux1394Cam/video.c.
int initFlag = 0 [static] |
Definition at line 257 of file lib/SRC/VideoLinux1394Cam/video.c.