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