From 1b88ab83de66fec80e895fa9fbd4a47d1d4af772 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 14 八月 2017 18:55:24 +0800 Subject: [PATCH] aaaaa --- VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp | 138 ++++++++++++++++++++++------------------------ 1 files changed, 66 insertions(+), 72 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp index 677f004..0a44174 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/CameraWrapperServer.cpp @@ -10,7 +10,7 @@ #include <PL_BlockGrouping.h> #include <PL_ColorConv.h> #include <PL_AndroidMediaCodecEncoder.h> -#include <PL_RTSPServer.h> +#include <PL_RTSPServer2.h> CameraWrapper::~CameraWrapper() { stop(); @@ -95,8 +95,8 @@ 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); @@ -104,7 +104,7 @@ 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_RTSPServer", create_PL_RTSPServer); + PipeLine::register_global_elem_creator("PL_RTSPServer2", create_PL_RTSPServer2); bool ret = initPl_DecoderPl(); if (!ret) @@ -145,7 +145,7 @@ PL_Scale* plScale = (PL_Scale*)pipeLineRender->push_elem("PL_Scale"); plScaleCfg.toWidth = 640; - plScaleCfg.toHeight = 480; + plScaleCfg.toHeight = 480;//#todo config ret = plScale->init(&plScaleCfg); if (!ret) { @@ -153,24 +153,52 @@ 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); - if (!ret) - { - LOG_ERROR << "pipeLineRender.plAMCE 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_RTSPServer* plRtspServer = (PL_RTSPServer*)pipeLineRender->push_elem("PL_RTSPServer"); - RTSPServerConfig rtspServerConfig; + 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_AndroidMediaCodecEncoder_Config amceCfg; + amceCfg.ak_bit_rate = 5000000; // 512KB + amceCfg.ak_color_format = 21; // COLOR_FormatYUV420SemiPlanar; + amceCfg.ak_frame_rate = 20; + amceCfg.ak_height = 480; + amceCfg.ak_i_frame_interval = 10; + 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_RTSPServer2* plRtspServer = (PL_RTSPServer2*)pipeLineRender->push_elem("PL_RTSPServer2"); + RTSPServer2Config rtspServerConfig; //rtspServerConfig.syncDeliverFrame = false; ret = plRtspServer->init(&rtspServerConfig); if (!ret) @@ -178,35 +206,7 @@ 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.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; - //} - } + } return true; } @@ -242,20 +242,20 @@ //} #ifdef USE_ST_SDK -// PL_SensetimeFaceTrack *sfTrack = (PL_SensetimeFaceTrack *) pipeLineDecoderDetector->push_elem("PL_SensetimeFaceTrack"); -// 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; @@ -380,14 +380,17 @@ return false; cameraWrapper.faceCache.cachePm(*pm); //remote call start, 涓轰簡淇濊瘉閫氱敤鎬э紝鏈皢浠ヤ笅姝ラ灏佸叆RtspFaceDetectClient - RtspFaceDetectClient &client = getRtspFaceDetectClient(); - auto request = client.fireFaceCountListenerRequest(); + 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()); + sendAct.wait(client->getWaitScope()); //remote call end - return false; + return true; } void test_paint(CameraWrapper& cameraWrapper) @@ -413,14 +416,6 @@ cameraWrapper.plplContext.params.push_back(100); cameraWrapper.plplContext.params.push_back(100); } - -//struct ScopeMutexLocker -//{ -// pthread_mutex_t* mut; -// ScopeMutexLocker(pthread_mutex_t* _mut) : mut(_mut){pthread_mutex_lock(mut);}; -// ~ScopeMutexLocker(){pthread_mutex_unlock(mut);} -// //ScopeMutexLocker(&(cameraWrapper.live_daemon_mut)); -//}; void cw_elem_destory_func(PipeLineElem* elem) { @@ -492,7 +487,6 @@ { sleep(10); - continue;//#todo if (time(nullptr) - cameraWrapper.lastAliveTime > 20) { PL_RTSPClient* rtspClient = (PL_RTSPClient*)cameraWrapper.pipeLineDecoderDetector->at(0); -- Gitblit v1.8.0