/** * \brief Open native capture device. * \param env JNI environment * \param obj DSCaptureDevice object * \param ptr native pointer of DSCaptureDevice */ JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice_open (JNIEnv* env, jobject obj, jlong ptr) { DSCaptureDevice* dev = reinterpret_cast<DSCaptureDevice*>(ptr); dev->buildGraph(); dev->start(); }
JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_jmfext_media_protocol_directshow_DSCaptureDevice_start (JNIEnv *env, jobject obj, jlong ptr) { DSCaptureDevice *thiz = reinterpret_cast<DSCaptureDevice *>(ptr); return (jint) (thiz->start()); }
/** * \brief Set format of native capture device. * \param env JNI environment * \param obj DSCaptureDevice object * \param ptr native pointer of DSCaptureDevice * \param format DSFormat to set */ JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice_setFormat (JNIEnv* env, jobject obj, jlong ptr, jobject format) { DSCaptureDevice* dev = reinterpret_cast<DSCaptureDevice*>(ptr); VideoFormat fmt; jclass clazz = env->GetObjectClass(format); if(clazz) { jfieldID fieldH = env->GetFieldID(clazz, "height", "I"); jfieldID fieldW = env->GetFieldID(clazz, "width", "I"); jfieldID fieldF = env->GetFieldID(clazz, "pixelFormat", "J"); jlong f = env->GetLongField(format, fieldF); jint w = env->GetIntField(format, fieldW); jint h = env->GetIntField(format, fieldH); fmt.width = w; fmt.height = h; fmt.pixelFormat = (unsigned long)f; dev->setFormat(fmt); dev->start(); } }