VisitFace/RtspNativeCodec/app/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
VisitFace/RtspNativeCodec/app/src/main/assets/ac-83-f3-9e-00-7a-20170802.lic | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
VisitFace/RtspNativeCodec/app/src/main/cpp/CMakeLists.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | ●●●●● 补丁 | 查看 | 原始文档 | 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);