From 0c3bba1a4d7b652807dfb74e1a31012802bd2987 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 17 八月 2017 12:26:55 +0800
Subject: [PATCH] aaaaa

---
 RtspFace/PL_H264FileFramer.cpp               |   38 +++++++-----------
 RtspFace/PL_RTSPServer2.cpp                  |    4 +-
 RtspFace/PL_H264FileFramer.h                 |   18 ++++----
 RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp |   17 ++++----
 4 files changed, 34 insertions(+), 43 deletions(-)

diff --git a/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp b/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
index fa689f0..c7e624e 100644
--- a/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
+++ b/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
@@ -136,12 +136,11 @@
         AMediaFormat_setBuffer(format, "csd-1", pps.sPropBytes, pps.sPropLength); // pps
     */
 
-		// J0LgKI1oCgPaEAAAAwAQAAADAoDxB6gA,KM4ySA==
-        uint8_t sps[] = {0x27,0x42,0xe0,0x28,0x8d,0x68,0x0a,0x03,0xda,0x10,0x00,0x00,0x03,0x00,0x10,0x00,0x00,0x03,0x02,0x80,0xf1,0x07,0xa8,0x00};
-        uint8_t pps[] = {0x28,0xce,0x32,0x48};
-        AMediaFormat_setBuffer(format, "csd-0", sps, sizeof(sps)); // sps
-        AMediaFormat_setBuffer(format, "csd-1", pps, sizeof(pps)); // pps
-
+	// J0LgKI1oCgPaEAAAAwAQAAADAoDxB6gA,KM4ySA==
+	//uint8_t sps[] = {0x27,0x42,0xe0,0x28,0x8d,0x68,0x0a,0x03,0xda,0x10,0x00,0x00,0x03,0x00,0x10,0x00,0x00,0x03,0x02,0x80,0xf1,0x07,0xa8,0x00};
+	//uint8_t pps[] = {0x28,0xce,0x32,0x48};
+	//AMediaFormat_setBuffer(format, "csd-0", sps, sizeof(sps)); // sps
+	//AMediaFormat_setBuffer(format, "csd-1", pps, sizeof(pps)); // pps
 
     // should like:
     // mime: string(video/avc), durationUs: int64(10000000), width: int32(480), height: int32(360), max-input-size: int32(55067), csd-0: data, csd-1: data}
@@ -202,9 +201,9 @@
 		return false;
 	}
 
-	static FILE *pFile = fopen("/data/bb.264", "wb");
-	fwrite(frame->buffer, sizeof(char), frame->buffSize, pFile);
-	fflush(pFile);
+	//static FILE *pFile = fopen("/data/bb.264", "wb");
+	//fwrite(frame->buffer, sizeof(char), frame->buffSize, pFile);
+	//fflush(pFile);
 
     ssize_t bufidx = AMediaCodec_dequeueInputBuffer(in->codec, 2000);
     LOGP(DEBUG, "input buffer bufidx=%zd, inputFrameCount=%d", bufidx, in->inputFrameCount++);
diff --git a/RtspFace/PL_AndroidMediaCodecFileFrame.cpp b/RtspFace/PL_H264FileFramer.cpp
similarity index 90%
rename from RtspFace/PL_AndroidMediaCodecFileFrame.cpp
rename to RtspFace/PL_H264FileFramer.cpp
index ed09a1f..abfbabc 100644
--- a/RtspFace/PL_AndroidMediaCodecFileFrame.cpp
+++ b/RtspFace/PL_H264FileFramer.cpp
@@ -1,18 +1,12 @@
-#include "PL_AndroidMediaCodecFileFrame.h"
+#include "PL_H264FileFramer.h"
 #include "MaterialBuffer.h"
 #include "logger.h"
 #include "MediaHelper.h"
-
-#include <media/NdkMediaCodec.h>
-#include <media/NdkMediaFormat.h>
-
-#include <android/bitmap.h>
 
 #include "my_timer.hpp"
 #include <stdlib.h>
 #include <fstream>
 using namespace std;
-#include <liveMedia/liveMedia.hh>
 
 #define H264_HEAD "01"
 
@@ -24,9 +18,7 @@
 	
 	size_t inputFrameCount;
 
-	PL_AndroidMediaCodecFileFrame_Config config;
-
-	AMediaCodec* codec;
+	PL_H264FileFramer_Config config;
 
 	bool payOK;
 
@@ -52,7 +44,7 @@
 		
 		inputFrameCount = 0;
 
-		PL_AndroidMediaCodecFileFrame_Config _config;
+		PL_H264FileFramer_Config _config;
 		config = _config;
 		
 		codec = nullptr;//#todo destory
@@ -64,28 +56,28 @@
 	}
 };
 
-PipeLineElem* create_PL_AndroidMediaCodecFileFrame()
+PipeLineElem* create_PL_H264FileFramer()
 {
-	return new PL_AndroidMediaCodecFileFrame;
+	return new PL_H264FileFramer;
 }
 
-PL_AndroidMediaCodecFileFrame::PL_AndroidMediaCodecFileFrame() : internal(new PL_AMCE_Internal)
+PL_H264FileFramer::PL_H264FileFramer() : internal(new PL_AMCE_Internal)
 ,m_b_loop_play(false),m_begin(-1),m_current_time(0)
 {
 }
 
-PL_AndroidMediaCodecFileFrame::~PL_AndroidMediaCodecFileFrame()
+PL_H264FileFramer::~PL_H264FileFramer()
 {
 	delete (PL_AMCE_Internal*)internal;
 	internal= nullptr;
 }
 
