From c2a6b7ea3ce20037aaaccd132f8cb0a8d667dd2a Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 03 八月 2017 09:48:01 +0800
Subject: [PATCH] split client server
---
VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | 95 +++++++++++++++++--------------
VisitFace/RtspNativeCodec/app/build.gradle | 2
VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic | 56 ++++++++++++++++++
VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt | 8 ++
4 files changed, 116 insertions(+), 45 deletions(-)
diff --git a/VisitFace/RtspNativeCodec/app/build.gradle b/VisitFace/RtspNativeCodec/app/build.gradle
index 051d8cd..887c796 100644
--- a/VisitFace/RtspNativeCodec/app/build.gradle
+++ b/VisitFace/RtspNativeCodec/app/build.gradle
@@ -9,7 +9,7 @@
targetSdkVersion 23
ndk {
//abiFilters 'armeabi-v7a', 'x86' , 'x86_64', 'armeabi' , 'arm64-v8a'
- abiFilters 'armeabi-v7a'
+ abiFilters 'arm64-v8a'
}
externalNativeBuild {
cmake {
diff --git a/VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic b/VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic
new file mode 100644
index 0000000..925ec8f
--- /dev/null
+++ b/VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic
@@ -0,0 +1,56 @@
+############################################################
+# SenseTime License
+# License Product: FaceSdk
+# Expiration: 20170731~20171001
+# License SN: e70fbbb8-3108-4e9d-9eea-2ae23febcec4
+############################################################
+sGfdd5sxA8NCweDGA+vU2qzOgOjTn64wtsOftvbVw+MzmQXlL9gGE+JsM0nU
+lOHN/Ai/mjyyPqGW4W5FxJgLnqgzp2g09JkRdjXGle8IEY8ag4wXH8LUT+XY
+OXBBvilrGRazpr4ni1SVkpgxTHoX3GdBY09aLCaJ9uCj1p7uErIgjhC2AQAA
+AAEAAAABJioS4yQz2pTIieigSTrt4ANVz5LRRa52XLWQvB2azvNdASaqkN2B
+qMLx/Hy1Bq6TLqWxL0paF9Xj5t/xptpwmax0BxY+Dn4rsdJj4PnChey1B2Hx
+OLlVDQUj+oZ3lgpzi1wdFp8RLKEDJVa5WRuiV8Po3o+JrDz5DvX+FJIKyrgF
+5piZ69rc/zi0ohoz3VqCCr1OEUv4XSpDkK/g+1NkBHvco/EZe8wLoh0R7nQR
+7yHAzGQRZMEBTaduWIATW1PeBQJxUjKGCv57aCB5jeGk0wg/60/4702f2Dth
+RpZOeMvfbYedzag4SKaHN5rQ9jE+L0dCqREJvkfUVMYJ8wyvAQABAAAAAAAD
+AAAAAAAAAAAAAAAdFrdcj38Pba/zw3OZ/zBgEZR1PVWeUBie2oiKNyH5oui3
+TgKfJH5wsLTGRPVm9S7pvOYfkLzS36uvuwvzZDyuWR2Z4LhnnZuPmaVqjKCs
+8vqKNKoYMjqRuKlLc/y+lAk4U/2HGWDkWruVyV2pwqQhUEreQjDI3kFfwPtR
+Ku7yaU4WpTKlQnuqI0Obs6/RqzM+XXs3TfxMOQAiBu+kWzaZTC19BtXMPFrN
+fAjbMnQde9bo7miN0Suho+Y+NJZgyHmTyQ==
+------------------------------------------------------------
+sGfdd7PDtMmWgChyb3iwc4yZ+5BCYGx2EXGQ6F1UdK81ZgekOHb2G3koylH2
+mvqFCYy5VZG7ptB7PYXR50MlM1Lj7gZvwNmZ+HwSU+RHJ2pDqtCXynT+siWj
+Vnr9ckFcxSDJhFrJgdDJtLgVO69prG1n2mXRV1eEmXQisiN8uir957lSAQAA
+AAEAAABSY7D2PA4tStCS4Vy8knSq2TkH79DUnEPOhCfEnjFWlD6JHrQ3ZqPH
+Kk9ZRH3lZfrokpOuf+H4JFmN9ieRNKrBoHmd0dUb/so/O0l3uqQdgmcWy2Zu
+Ev5rlq9J1n+2k6eH30ZvuDiHvEDlXslriTXu2zr3UTapsmQ2C8KXEAMgEJpP
+n/ADn3aGNOC5WIef/02niO4Ogq1A5ExT8jYryrt3Qbz967OiTbzIu4QF8i5O
+VL6Z52jh8yQUNfCEj/EFNxaeOkzVvdzI/UyKoQz0A/HiaVPaeFPqfGT0W9Fm
+doJCNRT8EUBLNIOArGWS9z4IVt1eUmiSlZdL1UOOhLaTQQk5AQABAAAAAAAD
+AAAAAAAAAAAAAAA5CnBbsitOieiw9TiSddeEoQA33PF9QnEwHYCT3hH9bGrv
+EkdoIK0RfFBvWoNGdCum0IFcPC8FSJVOvzVZ3aYX6HTbY/TDNHUaPdSkxTnP
+rJKSGK44tbNitScYTEx9llrHroB82SO/8jMtdyh5fjn3ml3MUT9w5w1e7UR9
+ra60yXSYoXfNM2C9d2BrvZfnimoo+3UT7Z8/Syu3mMcA+IFT1IRl9JIeJJJ2
++NSjXsIypI6Qot99EodntcKHEv/uhRgNo52fnFJoiKLgjONj0Ei/H0PUGy7t
+Oe5WM6f7be7IRFVfrHcuAjpZITURHNfcY8LLTkQqYkZxQi2G/4CPmgB1y/HK
+clN3H6rTC8QEm2o2elt+MKvp7tILV58=
+------------------------------------------------------------
+sGfdd2b8Ah8BAHE8sFaCje8dykovSMlwZoZ2pG3LuJCrVP+QRq9WeOqXjn2i
+SNk3UdwC5A+XVloTBylotgzLHbvNtObozgJZE7Awg3VB0khDvEooHQ3lXyoL
+sHWaIzR/vHQEOM58zAVu9HQ5egpXBSy+5HNSSgelE+PAQ0PGgk9vmCu/AQAA
+AAIAAABb72vbWMY3qa+tGeT9Q/JAWLkTr9kVwp/Bu9PDxx7+ADQXLzXtkx46
+I68gQD/2CnFjHuejZyOVQ/lgK7d2lFdYruDUA/7QHZYFqcm20Ggne0yNZyO8
+ZVROpjuDk+Wt1V3aHEehofWdPdmHv2V+kCSS+0dniNkG7cKYUGlB1us+B8bS
+dt2yIY/1/XF5ChgRsvPhXJbWEYiDGRQO6JZOWra3UV/6PRZ7WaZ014PQhKL7
++rnONfuoGzyi4QxHXwEXY0WWsim4p9yKvxPP52hyuypKyAZdllh6yLp19BMM
+OmdbS+lWIxfgGv2M/p2iuuNCJJL0qND3GnsAjg037yYlM1gRAAAAAAAAAAAA
+AAAAAAAAAAAAAACKbmaW/YIUkH0xzziHdNgNb7etf83vIBy25xY5DGmoxEXn
+vMFlSfMlzf2P2mBmUB373juUxhjLoV8TeUA/IELZgUvz1c9E+8bP/5zGXC9m
+Te3kYXVC8xZwDKluLNOKCheNPMlLkI1D5hqzFkOtCeK2yaJ0YNi4u+iPJNhl
+CiJQKlT0WIxvBqXyLiiTLQ0Gax+ua4WefxyYnVNqpEx2+kh2wANiE9PeYwh4
+be0ZH4qyi7L+K4TvxCkwKi7n0+QjE1+IEltWfqd4hzW8pAr/9oltZ4ZZJBOL
+D64S5OXF3ujCWKIZ9aAfbIZJKZ4onS2AIa6fzh09xHcdiPosQohc4dQW7lqO
+ITt7XVvgPNbmpu2irMLC2LLDXNxx+7T4Npcbg6y97ACx5wtwH9N4koXnTwQG
+w49V/AOQgzq6sUjgXlIrcIo7oH+Wz1Wp
+############################################################
\ No newline at end of file
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt b/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
index 4b983a8..95d13b3 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt
@@ -7,7 +7,7 @@
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -DANDROID_PLATFORM=android-22 -DANDROID_TOOLCHAIN=gcc -DANDROID_STL=gnustl_static -Wall -UNDEBUG")
set(WORKSPACE_PATH "D:/workspace/proxy")
-set(ARCH "armeabi-v7a")
+set(ARCH "arm64-v8a")
include_directories(
"${WORKSPACE_PATH}/RtspFace"
@@ -68,7 +68,8 @@
"${WORKSPACE_PATH}/RtspFace/PL_BlockGrouping.cpp"
#"${WORKSPACE_PATH}/RtspFace/PL_Queue.cpp"
#"${WORKSPACE_PATH}/RtspFace/PL_Fork2.cpp"
- #"${WORKSPACE_PATH}/RtspFace/PL_AndroidMediaCodecEncoder.cpp"
+ "${WORKSPACE_PATH}/RtspFace/PL_AndroidMediaCodecEncoder.cpp"
+ "${WORKSPACE_PATH}/RtspFace/PL_RTSPServer.cpp"
"${WORKSPACE_PATH}/FaceServer/proto_hton_ntoh.cpp"
"${WORKSPACE_PATH}/FaceServer/PbFaceList.pb.cc"
@@ -80,6 +81,9 @@
"${WORKSPACE_PATH}/RtspFace/CvUtil/CvxText.cpp"
+ "${WORKSPACE_PATH}/RtspFace/FFmpegRTSPServer/LiveServerMediaSubsession.cpp"
+ "${WORKSPACE_PATH}/RtspFace/FFmpegRTSPServer/LiveRTSPServer.cpp"
+ "${WORKSPACE_PATH}/RtspFace/FFmpegRTSPServer/FFmpegH264Source.cpp"
)
# Include libraries needed for native-codec-jni lib
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
index cbdfeb5..7c1adbd 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp
@@ -9,6 +9,7 @@
#include <PL_BlockGrouping.h>
#include <PL_ColorConv.h>
#include <PL_AndroidMediaCodecEncoder.h>
+#include <PL_RTSPServer.h>
CameraWrapper::~CameraWrapper()
{
@@ -102,7 +103,8 @@
PipeLine::register_global_elem_creator("PL_Paint", create_PL_Paint);
PipeLine::register_global_elem_creator("PL_V4L2Source", create_PL_V4L2Source);
PipeLine::register_global_elem_creator("PL_BlockGrouping", create_PL_BlockGrouping);
- //PipeLine::register_global_elem_creator("PL_AndroidMediaCodecEncoder", create_PL_AndroidMediaCodecEncoder);
+ PipeLine::register_global_elem_creator("PL_AndroidMediaCodecEncoder", create_PL_AndroidMediaCodecEncoder);
+ PipeLine::register_global_elem_creator("PL_RTSPServer", create_PL_RTSPServer);
bool ret = initPl_DecoderPl();
if (!ret)
@@ -151,49 +153,59 @@
return false;
}
- //PL_AndroidMediaCodecEncoder_Config amceCfg;
- //amceCfg.ak_bit_rate = 5000000; // 512KB
- //amceCfg.ak_color_format = 21; // COLOR_FormatYUV420SemiPlanar;
- //amceCfg.ak_frame_rate = 25;
- //amceCfg.ak_height = 480;
- //amceCfg.ak_i_frame_interval = 20;
- //amceCfg.ak_mime = "video/avc";
- //amceCfg.ak_width = 640;
- //PL_AndroidMediaCodecEncoder* plAMCE = (PL_AndroidMediaCodecEncoder*)pipeLineRender->push_elem("PL_AndroidMediaCodecEncoder");
- //ret = plAMCE->init(&amceCfg);
+ PL_AndroidMediaCodecEncoder_Config amceCfg;
+ amceCfg.ak_bit_rate = 5000000; // 512KB
+ amceCfg.ak_color_format = 21; // COLOR_FormatYUV420SemiPlanar;
+ amceCfg.ak_frame_rate = 25;
+ amceCfg.ak_height = 480;
+ amceCfg.ak_i_frame_interval = 20;
+ amceCfg.ak_mime = "video/avc";
+ amceCfg.ak_width = 640;
+ PL_AndroidMediaCodecEncoder* plAMCE = (PL_AndroidMediaCodecEncoder*)pipeLineRender->push_elem("PL_AndroidMediaCodecEncoder");
+ ret = plAMCE->init(&amceCfg);
+ if (!ret)
+ {
+ LOG_ERROR << "pipeLineRender.plAMCE init error" << LOG_ENDL;
+ return false;
+ }
+
+ PL_RTSPServer* plRtspServer = (PL_RTSPServer*)pipeLineRender->push_elem("PL_RTSPServer");
+ RTSPServerConfig rtspServerConfig;
+ //rtspServerConfig.syncDeliverFrame = false;
+ ret = plRtspServer->init(&rtspServerConfig);
+ if (!ret)
+ {
+ LOG_ERROR << "pipeLineRender.plRtspServer init error" << LOG_ENDL;
+ return false;
+ }
+
+ //PL_ColorConv_Config PLColorConvCfg;
+ //PL_ColorConv* plColorConv = (PL_ColorConv*)pipeLineRender->push_elem("PL_ColorConv");
+ //ret = plColorConv->init(&PLColorConvCfg);
+ //if (!ret)
+ //{
+ // LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL;
+ // return false;
+ //}
+
+ //PL_Paint_Config plPaintCfg;
+ //plPaintCfg.fontPath = fontPath;
+ //plPaintCfg.plplCtx = &plplContext;
+ //PL_Paint* plPaint = (PL_Paint*)pipeLineRender->push_elem("PL_Paint");
+ //ret = plPaint->init(&plPaintCfg);
//if (!ret)
//{
- // LOG_ERROR << "pipeLineRender.plAMCE init error" << LOG_ENDL;
+ // LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL;
// return false;
//}
- PL_ColorConv_Config PLColorConvCfg;
- PL_ColorConv* plColorConv = (PL_ColorConv*)pipeLineRender->push_elem("PL_ColorConv");
- ret = plColorConv->init(&PLColorConvCfg);
- if (!ret)
- {
- LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL;
- return false;
- }
-
- PL_Paint_Config plPaintCfg;
- plPaintCfg.fontPath = fontPath;
- plPaintCfg.plplCtx = &plplContext;
- PL_Paint* plPaint = (PL_Paint*)pipeLineRender->push_elem("PL_Paint");
- ret = plPaint->init(&plPaintCfg);
- if (!ret)
- {
- LOG_ERROR << "pipeLineRender.plPaint init error" << LOG_ENDL;
- return false;
- }
-
- PL_AndroidSurfaceViewRender* asvRender = (PL_AndroidSurfaceViewRender*)pipeLineRender->push_elem("PL_AndroidSurfaceViewRender");
- ret = asvRender->init(&asvrConfig);
- if (!ret)
- {
- LOG_ERROR << "pipeLineRender.asvRender init error" << LOG_ENDL;
- return false;
- }
+ //PL_AndroidSurfaceViewRender* asvRender = (PL_AndroidSurfaceViewRender*)pipeLineRender->push_elem("PL_AndroidSurfaceViewRender");
+ //ret = asvRender->init(&asvrConfig);
+ //if (!ret)
+ //{
+ // LOG_ERROR << "pipeLineRender.asvRender init error" << LOG_ENDL;
+ // return false;
+ //}
}
return true;
@@ -461,9 +473,7 @@
//#debug
//test_paint(cameraWrapper);
- cameraWrapper.pipeLineRender->pipe(&pm);//#todo
- //if (cameraWrapper.pipeLineRender->check_pipe_complete(last = cameraWrapper.pipeLineRender->pipe(&pm)))
- // last->gain(pm);
+ cameraWrapper.pipeLineRender->pipe(&pm);
}
LOG_INFO << "CameraWrapper::decoder_thd stop, ret=" << LOG_ENDL;
@@ -478,6 +488,7 @@
{
sleep(10);
+ continue;//#todo
if (time(nullptr) - cameraWrapper.lastAliveTime > 20)
{
PL_RTSPClient* rtspClient = (PL_RTSPClient*)cameraWrapper.pipeLineDecoderDetector->at(0);
--
Gitblit v1.8.0