Conflicts: modules/java/generator/src/cpp/VideoCapture.cpppull/1748/head
parent
8f5eaca354
commit
65389e41db
4 changed files with 4 additions and 626 deletions
@ -1,359 +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; |
||||
|
||||
/// 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" { |
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::VideoCapture()"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* _retval_ = new VideoCapture( ); |
||||
return (jlong) _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::VideoCapture(int device)"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* _retval_ = new VideoCapture( device ); |
||||
return (jlong) _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::get(int propId)"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
double _retval_ = me->get( propId ); |
||||
return _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::grab()"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
bool _retval_ = me->grab( ); |
||||
return _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::isOpened()"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
bool _retval_ = me->isOpened( ); |
||||
return _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::open(int device)"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
bool _retval_ = me->open( device ); |
||||
return _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::read(Mat image)"; |
||||
try { |
||||
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(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::release()"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
me->release( ); |
||||
return; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::retrieve(Mat image, int channel)"; |
||||
try { |
||||
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(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
|
||||
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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::retrieve(Mat image)"; |
||||
try { |
||||
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(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
throwJavaException(env, 0, method_name); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
|
||||
|
||||
//
|
||||
// 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) |
||||
{ |
||||
static const char method_name[] = "highgui::VideoCapture::set(int propId, double value)"; |
||||
try { |
||||
LOGD("%s", method_name); |
||||
VideoCapture* me = (VideoCapture*) self; //TODO: check for NULL
|
||||
bool _retval_ = me->set( propId, value ); |
||||
return _retval_; |
||||
} catch(const std::exception &e) { |
||||
throwJavaException(env, &e, method_name); |
||||
} catch (...) { |
||||
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("%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(""); |
||||
} |
||||
|
||||
|
||||
|
||||
//
|
||||
// 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
|
@ -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); |
||||
|
||||
} |
Loading…
Reference in new issue