houxiao
2017-08-03 c2a6b7ea3ce20037aaaccd132f8cb0a8d667dd2a
split client server

git-svn-id: http://192.168.1.226/svn/proxy@971 454eff88-639b-444f-9e54-f578c98de674
1个文件已添加
3个文件已修改
161 ■■■■ 已修改文件
VisitFace/RtspNativeCodec/app/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 {
VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic
New file
@@ -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
############################################################
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
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);