-
大小: 666KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-12
- 语言: Java
- 标签: Android JNI USB摄像头 /dev/video
资源简介
Android摄像头预览功能的实现,主要是通过JNI实现相关功能
代码片段和文件信息
#include “Camera.h“
#include “com_CES_usbcamera_Camera.h“
int camera_fd = -1;
int camera_base = 0;
int flag_init = 0;
int flag_preview = 0;
int Y[256] VR[256] VG[256] UG[256] UB[256];
struct Buffer *buffers = NULL;
int n_buffers = 0;
int initCamera()
{
if(flag_init)
return SUCCESS_LOCAL;
DIR *d;
struct dirent *de;
char *path = DEVICE_PATH;
char name[255];
int fd;
struct v4l2_capability cap;
d = opendir(path);
if(d == 0) {
PRINT_ERROR(“opendir failed“);
return ERROR_LOCAL;
}
while((de = readdir(d)) != 0){
if (!memcmp(de->d_name DEVICE_PREFIX_NAME 5)) {
if(de->d_name[5] == ‘\0‘ || de->d_name[5] < ‘0‘ + camera_base)
continue;
memset(name 0 sizeof(name));
strcpy(name path);
strcat(name de->d_name);
LOGI(“Get device: %s“ name);
fd = open (name O_RDWR);
if(fd < 0) {
PRINT_ERROR(“open failed“);
continue;
}
memset(&cap 0 sizeof(cap));
if (ioctl(fd VIDIOC_QUERYCAP &cap) < 0) {
PRINT_ERROR(“VIDIOC_QUERYCAP“);
close(fd);
continue;
}
if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
LOGE(“%s is no V4L2 device“ name);
close(fd);
continue;
}
if (!(cap.capabilities & V4L2_CAP_STREAMING)) {
LOGE(“%s does not support streaming i/o“ name);
close(fd);
continue;
}
initYUV();
camera_fd = fd;
// setCamera(V4L2_CID_BRIGHTNESS -20);
// setCamera(V4L2_CID_CONTRAST 20);
// setCamera(V4L2_CID_SATURATION 50);
flag_init = 1;
return SUCCESS_LOCAL;
}
}
closedir(d);
flag_init = 0;
return ERROR_LOCAL;
}
void deinitCamera()
{
if(!flag_init)
return;
if(flag_init)
close(camera_fd);
flag_init = 0;
}
int setCamera(int id int value)
{
// struct v4l2_cropcap cropcap;
// struct v4l2_crop crop;
struct v4l2_queryctrl qctrl;
struct v4l2_control ctrl;
/*
memset(&cropcap 0 sizeof(cropcap));
cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (0 == ioctl (camera_fd VIDIOC_CROPCAP &cropcap)) {
crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
crop.c = cropcap.defrect;
ioctl (camera_fd VIDIOC_S_CROP &crop);
LOGI(“VIDIOC_CROPCAP“);
}
*/
qctrl.id = id;
if (ioctl(camera_fd VIDIOC_QUERYCTRL &qctrl) == 0) {
ctrl.id = qctrl.id;
ctrl.value = value;
ioctl(camera_fd VIDIOC_S_CTRL &ctrl);
ctrl.id = qctrl.id;
if (ioctl(camera_fd VIDIOC_G_CTRL &ctrl) < 0) {
PRINT_ERROR(“VIDIOC_G_CTRL“);
return -1;
}
LOGI(“%-14s : id=%08x type=%d minimum=%d maximum=%d\n“
“\t\t value = %d step=%d default_value=%d\n“
qctrl.name qctrl.id qctrl.type qctrl.minimum qctrl.maximum
ctrl.value qctrl.step qctrl.default_value);
return 0;
}
return -1;
}
int startPreview()
{
if(flag_preview)
return SUCCESS_LOCAL;
struct v4l2_format fmt;
struct v4l2_fmtdesc fmtdesc;
struct v4l2_requestbuffers req;
enum v4l2_buf_type type;
int i found = 0;
memset
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-20 08:57 USBCamera\
文件 356 2013-05-17 15:11 USBCamera\.classpath
文件 1185 2013-09-18 11:31 USBCamera\.project
文件 1613 2013-11-28 14:56 USBCamera\AndroidManifest.xm
目录 0 2016-12-14 15:37 USBCamera\assets\
目录 0 2014-05-07 18:16 USBCamera\bin\
文件 218968 2013-11-28 11:39 USBCamera\bin\USBCamera.apk
文件 51394 2013-05-17 11:29 USBCamera\ic_launcher-web.png
目录 0 2016-04-20 08:57 USBCamera\jni\
文件 784 2013-07-29 17:03 USBCamera\jni\Android.mk
文件 10429 2013-09-23 11:28 USBCamera\jni\Camera.c
文件 2144 2013-09-21 10:28 USBCamera\jni\Camera.h
文件 913 2013-07-31 15:53 USBCamera\jni\com_CES_usbcamera_Camera.h
目录 0 2014-05-07 17:28 USBCamera\libs\
文件 393154 2013-05-17 11:29 USBCamera\libs\android-support-v4.jar
目录 0 2016-04-20 08:57 USBCamera\libs\armeabi\
文件 17532 2013-11-28 10:02 USBCamera\libs\armeabi\libCameraJni.so
文件 781 2013-05-17 11:29 USBCamera\proguard-project.txt
文件 563 2013-07-29 13:53 USBCamera\project.properties
目录 0 2014-05-07 17:28 USBCamera\res\
目录 0 2014-05-07 17:28 USBCamera\res\drawable-hdpi\
文件 928 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_1.png
文件 1077 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_2.png
文件 1130 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_3.png
文件 1177 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_4.png
文件 1176 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_5.png
文件 1378 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_6.png
文件 1281 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_full.png
文件 3928 2013-11-27 18:17 USBCamera\res\drawable-hdpi\battery_low.png
文件 516 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_unknown.png
文件 4270 2013-07-27 10:18 USBCamera\res\drawable-hdpi\ic_launcher.png
............此处省略32个文件信息
相关资源
- android 小说阅读器demo
- Android应用源码安卓简单实用课程表项
- android 仿淘宝界面源代码
- android 为知 专业个人知识管理 笔记软
- android各种传感器
- adb push 中文文件
- 基于android平台的串口触摸屏软件
-
Android应用与fr
amework的socket通信 - 五子棋游戏设计毕业设计论文基于A
- 明日科技-android从入门到精通视频
- Android 后台实现录像,无页面
- petsas_rage_against_the_virtual_machine.pdf
- 酷派刷机Android_Download_客服专用_V1.1
- Androidstudio证书文件.zip
- android 自定义 模仿Launcher
- android根据经纬度获取地址
- android动态添加删除组件Layout
- android TCP server 和TCP client通信源码
- unity移动端截图后保存至相册
- android-support-multidex1.0.1.jar
- android-opencv已经编译好的JAR库
- Android读取文本文件的demo
- apkutil解析apk安装包的工具
-
音乐播发器界面 xm
l - Android声波通信改进版
- Android+SDK+2.0+与安装教程
-
Android MediaPla
yer与Http Proxy结合之优化 -
玩转 Android MediaPla
yer之视频预加载 -
Android MediaPla
yer与Http Proxy结合之基础 - android 图片管理器
评论
共有 条评论