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