Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
de0997ab
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
de0997ab
编写于
3月 02, 2015
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3749 from alalek:fix_android_camera_master
上级
8e37a693
52effe9e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
7 deletion
+24
-7
modules/java/generator/src/java/android+JavaCameraView.java
modules/java/generator/src/java/android+JavaCameraView.java
+24
-7
未找到文件。
modules/java/generator/src/java/android+JavaCameraView.java
浏览文件 @
de0997ab
...
...
@@ -43,11 +43,13 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
public
static
class
JavaCameraSizeAccessor
implements
ListItemAccessor
{
@Override
public
int
getWidth
(
Object
obj
)
{
Camera
.
Size
size
=
(
Camera
.
Size
)
obj
;
return
size
.
width
;
}
@Override
public
int
getHeight
(
Object
obj
)
{
Camera
.
Size
size
=
(
Camera
.
Size
)
obj
;
return
size
.
height
;
...
...
@@ -228,6 +230,8 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
}
}
private
boolean
mCameraFrameReady
=
false
;
@Override
protected
boolean
connectCamera
(
int
width
,
int
height
)
{
...
...
@@ -239,6 +243,8 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
if
(!
initializeCamera
(
width
,
height
))
return
false
;
mCameraFrameReady
=
false
;
/* now we can start update thread */
Log
.
d
(
TAG
,
"Starting processing thread"
);
mStopThread
=
false
;
...
...
@@ -248,6 +254,7 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
return
true
;
}
@Override
protected
void
disconnectCamera
()
{
/* 1. We need to stop thread which updating the frames
* 2. Stop camera and release it
...
...
@@ -270,12 +277,16 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
/* Now release camera */
releaseCamera
();
mCameraFrameReady
=
false
;
}
@Override
public
void
onPreviewFrame
(
byte
[]
frame
,
Camera
arg1
)
{
Log
.
d
(
TAG
,
"Preview Frame received. Frame size: "
+
frame
.
length
);
synchronized
(
this
)
{
mFrameChain
[
1
-
mChainIdx
].
put
(
0
,
0
,
frame
);
mFrameChain
[
mChainIdx
].
put
(
0
,
0
,
frame
);
mCameraFrameReady
=
true
;
this
.
notify
();
}
if
(
mCamera
!=
null
)
...
...
@@ -283,10 +294,12 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
}
private
class
JavaCameraFrame
implements
CvCameraViewFrame
{
@Override
public
Mat
gray
()
{
return
mYuvFrameData
.
submat
(
0
,
mHeight
,
0
,
mWidth
);
}
@Override
public
Mat
rgba
()
{
Imgproc
.
cvtColor
(
mYuvFrameData
,
mRgba
,
Imgproc
.
COLOR_YUV2RGBA_NV21
,
4
);
return
mRgba
;
...
...
@@ -312,21 +325,25 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
private
class
CameraWorker
implements
Runnable
{
@Override
public
void
run
()
{
do
{
synchronized
(
JavaCameraView
.
this
)
{
try
{
JavaCameraView
.
this
.
wait
();
while
(!
mCameraFrameReady
&&
!
mStopThread
)
{
JavaCameraView
.
this
.
wait
();
}
}
catch
(
InterruptedException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
if
(
mCameraFrameReady
)
mChainIdx
=
1
-
mChainIdx
;
}
if
(!
mStopThread
)
{
if
(!
mFrameChain
[
mChainIdx
].
empty
())
deliverAndDrawFrame
(
mCameraFrame
[
mChainIdx
]);
mChainIdx
=
1
-
mChainIdx
;
if
(!
mStopThread
&&
mCameraFrameReady
)
{
mCameraFrameReady
=
false
;
if
(!
mFrameChain
[
1
-
mChainIdx
].
empty
())
deliverAndDrawFrame
(
mCameraFrame
[
1
-
mChainIdx
])
;
}
}
while
(!
mStopThread
);
Log
.
d
(
TAG
,
"Finish processing thread"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录