enabling of VideoCapture(String) [fixing issue #3207]
authorAndrey Pavlenko <andrey.pavlenko@itseez.com>
Tue, 13 Aug 2013 08:04:36 +0000 (12:04 +0400)
committerAndrey Pavlenko <andrey.pavlenko@itseez.com>
Tue, 13 Aug 2013 08:04:36 +0000 (12:04 +0400)
- enable auto-wrap of VideoCapture;
- minor refactoring of generated code templates.

modules/java/generator/gen_java.py
modules/java/generator/src/cpp/VideoCapture.cpp [deleted file]
modules/java/generator/src/java/highgui+VideoCapture.java [deleted file]

index 1da5cb6..1e084c7 100755 (executable)
@@ -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<org.opencv.core.Size> getSupportedPreviewSizes()
+    {
+        String[] sizes_str = getSupportedPreviewSizes_0(nativeObj).split(",");
+        java.util.List<org.opencv.core.Size> sizes = new java.util.LinkedList<org.opencv.core.Size>();
+
+        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<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" {
 
-""" % {'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 (file)
index 5b92666..0000000
+++ /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 (file)
index 6f3b035..0000000
+++ /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 <a href="http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-get">org.opencv.highgui.VideoCapture.get</a>
- */
-    public double get(int propId)
-    {
-
-        double retVal = n_get(nativeObj, propId);
-
-        return retVal;
-    }
-
-    public List<Size> getSupportedPreviewSizes()
-    {
-        String[] sizes_str = n_getSupportedPreviewSizes(nativeObj).split(",");
-        List<Size> sizes = new LinkedList<Size>();
-
-        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 <a href="http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-set">org.opencv.highgui.VideoCapture.set</a>
- */
-    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);
-
-}