From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001
From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 18:12:17 +0800
Subject: [PATCH] H264 NALU解析  并在RTSPServer判断

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h |  113 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 78 insertions(+), 35 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h
index 83c55c0..e32d26a 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h
@@ -1,35 +1,78 @@
-//
-// Created by pansen on 2017/8/4.
-//
-
-#ifndef RTSPNATIVECODEC_REMOTEFUNC_H
-#define RTSPNATIVECODEC_REMOTEFUNC_H
-
-#include <iostream>
-#include <capnp/ez-rpc.h>
-#include "RemoteMethod.proto.h"
-
-//::capnp::Capability::Server
-template <class T> class RemoteServer{
-public:
-//    RemoteServer(std::string host, int port, capnp::EzRpcServer rpcServer) : rpcServer(rpcServer) {
-//        this->rpcServer(kj::heap<T>(),host, port);
-//                //.rpcServer(kj::heap<T>(),host, port);
-//    };
-    RemoteServer(std::string host,int port):host(host),port(port){};
-    ~RemoteServer(){};
-
-    bool start();
-    void stop();
-    bool running;
-private:
-    std::string host;
-    int port;
-
-    static void *rServer_thd(void *arg);
-
-    pthread_t server_thd;
-    pthread_mutex_t mutexSerevr;
-};
-#endif //RTSPNATIVECODEC_REMOTEFUNC_H
-
+//
+// Created by pansen on 2017/8/4.
+//
+
+#ifndef RTSPNATIVECODEC_REMOTEFUNC_H
+#define RTSPNATIVECODEC_REMOTEFUNC_H
+
+#include <iostream>
+#include <capnp/ez-rpc.h>
+#include <logger.h>
+
+template<class T>
+class RemoteServer
+{
+public:
+	RemoteServer(std::string host, int port) : host(host), port(port) {};
+
+	~RemoteServer() {};
+
+	bool start()
+	{
+		LOG_INFO << "server_thd::start" << LOG_ENDL;
+
+		if (running == true)
+		{
+			LOG_INFO << "The server_thd is already running" << LOG_ENDL;
+			return false;
+		}
+		running = true;
+		pthread_mutex_init(&mutexSerevr, NULL); // 鍒濆鍖栦簰鏂ュ璞�,鍔ㄦ�佸姞閿侊紝鐢ㄤ簬server
+
+		int retServer = pthread_create(&server_thid, NULL, RemoteServer::rServer_thd, this);
+
+		if (retServer != 0)
+		{
+			LOGP(ERROR, "server_thd_create: %s/n", strerror(retServer));
+			running = false;
+			return false;
+		}
+		return true;
+	}
+
+	void stop()
+	{
+//    LOG_INFO << "server_thd::stop" << LOG_ENDL;
+//    if (!running)
+//        return;
+//    running = false;
+//    pthread_mutex_destroy(&mutexSerevr);
+		//#todo
+	}
+
+	bool running;
+private:
+	std::string host;
+	int port;
+
+	static void *rServer_thd(void *arg)
+	{
+		try
+		{
+			RemoteServer &rs = *(RemoteServer *) arg;
+			capnp::EzRpcServer trpcServer(kj::heap<T>(), rs.host, rs.port);
+			auto &serverLoop = trpcServer.getWaitScope();
+			kj::NEVER_DONE.wait(serverLoop);
+		}
+		catch (kj::Exception e){
+			LOG_ERROR<<e.getLine()<<LOG_ENDL;
+		}
+
+	}
+
+	pthread_t server_thid;
+	pthread_mutex_t mutexSerevr;
+};
+
+#endif //RTSPNATIVECODEC_REMOTEFUNC_H
+

--
Gitblit v1.8.0