Some checks failed
Build and Deploy / build-macos (push) Failing after 7s
Build and Deploy / build-windows (CLANG64) (push) Has been cancelled
Build and Deploy / package-dist (push) Has been cancelled
Build and Deploy / deploy-itch (push) Has been cancelled
Build and Deploy / deploy-gitea (push) Has been cancelled
Build and Deploy / build-linux (push) Has been cancelled
75 lines
2.5 KiB
JavaScript
75 lines
2.5 KiB
JavaScript
// Test the new camera functionality
|
|
var camera = use('camera');
|
|
|
|
// Get camera drivers
|
|
var drivers = camera.drivers();
|
|
console.log("Available camera drivers:", drivers);
|
|
|
|
// Get list of cameras
|
|
var cameras = camera.list();
|
|
console.log("Found", cameras.length, "cameras");
|
|
|
|
// Get info about each camera
|
|
for (var i = 0; i < cameras.length; i++) {
|
|
var cam_id = cameras[i];
|
|
console.log("\nCamera", i + 1, "ID:", cam_id);
|
|
console.log(" Name:", camera.name(cam_id));
|
|
console.log(" Position:", camera.position(cam_id));
|
|
|
|
// Get supported formats
|
|
var formats = camera.supported_formats(cam_id);
|
|
console.log(" Supported formats:", formats.length);
|
|
|
|
// Show first few formats
|
|
for (var j = 0; j < formats.length; j++) {
|
|
var fmt = formats[j];
|
|
console.log(" Format", j + 1 + ":");
|
|
console.log(" Pixel format:", fmt.format);
|
|
console.log(" Resolution:", fmt.width + "x" + fmt.height);
|
|
console.log(" FPS:", fmt.framerate_numerator + "/" + fmt.framerate_denominator,
|
|
"(" + (fmt.framerate_numerator / fmt.framerate_denominator) + ")");
|
|
console.log(" Colorspace:", fmt.colorspace);
|
|
}
|
|
}
|
|
|
|
// Open the first camera with a specific format if available
|
|
if (cameras.length > 0) {
|
|
console.log("\nOpening first camera...");
|
|
var cam_id = cameras[0];
|
|
var formats = camera.supported_formats(cam_id);
|
|
|
|
// Try to find a 640x480 format
|
|
var preferred_format = null;
|
|
for (var i = 0; i < formats.length; i++) {
|
|
if (formats[i].width === 640 && formats[i].height === 480) {
|
|
preferred_format = formats[i];
|
|
break;
|
|
}
|
|
}
|
|
|
|
var cam;
|
|
if (preferred_format) {
|
|
console.log("Opening with 640x480 format...");
|
|
cam = camera.open(cam_id, preferred_format);
|
|
} else {
|
|
console.log("Opening with default format...");
|
|
cam = camera.open(cam_id);
|
|
}
|
|
|
|
if (cam) {
|
|
console.log("Camera opened successfully!");
|
|
console.log("Driver being used:", cam.get_driver());
|
|
|
|
// Get the actual format being used
|
|
var actual_format = cam.get_format();
|
|
console.log("Actual format being used:");
|
|
console.log(" Pixel format:", actual_format.format);
|
|
console.log(" Resolution:", actual_format.width + "x" + actual_format.height);
|
|
console.log(" FPS:", actual_format.framerate_numerator + "/" + actual_format.framerate_denominator,
|
|
"(" + (actual_format.framerate_numerator / actual_format.framerate_denominator) + ")");
|
|
console.log(" Colorspace:", actual_format.colorspace);
|
|
|
|
// Clean up - camera will be closed when object is freed
|
|
cam = null;
|
|
}
|
|
} |