From 633e76c1d533c3d9c257b92df7ebdfd36c9fd8a0 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 29 十二月 2016 18:42:50 +0800 Subject: [PATCH] unify log --- RtspFace/PL_AVFrameBGRA.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 44 insertions(+), 13 deletions(-) diff --git a/RtspFace/PL_AVFrameBGRA.cpp b/RtspFace/PL_AVFrameBGRA.cpp index 9329f14..4b0ba9e 100644 --- a/RtspFace/PL_AVFrameBGRA.cpp +++ b/RtspFace/PL_AVFrameBGRA.cpp @@ -1,4 +1,6 @@ #include "PL_AVFrameBGRA.h" +#include "MaterialBuffer.h" +#include "logger.h" extern "C" { @@ -11,14 +13,15 @@ struct PL_AVFrameBGRA_Internal { - uint8_t buffer[1920*1080*4]; + uint8_t buffer[1920*1080*4];//#todo size_t buffSize; size_t buffSizeMax; + MB_Frame lastFrame; bool payError; PL_AVFrameBGRA_Internal() : - buffSize(0), buffSizeMax(sizeof(buffer)), + buffSize(0), buffSizeMax(sizeof(buffer)), lastFrame(), payError(true) { } @@ -31,6 +34,9 @@ { buffSize = 0; payError = true; + + MB_Frame _lastFrame; + lastFrame = _lastFrame; } }; @@ -69,12 +75,28 @@ { PL_AVFrameBGRA_Internal* in = (PL_AVFrameBGRA_Internal*)internal; - AVFrame* pAVFrame = (AVFrame*)pm.buffer; + if (pm.type != PipeMaterial::PMT_FRAME) + { + LOG(ERROR) << "PL_AVFrameBGRA::pay only support PMT_FRAME"; + return false; + } + + if (pm.buffer == nullptr) + return false; + + MB_Frame* frame = (MB_Frame*)pm.buffer; + if (frame->type != MB_Frame::MBFT_PTR_AVFRAME) + { + LOG(ERROR) << "PL_AVFrameBGRA::pay only support MBFT_PTR_AVFRAME"; + return false; + } + + AVFrame* pAVFrame = (AVFrame*)frame->buffer; if (pAVFrame == nullptr) return false; - int height = pAVFrame->height; - int width = pAVFrame->width; + const int height = pAVFrame->height; + const int width = pAVFrame->width; //int I420ToBGRA(const uint8* src_y, int src_stride_y, // const uint8* src_u, int src_stride_u, @@ -90,13 +112,21 @@ in->buffSize = in->buffSizeMax; //in->buffer readly + + in->lastFrame.type = MB_Frame::MBFT_BGRA; + in->lastFrame.buffer = in->buffer; + in->lastFrame.buffSize = in->buffSize; + in->lastFrame.width = width; + in->lastFrame.height = height; + in->lastFrame.pts = frame->pts; - static size_t f=0; - char fname[50]; - sprintf(fname, "%u.bgra", ++f); - FILE * pFile = fopen (fname,"wb"); - fwrite (in->buffer , sizeof(char), in->buffSize, pFile); - fclose(pFile); + //#test + //static size_t f=0; + //char fname[50]; + //sprintf(fname, "%u.bgra", ++f); + //FILE * pFile = fopen (fname,"wb"); + //fwrite (in->buffer , sizeof(char), in->buffSize, pFile); + //fclose(pFile); return true; } @@ -105,8 +135,9 @@ { PL_AVFrameBGRA_Internal* in = (PL_AVFrameBGRA_Internal*)internal; - pm.buffer = in->buffer; - pm.buffSize = in->buffSize; + pm.type = PipeMaterial::PMT_FRAME; + pm.buffer = &(in->lastFrame); + pm.buffSize = 0; pm.former = this; return true; } -- Gitblit v1.8.0