Exemple #1
0
int main()
{
	gblSetExitState(DVS_WORKING);
	// 设置当前设备的视频通道数;
	gblSetVideoChannels(16);
	//gblSetVideoChannels(8);

	// init ortp interface
	rtp_init();
	
	// tcp listen thread create
	if (tcp_listen_thread_start(LOCAL_TCP_PORT) != 0)
	{
		printf("[main] open tcp listen thread failed!\n");
		return -1;
	}
	// uart tcp listen thread create
	if (uart_tcp_listen_thread_start(UART_LOCAL_TCP_PORT) != 0)
	{
		printf("[main] open uart tcp listen thread failed!\n");
		return -1;
	}

	OSA_ThrHndl sshThrHandle;
	if (OSA_thrCreate(&sshThrHandle,ssh_interact_thr,OSA_THR_PRI_DEFAULT,OSA_THR_STACK_SIZE_DEFAULT,NULL))
	{
		printf("open ssh interact thread failed\n");
		return -1;
	}

	if (start_all_threads() < 0)
		return -1;

	while ( gblGetExitState() == DVS_WORKING )
	{
		sleep(1);
	}

	stop_all_threads();

	// close ortp interface
	rtp_exit();

	// close tcp listen thread
	clean_tcp_listen_thread();

	// close uart tcp listen thread
	clean_uart_tcp_listen_thread();
	

	return gblGetExitState();
}
	void stop() {
		scoped_lock lock(mutex_);
		stop_all_threads(lock);
	}