From 307706a63521650ca1cc7eebff0a931b432539c3 Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 11 一月 2017 19:09:50 +0800
Subject: [PATCH] faceAPI整合
---
RtspFace/ev_server.cpp | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/RtspFace/ev_server.cpp b/RtspFace/ev_server.cpp
index 4baa6b2..a6367c1 100644
--- a/RtspFace/ev_server.cpp
+++ b/RtspFace/ev_server.cpp
@@ -157,16 +157,15 @@
bool closeClient = true;
if (client->proc != nullptr)
{
- EVClientStub cs;
+ EVClientStub cs(client->recvbuff, client->recvbuff_end);
cs.id = client->fd;
- cs.recvBuff = client->recvbuff;
- cs.recvBuffSize = client->recvbuff_end;
closeClient = !(client->proc(cs));
if (cs.sendBuff != nullptr && cs.sendBuffSize > 0)
{
-
- //#todo bufferevent_write
+ size_t writeSize = bufferevent_write(bufev, cs.sendBuff, cs.sendBuffSize);
+ if (writeSize != cs.sendBuffSize)
+ LOG_WARN << "server send truncate " << (cs.sendBuffSize - writeSize) << " bytes";
if (cs.deleteSendBuff)
delete[] cs.sendBuff;
@@ -283,3 +282,17 @@
return EXIT_SUCCESS;
}
+
+void ev_send_status_packet(EVClientStub& client, EVPStatus::EVPS status)
+{
+ client.sendBuffSize = sizeof(EVPHeader)+sizeof(EVP_Status);
+ client.sendBuff = new uint8_t[client.sendBuffSize];
+ client.deleteSendBuff = true;
+
+ EVPHeader* evpHeader = new (client.sendBuff) EVPHeader;
+ evpHeader->cmd = EVPCommand::EVPC_STATUS;
+ evpHeader->size = client.sendBuffSize;
+
+ EVP_Status* evpStatus = new (client.sendBuff + sizeof(EVPHeader)) EVP_Status;
+ evpStatus->status = status;
+}
--
Gitblit v1.8.0