-bool PL_AndroidMediaCodecFileFrame::init(void* args)
+bool PL_H264FileFramer::init(void* args)
 {
 	PL_AMCE_Internal* in = (PL_AMCE_Internal*)internal;
 	in->reset();
 
-	PL_AndroidMediaCodecFileFrame_Config* config = (PL_AndroidMediaCodecFileFrame_Config*)args;
+	PL_H264FileFramer_Config* config = (PL_H264FileFramer_Config*)args;
 
     int ret = read_file(config->sz_path);
     if(1!=ret)
@@ -140,7 +132,7 @@
 	return true;
 }
 
-void PL_AndroidMediaCodecFileFrame::finit()
+void PL_H264FileFramer::finit()
 {
 	PL_AMCE_Internal* in = (PL_AMCE_Internal*)internal;
 	//todo release codec
@@ -179,7 +171,7 @@
 	return false;
 }
 
-bool PL_AndroidMediaCodecFileFrame::pay(const PipeMaterial& pm)
+bool PL_H264FileFramer::pay(const PipeMaterial& pm)
 {
 	PL_AMCE_Internal* in = (PL_AMCE_Internal*)internal;
 
@@ -190,7 +182,7 @@
 	return in->payOK;
 }
 
-bool PL_AndroidMediaCodecFileFrame::gain(PipeMaterial& pm)
+bool PL_H264FileFramer::gain(PipeMaterial& pm)
 {
 	PL_AMCE_Internal* in = (PL_AMCE_Internal*)internal;
 
@@ -342,13 +334,13 @@
 	
 	return false;
 }
-int PL_AndroidMediaCodecFileFrame::write_file(const char* p_path,const char* p_content,int nlength)
+int PL_H264FileFramer::write_file(const char* p_path,const char* p_content,int nlength)
 {
     std::fstream outfile(p_path, std::ios_base::out | std::ios_base::binary);
     outfile.write(p_content, nlength);
     outfile.close();
 }
-int PL_AndroidMediaCodecFileFrame::read_file(const char* p_path)
+int PL_H264FileFramer::read_file(const char* p_path)
 {
     std::fstream infile(p_path, std::ios_base::in | std::ios_base::binary | ios::ate);
     size_t nSize = infile.tellg();
@@ -366,7 +358,7 @@
     return 1;
 }
 
-int PL_AndroidMediaCodecFileFrame::analyse_context()
+int PL_H264FileFramer::analyse_context()
 {
     int _count = 0;
     int _begin = -1;
diff --git a/RtspFace/PL_AndroidMediaCodecFileFrame.h b/RtspFace/PL_H264FileFramer.h
similarity index 60%
rename from RtspFace/PL_AndroidMediaCodecFileFrame.h
rename to RtspFace/PL_H264FileFramer.h
index c73f78a..95be8c3 100644
--- a/RtspFace/PL_AndroidMediaCodecFileFrame.h
+++ b/RtspFace/PL_H264FileFramer.h
@@ -1,25 +1,25 @@
-#ifndef _PL_ANDROIDMEDIACODECFILEFRAME_H_
-#define _PL_ANDROIDMEDIACODECFILEFRAME_H_
+#ifndef _PL_H264FILEFRAMER_H_
+#define _PL_H264FILEFRAMER_H_
 
 #include "PipeLine.h"
 
-struct PL_AndroidMediaCodecFileFrame_Config
+struct PL_H264FileFramer_Config
 {
     char  sz_path[256];
     bool  b_loop_play;
 
-	PL_AndroidMediaCodecFileFrame_Config() :
+	PL_H264FileFramer_Config() :
             b_loop_play(false)
 	{
         memset(sz_path,0,256);
     }
 };
 
-class PL_AndroidMediaCodecFileFrame : public PipeLineElem
+class PL_H264FileFramer : public PipeLineElem
 {
 public:
-	PL_AndroidMediaCodecFileFrame();
-	virtual ~PL_AndroidMediaCodecFileFrame();
+	PL_H264FileFramer();
+	virtual ~PL_H264FileFramer();
 
 	virtual bool init(void* args);
 	virtual void finit();
@@ -29,7 +29,7 @@
 	
 private:
 	void* internal;
-    bool  m_b_loop_play;
+    bool  m_b_loop_play;//#todo move to config
     std::string m_str_context;
     std::string m_str_old_context;
     std::string m_str_buf;
@@ -42,6 +42,6 @@
     int analyse_context();
 };
 
-PipeLineElem* create_PL_AndroidMediaCodecFileFrame();
+PipeLineElem* create_PL_H264FileFramer();
 
 #endif
diff --git a/RtspFace/PL_RTSPServer2.cpp b/RtspFace/PL_RTSPServer2.cpp
index f45038b..b082afe 100644
--- a/RtspFace/PL_RTSPServer2.cpp
+++ b/RtspFace/PL_RTSPServer2.cpp
@@ -164,8 +164,8 @@
 		if (_this->lastBuffer == nullptr)
 			return false;
 
-		buffer = _this->lastBuffer->buffer; // #todo send nalu
-		buffSize = _this->lastBuffer->buffSize;
+		buffer = _this->lastBuffer->buffer + 4; // #todo send nalu
+		buffSize = _this->lastBuffer->buffSize - 4;
 		//LOG_WARN << "sizeS=" << buffSize << LOG_ENDL;
 
 		//LOG_INFO << "DeliverFrameCallback buffSize=" << buffSize << LOG_ENDL;

--
Gitblit v1.8.0