blob: 210b4fb869ef65325669355ce1652b22af7b9e56 [file] [log] [blame]
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import glob, os
from autotest_lib.client.cros.video import device_capability
def find_camera():
"""
Find a V4L camera device.
@return (device_name, device_index). If no camera is found, (None, None).
"""
cameras = [os.path.basename(camera) for camera in
glob.glob('/sys/bus/usb/drivers/uvcvideo/*/video4linux/video*')]
if not cameras:
return None, None
camera = cameras[0]
return camera, int(camera[5:])
def has_builtin_usb_camera():
"""Check if there is a built-in USB camera by capability."""
return device_capability.DeviceCapability().have_capability('usb_camera')
def get_camera_hal_paths():
"""Return the paths of all camera HALs on device."""
return glob.glob('/usr/lib*/camera_hal/*.so')
def get_camera_hal_paths_for_test():
"""Return the paths of all camera HALs on device for test."""
paths = []
for path in get_camera_hal_paths():
name = os.path.basename(path)
# usb.so might be there for external cameras, skip it if there is no
# built-in USB camera.
if name == 'usb.so' and not has_builtin_usb_camera():
continue
paths.append(path)
return paths