CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-bytedeco--libdc1394

JavaCPP Presets for libdc1394 - Java bindings for controlling IEEE 1394 (FireWire) digital cameras following IIDC/DCAM specifications

Pending
Overview
Eval results
Files

system-management.mddocs/

System Management

Core system initialization, camera discovery, and resource management functionality for libdc1394.

Capabilities

System Context Management

Creates and manages the main libdc1394 system context required for all operations.

/**
 * Creates a new libdc1394 system context
 * @return System context handle, or null on failure
 */
dc1394_t dc1394_new();

/**
 * Releases the libdc1394 system context and associated resources
 * @param d System context to release
 */
void dc1394_free(dc1394_t d);

/**
 * Resets the IEEE 1394 bus
 * @param camera Camera connected to the bus to reset
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_reset_bus(dc1394camera_t camera);

Usage Example:

import static org.bytedeco.libdc1394.global.dc1394.*;

// Initialize system
dc1394_t d = dc1394_new();
if (d == null) {
    System.err.println("Failed to initialize libdc1394");
    System.exit(1);
}

// Use system context for camera operations...

// Always release resources
dc1394_free(d);

Camera Discovery

Discovers and enumerates available IEEE 1394 cameras on the system.

/**
 * Enumerates all available cameras on the IEEE 1394 bus
 * @param d System context
 * @param list Output camera list structure
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_enumerate(dc1394_t d, dc1394camera_list_t list);

/**
 * Releases camera list resources
 * @param list Camera list to release
 */
void dc1394_camera_free_list(dc1394camera_list_t list);

/**
 * Prints information about a camera
 * @param camera Camera to print information for
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_print_info(dc1394camera_t camera);

Usage Example:

import org.bytedeco.libdc1394.*;
import static org.bytedeco.libdc1394.global.dc1394.*;

dc1394_t d = dc1394_new();
dc1394camera_list_t list = new dc1394camera_list_t();

// Discover cameras
int err = dc1394_camera_enumerate(d, list);
if (err != DC1394_SUCCESS) {
    dc1394_log_error("Failed to enumerate cameras: " + err);
    dc1394_free(d);
    return;
}

System.out.println("Found " + list.num() + " cameras");

// Iterate through discovered cameras
for (int i = 0; i < list.num(); i++) {
    dc1394camera_id_t id = list.ids().position(i);
    System.out.println("Camera " + i + ": GUID=" + 
                      Long.toHexString(id.guid()) + ", Unit=" + id.unit());
}

// Always free the list
dc1394_camera_free_list(list);
dc1394_free(d);

Camera Instantiation

Creates and manages individual camera instances for control and capture operations.

/**
 * Creates a new camera instance using the camera's GUID
 * @param d System context
 * @param guid Camera GUID obtained from enumeration
 * @return Camera instance, or null on failure
 */
dc1394camera_t dc1394_camera_new(dc1394_t d, long guid);

/**
 * Creates a new camera instance using GUID and unit number
 * @param d System context
 * @param guid Camera GUID
 * @param unit Unit number on the bus
 * @return Camera instance, or null on failure
 */
dc1394camera_t dc1394_camera_new_unit(dc1394_t d, long guid, int unit);

/**
 * Releases camera instance and associated resources
 * @param camera Camera instance to release
 */
void dc1394_camera_free(dc1394camera_t camera);

/**
 * Checks if two cameras are the same device
 * @param camera1 First camera
 * @param camera2 Second camera
 * @return true if cameras are the same device, false otherwise
 */
boolean dc1394_is_same_camera(dc1394camera_t camera1, dc1394camera_t camera2);

Usage Example:

import org.bytedeco.libdc1394.*;
import static org.bytedeco.libdc1394.global.dc1394.*;

dc1394_t d = dc1394_new();
dc1394camera_list_t list = new dc1394camera_list_t();

// Discover cameras
dc1394_camera_enumerate(d, list);
if (list.num() == 0) {
    System.err.println("No cameras found");
    dc1394_camera_free_list(list);
    dc1394_free(d);
    return;
}

// Create camera instance from first discovered camera
long guid = list.ids().guid();
dc1394camera_t camera = dc1394_camera_new(d, guid);
if (camera == null) {
    System.err.println("Failed to create camera instance");
    dc1394_camera_free_list(list);
    dc1394_free(d);
    return;
}

System.out.println("Successfully created camera instance");
System.out.println("Camera model: " + camera.model());
System.out.println("Camera vendor: " + camera.vendor());

// Print detailed camera information
dc1394_camera_print_info(camera);

// Always release resources
dc1394_camera_free_list(list);
dc1394_camera_free(camera);
dc1394_free(d);

Power and Reset Control

Controls camera power state and reset functionality.

/**
 * Sets camera power state
 * @param camera Camera instance
 * @param pwr Power state (DC1394_ON or DC1394_OFF)
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_set_power(dc1394camera_t camera, int pwr);

/**
 * Resets the camera
 * @param camera Camera instance to reset
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_reset(dc1394camera_t camera);

Broadcast Control

Manages broadcast settings for multi-camera operations.

/**
 * Sets camera broadcast mode for multi-camera control
 * @param camera Camera instance
 * @param pwr Broadcast state (DC1394_ON or DC1394_OFF)
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_set_broadcast(dc1394camera_t camera, int pwr);

/**
 * Gets camera broadcast mode state
 * @param camera Camera instance
 * @param pwr Output parameter for broadcast state
 * @return DC1394_SUCCESS on success, error code on failure
 */
int dc1394_camera_get_broadcast(dc1394camera_t camera, IntPointer pwr);

Types

System Context

/**
 * Main libdc1394 system context
 * Opaque structure - no direct field access
 */
class dc1394_t extends Pointer {
    // Internal implementation hidden
}

Camera List Types

/**
 * Camera list container for discovery results
 */
class dc1394camera_list_t extends Pointer {
    /**
     * Number of cameras found
     * @return Count of discovered cameras
     */
    int num();
    
    /**
     * Array of camera identifiers
     * @return Pointer to first camera ID in array
     */
    dc1394camera_id_t ids();
}

/**
 * Camera identifier with GUID and unit information
 */
class dc1394camera_id_t extends Pointer {
    /**
     * Camera unit number on the IEEE 1394 bus
     * @return Unit number
     */
    int unit();
    
    /**
     * Camera globally unique identifier (GUID)
     * @return 64-bit GUID
     */
    long guid();
}

Constants

Power States

// Power control states
static final int DC1394_ON = 1;
static final int DC1394_OFF = 0;

Common Error Codes

// System operation results
static final int DC1394_SUCCESS = 0;
static final int DC1394_FAILURE = -1;
static final int DC1394_NOT_A_CAMERA = -2;
static final int DC1394_FUNCTION_NOT_SUPPORTED = -3;
static final int DC1394_CAMERA_NOT_INITIALIZED = -4;
static final int DC1394_MEMORY_ALLOCATION_FAILURE = -5;

Error Handling

System management functions return integer error codes. Always check return values:

int err = dc1394_camera_enumerate(d, list);
if (err != DC1394_SUCCESS) {
    System.err.println("Camera enumeration failed with error: " + err);
    // Handle error appropriately
}

Use the logging functions for detailed error information:

if (camera == null) {
    dc1394_log_error("Failed to create camera instance for GUID: " + 
                     Long.toHexString(guid));
}

Install with Tessl CLI

npx tessl i tessl/maven-org-bytedeco--libdc1394

docs

camera-features.md

format7.md

image-conversion.md

index.md

iso-resource-management.md

logging.md

system-management.md

trigger-control.md

utility-functions.md

video-capture.md

video-modes.md

tile.json