From 017b7eb736ccc53c52f81486be8196d7fafc3289 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 28 十二月 2016 10:31:42 +0800 Subject: [PATCH] add MaterialBuffer --- RtspFace/PL_SensetimeFaceDetect.cpp | 32 +++++++++++++++++++++++++++++--- 1 files changed, 29 insertions(+), 3 deletions(-) diff --git a/RtspFace/PL_SensetimeFaceDetect.cpp b/RtspFace/PL_SensetimeFaceDetect.cpp index a6fba62..5df118c 100644 --- a/RtspFace/PL_SensetimeFaceDetect.cpp +++ b/RtspFace/PL_SensetimeFaceDetect.cpp @@ -1,15 +1,19 @@ #include "PL_SensetimeFaceDetect.h" +#include <opencv2/opencv.hpp> +#include <cv_face.h> + struct PL_SensetimeFaceDetect_Internal { uint8_t buffer[1920*1080*4]; size_t buffSize; size_t buffSizeMax; + MB_Frame lastFrame; bool payError; PL_SensetimeFaceDetect_Internal() : - buffSize(0), buffSizeMax(sizeof(buffer)), + buffSize(0), buffSizeMax(sizeof(buffer)), lastFrame(), payError(true) { } @@ -22,6 +26,9 @@ { buffSize = 0; payError = true; + + MB_Frame _lastFrame; + lastFrame = _lastFrame; } }; @@ -58,6 +65,24 @@ { PL_SensetimeFaceDetect_Internal* in = (PL_SensetimeFaceDetect_Internal*)internal; + if (pm.type != PipeMaterial::PMT_FRAME) + { + printf("PL_H264Encoder::pay only support PMT_FRAME\n"); + return false; + } + + if (pm.buffer == nullptr) + return false; + + MB_Frame* frame = (MB_Frame*)pm.buffer; + if (frame->type != MB_Frame::MBFT_YUV420) + { + printf("PL_H264Encoder::pay only support MBFT_YUV420\n"); + return false; + } + + + //in->buffer readly //static size_t f=0; @@ -74,8 +99,9 @@ { PL_SensetimeFaceDetect_Internal* in = (PL_SensetimeFaceDetect_Internal*)internal; - pm.buffer = in->buffer; - pm.buffSize = in->buffSize; + pm.type = PipeMaterial::PMT_FRAME; + pm.buffer = (uint8_t*)(&(in->lastFrame)); + pm.buffSize = sizeof(in->lastFrame); pm.former = this; return true; } -- Gitblit v1.8.0