From 2b43077d967c28fe99e1ff2b99f19e1433c710d9 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 17 八月 2017 12:28:36 +0800 Subject: [PATCH] aaaaa --- VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | 51 ++++++++++++++++----------------------------------- 1 files changed, 16 insertions(+), 35 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp index 8f7266b..e084d8d 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp @@ -6,7 +6,6 @@ #include <PL_Gainer.h> #include <PL_Paint.h> #include <PL_Scale.h> -#include <PL_V4L2Source.h> #include <PL_BlockGrouping.h> #include <PL_ColorConv.h> #include <PL_AndroidMediaCodecEncoder.h> @@ -95,13 +94,12 @@ PipeLine::register_global_elem_creator("PL_RTSPClient", create_PL_RTSPClient); PipeLine::register_global_elem_creator("PL_AndroidMediaCodecDecoder", create_PL_AndroidMediaCodecDecoder); PipeLine::register_global_elem_creator("PL_AndroidSurfaceViewRender", create_PL_AndroidSurfaceViewRender); - PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); - //PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); + //PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); + PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); PipeLine::register_global_elem_creator("PL_Gainer", create_PL_Gainer); PipeLine::register_global_elem_creator("PL_Scale", create_PL_Scale); PipeLine::register_global_elem_creator("PL_ColorConv", create_PL_ColorConv); 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_RTSPServer2", create_PL_RTSPServer2); @@ -182,13 +180,15 @@ //} PL_AndroidMediaCodecEncoder_Config amceCfg; - amceCfg.ak_bit_rate = 5000000; // 512KB + amceCfg.ak_bit_rate = 512 * 1024 * 8; // 512KB amceCfg.ak_color_format = 21; // COLOR_FormatYUV420SemiPlanar; - amceCfg.ak_frame_rate = 25; + amceCfg.ak_frame_rate = 40; amceCfg.ak_height = 480; - amceCfg.ak_i_frame_interval = 20; + amceCfg.ak_i_frame_interval = 1; amceCfg.ak_mime = "video/avc"; amceCfg.ak_width = 640; + amceCfg.codecProfileLevel.profile = Android_CodecProfileLevel::AVCProfileBaseline; + amceCfg.codecProfileLevel.level = Android_CodecProfileLevel::AVCLevel1; PL_AndroidMediaCodecEncoder* plAMCE = (PL_AndroidMediaCodecEncoder*)pipeLineRender->push_elem("PL_AndroidMediaCodecEncoder"); ret = plAMCE->init(&amceCfg); if (!ret) @@ -199,7 +199,7 @@ PL_RTSPServer2* plRtspServer = (PL_RTSPServer2*)pipeLineRender->push_elem("PL_RTSPServer2"); RTSPServer2Config rtspServerConfig; - //rtspServerConfig.syncDeliverFrame = false; + //rtspServerConfig.payBlockFullQueue = true; ret = plRtspServer->init(&rtspServerConfig); if (!ret) { @@ -242,20 +242,20 @@ //} #ifdef USE_ST_SDK - PL_SensetimeFaceTrack *sfTrack = (PL_SensetimeFaceTrack *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrack");//#todo use multi - ret = sfTrack->init(&sftConfig); - if (!ret) - { - LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; - return false; - } - //PL_SensetimeFaceTrackMultiTrd *sfTrack = (PL_SensetimeFaceTrackMultiTrd *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrackMitiTrd"); + //PL_SensetimeFaceTrack *sfTrack = (PL_SensetimeFaceTrack *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrack");//#todo use multi //ret = sfTrack->init(&sftConfig); //if (!ret) //{ // LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; // return false; //} + PL_SensetimeFaceTrackMultiTrd *sfTrack = (PL_SensetimeFaceTrackMultiTrd *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrackMitiTrd"); + ret = sfTrack->init(&sftConfig); + if (!ret) + { + LOG_ERROR << "pipeLineDecoderDetector.sfTrack.init error" << LOG_ENDL; + return false; + } #endif return ret; @@ -371,26 +371,7 @@ bool cw_pm_breaker_ptr_face(const PipeMaterial* pm, void* args) { - CameraWrapper& cameraWrapper = *(CameraWrapper*)args; - if (cameraWrapper.faceCacheLocked) - return false; - int faceCount = cameraWrapper.faceCache.getFaceCount(*pm); - if (faceCount <= 0 || cameraWrapper.faceCallbackFunc == 0) - return false; - cameraWrapper.faceCache.cachePm(*pm); - //remote call start, 涓轰簡淇濊瘉閫氱敤鎬э紝鏈皢浠ヤ笅姝ラ灏佸叆RtspFaceDetectClient - RtspFaceDetectClient* client = getRtspFaceDetectClient(); - if (client == nullptr) - return false; - - auto request = client->fireFaceCountListenerRequest(); - request.setCameraIndex(cameraWrapper.cameraIdx); - request.setFaceCount(cameraWrapper.faceCache.getFaceCount(*pm)); - auto sendAct = request.send(); - sendAct.wait(client->getWaitScope()); - //remote call end - return true; } void test_paint(CameraWrapper& cameraWrapper) -- Gitblit v1.8.0