Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
a88360be
Commit
a88360be
authored
Oct 31, 2013
by
Andrey Pavlenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor refactoring of Android VideoCapture jni code to make it similar to generated one
parent
ef9f6905
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
175 deletions
+99
-175
VideoCapture.cpp
modules/java/generator/src/cpp/VideoCapture.cpp
+99
-175
No files found.
modules/java/generator/src/cpp/VideoCapture.cpp
View file @
a88360be
...
...
@@ -8,6 +8,28 @@
#include "opencv2/highgui/highgui.hpp"
using
namespace
cv
;
/// throw java exception
static
void
throwJavaException
(
JNIEnv
*
env
,
const
std
::
exception
*
e
,
const
char
*
method
)
{
std
::
string
what
=
"unknown exception"
;
jclass
je
=
0
;
if
(
e
)
{
std
::
string
exception_type
=
"std::exception"
;
if
(
dynamic_cast
<
const
cv
::
Exception
*>
(
e
))
{
exception_type
=
"cv::Exception"
;
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
}
what
=
exception_type
+
": "
+
e
->
what
();
}
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
what
.
c_str
());
LOGE
(
"%s caught %s"
,
method
,
what
.
c_str
());
(
void
)
method
;
// avoid "unused" warning
}
extern
"C"
{
...
...
@@ -21,24 +43,17 @@ JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__
JNIEXPORT
jlong
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__
(
JNIEnv
*
env
,
jclass
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::VideoCapture()"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
_retval_
=
new
VideoCapture
(
);
return
(
jlong
)
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
0
;
}
...
...
@@ -52,24 +67,17 @@ JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__I
JNIEXPORT
jlong
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__I
(
JNIEnv
*
env
,
jclass
,
jint
device
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::VideoCapture(int device)"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
_retval_
=
new
VideoCapture
(
device
);
return
(
jlong
)
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__I()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
0
;
}
...
...
@@ -84,24 +92,18 @@ JNIEXPORT jdouble JNICALL Java_org_opencv_highgui_VideoCapture_n_1get
JNIEXPORT
jdouble
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1get
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jint
propId
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::get(int propId)"
;
try
{
LOGD
(
"
highgui::VideoCapture_n_1get()"
);
LOGD
(
"
%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
double
_retval_
=
me
->
get
(
propId
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1get() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1get() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1get()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
0
;
}
...
...
@@ -116,24 +118,18 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1grab
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1grab
(
JNIEnv
*
env
,
jclass
,
jlong
self
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::grab()"
;
try
{
LOGD
(
"
highgui::VideoCapture_n_1grab()"
);
LOGD
(
"
%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
grab
(
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1grab() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1grab() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1grab()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -148,24 +144,18 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1isOpened
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1isOpened
(
JNIEnv
*
env
,
jclass
,
jlong
self
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::isOpened()"
;
try
{
LOGD
(
"
highgui::VideoCapture_n_1isOpened()"
);
LOGD
(
"
%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
isOpened
(
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1isOpened() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1isOpened() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1isOpened()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -179,24 +169,18 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1open__JI
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1open__JI
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jint
device
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::open(int device)"
;
try
{
LOGD
(
"
highgui::VideoCapture_n_1open__JI()"
);
LOGD
(
"
%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
open
(
device
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1open__JI() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1open__JI() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1open__JI()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -211,25 +195,19 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1read
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1read
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jlong
image_nativeObj
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::read(Mat image)"
;
try
{
LOGD
(
"
highgui::VideoCapture_n_1read()"
);
LOGD
(
"
%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
read
(
image
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1read() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1read() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1read()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -244,30 +222,18 @@ JNIEXPORT void JNICALL Java_org_opencv_highgui_VideoCapture_n_1release
JNIEXPORT
void
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1release
(
JNIEnv
*
env
,
jclass
,
jlong
self
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::release()"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1release()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
me
->
release
(
);
return
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1release() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1release() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1release()}"
);
return
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
;
}
...
...
@@ -282,31 +248,19 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJI
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJI
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jlong
image_nativeObj
,
jint
channel
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::retrieve(Mat image, int channel)"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
retrieve
(
image
,
channel
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1retrieve__JJI()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -317,31 +271,19 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJ
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJ
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jlong
image_nativeObj
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::retrieve(Mat image)"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
retrieve
(
image
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1retrieve__JJ()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
...
...
@@ -356,62 +298,44 @@ JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1set
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1set
(
JNIEnv
*
env
,
jclass
,
jlong
self
,
jint
propId
,
jdouble
value
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::set(int propId, double value)"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1set()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
set
(
propId
,
value
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1set() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1set() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1set()}"
);
return
0
;
throwJavaException
(
env
,
0
,
method_name
);
}
return
false
;
}
//
// string VideoCapture::getSupportedPreviewSizes(...)
//
JNIEXPORT
jstring
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1getSupportedPreviewSizes
(
JNIEnv
*
env
,
jclass
,
jlong
self
);
JNIEXPORT
jstring
JNICALL
Java_org_opencv_highgui_VideoCapture_n_1getSupportedPreviewSizes
(
JNIEnv
*
env
,
jclass
,
jlong
self
)
{
static
const
char
method_name
[]
=
"highgui::VideoCapture::getSupportedPreviewSizes(...)"
;
try
{
LOGD
(
"highgui::VideoCapture_n_1set()"
);
LOGD
(
"%s"
,
method_name
);
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
union
{
double
prop
;
const
char
*
name
;}
u
;
u
.
prop
=
me
->
get
(
CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING
);
return
env
->
NewStringUTF
(
u
.
name
);
}
catch
(
cv
::
Exception
e
)
{
LOGD
(
"highgui::VideoCapture_n_1getSupportedPreviewSizes() catched cv::Exception: %s"
,
e
.
what
());
jclass
je
=
env
->
FindClass
(
"org/opencv/core/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
env
->
NewStringUTF
(
""
);
}
catch
(
const
std
::
exception
&
e
)
{
throwJavaException
(
env
,
&
e
,
method_name
);
}
catch
(...)
{
LOGD
(
"highgui::VideoCapture_n_1getSupportedPreviewSizes() catched unknown exception (...)"
);
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1getSupportedPreviewSizes()}"
);
return
env
->
NewStringUTF
(
""
);
throwJavaException
(
env
,
0
,
method_name
);
}
return
env
->
NewStringUTF
(
""
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment