|
|
|
@ -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(""); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|