From d4e098f40179dd3ddbe134bdfffb503b0d5dddae Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Tue, 13 Aug 2013 12:04:36 +0400 Subject: [PATCH] enabling of VideoCapture(String) [fixing issue #3207] - enable auto-wrap of VideoCapture; - minor refactoring of generated code templates. --- modules/java/generator/gen_java.py | 104 ++++- .../java/generator/src/cpp/VideoCapture.cpp | 435 ------------------ .../src/java/highgui+VideoCapture.java | 240 ---------- 3 files changed, 87 insertions(+), 692 deletions(-) delete mode 100644 modules/java/generator/src/cpp/VideoCapture.cpp delete mode 100644 modules/java/generator/src/java/highgui+VideoCapture.java diff --git a/modules/java/generator/gen_java.py b/modules/java/generator/gen_java.py index 1da5cb68c6..1e084c70e3 100755 --- a/modules/java/generator/gen_java.py +++ b/modules/java/generator/gen_java.py @@ -12,7 +12,7 @@ class_ignore_list = ( #core "FileNode", "FileStorage", "KDTree", #highgui - "VideoWriter", "VideoCapture", + "VideoWriter", ) const_ignore_list = ( @@ -512,6 +512,54 @@ JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Core_n_1getTextSize "resizeWindow" : {'j_code' : '', 'jn_code' : '', 'cpp_code' : '' }, }, # Highgui + 'VideoCapture' : + { + "getSupportedPreviewSizes" : + { + 'j_code' : +""" + public java.util.List getSupportedPreviewSizes() + { + String[] sizes_str = getSupportedPreviewSizes_0(nativeObj).split(","); + java.util.List sizes = new java.util.LinkedList(); + + for (String str : sizes_str) { + String[] wh = str.split("x"); + sizes.add(new org.opencv.core.Size(Double.parseDouble(wh[0]), Double.parseDouble(wh[1]))); + } + + return sizes; + } + +""", + 'jn_code' : +"""\n private static native String getSupportedPreviewSizes_0(long nativeObj);\n""", + 'cpp_code' : +""" +JNIEXPORT jstring JNICALL Java_org_opencv_highgui_VideoCapture_getSupportedPreviewSizes_10 + (JNIEnv *env, jclass, jlong self); + +JNIEXPORT jstring JNICALL Java_org_opencv_highgui_VideoCapture_getSupportedPreviewSizes_10 + (JNIEnv *env, jclass, jlong self) +{ + static const char method_name[] = "highgui::VideoCapture_getSupportedPreviewSizes_10()"; + try { + 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(const std::exception &e) { + throwJavaException(env, &e, method_name); + } catch (...) { + throwJavaException(env, 0, method_name); + } + return env->NewStringUTF(""); +} + +""", + }, # getSupportedPreviewSizes + }, # VideoCapture } # { class : { func : {arg_name : ctype} } } @@ -878,21 +926,48 @@ public class %(jc)s { self.add_func(decl) self.cpp_code = StringIO() - self.cpp_code.write(""" + self.cpp_code.write(Template(""" // // This file is auto-generated, please don't edit! // -#define LOG_TAG "org.opencv.%(m)s" +#define LOG_TAG "org.opencv.$m" #include "common.h" -#include "opencv2/%(m)s/%(m)s.hpp" + +#include "opencv2/opencv_modules.hpp" +#ifdef HAVE_OPENCV_$M +#include "opencv2/$m/$m.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(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" { -""" % {'m' : module} ) +""").substitute( m = module, M = module.upper() ) ) # generate code for the classes for name in self.classes.keys(): @@ -907,7 +982,7 @@ extern "C" { java_code = Template(java_code).substitute(imports = imports) self.save("%s/%s+%s.java" % (output_path, module, self.classes[name].jname), java_code) - self.cpp_code.write( '\n} // extern "C"\n' ) + self.cpp_code.write( '\n} // extern "C"\n\n#endif // HAVE_OPENCV_%s\n' % module.upper() ) self.save(output_path+"/"+module+".cpp", self.cpp_code.getvalue()) # report @@ -1266,23 +1341,18 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname ($argst); JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname ($args) { + static const char method_name[] = "$module::$fname()"; try { - LOGD("$module::$fname()"); + LOGD("%s", method_name); $prologue $retval$cvname( $cvargs ); $epilogue$ret - } catch(cv::Exception e) { - LOGD("$module::$fname() 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()); - $default + } catch(const std::exception &e) { + throwJavaException(env, &e, method_name); } catch (...) { - LOGD("$module::$fname() catched unknown exception (...)"); - jclass je = env->FindClass("java/lang/Exception"); - env->ThrowNew(je, "Unknown exception in JNI code {$module::$fname()}"); - $default + throwJavaException(env, 0, method_name); } + $default } diff --git a/modules/java/generator/src/cpp/VideoCapture.cpp b/modules/java/generator/src/cpp/VideoCapture.cpp deleted file mode 100644 index 5b9266660f..0000000000 --- a/modules/java/generator/src/cpp/VideoCapture.cpp +++ /dev/null @@ -1,435 +0,0 @@ -#define LOG_TAG "org.opencv.highgui.VideoCapture" -#include "common.h" - -#include "opencv2/opencv_modules.hpp" -#ifdef HAVE_OPENCV_HIGHGUI - -#include "opencv2/highgui/highgui_c.h" -#include "opencv2/highgui/highgui.hpp" -using namespace cv; - - -extern "C" { - -// -// VideoCapture::VideoCapture() -// - -JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__ - (JNIEnv* env, jclass); - -JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__ - (JNIEnv* env, jclass) -{ - try { - LOGD("highgui::VideoCapture_n_1VideoCapture__()"); - - 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 (...) { - 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; - } -} - - -// -// VideoCapture::VideoCapture(int device) -// - -JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__I - (JNIEnv* env, jclass, jint device); - -JNIEXPORT jlong JNICALL Java_org_opencv_highgui_VideoCapture_n_1VideoCapture__I - (JNIEnv* env, jclass, jint device) -{ - try { - LOGD("highgui::VideoCapture_n_1VideoCapture__I()"); - - 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 (...) { - 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; - } -} - - - -// -// double VideoCapture::get(int propId) -// - -JNIEXPORT jdouble JNICALL Java_org_opencv_highgui_VideoCapture_n_1get - (JNIEnv* env, jclass, jlong self, jint propId); - -JNIEXPORT jdouble JNICALL Java_org_opencv_highgui_VideoCapture_n_1get - (JNIEnv* env, jclass, jlong self, jint propId) -{ - try { - LOGD("highgui::VideoCapture_n_1get()"); - 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 (...) { - 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; - } -} - - - -// -// bool VideoCapture::grab() -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1grab - (JNIEnv* env, jclass, jlong self); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1grab - (JNIEnv* env, jclass, jlong self) -{ - try { - LOGD("highgui::VideoCapture_n_1grab()"); - 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 (...) { - 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; - } -} - - - -// -// bool VideoCapture::isOpened() -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1isOpened - (JNIEnv* env, jclass, jlong self); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1isOpened - (JNIEnv* env, jclass, jlong self) -{ - try { - LOGD("highgui::VideoCapture_n_1isOpened()"); - 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 (...) { - 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; - } -} - - -// -// bool VideoCapture::open(int device) -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1open__JI - (JNIEnv* env, jclass, jlong self, jint device); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1open__JI - (JNIEnv* env, jclass, jlong self, jint device) -{ - try { - LOGD("highgui::VideoCapture_n_1open__JI()"); - 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 (...) { - 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; - } -} - - - -// -// bool VideoCapture::read(Mat image) -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1read - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1read - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj) -{ - try { - LOGD("highgui::VideoCapture_n_1read()"); - 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 (...) { - 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; - } -} - - - -// -// void VideoCapture::release() -// - -JNIEXPORT void JNICALL Java_org_opencv_highgui_VideoCapture_n_1release - (JNIEnv* env, jclass, jlong self); - -JNIEXPORT void JNICALL Java_org_opencv_highgui_VideoCapture_n_1release - (JNIEnv* env, jclass, jlong self) -{ - try { - - LOGD("highgui::VideoCapture_n_1release()"); - - 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 (...) { - - 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; - } -} - - - -// -// bool VideoCapture::retrieve(Mat image, int channel = 0) -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJI - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj, jint channel); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJI - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj, jint channel) -{ - try { - - LOGD("highgui::VideoCapture_n_1retrieve__JJI()"); - - 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 (...) { - - 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; - } -} - - - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJ - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1retrieve__JJ - (JNIEnv* env, jclass, jlong self, jlong image_nativeObj) -{ - try { - - LOGD("highgui::VideoCapture_n_1retrieve__JJ()"); - - 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 (...) { - - 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; - } -} - - - -// -// bool VideoCapture::set(int propId, double value) -// - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1set - (JNIEnv* env, jclass, jlong self, jint propId, jdouble value); - -JNIEXPORT jboolean JNICALL Java_org_opencv_highgui_VideoCapture_n_1set - (JNIEnv* env, jclass, jlong self, jint propId, jdouble value) -{ - try { - - LOGD("highgui::VideoCapture_n_1set()"); - - 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 (...) { - - 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; - } -} - -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) -{ - try { - - LOGD("highgui::VideoCapture_n_1set()"); - - 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 (...) { - - 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(""); - } -} - - - -// -// native support for java finalize() -// static void VideoCapture::n_delete( __int64 self ) -// - -JNIEXPORT void JNICALL Java_org_opencv_highgui_VideoCapture_n_1delete - (JNIEnv*, jclass, jlong self); - -JNIEXPORT void JNICALL Java_org_opencv_highgui_VideoCapture_n_1delete - (JNIEnv*, jclass, jlong self) -{ - delete (VideoCapture*) self; -} - -} // extern "C" - -#endif // HAVE_OPENCV_HIGHGUI \ No newline at end of file diff --git a/modules/java/generator/src/java/highgui+VideoCapture.java b/modules/java/generator/src/java/highgui+VideoCapture.java deleted file mode 100644 index 6f3b03540d..0000000000 --- a/modules/java/generator/src/java/highgui+VideoCapture.java +++ /dev/null @@ -1,240 +0,0 @@ -package org.opencv.highgui; - -import java.util.List; -import java.util.LinkedList; - -import org.opencv.core.Mat; -import org.opencv.core.Size; - -// C++: class VideoCapture -//javadoc: VideoCapture -public class VideoCapture { - - protected final long nativeObj; - - protected VideoCapture(long addr) { - nativeObj = addr; - } - - // - // C++: VideoCapture::VideoCapture() - // - - // javadoc: VideoCapture::VideoCapture() - public VideoCapture() - { - - nativeObj = n_VideoCapture(); - - return; - } - - // - // C++: VideoCapture::VideoCapture(int device) - // - - // javadoc: VideoCapture::VideoCapture(device) - public VideoCapture(int device) - { - - nativeObj = n_VideoCapture(device); - - return; - } - - // - // C++: double VideoCapture::get(int propId) - // - -/** - * Returns the specified "VideoCapture" property. - * - * Note: When querying a property that is not supported by the backend used by - * the "VideoCapture" class, value 0 is returned. - * - * @param propId property identifier; it can be one of the following: - * * CV_CAP_PROP_FRAME_WIDTH width of the frames in the video stream. - * * CV_CAP_PROP_FRAME_HEIGHT height of the frames in the video stream. - * - * @see org.opencv.highgui.VideoCapture.get - */ - public double get(int propId) - { - - double retVal = n_get(nativeObj, propId); - - return retVal; - } - - public List getSupportedPreviewSizes() - { - String[] sizes_str = n_getSupportedPreviewSizes(nativeObj).split(","); - List sizes = new LinkedList(); - - for (String str : sizes_str) { - String[] wh = str.split("x"); - sizes.add(new Size(Double.parseDouble(wh[0]), Double.parseDouble(wh[1]))); - } - - return sizes; - } - - // - // C++: bool VideoCapture::grab() - // - - // javadoc: VideoCapture::grab() - public boolean grab() - { - - boolean retVal = n_grab(nativeObj); - - return retVal; - } - - // - // C++: bool VideoCapture::isOpened() - // - - // javadoc: VideoCapture::isOpened() - public boolean isOpened() - { - - boolean retVal = n_isOpened(nativeObj); - - return retVal; - } - - // - // C++: bool VideoCapture::open(int device) - // - - // javadoc: VideoCapture::open(device) - public boolean open(int device) - { - - boolean retVal = n_open(nativeObj, device); - - return retVal; - } - - // - // C++: bool VideoCapture::read(Mat image) - // - - // javadoc: VideoCapture::read(image) - public boolean read(Mat image) - { - - boolean retVal = n_read(nativeObj, image.nativeObj); - - return retVal; - } - - // - // C++: void VideoCapture::release() - // - - // javadoc: VideoCapture::release() - public void release() - { - - n_release(nativeObj); - - return; - } - - // - // C++: bool VideoCapture::retrieve(Mat image, int channel = 0) - // - - // javadoc: VideoCapture::retrieve(image, channel) - public boolean retrieve(Mat image, int channel) - { - - boolean retVal = n_retrieve(nativeObj, image.nativeObj, channel); - - return retVal; - } - - // javadoc: VideoCapture::retrieve(image) - public boolean retrieve(Mat image) - { - - boolean retVal = n_retrieve(nativeObj, image.nativeObj); - - return retVal; - } - - // - // C++: bool VideoCapture::set(int propId, double value) - // - -/** - * Sets a property in the "VideoCapture". - * - * @param propId property identifier; it can be one of the following: - * * CV_CAP_PROP_FRAME_WIDTH width of the frames in the video stream. - * * CV_CAP_PROP_FRAME_HEIGHT height of the frames in the video stream. - * @param value value of the property. - * - * @see org.opencv.highgui.VideoCapture.set - */ - public boolean set(int propId, double value) - { - - boolean retVal = n_set(nativeObj, propId, value); - - return retVal; - } - - @Override - protected void finalize() throws Throwable { - n_delete(nativeObj); - super.finalize(); - } - - // C++: VideoCapture::VideoCapture() - private static native long n_VideoCapture(); - - // C++: VideoCapture::VideoCapture(string filename) - private static native long n_VideoCapture(java.lang.String filename); - - // C++: VideoCapture::VideoCapture(int device) - private static native long n_VideoCapture(int device); - - // C++: double VideoCapture::get(int propId) - private static native double n_get(long nativeObj, int propId); - - // C++: bool VideoCapture::grab() - private static native boolean n_grab(long nativeObj); - - // C++: bool VideoCapture::isOpened() - private static native boolean n_isOpened(long nativeObj); - - // C++: bool VideoCapture::open(string filename) - private static native boolean n_open(long nativeObj, java.lang.String filename); - - // C++: bool VideoCapture::open(int device) - private static native boolean n_open(long nativeObj, int device); - - // C++: bool VideoCapture::read(Mat image) - private static native boolean n_read(long nativeObj, long image_nativeObj); - - // C++: void VideoCapture::release() - private static native void n_release(long nativeObj); - - // C++: bool VideoCapture::retrieve(Mat image, int channel = 0) - private static native boolean n_retrieve(long nativeObj, long image_nativeObj, int channel); - - private static native boolean n_retrieve(long nativeObj, long image_nativeObj); - - // C++: bool VideoCapture::set(int propId, double value) - private static native boolean n_set(long nativeObj, int propId, double value); - - private static native String n_getSupportedPreviewSizes(long nativeObj); - - // native support for java finalize() - private static native void n_delete(long nativeObj); - -}