first commit
This commit is contained in:
90
GB28181Device/android/native.cpp
Normal file
90
GB28181Device/android/native.cpp
Normal file
@@ -0,0 +1,90 @@
|
||||
#include "sys_inc.h"
|
||||
#include "gb28181.h"
|
||||
#include "live_video.h"
|
||||
#include "live_audio.h"
|
||||
#include "gb28181_cfg.h"
|
||||
#include "native.h"
|
||||
|
||||
extern GB28181_CFG g_gb28181_cfg;
|
||||
|
||||
JNIEXPORT jint JNICALL Java_com_happytime_lcc_Gb28181Device_gb28181Start(JNIEnv * env, jclass this, jstring server_ip, jint server_port, jstring server_id, jstring server_domain, jstring password, jstring device_id, jstring device_name, jstring channel_id, jstring channel_name, jint protocol, jint reg_expires, jint heartbeat_interval, jint heartbeat_count, jint log_enable, jint log_level)
|
||||
{
|
||||
const char * p_server_ip = (*env)->GetStringUTFChars(env, server_ip, 0);
|
||||
const char * p_server_id = (*env)->GetStringUTFChars(env, server_id, 0);
|
||||
const char * p_server_domain = (*env)->GetStringUTFChars(env, server_domain, 0);
|
||||
const char * p_password = (*env)->GetStringUTFChars(env, password, 0);
|
||||
const char * p_device_id = (*env)->GetStringUTFChars(env, device_id, 0);
|
||||
const char * p_device_name = (*env)->GetStringUTFChars(env, device_name, 0);
|
||||
const char * p_channel_id = (*env)->GetStringUTFChars(env, channel_id, 0);
|
||||
const char * p_channel_name = (*env)->GetStringUTFChars(env, channel_name, 0);
|
||||
|
||||
memset(&g_gb28181_cfg, 0, sizeof(g_gb28181_cfg));
|
||||
|
||||
strncpy(g_gb28181_cfg.server_ip, p_server_ip, sizeof(g_gb28181_cfg.server_ip)-1);
|
||||
strncpy(g_gb28181_cfg.server_id, p_server_id, sizeof(g_gb28181_cfg.server_id)-1);
|
||||
strncpy(g_gb28181_cfg.server_domain, p_server_domain, sizeof(g_gb28181_cfg.server_domain)-1);
|
||||
strncpy(g_gb28181_cfg.password, p_password, sizeof(g_gb28181_cfg.password)-1);
|
||||
strncpy(g_gb28181_cfg.device_id, p_device_id, sizeof(g_gb28181_cfg.device_id)-1);
|
||||
strncpy(g_gb28181_cfg.device_name, p_device_name, sizeof(g_gb28181_cfg.device_name)-1);
|
||||
g_gb28181_cfg.channel_nums = 1;
|
||||
strncpy(g_gb28181_cfg.channels[0].cid, p_channel_id, sizeof(g_gb28181_cfg.channels[0].cid)-1);
|
||||
strncpy(g_gb28181_cfg.channels[0].cname, p_channel_name, sizeof(g_gb28181_cfg.channels[0].cname)-1);
|
||||
strcpy(g_gb28181_cfg.channels[0].media_url, "live");
|
||||
g_gb28181_cfg.server_port = server_port;
|
||||
g_gb28181_cfg.local_port = 0;
|
||||
g_gb28181_cfg.protocol = protocol;
|
||||
g_gb28181_cfg.media_protocol = 1;
|
||||
g_gb28181_cfg.reg_expires = reg_expires;
|
||||
g_gb28181_cfg.heartbeat_interval = heartbeat_interval;
|
||||
g_gb28181_cfg.heartbeat_count = heartbeat_count;
|
||||
g_gb28181_cfg.log_enable = log_enable;
|
||||
g_gb28181_cfg.log_level = log_level;
|
||||
g_gb28181_cfg.media_base_port = 19000;
|
||||
|
||||
if (g_gb28181_cfg.log_enable)
|
||||
{
|
||||
log_init("/sdcard/gb28181device.log");
|
||||
log_set_level(g_gb28181_cfg.log_level);
|
||||
}
|
||||
else
|
||||
{
|
||||
log_close();
|
||||
}
|
||||
|
||||
int ret = gb28181_start1();
|
||||
|
||||
(*env)->ReleaseStringChars(env, server_ip, p_server_ip);
|
||||
(*env)->ReleaseStringChars(env, server_id, p_server_id);
|
||||
(*env)->ReleaseStringChars(env, server_domain, p_server_domain);
|
||||
(*env)->ReleaseStringChars(env, password, p_password);
|
||||
(*env)->ReleaseStringChars(env, device_id, p_device_id);
|
||||
(*env)->ReleaseStringChars(env, device_name, p_device_name);
|
||||
(*env)->ReleaseStringChars(env, channel_id, p_channel_id);
|
||||
(*env)->ReleaseStringChars(env, channel_name, p_channel_name);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_happytime_lcc_Gb28181Device_gb28181Stop(JNIEnv * env, jclass this)
|
||||
{
|
||||
gb28181_stop();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_happytime_lcc_Gb28181Device_sendVideoData(JNIEnv * env, jclass this, jint devid, jbyteArray data, jint len)
|
||||
{
|
||||
jbyte * p_data = (*env)->GetByteArrayElements(env, data, NULL);
|
||||
|
||||
media_live_put_video(devid, p_data, len);
|
||||
|
||||
(*env)->ReleaseByteArrayElements(env, data, p_data, 0);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_happytime_lcc_Gb28181Device_sendAudioData(JNIEnv * env, jclass this, jint devid, jbyteArray data, jint len)
|
||||
{
|
||||
jbyte * p_data = (*env)->GetByteArrayElements(env, data, NULL);
|
||||
|
||||
media_live_put_audio(devid, p_data, len, 0);
|
||||
|
||||
(*env)->ReleaseByteArrayElements(env, data, p_data, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user